diff --git a/.gitignore b/.gitignore index 25eff217..211887f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.editorconfig \ No newline at end of file +.editorconfig +node_modules \ No newline at end of file diff --git a/danfojs-browser/lib/bundle.js b/danfojs-browser/lib/bundle.js index 5b79beff..800faab2 100644 --- a/danfojs-browser/lib/bundle.js +++ b/danfojs-browser/lib/bundle.js @@ -1,3 +1,3 @@ /*! For license information please see bundle.js.LICENSE.txt */ -var dfd;dfd=(()=>{var __webpack_modules__={5219:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nr})},2137:(e,t,n)=>{"use strict";function r(e,t,n,r,a,s,i){try{var o=e[s](i),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,s){var i=e.apply(t,n);function o(e){r(i,a,s,o,l,"next",e)}function l(e){r(i,a,s,o,l,"throw",e)}o(void 0)}))}}n.d(t,{Z:()=>a})},6610:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:()=>r})},5991:(e,t,n)=>{"use strict";function r(e,t){for(var n=0;na})},3530:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7608);function a(e,t,n){return(a="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var a=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,r.Z)(e)););return e}(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(n):s.value}})(e,t,n||e)}},7608:(e,t,n)=>{"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,{Z:()=>r})},5255:(e,t,n)=>{"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}n.d(t,{Z:()=>a})},6616:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(484);function a(e,t){return!t||"object"!==(0,r.Z)(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}},4699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(2961);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw s}}return n}}(e,t)||(0,r.Z)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},7329:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(5219),a=n(2961);function s(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||(0,a.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},484:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,{Z:()=>r})},2961:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(5219);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},7757:(e,t,n)=>{e.exports=n(5666)},8654:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>He,Acos:()=>Ge,Acosh:()=>Xe,AdadeltaOptimizer:()=>Mo,AdagradOptimizer:()=>Po,AdamOptimizer:()=>Wo,AdamaxOptimizer:()=>Xo,Add:()=>qe,AddN:()=>Ke,All:()=>Ze,Any:()=>Ye,ArgMax:()=>Je,ArgMin:()=>Qe,Asin:()=>et,Asinh:()=>tt,Atan:()=>nt,Atan2:()=>at,Atanh:()=>rt,AvgPool:()=>st,AvgPool3D:()=>ot,AvgPool3DGrad:()=>lt,AvgPoolGrad:()=>it,BatchMatMul:()=>ut,BatchToSpaceND:()=>ct,Bincount:()=>ht,BroadcastTo:()=>ft,Callback:()=>Jx,CallbackList:()=>ty,Cast:()=>dt,Ceil:()=>pt,ClipByValue:()=>mt,Complex:()=>gt,ComplexAbs:()=>yt,Concat:()=>bt,Conv2D:()=>vt,Conv2DBackpropFilter:()=>wt,Conv2DBackpropInput:()=>xt,Conv3D:()=>_t,Conv3DBackpropFilterV2:()=>kt,Conv3DBackpropInputV2:()=>Et,Cos:()=>Ct,Cosh:()=>St,CropAndResize:()=>It,Cumsum:()=>Nt,CustomCallback:()=>ay,DataStorage:()=>V,DenseBincount:()=>At,DepthToSpace:()=>Dt,DepthwiseConv2dNative:()=>Tt,DepthwiseConv2dNativeBackpropFilter:()=>Ft,DepthwiseConv2dNativeBackpropInput:()=>Rt,Diag:()=>Ot,Dilation2D:()=>Bt,Dilation2DBackpropFilter:()=>$t,Dilation2DBackpropInput:()=>Mt,ENV:()=>Ue,EarlyStopping:()=>t_,Elu:()=>Lt,EluGrad:()=>zt,Environment:()=>Le,Equal:()=>Ut,Erf:()=>Wt,Exp:()=>Vt,ExpandDims:()=>jt,Expm1:()=>Ht,FFT:()=>Gt,Fill:()=>Xt,FlipLeftRight:()=>qt,Floor:()=>Kt,FloorDiv:()=>Zt,FromPixels:()=>Mr,FusedBatchNorm:()=>Yt,FusedConv2D:()=>Lr,FusedDepthwiseConv2D:()=>zr,GatherNd:()=>Qt,GatherV2:()=>Jt,GraphModel:()=>mk,Greater:()=>en,GreaterEqual:()=>tn,History:()=>ry,IFFT:()=>rn,Identity:()=>nn,Imag:()=>an,InputSpec:()=>Ug,IsFinite:()=>sn,IsInf:()=>on,IsNan:()=>ln,KernelBackend:()=>j,LRN:()=>vn,LRNGrad:()=>wn,LayerVariable:()=>Lg,LayersModel:()=>ub,LeakyRelu:()=>un,Less:()=>cn,LessEqual:()=>hn,LinSpace:()=>fn,Log:()=>dn,Log1p:()=>pn,LogSoftmax:()=>bn,LogicalAnd:()=>mn,LogicalNot:()=>gn,LogicalOr:()=>yn,Max:()=>xn,MaxPool:()=>kn,MaxPool3D:()=>Cn,MaxPool3DGrad:()=>Sn,MaxPoolGrad:()=>En,MaxPoolWithArgmax:()=>Nn,Maximum:()=>_n,Mean:()=>In,Min:()=>An,Minimum:()=>Dn,MirrorPad:()=>Tn,Mod:()=>Fn,MomentumOptimizer:()=>Ko,Multinomial:()=>Rn,Multiply:()=>On,Neg:()=>Bn,NonMaxSuppressionV3:()=>$n,NonMaxSuppressionV4:()=>Pn,NonMaxSuppressionV5:()=>Ln,NotEqual:()=>Mn,OP_SCOPE_SUFFIX:()=>Ga,OneHot:()=>Wn,OnesLike:()=>zn,Optimizer:()=>Bo,Pack:()=>Un,PadV2:()=>Vn,Pool:()=>jn,Pow:()=>Hn,Prelu:()=>Gn,Prod:()=>Xn,RMSPropOptimizer:()=>Zo,RNN:()=>dv,Range:()=>qn,Rank:()=>va,Real:()=>Kn,RealDiv:()=>Pt,Reciprocal:()=>Zn,Reduction:()=>mf,Relu:()=>Yn,Relu6:()=>rr,Reshape:()=>Jn,ResizeBilinear:()=>tr,ResizeBilinearGrad:()=>nr,ResizeNearestNeighbor:()=>Qn,ResizeNearestNeighborGrad:()=>er,Reverse:()=>ar,RotateWithOffset:()=>$r,Round:()=>sr,Rsqrt:()=>ir,SGDOptimizer:()=>qo,ScatterNd:()=>or,Select:()=>lr,Selu:()=>ur,Sequential:()=>fb,Sigmoid:()=>pr,Sign:()=>dr,Sin:()=>hr,Sinh:()=>fr,Slice:()=>cr,Softmax:()=>wr,Softplus:()=>mr,SpaceToBatchND:()=>br,SparseToDense:()=>Er,SplitV:()=>vr,Sqrt:()=>gr,Square:()=>_r,SquaredDifference:()=>xr,Step:()=>Br,StridedSlice:()=>Cr,Sub:()=>kr,Sum:()=>yr,SymbolicTensor:()=>Vg,Tan:()=>Sr,Tanh:()=>Nr,Tensor:()=>ga,TensorBuffer:()=>fa,Tile:()=>Ir,TopK:()=>Ar,Transpose:()=>Dr,Unique:()=>Tr,Unpack:()=>Fr,UnsortedSegmentSum:()=>Rr,Variable:()=>ba,ZerosLike:()=>Or,_FusedMatMul:()=>Pr,abs:()=>Uo,acos:()=>Yo,acosh:()=>Jo,add:()=>wo,addN:()=>Qo,all:()=>el,any:()=>tl,argMax:()=>nl,argMin:()=>rl,asin:()=>al,asinh:()=>sl,atan:()=>il,atan2:()=>ol,atanh:()=>ll,avgPool:()=>kl,avgPool3d:()=>El,backend:()=>bo,backend_util:()=>g,basicLSTMCell:()=>Al,batchNorm:()=>Tl,batchNorm2d:()=>Fl,batchNorm3d:()=>Rl,batchNorm4d:()=>Ol,batchToSpaceND:()=>Dl,bincount:()=>Bl,booleanMaskAsync:()=>xh,broadcastTo:()=>Ml,browser:()=>l,buffer:()=>Us,callbacks:()=>n_,cast:()=>Vs,ceil:()=>$l,clipByValue:()=>Pl,clone:()=>js,complex:()=>qa,concat:()=>Cl,concat1d:()=>Ll,concat2d:()=>zl,concat3d:()=>Wl,concat4d:()=>Ul,constraints:()=>b,conv1d:()=>jl,conv2d:()=>Vl,conv2dTranspose:()=>Gl,conv3d:()=>Xl,conv3dTranspose:()=>Kl,copyRegisteredKernels:()=>Zr,cos:()=>Zl,cosh:()=>Yl,cosineWindow:()=>Dh,cumsum:()=>Jl,customGrad:()=>Fo,data:()=>W,denseBincount:()=>Ql,deprecationWarn:()=>to,depthToSpace:()=>eu,depthwiseConv2d:()=>tu,deregisterOp:()=>l_,device_util:()=>s,diag:()=>nu,dilation2d:()=>ru,disableDeprecationWarnings:()=>eo,dispose:()=>oo,disposeVariables:()=>no,div:()=>_o,divNoNan:()=>iu,dot:()=>ou,dropout:()=>Ih,elu:()=>lu,enableDebugMode:()=>Qi,enableProdMode:()=>Ji,enclosingPowerOfTwo:()=>Ah,engine:()=>ro,env:()=>ze,equal:()=>au,erf:()=>uu,exp:()=>cu,expandDims:()=>hu,expm1:()=>fu,eye:()=>pu,fft:()=>Yc,fill:()=>$o,findBackend:()=>mo,findBackendFactory:()=>go,floor:()=>mu,floorDiv:()=>xo,fused:()=>p,gather:()=>gu,gatherND:()=>Nh,gather_util:()=>u,getBackend:()=>fo,getGradient:()=>jr,getKernel:()=>Vr,getKernelsForBackend:()=>Hr,grad:()=>No,grads:()=>Io,greater:()=>yu,greaterEqual:()=>bu,ifft:()=>Jc,imag:()=>vu,image:()=>Nf,inTopKAsync:()=>Th,initializers:()=>v,input:()=>gb,io:()=>i,irfft:()=>Qc,isFinite:()=>wu,isInf:()=>xu,isNaN:()=>_u,keep:()=>lo,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>ku,less:()=>Eu,lessEqual:()=>Cu,linalg:()=>If,linspace:()=>Su,loadGraphModel:()=>gk,loadLayersModel:()=>mb,localResponseNormalization:()=>Nu,log:()=>Iu,log1p:()=>Au,logSigmoid:()=>Fu,logSoftmax:()=>Bu,logSumExp:()=>ju,logicalAnd:()=>Hu,logicalNot:()=>Gu,logicalOr:()=>Xu,logicalXor:()=>qu,losses:()=>Af,matMul:()=>ui,math:()=>o,max:()=>Ru,maxPool:()=>Ku,maxPool3d:()=>Zu,maxPoolWithArgmax:()=>Yu,maximum:()=>Go,mean:()=>Ju,memory:()=>ao,metrics:()=>x,min:()=>Qu,minimum:()=>ec,mirrorPad:()=>tc,mod:()=>nc,model:()=>db,models:()=>_,moments:()=>rc,movingAverage:()=>Eh,mul:()=>ko,multiRNNCell:()=>ac,multinomial:()=>sc,neg:()=>Du,nextFrame:()=>Rf,norm:()=>kh,notEqual:()=>ic,oneHot:()=>ci,ones:()=>lc,onesLike:()=>uc,op:()=>Xa,outerProduct:()=>cc,pad:()=>hc,pad1d:()=>fc,pad2d:()=>dc,pad3d:()=>pc,pad4d:()=>mc,pool:()=>yc,pow:()=>Lo,prelu:()=>bc,print:()=>Hs,prod:()=>vc,profile:()=>so,rand:()=>wc,randomGamma:()=>Cc,randomNormal:()=>Sc,randomUniform:()=>Nc,range:()=>Ic,ready:()=>ho,real:()=>Ac,reciprocal:()=>Dc,registerBackend:()=>yo,registerCallbackConstructor:()=>yb,registerGradient:()=>Xr,registerKernel:()=>Gr,registerOp:()=>i_,regularizers:()=>k,relu:()=>Tc,relu6:()=>Fc,removeBackend:()=>po,reshape:()=>_l,reverse:()=>Rc,reverse1d:()=>Oc,reverse2d:()=>Bc,reverse3d:()=>Mc,reverse4d:()=>$c,rfft:()=>th,round:()=>Pc,rsqrt:()=>Lc,scalar:()=>Oo,scatterND:()=>Ch,scatter_util:()=>c,selu:()=>zc,separableConv2d:()=>Wc,sequential:()=>pb,serialization:()=>f,setBackend:()=>co,setPlatform:()=>vo,setdiff1dAsync:()=>Uc,sigmoid:()=>Sl,sign:()=>Vc,signal:()=>Sf,sin:()=>jc,sinh:()=>Hc,slice:()=>Nl,slice1d:()=>Gc,slice2d:()=>Xc,slice3d:()=>qc,slice4d:()=>Kc,slice_util:()=>h,softmax:()=>Zc,softplus:()=>Tu,spaceToBatchND:()=>gc,sparseToDense:()=>Sh,spectral:()=>Cf,split:()=>eh,sqrt:()=>Eo,square:()=>Co,squaredDifference:()=>nh,squeeze:()=>rh,stack:()=>ah,step:()=>sh,stridedSlice:()=>ih,sub:()=>zo,sum:()=>Ou,sumOutType:()=>Sa,tan:()=>oh,tanh:()=>Il,tensor:()=>Za,tensor1d:()=>lh,tensor2d:()=>uh,tensor3d:()=>di,tensor4d:()=>ch,tensor5d:()=>hh,tensor6d:()=>fh,tensor_util:()=>a,test_util:()=>d,tidy:()=>io,tile:()=>du,time:()=>uo,topk:()=>dh,train:()=>Tf,transpose:()=>hi,truncatedNormal:()=>ph,unique:()=>mh,unregisterGradient:()=>Kr,unregisterKernel:()=>qr,unsortedSegmentSum:()=>gh,unstack:()=>yh,upcastType:()=>Ca,util:()=>r,valueAndGrad:()=>Ao,valueAndGrads:()=>Do,variable:()=>bh,variableGrads:()=>To,version:()=>uP,version_converter:()=>yk,version_core:()=>Yi,version_layers:()=>Py,where:()=>su,whereAsync:()=>wh,zeros:()=>oc,zerosLike:()=>So});var r={};n.r(r),n.d(r,{arraysEqual:()=>se,assert:()=>Q,assertNonNegativeIntegerDimensions:()=>Be,assertNonNull:()=>te,assertShapesMatch:()=>ee,bytesFromStringArray:()=>_e,bytesPerElement:()=>xe,checkConversionForErrors:()=>ye,clamp:()=>q,computeStrides:()=>Ae,createScalarValue:()=>Jr,createShuffledIndices:()=>ue,decodeString:()=>ra,distSquared:()=>J,encodeString:()=>na,fetch:()=>ta,flatten:()=>ne,getArrayFromDType:()=>ge,getTypedArrayFromDType:()=>me,hasEncodingLoss:()=>ve,indexToLoc:()=>$e,inferDtype:()=>Se,inferFromImplicitShape:()=>fe,isBoolean:()=>Ee,isFunction:()=>Ne,isInt:()=>ie,isNumber:()=>Ce,isPromise:()=>Pe,isScalarShape:()=>ae,isString:()=>ke,isTypedArray:()=>we,isValidDtype:()=>be,locToIndex:()=>Me,makeOnesTypedArray:()=>Fe,makeZerosNestedTypedArray:()=>Oe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ie,nearestLargerEven:()=>K,now:()=>ea,parseAxisParam:()=>de,randUniform:()=>Y,repeatedTry:()=>he,rightPad:()=>ce,shuffle:()=>G,shuffleCombo:()=>X,sizeFromShape:()=>re,sizeToSquarishShape:()=>le,squeezeShape:()=>pe,sum:()=>Z,tanh:()=>oe,toNestedArray:()=>Te,toTypedArray:()=>Qr});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Ia,getTensorsInContainer:()=>Da,isTensorInList:()=>Aa,makeTypesMatch:()=>Na});var s={};n.r(s),n.d(s,{isBrowser:()=>La,isMobile:()=>Pa});var i={};n.r(i),n.d(i,{browserFiles:()=>Ks,browserHTTPRequest:()=>ai,concatenateArrayBuffers:()=>rs,copyModel:()=>Ps,decodeWeights:()=>Qa,encodeWeights:()=>Ja,fromMemory:()=>oi,getLoadHandlers:()=>hs,getModelArtifactsInfoForJSON:()=>ss,getSaveHandlers:()=>cs,http:()=>ri,isHTTPScheme:()=>ti,listModels:()=>Ms,loadWeights:()=>Js,moveModel:()=>Ls,registerLoadRouter:()=>us,registerSaveRouter:()=>ls,removeModel:()=>$s,weightsLoaderFactory:()=>Qs,withSaveHandler:()=>li});var o={};n.r(o),n.d(o,{confusionMatrix:()=>fi});var l={};n.r(l),n.d(l,{fromPixels:()=>gi,toPixels:()=>mi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>yi});var c={};n.r(c),n.d(c,{calculateShapes:()=>wi,validateInput:()=>vi,validateUpdateShape:()=>bi});var h={};n.r(h),n.d(h,{assertParamsValid:()=>xi,computeFlatOffset:()=>Oi,computeOutShape:()=>ki,getNormalizedAxes:()=>Ni,isSliceContinous:()=>Ri,maskToAxes:()=>_i,parseSliceParams:()=>Bi,sliceInfo:()=>Mi,startForAxis:()=>Ti,startIndicesWithElidedDims:()=>Ii,stopForAxis:()=>Fi,stopIndicesWithElidedDims:()=>Ai,stridesForAxis:()=>Di,stridesWithElidedDims:()=>Ei});var f={};n.r(f),n.d(f,{Serializable:()=>$i,SerializationMap:()=>Pi,registerClass:()=>Li});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>zi,encodeStrings:()=>Zi,expectArrayBuffersEqual:()=>Ki,expectArraysClose:()=>Wi,expectArraysEqual:()=>Hi,expectNumbersClose:()=>Gi,expectPromiseToFail:()=>ji,expectValuesInRange:()=>qi,testEpsilon:()=>Ui});var p={};n.r(p),n.d(p,{conv2d:()=>$h,depthwiseConv2d:()=>zh,matMul:()=>Wh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>hd,computeOutShape:()=>cd,segOpComputeOptimalWindowSize:()=>ud});var g={};n.r(g),n.d(g,{ERF_A1:()=>Xf,ERF_A2:()=>qf,ERF_A3:()=>Kf,ERF_A4:()=>Zf,ERF_A5:()=>Yf,ERF_P:()=>Gf,PARALLELIZE_THRESHOLD:()=>Mf,SELU_SCALE:()=>Hf,SELU_SCALEALPHA:()=>jf,applyActivation:()=>Bh,assertAndGetBroadcastShape:()=>Ho,assertAxesAreInnerMostDims:()=>zu,assertParamsConsistent:()=>Of,assignToTypedArray:()=>sd,axesAreInnerMostDims:()=>Mu,calculateShapes:()=>wi,combineLocations:()=>$u,complexWithEvenIndex:()=>nd,complexWithOddIndex:()=>rd,computeConv2DInfo:()=>fl,computeConv3DInfo:()=>dl,computeDefaultPad:()=>pl,computeDilation2DInfo:()=>ul,computeOptimalWindowSize:()=>$f,computeOutAndReduceShapes:()=>Pu,computeOutShape:()=>Bf,computePool2DInfo:()=>cl,computePool3DInfo:()=>hl,convertConv2DDataFormat:()=>xl,eitherStridesOrDilationsAreOne:()=>wl,expandShapeToKeepDim:()=>Lu,exponent:()=>od,exponents:()=>id,fromStringArrayToUint8:()=>dd,fromUint8ToStringArray:()=>fd,getAxesPermutation:()=>Wu,getBroadcastDims:()=>Vo,getComplexWithIndex:()=>ad,getFusedBiasGradient:()=>Oh,getFusedDyActivation:()=>Rh,getImageCenter:()=>Pf,getInnerMostAxes:()=>Vu,getPermuted:()=>zf,getReductionAxes:()=>jo,getReshaped:()=>Lf,getReshapedPermuted:()=>Wf,getSliceBeginCoords:()=>Uf,getSliceSize:()=>Vf,getUndoAxesPermutation:()=>Uu,log:()=>Qf,mergeRealAndImagArrays:()=>ed,prepareAndValidate:()=>yi,prepareSplitSize:()=>ld,segment_util:()=>m,shouldFuse:()=>Mh,slice_util:()=>h,splitRealAndImagArrays:()=>td,tupleValuesAreOne:()=>vl,upcastType:()=>Ca,validateInput:()=>vi,validateUpdateShape:()=>bi,warn:()=>Jf});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>Qh,nonMaxSuppressionV4Impl:()=>ef,nonMaxSuppressionV5Impl:()=>tf,whereImpl:()=>vh});var b={};n.r(b),n.d(b,{maxNorm:()=>om,minMaxNorm:()=>cm,nonNeg:()=>um,unitNorm:()=>lm});var v={};n.r(v),n.d(v,{constant:()=>yg,glorotNormal:()=>Eg,glorotUniform:()=>kg,heNormal:()=>Cg,heUniform:()=>Sg,identity:()=>xg,leCunNormal:()=>Ng,leCunUniform:()=>Ig,ones:()=>gg,orthogonal:()=>Ag,randomNormal:()=>vg,randomUniform:()=>bg,truncatedNormal:()=>wg,varianceScaling:()=>_g,zeros:()=>mg});var w={};n.r(w),n.d(w,{Layer:()=>Xg,RNN:()=>dv,RNNCell:()=>pv,activation:()=>Rw,add:()=>Uw,alphaDropout:()=>Fx,average:()=>Vw,averagePooling1d:()=>Jw,averagePooling2d:()=>tx,averagePooling3d:()=>ax,avgPool1d:()=>Qw,avgPool2d:()=>nx,avgPool3d:()=>sx,avgPooling1d:()=>ex,avgPooling2d:()=>rx,avgPooling3d:()=>ix,batchNormalization:()=>Kw,bidirectional:()=>Ex,concatenate:()=>jw,conv1d:()=>Cw,conv2d:()=>Sw,conv2dTranspose:()=>Nw,conv3d:()=>Iw,convLstm2d:()=>wx,convLstm2dCell:()=>xx,cropping2D:()=>Dw,dense:()=>Ow,depthwiseConv2d:()=>Fw,dot:()=>qw,dropout:()=>Bw,elu:()=>vw,embedding:()=>Ww,flatten:()=>$w,gaussianDropout:()=>Tx,gaussianNoise:()=>Dx,globalAveragePooling1d:()=>ox,globalAveragePooling2d:()=>lx,globalMaxPool1d:()=>Sx,globalMaxPool2d:()=>Nx,globalMaxPooling1d:()=>ux,globalMaxPooling2d:()=>cx,gru:()=>px,gruCell:()=>mx,input:()=>gb,inputLayer:()=>bw,layerNormalization:()=>Zw,leakyReLU:()=>xw,lstm:()=>gx,lstmCell:()=>yx,masking:()=>Rx,maxPool1d:()=>Ix,maxPool2d:()=>Ax,maxPooling1d:()=>hx,maxPooling2d:()=>fx,maxPooling3d:()=>dx,maximum:()=>Hw,minimum:()=>Gw,multiply:()=>Xw,permute:()=>zw,prelu:()=>_w,reLU:()=>ww,repeatVector:()=>Pw,reshape:()=>Lw,rnn:()=>_x,separableConv2d:()=>Aw,simpleRNN:()=>bx,simpleRNNCell:()=>vx,softmax:()=>kw,spatialDropout1d:()=>Mw,stackedRNNCells:()=>kx,thresholdedReLU:()=>Ew,timeDistributed:()=>Cx,upSampling2d:()=>Tw,zeroPadding2d:()=>Yw});var x={};n.r(x),n.d(x,{MAPE:()=>jx,MSE:()=>Xx,binaryAccuracy:()=>Ox,binaryCrossentropy:()=>Bx,categoricalAccuracy:()=>$x,categoricalCrossentropy:()=>Px,cosineProximity:()=>Wx,mape:()=>Hx,meanAbsoluteError:()=>Ux,meanAbsolutePercentageError:()=>Vx,meanSquaredError:()=>Gx,mse:()=>qx,precision:()=>Lx,recall:()=>zx,sparseCategoricalAccuracy:()=>Mx});var _={};n.r(_),n.d(_,{modelFromJSON:()=>hb});var k={};n.r(k),n.d(k,{l1:()=>Zx,l1l2:()=>Kx,l2:()=>Yx});var E={};n.r(E),n.d(E,{json:()=>g_});var C={};n.r(C),n.d(C,{json:()=>y_});var S={};n.r(S),n.d(S,{json:()=>b_});var N={};n.r(N),n.d(N,{json:()=>v_});var I={};n.r(I),n.d(I,{json:()=>w_});var A={};n.r(A),n.d(A,{json:()=>x_});var D={};n.r(D),n.d(D,{json:()=>__});var T={};n.r(T),n.d(T,{json:()=>k_});var F={};n.r(F),n.d(F,{json:()=>E_});var R={};n.r(R),n.d(R,{json:()=>C_});var O={};n.r(O),n.d(O,{json:()=>S_});var B={};n.r(B),n.d(B,{json:()=>N_});var M={};n.r(M),n.d(M,{json:()=>I_});var $={};n.r($),n.d($,{json:()=>A_});var P={};n.r(P),n.d(P,{json:()=>D_});var L={};n.r(L),n.d(L,{json:()=>T_});var z={};n.r(z),n.d(z,{json:()=>F_});var W={};n.r(W),n.d(W,{CSVDataset:()=>sE,Dataset:()=>Xk,FileDataSource:()=>yE,TextLineDataset:()=>Jk,URLDataSource:()=>bE,array:()=>Kk,csv:()=>vE,func:()=>wE,generator:()=>xE,microphone:()=>kE,version_data:()=>EE,webcam:()=>_E,zip:()=>Zk});var U={};n.r(U),n.d(U,{addImpl:()=>eC,bincountImpl:()=>GC,bincountReduceImpl:()=>XC,ceilImpl:()=>ZC,concatImpl:()=>nS,expImpl:()=>US,expm1Impl:()=>XS,floorImpl:()=>pN,gatherV2Impl:()=>kN,greaterImpl:()=>CN,lessImpl:()=>PN,linSpaceImpl:()=>jN,logImpl:()=>GN,maxImpl:()=>oI,maximumImpl:()=>cI,minimumImpl:()=>_I,multiplyImpl:()=>ZS,negImpl:()=>FI,notEqualImpl:()=>zI,prodImpl:()=>QI,rangeImpl:()=>tA,rsqrtImpl:()=>dA,simpleAbsImpl:()=>uC,sliceImpl:()=>UC,squaredDifferenceImpl:()=>zA,stridedSliceImpl:()=>HA,subImpl:()=>rN,tileImpl:()=>ZA,topKImpl:()=>YA,transposeImpl:()=>gC,uniqueImpl:()=>JA});class V{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class j{refCount(e){return H("refCount")}incRef(e){return H("incRef")}timerAvailable(){return!0}time(e){return H("time")}read(e){return H("read")}readSync(e){return H("readSync")}numDataIds(){return H("numDataIds")}disposeData(e,t){return H("disposeData")}write(e,t,n){return H("write")}move(e,t,n,r,a){return H("move")}memory(){return H("memory")}floatPrecision(){return H("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}dispose(){return H("dispose")}}function H(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function G(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function X(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n,r,a=e.length,s=0;for(;a>0;)s=Math.random()*a|0,a--,n=e[a],r=t[a],e[a]=e[s],t[a]=t[s],e[s]=n,t[s]=r}function q(e,t,n){return Math.max(e,Math.min(t,n))}function K(e){return e%2==0?e:e+1}function Z(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}function te(e){Q(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function ne(e,t=[],n=!1){if(null==t&&(t=[]),Array.isArray(e)||we(e)&&!n)for(let r=0;r0),n){return new Promise(((r,a)=>{let s=0;const i=()=>{if(e())return void r();s++;const o=t(s);null!=n&&s>=n?a():setTimeout(i,o)};i()}))}function fe(e,t){let n=1,r=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==r)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${t}`);r=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===r){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===n)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);const a=e.slice();return a[r]=t/n,a}function de(e,t){const n=t.length;return Q((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Q(e.every((e=>ie(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function pe(e,t){const n=[],r=[],a=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||a?null:de(t,e).sort();let i=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),r.push(t)),s[i]<=t&&i++}1!==e[t]&&(n.push(e[t]),r.push(t))}return{newShape:n,keptDims:r}}function me(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);n=new Uint8Array(t)}return n}function ge(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);n=new Array(t)}return n}function ye(e,t){for(let n=0;nt+=e.length)),t}function ke(e){return"string"==typeof e||e instanceof String}function Ee(e){return"boolean"==typeof e}function Ce(e){return"number"==typeof e}function Se(e){return Array.isArray(e)?Se(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Ce(e)?"float32":ke(e)?"string":Ee(e)?"bool":"float32"}function Ne(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Ie(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function De(e,t,n){const r=new Array;if(1===t.length){const a=t[0];for(let t=0;te*t));for(let t=0;te*t));if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return De(0,e,t)}function Fe(e,t){const n=Re(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return Te(e,new Float32Array(n));if("int32"===t)return Te(e,new Int32Array(n));if("bool"===t)return Te(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Be(e){e.forEach((t=>{Q(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function Me(e,t,n){if(0===t)return 0;if(1===t)return e[0];let r=e[e.length-1];for(let t=0;t(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}(this.global.location.search);"tfjsflags"in e&&e.tfjsflags.split(",").forEach((e=>{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,n)}))}}function ze(){return Ue}let We,Ue=null;function Ve(){if(null==We){let e;if("undefined"!=typeof window)e=window;else if(void 0!==n.g)e=n.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}We=e}return We}function je(e,t){const n=function(){const e=Ve();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const He="Abs",Ge="Acos",Xe="Acosh",qe="Add",Ke="AddN",Ze="All",Ye="Any",Je="ArgMax",Qe="ArgMin",et="Asin",tt="Asinh",nt="Atan",rt="Atanh",at="Atan2",st="AvgPool",it="AvgPoolGrad",ot="AvgPool3D",lt="AvgPool3DGrad",ut="BatchMatMul",ct="BatchToSpaceND",ht="Bincount",ft="BroadcastTo",dt="Cast",pt="Ceil",mt="ClipByValue",gt="Complex",yt="ComplexAbs",bt="Concat",vt="Conv2D",wt="Conv2DBackpropFilter",xt="Conv2DBackpropInput",_t="Conv3D",kt="Conv3DBackpropFilterV2",Et="Conv3DBackpropInputV2",Ct="Cos",St="Cosh",Nt="Cumsum",It="CropAndResize",At="DenseBincount",Dt="DepthToSpace",Tt="DepthwiseConv2dNative",Ft="DepthwiseConv2dNativeBackpropFilter",Rt="DepthwiseConv2dNativeBackpropInput",Ot="Diag",Bt="Dilation2D",Mt="Dilation2DBackpropInput",$t="Dilation2DBackpropFilter",Pt="RealDiv",Lt="Elu",zt="EluGrad",Wt="Erf",Ut="Equal",Vt="Exp",jt="ExpandDims",Ht="Expm1",Gt="FFT",Xt="Fill",qt="FlipLeftRight",Kt="Floor",Zt="FloorDiv",Yt="FusedBatchNorm",Jt="GatherV2",Qt="GatherNd",en="Greater",tn="GreaterEqual",nn="Identity",rn="IFFT",an="Imag",sn="IsFinite",on="IsInf",ln="IsNan",un="LeakyRelu",cn="Less",hn="LessEqual",fn="LinSpace",dn="Log",pn="Log1p",mn="LogicalAnd",gn="LogicalNot",yn="LogicalOr",bn="LogSoftmax",vn="LRN",wn="LRNGrad",xn="Max",_n="Maximum",kn="MaxPool",En="MaxPoolGrad",Cn="MaxPool3D",Sn="MaxPool3DGrad",Nn="MaxPoolWithArgmax",In="Mean",An="Min",Dn="Minimum",Tn="MirrorPad",Fn="Mod",Rn="Multinomial",On="Multiply",Bn="Neg",Mn="NotEqual",$n="NonMaxSuppressionV3",Pn="NonMaxSuppressionV4",Ln="NonMaxSuppressionV5",zn="OnesLike",Wn="OneHot",Un="Pack",Vn="PadV2",jn="Pool",Hn="Pow",Gn="Prelu",Xn="Prod",qn="Range",Kn="Real",Zn="Reciprocal",Yn="Relu",Jn="Reshape",Qn="ResizeNearestNeighbor",er="ResizeNearestNeighborGrad",tr="ResizeBilinear",nr="ResizeBilinearGrad",rr="Relu6",ar="Reverse",sr="Round",ir="Rsqrt",or="ScatterNd",lr="Select",ur="Selu",cr="Slice",hr="Sin",fr="Sinh",dr="Sign",pr="Sigmoid",mr="Softplus",gr="Sqrt",yr="Sum",br="SpaceToBatchND",vr="SplitV",wr="Softmax",xr="SquaredDifference",_r="Square",kr="Sub",Er="SparseToDense",Cr="StridedSlice",Sr="Tan",Nr="Tanh",Ir="Tile",Ar="TopK",Dr="Transpose",Tr="Unique",Fr="Unpack",Rr="UnsortedSegmentSum",Or="ZerosLike",Br="Step",Mr="FromPixels",$r="RotateWithOffset",Pr="_FusedMatMul",Lr="FusedConv2D",zr="FusedDepthwiseConv2D",Wr=je("kernelRegistry",(()=>new Map)),Ur=je("gradRegistry",(()=>new Map));function Vr(e,t){const n=Yr(e,t);return Wr.get(n)}function jr(e){return Ur.get(e)}function Hr(e){const t=Wr.entries(),n=[];for(;;){const{done:r,value:a}=t.next();if(r)break;const[s,i]=a,[o]=s.split("_");o===e&&n.push(i)}return n}function Gr(e){const{kernelName:t,backendName:n}=e,r=Yr(t,n);Wr.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Wr.set(r,e)}function Xr(e){const{kernelName:t}=e;Ur.has(t)&&ze().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Ur.set(t,e)}function qr(e,t){const n=Yr(e,t);if(!Wr.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Wr.delete(n)}function Kr(e){if(!Ur.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Ur.delete(e)}function Zr(e,t){Hr(e).forEach((e=>{Gr(Object.assign({},e,{backendName:t}))}))}function Yr(e,t){return`${t}_${e}`}function Jr(e,t){return"string"===t?na(e):Qr([e],t)}function Qr(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ne(e)),ze().getBool("DEBUG")&&ye(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){const t=new Uint8Array(e.length);for(let n=0;n{r=n()};let s;const i=ea();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(a);else{a();for(const e of r)e.dataSync();s=Promise.resolve({kernelMs:ea()-i})}if(ze().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{sa(t,n.dtype,e)}))}return{kernelName:e,outputs:r,inputs:t,timeMs:s.then((e=>e.kernelMs)),extraInfo:s.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:a,extraInfo:s}=e;n.forEach((e=>{Promise.all([e.data(),r,s]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],a,n[2])}))}))}}function sa(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?r:""} `}}console.log(`%c${o}\t%c${i}\t%c${l}D ${c}\t%c${u}\t%c${h}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function oa(e,t,n,r){const a=Ae(t),s=function(e,t,n,r){const a=re(t),s=r[r.length-1],i=new Array(s).fill(0),o=t.length,l="complex64"===n?ha(e):e;if(o>1)for(let e=0;e" "+e)).join("\n")),l.join("\n")}function la(e,t,n){let r;return r=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:ke(e)?`'${e}'`:"bool"===n?ua(e):parseFloat(e.toFixed(7)).toString(),ce(r,t)}function ua(e){return 0===e?"false":"true"}function ca(e,t,n,r,a,s=!0){const i="complex64"===n?2:1,o=t[0],l=t.length;if(0===l)return"complex64"===n?[la(ha(e)[0],0,n)]:"bool"===n?[ua(e[0])]:[e[0].toString()];if(1===l){if(o>20){const t=3*i;let r=Array.from(e.slice(0,t)),s=Array.from(e.slice((o-3)*i,o*i));return"complex64"===n&&(r=ha(r),s=ha(s)),["["+r.map(((e,t)=>la(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>la(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?ha(e):Array.from(e)).map(((e,t)=>la(e,a[t],n))).join(", ")+"]"]}const u=t.slice(1),c=r.slice(1),h=r[0]*i,f=[];if(o>20){for(let t=0;t<3;t++){const r=t*h,s=r+h;f.push(...ca(e.slice(r,s),u,n,c,a,!1))}f.push("...");for(let t=o-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||ge(t,this.size),this.strides=Ae(e)}set(e,...t){0===t.length&&(t=[0]),Q(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;tra(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=da().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>ra(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await da().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(da().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return pa.print(this,e)}clone(){return this.throwIfDisposed(),pa.clone(this)}toString(e=!1){return oa(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),pa.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),da().makeVariable(this,e,t,n)}}function ya(){return je("Tensor",(()=>ga))}Object.defineProperty(ga,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),ya();class ba extends ga{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!se(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);da().disposeTensor(this),this.dataId=e.dataId,da().incRef(this,null)}dispose(){da().disposeVariable(this),this.isDisposedInternal=!0}}var va,wa,xa,_a,ka;Object.defineProperty(ba,Symbol.hasInstance,{value:e=>e instanceof ga&&null!=e.assign&&e.assign instanceof Function}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(va||(va={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(wa||(wa={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(xa||(xa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(_a||(_a={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(ka||(ka={}));const Ea={float32:_a,int32:wa,bool:xa,complex64:ka};function Ca(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Ea[e][t]}function Sa(e){return Ca(e,"int32")}function Na(e,t){if(e.dtype===t.dtype)return[e,t];const n=Ca(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Ia(e,t){Q(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Aa(e,t){return t.some((t=>t.id===e.id))}function Da(e){const t=[];return Ta(e,t,new Set),t}function Ta(e,t,n){if(null==e)return;if(e instanceof ga)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const a=e;for(const e in a){const r=a[e];n.has(r)||(n.add(r),Ta(r,t,n))}}function Fa(e){return null!=e.kernelName}class Ra{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Oa{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ra}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){Hr(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof j||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,r=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(r)),(()=>this.endScope(n)),(()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Oa.nextTensorId++}nextVariableId(){return Oa.nextVariableId++}clone(e){const t=Ma.runKernel(nn,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e};return Ma.runKernel(dt,t,{dtype:"float32"})}})),[],{}),t}runKernel(e,t,n){if(null==Vr(e,this.backendName))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const r=this.backend.numDataIds();let a=0;n.forEach((e=>{a+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-a-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[];const r=this.isTapeOn(),a=this.state.numBytes,s=this.state.numTensors;let i,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const l=Fa(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(Fa(e)){const{kernelName:t,inputs:a,attrs:s}=e;null==this.backendName&&this.backend;const l=Vr(t,this.backendName);Q(null!=l,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),i=()=>{const e=this.backend.numDataIds();o=l.kernelFunc({inputs:a,attrs:s,backend:this.backend});const i=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,i);const u=i.map((e=>{if(null!=e.rank)return e;const{dataId:t,shape:n,dtype:r}=e;return this.makeTensorFromDataId(t,n,r)}));if(r){const e=this.getTensorsForGradient(t,a,u);n=this.saveTensorsForBackwardMode(e)}return u}}else{const{forwardFunc:t}=e,a=e=>{r&&(n=e.map((e=>this.keep(this.clone(e)))))};i=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,a)));const n=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,e,n),n}}const{inputs:u,attrs:c}=e,h=Fa(e)?null:e.backwardsFunc;let f;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(f=this.profiler.profileKernel(l,u,(()=>i())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs):t=i()})),r&&this.addTapeNode(l,u,t,h,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-a,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map((e=>null!=u[e]?u[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map((e=>this.keep(this.clone(e))))}getTensorsForGradient(e,t,n){const r=jr(e);if(null!=r){const e=r.inputsToSave||[],a=r.outputsToSave||[];let s;r.saveAllInputs?(Q(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const i=n.filter(((e,t)=>a[t]));return s.concat(i)}return[]}makeTensor(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;let a=e;"string"===n&&ke(e[0])&&(a=e.map((e=>na(e))));const s=r.write(a,t,n),i=new ga(t,n,s,this.nextTensorId());if(this.trackTensor(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=_e(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new ga(t,n=n||"float32",e,this.nextTensorId());return this.trackTensor(a,r),a}makeVariable(e,t=!0,n,r){n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.cast(r));const a=new ba(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[a.name])throw new Error(`Variable with name ${a.name} was already registered`);return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*xe(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof ba||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*xe(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,r,a,s){const i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:a},o=jr(e);null!=o&&(r=o.gradFunc),null!=r&&(i.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],r=Re(e.size,e.dtype);return this.makeTensor(r,e.shape,e.dtype)}return e})),r(e.length>1?e:e[0],a,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Da(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==r.id||this.track(e)}))}gradients(e,t,n,r=!1){if(Q(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const a=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Q(a instanceof ga,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,n){const r={},a={};for(let e=0;er[e.id]=!0)),o=!0,a[s.id]=!0;break}if(o)break}}const s={};s[n.id]=!0;const i={};for(let t=e.length-1;t>=0;t--){const n=e[t],r=n.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[a.id]=null==n?function(e){const t=Fe(re(e),"float32");return Ma.makeTensor(t,e,"float32")}(a.shape):n,function(e,t,n,r){for(let a=t.length-1;a>=0;a--){const s=t[a],i=[];if(s.outputs.forEach((t=>{const n=e[t.id];null!=n?i.push(n):i.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const o=s.gradient(i);for(const t in s.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const a=n((()=>o[t]()));if("float32"!==a.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${a.dtype}'`);const i=s.inputs[t];if(!se(a.shape,i.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${a.shape}', which does not match the shape of the input '${i.shape}'`);if(null==e[i.id])e[i.id]=a;else{const t=e[i.id];e[i.id]=r(t,a),t.dispose()}}}}(e,s,(e=>this.tidy(e)),$a);const r=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:a,grads:r}}))}customGrad(e){return Q(Ne(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Q(t.every((e=>e instanceof ga)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const r={};return t.forEach(((e,t)=>{r[t]=e})),this.runKernelFunc({forwardFunc:(r,a)=>(n=e(...t,a),Q(n.value instanceof ga,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Q(Ne(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value),backwardsFunc:(e,r)=>{const a=n.gradFunc(e,r),s=Array.isArray(a)?a:[a];Q(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Q(s.every((e=>e instanceof ga)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const i={};return s.forEach(((e,t)=>{i[t]=()=>e})),i},inputs:r})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){const t=ea(),n=await this.backend.time(e);return n.wallMs=ea()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ra;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function Ba(){const e=Ve();if(null==e._tfengine){const t=new Le(e);e._tfengine=new Oa(t)}var t;return t=e._tfengine.ENV,Ue=t,da=()=>e._tfengine,e._tfengine}Oa.nextTensorId=0,Oa.nextVariableId=0;const Ma=Ba();function $a(e,t){const n={a:e,b:t};return Ma.runKernel(qe,n)}function Pa(){if("undefined"!=typeof navigator&&null!=navigator){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function La(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const za=ze();function Wa(e,t){let n=e;if(we(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||we(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&ze().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Ua(e,r,[]),r}function Ua(e,t,n){if(n=n||[],!Array.isArray(e)&&!we(e))return void Q(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Q(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Q(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const r=t.slice(1);for(let t=0;t=0&&(a=r),Va(r,a,t,n),null==e||!we(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const r=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${r}'`)}const s=Wa(e,a);we(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?Qr(e,a):ne(e,[],!0);return Ma.makeTensor(i,s,a)}function Ha(e,t,n,r="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,a)=>ja(e,`${t}[${a}]`,n,r)))}za.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),za.registerFlag("IS_BROWSER",(()=>La())),za.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),za.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),za.registerFlag("PROD",(()=>!1)),za.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>za.getBool("DEBUG"))),za.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),za.registerFlag("IS_TEST",(()=>!1)),za.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0));const Ga="__op";function Xa(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0];const r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=Ga;const a=(...e)=>{Ma.startScope(n);try{const t=r(...e);return Pe(t)&&console.error("Cannot return a Promise inside of tidy."),Ma.endScope(t),t}catch(e){throw Ma.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const qa=Xa({complex_:function(e,t){const n=ja(e,"real","complex"),r=ja(t,"imag","complex");ee(n.shape,r.shape,`real and imag shapes, ${n.shape} and ${r.shape}, must match in call to tf.complex().`);const a={real:n,imag:r};return Ma.runKernel(gt,a)}});function Ka(e,t,n,r){if(null==r&&(r=Se(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!we(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){Be(t);const e=re(t),r=re(n);Q(e===r,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${r}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return we(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?Qr(e,r):ne(e,[],!0),Ma.makeTensor(e,t,r)}function Za(e,t,n){return Ka(e,t,Wa(e,n),n)}const Ya={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function Ja(e,t){const n=[],r=[],a=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+4*t.length,r=new Uint8Array(n);let a=0;for(let e=0;e{if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const r=new Uint8Array(t);let a=0;return n.forEach((e=>{r.set(new Uint8Array(e.buffer),a),a+=e.byteLength})),r.buffer}const ts="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function ns(e){return ts?Buffer.byteLength(e):new Blob([e]).size}function rs(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const n=new Uint8Array(t);let r=0;return e.forEach((e=>{n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function as(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function ss(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:ns(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:ns(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function is(){const e=function(){const e=e=>{let t=e<<13,n=0;for(;0==(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return r=>{const a=new ArrayBuffer(4*r.length),s=new Uint32Array(a);for(let a=0;a>10]+(1023&i)]+t[i>>10];s[a]=o}return new Float32Array(a)}}class os{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==os.instance&&(os.instance=new os),os.instance}static registerSaveRouter(e){os.getInstance().saveRouters.push(e)}static registerLoadRouter(e){os.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return os.getHandlers(e,"save")}static getLoadHandlers(e,t){return os.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?os.getInstance().loadRouters:os.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const ls=e=>os.registerSaveRouter(e),us=e=>os.registerLoadRouter(e),cs=e=>os.getSaveHandlers(e),hs=(e,t)=>os.getLoadHandlers(e,t),fs="tensorflowjs",ds="models_store",ps="model_info_store";function ms(){if(!ze().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function gs(e){const t=e.result;t.createObjectStore(ds,{keyPath:"modelPath"}),t.createObjectStore(ps,{keyPath:"modelPath"})}class ys{constructor(e){if(this.indexedDB=ms(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const r=this.indexedDB.open(fs,1);r.onupgradeneeded=()=>gs(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(ds,"readonly"),r=t.objectStore(ds).get(this.modelPath);r.onsuccess=()=>{if(null==r.result)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(r.result.modelArtifacts)},r.onerror=e=>(a.close(),n(r.error)),t.oncomplete=()=>a.close()}else{const r=ss(t),s=a.transaction(ps,"readwrite");let i=s.objectStore(ps);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(ds,"readwrite");const o=l.objectStore(ds).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(ps);const t=i.delete(this.modelPath);t.onsuccess=()=>(a.close(),n(o.error)),t.onerror=e=>(a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}}},r.onerror=e=>n(r.error)}))}}ys.URL_SCHEME="indexeddb://";const bs=e=>{return ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ys.URL_SCHEME)?(t=e.slice(ys.URL_SCHEME.length),new ys(t)):null;var t};os.registerSaveRouter(bs),os.registerLoadRouter(bs);class vs{constructor(){this.indexedDB=ms()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(fs,1);n.onupgradeneeded=()=>gs(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(ps,"readonly"),s=a.objectStore(ps).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(r.close(),t(s.error)),a.oncomplete=()=>r.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(ys.URL_SCHEME)?t.slice(ys.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(fs,1);r.onupgradeneeded=()=>gs(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(ps,"readwrite"),i=s.objectStore(ps),o=i.get(e);let l;o.onsuccess=()=>{if(null==o.result)return a.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const r=i.delete(e),s=()=>{l=a.transaction(ds,"readwrite");const r=l.objectStore(ds).delete(e);r.onsuccess=()=>t(o.result.modelArtifactsInfo),r.onerror=e=>n(o.error)};r.onsuccess=s,r.onerror=e=>(s(),a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}},r.onerror=e=>n(r.error)}))}}const ws="/",xs="tensorflowjs_models",_s="info",ks="model_topology",Es="weight_specs",Cs="weight_data",Ss="model_metadata";function Ns(e){return{info:[xs,e,_s].join(ws),topology:[xs,e,ks].join(ws),weightSpecs:[xs,e,Es].join(ws),weightData:[xs,e,Cs].join(ws),modelMetadata:[xs,e,Ss].join(ws)}}function Is(e){const t=e.split(ws);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(ws)}class As{constructor(e){if(!ze().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=Ns(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=ss(e);try{this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(ts)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(As.URL_SCHEME)?(t=e.slice(As.URL_SCHEME.length),new As(t)):null;var t};os.registerSaveRouter(Ds),os.registerLoadRouter(Ds);class Ts{constructor(){Q(ze().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Q("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=xs+ws,n=ws+_s;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith(Fs)&&(e=e.slice(0,e.indexOf(Fs))),Q(e.length>0,(()=>"scheme must not be an empty string."));const n=Rs.getInstance();Q(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Os(e){if(-1===e.indexOf(Fs))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Rs.getSchemes().join(",")}`);return{scheme:e.split(Fs)[0],path:e.split(Fs)[1]}}async function Bs(e,t,n=!1){Q(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=os.getLoadHandlers(e);Q(r.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Q(r.length<2,(()=>`Copying failed because more than one (${r.length}) load handlers for source URL ${e}.`));const a=r[0],s=os.getSaveHandlers(t);Q(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Q(s.length<2,(()=>`Copying failed because more than one (${r.length}) save handlers for destination URL ${t}.`));const i=s[0],o=Os(e).scheme,l=Os(e).path,u=o===Os(e).scheme,c=await a.load();n&&u&&await Rs.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await Rs.getManager(o).removeModel(l),h.modelArtifactsInfo}async function Ms(){const e=Rs.getSchemes(),t={};for(const n of e){const e=await Rs.getManager(n).listModels();for(const r in e)t[n+Fs+r]=e[r]}return t}async function $s(e){const t=Os(e);return Rs.getManager(t.scheme).removeModel(t.path)}async function Ps(e,t){return Bs(e,t,!1)}async function Ls(e,t){return Bs(e,t,!0)}class zs{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}}if(ze().get("IS_BROWSER")){ze().setPlatform("browser",new zs);try{Rs.registerManager(As.URL_SCHEME,new Ts)}catch(e){}try{Rs.registerManager(ys.URL_SCHEME,new vs)}catch(e){}}let Ws;function Us(e,t="float32",n){return t=t||"float32",Be(e),new fa(e,t,n)}ze().get("IS_NODE")&&ze().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=ze().global.fetch?ze().global.fetch(e,t):(null==Ws&&(Ws=n(8352)),Ws(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}});const Vs=Xa({cast_:function(e,t){const n=ja(e,"x","cast");if(!be(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");const r={x:n},a={dtype:t};return Ma.runKernel(dt,r,a)}}),js=Xa({clone_:function(e){const t={x:ja(e,"x","clone","string_or_numeric")};return Ma.runKernel(nn,t)}});function Hs(e,t=!1){console.log(e.toString(t))}function Gs(e){return new Promise((e=>setTimeout(e))).then(e)}Ba(),pa={buffer:Us,cast:Vs,clone:js,print:Hs};class Xs{constructor(e){if(!ze().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Xs.URL_SCHEME)&&(e=e.slice(Xs.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelTopologyFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer);const a=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),s=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=a,await Gs((()=>s.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Gs((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:ss(e)}}}}Xs.URL_SCHEME="downloads://";class qs{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise(((n,r)=>{const a=new FileReader;a.onload=a=>{const s=JSON.parse(a.target.result),i=s.modelTopology;if(null==i)return void r(new Error(`modelTopology field is missing from file ${e.name}`));0===t.length&&n({modelTopology:i});const o=s.weightsManifest;if(null==o)return void r(new Error(`weightManifest field is missing from file ${e.name}`));let l;try{l=this.checkManifestAndWeightFiles(o,t)}catch(e){return void r(e)}const u=[],c=[],h=[];o.forEach((e=>{e.paths.forEach((e=>{c.push(e),h.push(null)})),u.push(...e.weights)})),o.forEach((e=>{e.paths.forEach((e=>{const t=new FileReader;t.onload=t=>{const r=t.target.result,a=c.indexOf(e);if(h[a]=r,-1===h.indexOf(null)){const e={modelTopology:i,weightSpecs:u,weightData:rs(h),format:s.format,generatedBy:s.generatedBy,convertedBy:s.convertedBy};null!=s.signature&&(e.signature=s.signature),null!=s.userDefinedMetadata&&(e.userDefinedMetadata=s.userDefinedMetadata),null!=s.modelInitializer&&(e.modelInitializer=s.modelInitializer),n(e)}},t.onerror=t=>r(`Failed to weights data from file of path '${e}'.`),t.readAsArrayBuffer(l[e])}))}))},a.onerror=t=>r(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(e)}))}checkManifestAndWeightFiles(e,t){const n=[],r=t.map((e=>as(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=as(e);if(-1!==n.indexOf(s))throw new Error(`Duplicate file basename found in weights manifest: '${s}'`);if(n.push(s),-1===r.indexOf(s))throw new Error(`Weight file with basename '${s}' is not provided.`);a[e]=t[r.indexOf(s)]}));if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return a}}function Ks(e){return new qs(e)}function Zs(e,t,n,r){!function(e){Q(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Q(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Q(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Q(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,r=null==r?1:r);let a=0;return Promise.all(e.map((s=>(s.then((s=>{const i=n+ ++a/e.length*(r-n);return t(i),s})),s))))}async function Ys(e,t){null==t&&(t={});const n=null==t.fetchFunc?ze().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await Zs(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await Zs(a,t.onProgress,.5,1)}async function Js(e,t="",n,r){return Qs((e=>Ys(e,{requestInit:r})))(e,t,n)}function Qs(e){return async(t,n="",r)=>{const a=t.map((()=>!1)),s={},i=null!=r?r.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=Ya[l]*re(e.shape),c=()=>{a[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=r?r.forEach(((t,n)=>{t===e.name&&(c(),i[n]=!0)})):c(),o.push(e.name),n+=u}))})),!i.every((e=>e))){const e=r.filter(((e,t)=>!i[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=a.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let f=0;return l.forEach((e=>{const n=t[e].paths.length;let r=0;for(let e=0;e{const t=Qa(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}os.registerSaveRouter((e=>ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Xs.URL_SCHEME)?function(e="model"){return new Xs(e)}(e.slice(Xs.URL_SCHEME.length)):null));class ei{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Q("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=ze().platform.fetch,Q(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Q(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const a=await this.fetch(this.path,t);if(a.ok)return{modelArtifactsInfo:ss(e),responses:[a]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${a.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,r=t.weightsManifest,a=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(null==n&&null==r)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;if(null!=r){const e=await this.loadWeights(r);[u,c]=e}const h={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:a,convertedBy:s,format:i};null!=o&&(h.signature=o),null!=l&&(h.userDefinedMetadata=l);const f=t.modelInitializer;return f&&(h.modelInitializer=f),h}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=function(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),a=this.weightPathPrefix||n,s=[];for(const t of e)s.push(...t.weights);const i=[],o=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?o.push(this.weightUrlConverter(e)):i.push(a+e+r);return this.weightUrlConverter&&i.push(...await Promise.all(o)),[s,rs(await Ys(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function ti(e){return null!=e.match(ei.URL_SCHEME_REGEX)}ei.URL_SCHEME_REGEX=/^https?:\/\//;const ni=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>ti(e))):ti(e),n)return ri(e,t)}return null};function ri(e,t){return new ei(e,t)}function ai(e,t){return ri(e,t)}os.registerSaveRouter(ni),os.registerLoadRouter(ni);class si{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class ii{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function oi(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new si(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new si({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new si({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function li(e){return new ii(e)}const ui=Xa({matMul_:function(e,t,n=!1,r=!1){let a=ja(e,"a","matMul"),s=ja(t,"b","matMul");[a,s]=Na(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return Ma.runKernel(ut,i,o)}}),ci=Xa({oneHot_:function(e,t,n=1,r=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const a={indices:ja(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return Ma.runKernel(Wn,a,s)}}),hi=Xa({transpose_:function(e,t){const n=ja(e,"x","transpose");if(null==t&&(t=n.shape.map(((e,t)=>t)).reverse()),Q(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`)),t.forEach((e=>{Q(e>=0&&e"All entries in 'perm' must be between 0 and "+(n.rank-1)+` but got ${t}`))})),n.rank<=1)return n.clone();const r={x:n},a={perm:t};return Ma.runKernel(Dr,r,a)}}),fi=Xa({confusionMatrix_:function(e,t,n){const r=ja(e,"labels","confusionMatrix"),a=ja(t,"predictions","confusionMatrix");Q(null==n||n>0&&Number.isInteger(n),(()=>`If provided, numClasses must be a positive integer, but got ${n}`)),Q(1===r.rank,(()=>`Expected the rank of labels to be 1, but got ${r.rank}`)),Q(1===a.rank,(()=>`Expected the rank of predictions to be 1, but got ${a.rank}`)),Q(r.shape[0]===a.shape[0],(()=>`Mismatch in the number of examples: ${r.shape[0]} vs. ${a.shape[0]}. Labels and predictions should have the same number of elements.`)),Q(n>0&&Number.isInteger(n),(()=>`numClasses is required to be a positive integer, but got ${n}`));const s=ci(Vs(r,"int32"),n),i=ci(Vs(a,"int32"),n),o=hi(s),l=ui(o,i);return Vs(l,"int32")}});function di(e,t,n){if(te(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Wa(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Ka(e,t,r,n)}let pi;async function mi(e,t){let n=ja(e,"img","toPixels");if(!(e instanceof ga)){const e=n;n=Vs(e,"int32"),e.dispose()}if(2!==n.rank&&3!==n.rank)throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${n.rank}.`);const[r,a]=n.shape.slice(0,2),s=2===n.rank?1:n.shape[2];if(s>4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==n.dtype&&"int32"!==n.dtype)throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const i=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(a*r*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${a}.`)}else if("int32"===n.dtype&&(a<0||a>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${a}.`);1===s?(t[0]=a*o,t[1]=a*o,t[2]=a*o):t[r]=a*o}const r=4*e;l[r+0]=Math.round(t[0]),l[r+1]=Math.round(t[1]),l[r+2]=Math.round(t[2]),l[r+3]=Math.round(t[3])}if(null!=t){t.width=a,t.height=r;const e=t.getContext("2d"),n=new ImageData(l,a,r);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const gi=Xa({fromPixels_:function(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,r=!1,a=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)a=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)i=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);o=!0}if(a){const t=2;if(a&&e.readyState element.")}if(null!=Vr(Mr,Ma.backendName)){const n={pixels:e},r={numChannels:t};return Ma.runKernel(Mr,n,r)}const[l,u]=a?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(i?c=e.getContext("2d").getImageData(0,0,l,u).data:r||n?c=e.data:(s||a||o)&&(null==pi&&(pi=document.createElement("canvas").getContext("2d")),pi.canvas.width=l,pi.canvas.height=u,pi.drawImage(e,0,0,l,u),c=pi.getImageData(0,0,l,u).data),4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;nn)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[r-1]} vs. ${n}`);if(0===re(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const a=t.shape,s=a[a.length-1];let i=1;for(let e=0;ee/u)),1].slice(0,s);return[l,i,u,c]}function bi(e,t,n){const r=t.rank>1?t.shape[t.rank-1]:1,a=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${r}, and batchDim: ${a}.`;if(n.rank1?t.shape[r-1]:1,s=n.length;let i=1;for(let e=a;e`Error in slice${r}D: Length of begin ${t} must match the rank of the array (${r}).`)),Q(r===n.length,(()=>`Error in slice${r}D: Length of size ${n} must match the rank of the array (${r}).`));for(let a=0;a`Error in slice${r}D: begin[${a}] + size[${a}] (${t[a]+n[a]}) would overflow input.shape[${a}] (${e.shape[a]})`))}function _i(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function ki(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Ii(i,l,u,r,e),h=Ai(o,l,u,a,e),f=Ei(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=Ci(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=Ci(t,n,a);let o=r[i];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=q(0,i,l-1),i}function Fi(e,t,n,r,a,s){let i=t[a];const o=n[a]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=o>0?q(0,i,l):q(-1,i,l-1),i}function Ri(e,t,n){let r=n.length;for(let e=0;e1){r=e;break}for(let a=r+1;a0||n[a]!==e[a])return!1;return!0}function Oi(e,t){let n=e.length>0?e[e.length-1]:1;for(let r=0;r{Q(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==n?new Array(a).fill(-1):"number"==typeof n?[n,...new Array(a-1).fill(-1)]:n.lengtht>=0?t:(Q(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-r[n]))),[r,s]}function Mi(e,t,n,r,a,s,i,o,l){let u=t.slice(),c=n.slice(),h=r;null==r&&(h=new Array(u.length));const f=_i(i);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(0!==i&&0!==o)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(0!==i&&0!==l)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const d=e.length-u.length,p=_i(o),m=e.slice();p.forEach((e=>{u[e]=0,c[e]=1,m.splice(e,0,1)}));const{begin:g,end:y,strides:b}=Ni(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=_i(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=ki(u,c,h),x=w.filter(((e,t)=>-1===v.indexOf(t)));return{nonStrided:h.every((e=>1===e)),$begin:u,$end:c,$strides:h,size:w,newShape:m,outShape:x}}class $i{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Pi{constructor(){this.classNameMap={}}static getMap(){return null==Pi.instance&&(Pi.instance=new Pi),Pi.instance}static register(e){Pi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Li(e){Q(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Q("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Q(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),Pi.register(e)}const zi=.1;function Wi(e,t,n){return null==n&&(n=Ui()),Vi(e,t,((e,t)=>Xi(e,t,n)))}function Ui(){return 32===Ma.backend.floatPrecision()?.001:zi}function Vi(e,t,n){let r=!0;if((we(e)||we(t))&&(r=!1),we(e)&&we(t)&&(r=!0),r){const n=e.constructor.name,r=t.constructor.name;if(n!==r)throw new Error(`Arrays are of different type. Actual: ${n}. Expected: ${r}`)}if(Array.isArray(e)&&Array.isArray(t)){const n=Wa(e),r=Wa(t);if(!se(n,r))throw new Error(`Arrays have different shapes. Actual: [${n}]. Expected: [${r}]`)}const a=we(e)?e:ne(e),s=we(t)?t:ne(t);if(a.length!==s.length)throw new Error(`Arrays have different lengths actual: ${a.length} vs expected: ${s.length}.\nActual: ${a}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t()))}function Hi(e,t){const n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return ke(e)||ke(e[0])||ke(t)||ke(t[0])?Vi(e,n,((e,t)=>e==t)):Vi(e,t,((e,t)=>Xi(e,t,0)))}function Gi(e,t,n){if(null==n&&(n=Ui()),!Xi(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Xi(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function qi(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function Ki(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function Zi(e){for(let t=0;te.dispose()))}function lo(e){return Ma.keep(e)}function uo(e){return Ma.time(e)}function co(e){return Ma.setBackend(e)}function ho(){return Ma.ready()}function fo(){return Ma.backendName}function po(e){Ma.removeBackend(e)}function mo(e){return Ma.findBackend(e)}function go(e){return Ma.findBackendFactory(e)}function yo(e,t,n=1){return Ma.registerBackend(e,t,n)}function bo(){return Ma.backend}function vo(e,t){ze().setPlatform(e,t)}ma=to;const wo=Xa({add_:function(e,t){let n=ja(e,"a","add"),r=ja(t,"b","add");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(qe,a)}}),xo=Xa({floorDiv_:function(e,t){let n=ja(e,"a","floorDiv"),r=ja(t,"b","floorDiv");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(Zt,a)}}),_o=Xa({div_:function(e,t){let n=ja(e,"a","div"),r=ja(t,"b","div");if([n,r]=Na(n,r),"int32"===n.dtype&&"int32"===r.dtype)return xo(n,r);const a={a:n,b:r};return Ma.runKernel(Pt,a,{})}}),ko=Xa({mul_:function(e,t){let n=ja(e,"a","mul"),r=ja(t,"b","mul");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(On,a)}}),Eo=Xa({sqrt_:function(e){const t={x:ja(e,"x","sqrt")};return Ma.runKernel(gr,t)}}),Co=Xa({square_:function(e){const t=ja(e,"x","square");return Ma.runKernel("Square",{x:t},{})}}),So=Xa({zerosLike_:function(e){const t={x:ja(e,"x","zerosLike")};return Ma.runKernel(Or,t)}});function No(e){return Q(Ne(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=ja(t,"x","tf.grad","string_or_numeric"),a=null!=n?ja(n,"dy","tf.grad"):null;return Ma.tidy((()=>{const{value:t,grads:n}=Ma.gradients((()=>e(r)),[r],a);return null!=a&&ee(t.shape,a.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Ro(n),n[0]}))}}function Io(e){return Q(Ne(e),(()=>"The f passed in grads(f) must be a function")),(t,n)=>{Q(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=Ha(t,"args","tf.grads","string_or_numeric"),a=null!=n?ja(n,"dy","tf.grads"):null;return Ma.tidy((()=>{const{value:t,grads:n}=Ma.gradients((()=>e(...r)),r,a);return null!=a&&ee(t.shape,a.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ro(n),n}))}}function Ao(e){return Q(Ne(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Q(t instanceof ga,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Q(null==n||n instanceof ga,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=Ma.gradients((()=>e(t)),[t],n);return Ro(r),{grad:r[0],value:a}}}function Do(e){return Q(Ne(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,n)=>{Q(Array.isArray(t)&&t.every((e=>e instanceof ga)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Q(null==n||n instanceof ga,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=Ma.gradients((()=>e(...t)),t,n);return null!=n&&ee(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ro(r.grads),r}}function To(e,t){Q(Ne(e),(()=>"The f passed in variableGrads(f) must be a function")),Q(null==t||Array.isArray(t)&&t.every((e=>e instanceof ba)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in Ma.registeredVariables)t.push(Ma.registeredVariables[e])}const r=n?t.filter((e=>!e.trainable)):null,a=t.length;Q((t=t.filter((e=>e.trainable))).length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${a} variables is trainable.`));const{value:s,grads:i}=Ma.gradients(e,t,null,!0);Q(i.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Q(0===s.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${s.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=i[t]&&(o[e.name]=i[t])})),null!=r&&r.forEach((e=>o[e.name]=null)),{value:s,grads:o}}function Fo(e){return Ma.customGrad(e)}function Ro(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}function Oo(e,t){if((we(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&we(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Ka(e,[],[],t)}class Bo extends $i{minimize(e,t=!1,n){const{value:r,grads:a}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:a[e.name]})));this.applyGradients(e)}else this.applyGradients(a);return oo(a),t?r:(r.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return To(e,t)}dispose(){null!=this.iterations_&&oo(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:Oo(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Bo,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Mo extends Bo{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=Ma.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Ma.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:io((()=>So(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:io((()=>So(r).variable(!1)))});const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable,i=this.accumulatedUpdates[n].variable;io((()=>{const e=wo(ko(s,this.rho),ko(Co(a),1-this.rho)),t=ko(_o(Eo(wo(i,this.epsilon)),Eo(wo(s,this.epsilon))),a),n=wo(ko(i,this.rho),ko(Co(t),1-this.rho));s.assign(e),i.assign(n);const o=wo(ko(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(oo(this.accumulatedGrads.map((e=>e.variable))),oo(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function $o(e,t,n){const r={shape:e,value:t,dtype:n};return Ma.runKernel(Xt,{},r)}Mo.className="Adadelta",Li(Mo);class Po extends Bo{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Ma.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:io((()=>$o(r.shape,this.initialAccumulatorValue).variable(e)))}}const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable;io((()=>{const e=wo(s,Co(a));s.assign(e);const t=wo(ko(_o(a,Eo(wo(e,Ma.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&oo(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Po.className="Adagrad",Li(Po);const Lo=Xa({pow_:function(e,t){let n=ja(e,"base","pow"),r=ja(t,"exp","pow");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(Hn,a)}}),zo=Xa({sub_:function(e,t){let n=ja(e,"a","sub"),r=ja(t,"b","sub");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(kr,a)}});class Wo extends Bo{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],io((()=>{this.accBeta1=Oo(t).variable(),this.accBeta2=Oo(n).variable()})),null==r&&(this.epsilon=Ma.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);io((()=>{const n=zo(1,this.accBeta1),r=zo(1,this.accBeta2);t.forEach(((t,a)=>{const s=Ma.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:io((()=>So(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:io((()=>So(s).variable(!1)))});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedSecondMoment[a].variable,u=wo(ko(o,this.beta1),ko(i,1-this.beta1)),c=wo(ko(l,this.beta2),ko(Co(i),1-this.beta2)),h=_o(u,n),f=_o(c,r);o.assign(u),l.assign(c);const d=wo(ko(_o(h,wo(Eo(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(ko(this.accBeta1,this.beta1)),this.accBeta2.assign(ko(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&oo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&oo(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),io((()=>{this.accBeta1.assign(Lo(this.beta1,this.iterations_+1)),this.accBeta2.assign(Lo(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}Wo.className="Adam",Li(Wo);const Uo=Xa({abs_:function(e){const t=ja(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return Ma.runKernel(yt,e)}{const e={x:t};return Ma.runKernel(He,e)}}});function Vo(e,t){const n=e.length,r=[];for(let a=0;a1&&1===i&&r.unshift(s)}return r}function jo(e,t){const n=[];for(let r=0;r1)&&n.unshift(s)}return n}function Ho(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=Oo(0).variable(),this.accBeta1=Oo(t).variable()})),null==r&&(this.epsilon=Ma.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);io((()=>{const n=zo(1,this.accBeta1),r=_o(-this.learningRate,wo(ko(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=Ma.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:So(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:So(s).variable(!1)});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedWeightedInfNorm[a].variable,u=wo(ko(o,this.beta1),ko(i,1-this.beta1)),c=ko(l,this.beta2),h=Uo(i),f=Go(c,h);o.assign(u),l.assign(f);const d=wo(ko(_o(r,n),_o(u,wo(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(wo(this.iteration,1)),this.accBeta1.assign(ko(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&oo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&oo(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}Xo.className="Adamax",Li(Xo);class qo extends Bo{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const a=Ma.registeredVariables[t];io((()=>{const e=wo(ko(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=lo(Oo(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}qo.className="SGD",Li(qo);class Ko extends qo{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=Oo(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Ma.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:io((()=>So(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&io((()=>{let e;const t=wo(ko(this.m,a),s);e=this.useNesterov?wo(ko(this.c,wo(s,ko(t,this.m))),r):wo(ko(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&oo(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}Ko.className="Momentum",Li(Ko);class Zo extends Bo{constructor(e,t=.9,n=0,r=null,a=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=r,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=a,null==r&&(this.epsilon=Ma.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Ma.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:io((()=>So(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:io((()=>So(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:io((()=>So(r).variable(a)))});const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;io((()=>{const e=wo(ko(i,this.decay),ko(Co(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=wo(ko(t,this.decay),ko(s,1-this.decay)),l=_o(ko(s,this.learningRate),Eo(zo(e,wo(Co(a),this.epsilon)))),u=wo(ko(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=zo(r,u);r.assign(c)}else{const e=wo(ko(i,this.decay),ko(Co(s),1-this.decay)),t=wo(ko(o,this.momentum),_o(ko(s,this.learningRate),Eo(wo(e,this.epsilon))));i.assign(e),o.assign(t);const n=zo(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&oo(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&oo(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&oo(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}Zo.className="RMSProp",Li(Zo);const Yo=Xa({acos_:function(e){const t={x:ja(e,"x","acos")};return Ma.runKernel(Ge,t)}}),Jo=Xa({acosh_:function(e){const t={x:ja(e,"x","acosh")};return Ma.runKernel(Xe,t)}}),Qo=Xa({addN_:function(e){Q(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Q(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>ja(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!se(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const r=t;return Ma.runKernel(Ke,r)}}),el=Xa({all_:function(e,t=null,n=!1){const r={x:ja(e,"x","all","bool")},a={axis:t,keepDims:n};return Ma.runKernel(Ze,r,a)}}),tl=Xa({any_:function(e,t=null,n=!1){const r={x:ja(e,"x","any","bool")},a={axis:t,keepDims:n};return Ma.runKernel(Ye,r,a)}}),nl=Xa({argMax_:function(e,t=0){const n={x:ja(e,"x","argMax")},r={axis:t};return Ma.runKernel(Je,n,r)}}),rl=Xa({argMin_:function(e,t=0){const n={x:ja(e,"x","argMin")},r={axis:t};return Ma.runKernel(Qe,n,r)}}),al=Xa({asin_:function(e){const t={x:ja(e,"x","asin")};return Ma.runKernel(et,t)}}),sl=Xa({asinh_:function(e){const t={x:ja(e,"x","asinh")};return Ma.runKernel(tt,t)}}),il=Xa({atan_:function(e){const t={x:ja(e,"x","atan")};return Ma.runKernel(nt,t)}}),ol=Xa({atan2_:function(e,t){let n=ja(e,"a","atan2"),r=ja(t,"b","atan2");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(at,a)}}),ll=Xa({atanh_:function(e){const t={x:ja(e,"x","atanh")};return Ma.runKernel(rt,t)}});function ul(e,t,n,r,a="NHWC",s){return fl(e,[...t,e[3]],n,s,r,null,null,xl(a))}function cl(e,t,n,r,a,s,i="channelsLast"){const[o,l]=ml(t);let u;if("channelsLast"===i)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);u=[o,l,e[1],e[1]]}return fl(e,u,n,r,a,s,!1,i)}function hl(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=gl(t);let c,h;if("NDHWC"===i)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==i)throw new Error(`Unknown dataFormat ${i}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return dl(e,c,n,r,a,!1,h,s)}function fl(e,t,n,r,a,s,i=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[f,d,,p]=t,[m,g]=ml(n),[y,b]=ml(r),v=yl(f,y),w=yl(d,b),{padInfo:x,outHeight:_,outWidth:k}=function(e,t,n,r,a,s,i,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const a=function(e,t,n,r,a){null==r&&(r=pl(e,t,n));const s=e[1];return[bl((e[0]-t+2*r)/n+1,a),bl((s-t+2*r)/n+1,a)]}([t,n],s,r,e,o);c=a[0],h=a[1]}else if("same"===e){c=Math.ceil(t/r),h=Math.ceil(n/a);const e=Math.max(0,(c-1)*r+s-t),o=Math.max(0,(h-1)*a+i-n),l=Math.floor(e/2),f=e-l,d=Math.floor(o/2);u={top:l,bottom:f,left:d,right:o-d,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/r),h=Math.ceil((n-i+1)/a);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const f="channelsLast"===l?e[1][0]:e[2][0],d="channelsLast"===l?e[1][1]:e[2][1],p="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:f,bottom:d,left:p,right:m,type:0===f&&0===d&&0===p&&0===m?"VALID":"EXPLICIT"},c=bl((t-s+f+d)/r+1,o),h=bl((n-i+p+m)/a+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(a,u,c,m,g,v,w,s,o),E=i?p*h:p;let C;return"channelsFirst"===o?C=[l,E,_,k]:"channelsLast"===o&&(C=[l,_,k,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:_,outWidth:k,outChannels:E,padInfo:x,strideHeight:m,strideWidth:g,filterHeight:f,filterWidth:d,effectiveFilterHeight:v,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:C,filterShape:t}}function dl(e,t,n,r,a,s=!1,i="channelsLast",o){let[l,u,c,h,f]=[-1,-1,-1,-1,-1];if("channelsLast"===i)[l,u,c,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[l,f,u,c,h]=e}const[d,p,m,,g]=t,[y,b,v]=gl(n),[w,x,_]=gl(r),k=yl(d,w),E=yl(p,x),C=yl(m,_),{padInfo:S,outDepth:N,outHeight:I,outWidth:A}=function(e,t,n,r,a,s,i,o,l,u,c){let h,f,d,p;if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,n,r,a,s){null==a&&(a=pl(e,t,r));const i=e[1],o=e[2];return[bl((e[0]-t+2*a)/r+1,s),bl((i-t+2*a)/r+1,s),bl((o-t+2*a)/r+1,s),1]}([t,n,r,1],o,0,a,e,c);f=s[0],d=s[1],p=s[2]}else if("same"===e){f=Math.ceil(t/a),d=Math.ceil(n/s),p=Math.ceil(r/i);const e=(f-1)*a+o-t,c=(d-1)*s+l-n,m=(p-1)*i+u-r,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),v=c-b,w=Math.floor(m/2);h={top:b,bottom:v,left:w,right:m-w,front:g,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},f=Math.ceil((t-o+1)/a),d=Math.ceil((n-l+1)/s),p=Math.ceil((r-u+1)/i)}return{padInfo:h,outDepth:f,outHeight:d,outWidth:p}}(a,u,c,h,y,b,v,k,E,C,o),D=s?g*f:g;let T;return"channelsFirst"===i?T=[l,D,N,I,A]:"channelsLast"===i&&(T=[l,N,I,A,D]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:h,inChannels:f,outDepth:N,outHeight:I,outWidth:A,outChannels:D,padInfo:S,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:d,filterHeight:p,filterWidth:m,effectiveFilterDepth:k,effectiveFilterHeight:E,effectiveFilterWidth:C,dilationDepth:w,dilationHeight:x,dilationWidth:_,inShape:e,outShape:T,filterShape:t}}function pl(e,t,n,r=1){const a=yl(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function ml(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function gl(e){return"number"==typeof e?[e,e,e]:e}function yl(e,t){return t<=1?e:e+(e-1)*(t-1)}function bl(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function vl(e){const[t,n,r]=ml(e);return 1===t&&1===n&&1===r}function wl(e,t){return vl(e)||vl(t)}function xl(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const _l=Xa({reshape_:function(e,t){const n={x:ja(e,"x","reshape","string_or_numeric")},r={shape:t};return Ma.runKernel(Jn,n,r)}}),kl=Xa({avgPool_:function(e,t,n,r,a){const s=ja(e,"x","avgPool","float32");Q(wl(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let i=s,o=!1;3===s.rank&&(o=!0,i=_l(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Q(4===i.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`)),null!=a&&Q(ie(r),(()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a};let c=Ma.runKernel(st,l,u);return c=Vs(c,s.dtype),o?_l(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),El=Xa({avgPool3d_:function(e,t,n,r,a,s="NDHWC"){const i=ja(e,"x","avgPool3d","float32");let o=i,l=!1;4===i.rank&&(l=!0,o=_l(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===o.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`)),Q("NDHWC"===s,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),null!=a&&Q(ie(r),(()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const u={x:o},c={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s};let h=Ma.runKernel(ot,u,c);return h=Vs(h,o.dtype),l?_l(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),Cl=Xa({concat_:function(e,t=0){Q(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ha(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return js(n[0]);const r=n,a={axis:t};return Ma.runKernel(bt,r,a)}}),Sl=Xa({sigmoid_:function(e){const t={x:ja(e,"x","sigmoid")};return Ma.runKernel(pr,t)}}),Nl=Xa({slice_:function(e,t,n){const r=ja(e,"x","slice","string_or_numeric");if(0===r.rank)throw new Error("Slicing scalar is not possible");const a={x:r},s={begin:t,size:n};return Ma.runKernel(cr,a,s)}}),Il=Xa({tanh_:function(e){const t={x:ja(e,"x","tanh")};return Ma.runKernel(Nr,t)}}),Al=Xa({basicLSTMCell_:function(e,t,n,r,a,s){const i=ja(e,"forgetBias","basicLSTMCell"),o=ja(t,"lstmKernel","basicLSTMCell"),l=ja(n,"lstmBias","basicLSTMCell"),u=ja(r,"data","basicLSTMCell"),c=ja(a,"c","basicLSTMCell"),h=ja(s,"h","basicLSTMCell"),f=Cl([u,h],1),d=ui(f,o),p=wo(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=Nl(p,[0,0],y),v=Nl(p,[0,g],y),w=Nl(p,[0,2*g],y),x=Nl(p,[0,3*g],y),_=wo(ko(Sl(b),Il(v)),ko(c,Sl(wo(i,w))));return[_,ko(Il(_),Sl(x))]}}),Dl=Xa({batchToSpaceND_:function(e,t,n){const r=ja(e,"x","batchToSpaceND"),a=t.reduce(((e,t)=>e*t));Q(r.rank>=1+t.length,(()=>`input rank is ${r.rank} but should be > than blockShape.length ${t.length}`)),Q(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Q(r.shape[0]%a==0,(()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${a}`));const s={x:r},i={blockShape:t,crops:n};return Ma.runKernel(ct,s,i)}}),Tl=Xa({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=ja(e,"x","batchNorm"),o=ja(t,"mean","batchNorm"),l=ja(n,"variance","batchNorm");let u,c;null!=a&&(u=ja(a,"scale","batchNorm")),null!=r&&(c=ja(r,"offset","batchNorm")),Q(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?_l(e,[1,1,1,e.size]):2===e.rank?_l(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?_l(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(i),scale:u,offset:c,mean:o,variance:l},f={varianceEpsilon:s},d=Ma.runKernel(Yt,h,f);return _l(d,i.shape)}}),Fl=Xa({batchNorm2d_:function(e,t,n,r,a,s){const i=ja(e,"x","batchNorm"),o=ja(t,"mean","batchNorm"),l=ja(n,"variance","batchNorm");let u,c;return null!=a&&(u=ja(a,"scale","batchNorm")),null!=r&&(c=ja(r,"offset","batchNorm")),Q(2===i.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`)),Q(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Q(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Tl(i,o,l,c,u,s)}}),Rl=Xa({batchNorm3d_:function(e,t,n,r,a,s){const i=ja(e,"x","batchNorm"),o=ja(t,"mean","batchNorm"),l=ja(n,"variance","batchNorm");let u,c;return null!=a&&(u=ja(a,"scale","batchNorm")),null!=r&&(c=ja(r,"offset","batchNorm")),Q(3===i.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`)),Q(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Q(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Tl(i,o,l,c,u,s)}}),Ol=Xa({batchNorm4d_:function(e,t,n,r,a,s){const i=ja(e,"x","batchNorm"),o=ja(t,"mean","batchNorm"),l=ja(n,"variance","batchNorm");let u,c;return null!=a&&(u=ja(a,"scale","batchNorm")),null!=r&&(c=ja(r,"offset","batchNorm")),Q(4===i.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`)),Q(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Q(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Tl(i,o,l,c,u,s)}}),Bl=Xa({bincount_:function(e,t,n){const r=ja(e,"x","bincount"),a=ja(t,"weights","bincount");Q("int32"===r.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${r.dtype}`)),Q(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Q(a.size===r.size||0===a.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${r.shape}, weights shape: ${a.shape}.`));const s={x:r,weights:a},i={size:n};return Ma.runKernel(ht,s,i)}}),Ml=Xa({broadcastTo_:function(e,t){let n=ja(e,"broadcastTo","x");const r=n.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(a[e]===t[e])s[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${t}].`);if(0===s.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return js(n);const i={x:n},o={reps:s};return Ma.runKernel(Ir,i,o)}}),$l=Xa({ceil_:function(e){const t={x:ja(e,"x","ceil")};return Ma.runKernel(pt,t)}}),Pl=Xa({clipByValue_:function(e,t,n){const r=ja(e,"x","clipByValue");Q(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`));const a={x:r},s={clipValueMin:t,clipValueMax:n};return Ma.runKernel(mt,a,s)}}),Ll=Xa({concat1d_:function(e){return Cl(e,0)}}),zl=Xa({concat2d_:function(e,t){return Cl(e,t)}}),Wl=Xa({concat3d_:function(e,t){return Cl(e,t)}}),Ul=Xa({concat4d_:function(e,t){return Cl(e,t)}}),Vl=Xa({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=ja(e,"x","conv2d"),l=ja(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=_l(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Q(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Q(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h="NHWC"===a?u.shape[3]:u.shape[1];Q(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Q(wl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`));const f={x:u,filter:l},d={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},p=Ma.runKernel(vt,f,d);return c?_l(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),jl=Xa({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=ja(e,"x","conv1d"),l=ja(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=_l(o,[1,o.shape[0],o.shape[1]])),Q(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Q(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Q(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Q(wl(n,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`)),Q("NWC"===a,(()=>`Error in conv1d: got dataFormat of ${a} but only NWC is currently supported.`));const h=_l(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=_l(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=Vl(f,h,[1,n],r,"NHWC",[1,s],i);return _l(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Hl=Xa({conv2DBackpropInput_:function(e,t,n,r,a,s="NHWC",i){Q(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=_l(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Q(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Q(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Q(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===s?o[3]:o[1],h="NHWC"===s?l.shape[3]:l.shape[1];Q(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Q(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),null!=i&&Q(ie(a),(()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const f={dy:l,filter:n},d={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,inputShape:o},p=Ma.runKernel(xt,f,d);return u?_l(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Gl=Xa({conv2dTranspose_:function(e,t,n,r,a,s){const i=ja(e,"x","conv2dTranspose"),o=ja(t,"filter","conv2dTranspose");return Hl(n,i,o,r,a,"NHWC",s)}}),Xl=Xa({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=ja(e,"x","conv3d"),o=ja(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=_l(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Q(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Q(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Q(wl(n,s),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Q("NDHWC"===a,(()=>`Error in conv3d: got dataFormat of ${a} but only NDHWC is currently supported.`));const c={x:l,filter:o},h={strides:n,pad:r,dataFormat:a,dilations:s},f=Ma.runKernel(_t,c,h);return u?_l(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),ql=Xa({conv3DBackpropInput_:function(e,t,n,r,a){Q(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let s=e,i=t,o=!1;4===t.rank&&(o=!0,i=_l(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);const l=s[4],u=i.shape[4];Q(5===s.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`)),Q(5===i.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`)),Q(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Q(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Q(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:i,filter:n},h={pad:a,strides:r,inputShape:s},f=Ma.runKernel(Et,c,h);return o?_l(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Kl=Xa({conv3dTranspose_:function(e,t,n,r,a){const s=ja(e,"x","conv3dTranspose"),i=ja(t,"filter","conv3dTranspose");return ql(n,s,i,r,a)}}),Zl=Xa({cos_:function(e){const t={x:ja(e,"x","cos")};return Ma.runKernel(Ct,t)}}),Yl=Xa({cosh_:function(e){const t={x:ja(e,"x","cosh")};return Ma.runKernel(St,t)}}),Jl=Xa({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:ja(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return Ma.runKernel(Nt,a,s)}}),Ql=Xa({denseBincount_:function(e,t,n,r=!1){const a=ja(e,"x","denseBincount"),s=ja(t,"weights","denseBincount");Q("int32"===a.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${a.dtype}`)),Q(a.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${a.rank}.`)),Q(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Q(s.size===a.size||0===s.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${a.shape}, weights shape: ${s.shape}.`));const i={x:a,weights:s},o={size:n,binaryOutput:r};return Ma.runKernel(At,i,o)}}),eu=Xa({depthToSpace_:function(e,t,n="NHWC"){const r=ja(e,"x","depthToSpace"),a="NHWC"===n?r.shape[1]:r.shape[2],s="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];Q(a*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${a} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Q(s*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Q(i%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${r.shape}`));const o={x:r},l={blockSize:t,dataFormat:n};return Ma.runKernel(Dt,o,l)}}),tu=Xa({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=ja(e,"x","depthwiseConv2d"),l=ja(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=_l(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Q(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Q(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`)),Q(u.shape[3]===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`)),null!=i&&Q(ie(r),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h={x:u,filter:l},f={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},d=Ma.runKernel(Tt,h,f);return c?_l(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),nu=Xa({diag_:function(e){const t={x:ja(e,"x","diag")};return Ma.runKernel(Ot,t)}}),ru=Xa({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=ja(e,"x","dilation2d"),o=ja(t,"filter","dilation2d");Q(3===i.rank||4===i.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`)),Q(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Q("NHWC"===s,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`));let l=i,u=!1;3===i.rank&&(l=_l(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);const c={x:l,filter:o},h={strides:n,pad:r,dilations:a},f=Ma.runKernel(Bt,c,h);return u?_l(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),au=Xa({equal_:function(e,t){let n=ja(e,"a","equal"),r=ja(t,"b","equal");[n,r]=Na(n,r),Ho(n.shape,r.shape);const a={a:n,b:r};return Ma.runKernel(Ut,a)}}),su=Xa({where_:function(e,t,n){const r=ja(t,"a","where"),a=ja(n,"b","where"),s=ja(e,"condition","where","bool"),i=Ho(r.shape,a.shape),o=Ml(r,i),l=Ml(a,i);1===s.rank&&Q(s.shape[0]===r.shape[0],(()=>"The first dimension of `a` must match the size of `condition`.")),1!==s.rank&&ee(s.shape,l.shape,"Error in where: ");const u={condition:s,t:o,e:l};return Ma.runKernel(lr,u)}}),iu=Xa({divNoNan_:function(e,t){let n=ja(e,"a","div"),r=ja(t,"b","div");[n,r]=Na(n,r);const a=_o(n,r),s=So(a),i=au(r,s);return su(i,s,a)}}),ou=Xa({dot_:function(e,t){const n=ja(e,"t1","dot"),r=ja(t,"t2","dot");Q(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${r.rank}.`));const a=1===n.rank?n.size:n.shape[1],s=1===r.rank?r.size:r.shape[0];if(Q(a===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${a} and ${s}.`)),1===n.rank&&1===r.rank){const e=_l(n,[1,-1]),t=_l(r,[-1,1]),a=ui(e,t);return _l(a,[])}if(1===n.rank&&2===r.rank){const e=_l(n,[1,-1]),t=_l(r,[r.shape[0],r.shape[1]]),a=ui(e,t);return _l(a,[a.size])}if(2===n.rank&&1===r.rank){const e=_l(r,[-1,1]),t=ui(n,e);return _l(t,[t.size])}{const e=_l(r,[r.shape[0],r.shape[1]]);return ui(n,e)}}}),lu=Xa({elu_:function(e){const t={x:ja(e,"x","elu")};return Ma.runKernel(Lt,t)}}),uu=Xa({erf_:function(e){let t=ja(e,"x","erf");Q("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=Vs(t,"float32"));const n={x:t};return Ma.runKernel(Wt,n)}}),cu=Xa({exp_:function(e){const t={x:ja(e,"x","exp")};return Ma.runKernel(Vt,t)}}),hu=Xa({expandDims_:function(e,t=0){const n=ja(e,"x","expandDims","string_or_numeric");Q(t<=n.rank,(()=>"Axis must be <= rank of the tensor"));const r={input:n},a={dim:t};return Ma.runKernel(jt,r,a)}}),fu=Xa({expm1_:function(e){const t={x:ja(e,"x","expm1")};return Ma.runKernel(Ht,t)}}),du=Xa({tile_:function(e,t){const n=ja(e,"x","tile","string_or_numeric");Q(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const r={x:n},a={reps:t};return Ma.runKernel(Ir,r,a)}}),pu=Xa({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Us([e,t],r),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`)),Q(ie(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let i=s,o=!1;3===s.rank&&(o=!0,i=_l(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const l={x:i},u={depthRadius:t,bias:n,alpha:r,beta:a},c=Ma.runKernel(vn,l,u);return o?_l(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Iu=Xa({log_:function(e){const t={x:ja(e,"x","log")};return Ma.runKernel(dn,t)}}),Au=Xa({log1p_:function(e){const t={x:ja(e,"x","log1p")};return Ma.runKernel(pn,t)}}),Du=Xa({neg_:function(e){const t={x:ja(e,"x","neg")};return Ma.runKernel(Bn,t)}}),Tu=Xa({softplus_:function(e){const t={x:ja(e,"x","softplus")};return Ma.runKernel(mr,t)}}),Fu=Xa({logSigmoid_:function(e){const t=ja(e,"x","logSigmoid");return Fo((e=>({value:Du(Tu(Du(e))),gradFunc:t=>ko(t,Sl(Du(e)))})))(t)}}),Ru=Xa({max_:function(e,t=null,n=!1){const r={x:ja(e,"x","max")},a={reductionIndices:t,keepDims:n};return Ma.runKernel(xn,r,a)}}),Ou=Xa({sum_:function(e,t=null,n=!1){let r=ja(e,"x","sum");"bool"===r.dtype&&(r=Vs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Ma.runKernel(yr,a,s)}}),Bu=Xa({logSoftmax_:function(e,t=-1){const n=ja(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Fo(((e,n)=>{const r=Ru(e,t,!0),a=zo(e,r),s=zo(Vs(a,"float32"),Iu(Ou(cu(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=cu(r);return zo(e,ko(Ou(e,t,!0),a))}}}))(n)}});function Mu(e,t){for(let n=0;ne[t]))]}function Lu(e,t){return $u(e,t.map((e=>1)),t)}function zu(e,t,n){Q(Mu(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function Wu(e,t){if(Mu(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Uu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Vu(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Q(wl(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),null!=a&&Q(ie(r),(()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=Ma.runKernel(kn,l,u);return o?_l(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Zu=Xa({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC"){const i=ja(e,"x","maxPool3d");let o=i,l=!1;4===i.rank&&(l=!0,o=_l(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===o.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`)),Q("NDHWC"===s,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),null!=a&&Q(ie(r),(()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const u={x:o},c={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s},h=Ma.runKernel(Cn,u,c);return l?_l(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),Yu=Xa({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:ja(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=Ma.runKernel(Nn,s,i);return{result:o[0],indexes:o[1]}}}),Ju=Xa({mean_:function(e,t=null,n=!1){const r={x:ja(e,"x","mean")},a={axis:t,keepDims:n};return Ma.runKernel(In,r,a)}}),Qu=Xa({min_:function(e,t=null,n=!1){const r={x:ja(e,"x","min")},a={axis:t,keepDims:n};return Ma.runKernel(An,r,a)}}),ec=Xa({minimum_:function(e,t){let n=ja(e,"a","minimum"),r=ja(t,"b","minimum");[n,r]=Na(n,r),"bool"===n.dtype&&(n=Vs(n,"int32"),r=Vs(r,"int32")),Ho(n.shape,r.shape);const a={a:n,b:r};return Ma.runKernel(Dn,a)}}),tc=Xa({mirrorPad_:function(e,t,n){Q("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=ja(e,"x","mirrorPad");if(0===r.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Q(t.length===r.rank,(()=>`Padding doesn't match input. Must be ${r.rank}. Got ${t.length}.`));const a="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Q(t[e][0]>=0&&t[e][0]<=r.shape[e]-a&&t[e][1]>=0&&t[e][1]<=r.shape[e]-a,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${r.shape[e]-a} or less than 0 for input of shape ${r.shape}`));const s={paddings:t,mode:n},i={x:r};return Ma.runKernel(Tn,i,s)}}),nc=Xa({mod_:function(e,t){let n=ja(e,"a","mod"),r=ja(t,"b","mod");[n,r]=Na(n,r);const a={a:n,b:r};return Ma.runKernel(Fn,a)}}),rc=Xa({moments_:function(e,t=null,n=!1){const r=de(t,(e=ja(e,"x","moments")).shape),a=Ju(e,r,n);let s=a.shape;n||(s=Lu(a.shape,r));const i=Co(zo(Vs(e,"float32"),_l(a,s)));return{mean:a,variance:Ju(i,r,n)}}}),ac=Xa({multiRNNCell_:function(e,t,n,r){const a=ja(t,"data","multiRNNCell"),s=Ha(n,"c","multiRNNCell"),i=Ha(r,"h","multiRNNCell");let o=a;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();const o={logits:1===i?_l(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=Ma.runKernel(Rn,o,l);return 1===i?_l(u,[u.size]):u}}),ic=Xa({notEqual_:function(e,t){let n=ja(e,"a","notEqual"),r=ja(t,"b","notEqual");[n,r]=Na(n,r),Ho(n.shape,r.shape);const a={a:n,b:r};return Ma.runKernel(Mn,a)}});function oc(e,t="float32"){if("complex64"===t){const t=oc(e,"float32"),n=oc(e,"float32");return qa(t,n)}const n=Re(re(e),t);return Ma.makeTensor(n,e,t)}function lc(e,t="float32"){if("complex64"===t){const t=lc(e,"float32"),n=oc(e,"float32");return qa(t,n)}const n=Fe(re(e),t);return Ma.makeTensor(n,e,t)}const uc=Xa({onesLike_:function(e){const t={x:ja(e,"x","onesLike")};return Ma.runKernel(zn,t)}}),cc=Xa({outerProduct_:function(e,t){const n=ja(e,"v1","outerProduct"),r=ja(t,"v2","outerProduct");Q(1===n.rank&&1===r.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${r.rank}.`));const a=_l(n,[-1,1]),s=_l(r,[1,-1]);return ui(a,s)}}),hc=Xa({pad_:function(e,t,n=0){const r=ja(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const a={paddings:t,constantValue:n},s={x:r};return Ma.runKernel(Vn,s,a)}}),fc=Xa({pad1d_:function(e,t,n=0){return Q(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),hc(e,[t],n)}}),dc=Xa({pad2d_:function(e,t,n=0){return Q(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),hc(e,t,n)}}),pc=Xa({pad3d_:function(e,t,n=0){return Q(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),hc(e,t,n)}}),mc=Xa({pad4d_:function(e,t,n=0){return Q(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),hc(e,t,n)}}),gc=Xa({spaceToBatchND_:function(e,t,n){const r=ja(e,"x","spaceToBatchND");Q(r.rank>=1+t.length,(()=>`input rank ${r.rank} should be > than [blockShape] ${t.length}`)),Q(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Q(r.shape.reduce(((e,r,a)=>a>0&&a<=t.length?e&&(r+n[a-1][0]+n[a-1][1])%t[a-1]==0:e),!0),(()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const a={x:r},s={blockShape:t,paddings:n};return Ma.runKernel(br,a,s)}}),yc=Xa({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=ja(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=_l(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Q(wl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=cl(o.shape,t,s,a,r),c=[u.dilationHeight,u.dilationWidth];let h;h="same"===r?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))).map((e=>e-1)),r=n.map((e=>Math.floor(e/2))),a=n.map(((e,t)=>e-r[t]));return n.map(((e,t)=>[r[t],a[t]]))}([u.filterHeight,u.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[d,p]=function(e,t,n){const r=n.map((e=>e[0])),a=n.map((e=>e[1])),s=e.concat(r,a),i=t.map(((e,t)=>(e-s[t]%e)%e)),o=a.map(((e,t)=>e+i[t]));return[t.map(((e,t)=>[r[t],o[t]])),t.map(((e,t)=>[0,i[t]]))]}([u.inHeight,u.inWidth],c,h),m=f?r:"valid",g=f?o:gc(o,c,d),y=("avg"===n?()=>kl(g,t,s,m):()=>Ku(g,t,s,m))(),b=f?y:Dl(y,c,p);return l?_l(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),bc=Xa({prelu_:function(e,t){const n={x:ja(e,"x","prelu"),alpha:ja(t,"alpha","prelu")};return Ma.runKernel(Gn,n)}}),vc=Xa({prod_:function(e,t=null,n=!1){let r=ja(e,"x","prod");"bool"===r.dtype&&(r=Vs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Ma.runKernel(Xn,a,s)}}),wc=Xa({rand_:function(e,t,n){const r=re(e);let a=null;if(null==n||"float32"===n)a=new Float32Array(r);else if("int32"===n)a=new Int32Array(r);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);a=new Uint8Array(r)}for(let e=0;e=1||0===s);const i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*r*i,t=this.mean+this.stdDev*a*i,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class kc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=xc.alea(a.toString()),this.randn=new _c(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,r,a,s;for(;;){do{r=this.randn.nextValue(),s=1+this.c*r}while(s<=0);if(s*=s*s,e=r*r,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),a=this.randu(),anull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=xc.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Cc=Xa({randomGamma_:function(e,t,n=1,r="float32",a){if(null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error(`Unsupported data type ${r}`);const s=new kc(t,n,r,a),i=Us(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Rc(t,0)}}),Bc=Xa({reverse2d_:function(e,t){const n=ja(e,"x","reverse");return Q(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Rc(n,t)}}),Mc=Xa({reverse3d_:function(e,t){const n=ja(e,"x","reverse");return Q(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Rc(n,t)}}),$c=Xa({reverse4d_:function(e,t){const n=ja(e,"x","reverse");return Q(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Rc(n,t)}}),Pc=Xa({round_:function(e){const t={x:ja(e,"x","round")};return Ma.runKernel(sr,t)}}),Lc=Xa({rsqrt_:function(e){const t={x:ja(e,"x","rsqrt")};return Ma.runKernel(ir,t)}}),zc=Xa({selu_:function(e){const t={x:ja(e,"x","selu")};return Ma.runKernel(ur,t)}}),Wc=Xa({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=ja(e,"x","separableConv2d"),l=ja(t,"depthwiseFilter","separableConv2d"),u=ja(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=_l(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Q(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Q(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Q(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Q(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Q(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const f=l.shape[2],d=l.shape[3];Q(u.shape[2]===f*d,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${f*d}, but got ${u.shape[2]}.`));const p=tu(c,l,r,a,i,s),m=Vl(p,u,1,"valid",i);return h?_l(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Uc=async function(e,t){const n=ja(e,"x","setdiff1d"),r=ja(t,"y","setdiff1d");Q(n.dtype===r.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${r.dtype}).`)),Q(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Q(1===r.rank,(()=>`y should be 1D tensor, but got y (${r.shape}).`));const a=await n.data(),s=await r.data(),i=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`)),Nl(r,[t],[n])}}),Xc=Xa({slice2d_:function(e,t,n){const r=ja(e,"x","slice2d");return Q(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),Nl(r,t,n)}}),qc=Xa({slice3d_:function(e,t,n){const r=ja(e,"x","slice3d");return Q(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),Nl(r,t,n)}}),Kc=Xa({slice4d_:function(e,t,n){const r=ja(e,"x","slice4d");return Q(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),Nl(r,t,n)}}),Zc=Xa({softmax_:function(e,t=-1){const n=ja(e,"logits","softmax","float32");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);const r={logits:n},a={dim:t};return Ma.runKernel(wr,r,a)}}),Yc=Xa({fft_:function(e){Q("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Ma.runKernel(Gt,t)}}),Jc=Xa({ifft_:function(e){Q("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Ma.runKernel(rn,t)}}),Qc=Xa({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=_l(e,[n,t]);r=Jc(a)}else{const a=[n,2*(t-1)],s=_l(Ac(e),[n,t]),i=_l(vu(e),[n,t]),o=Rc(Nl(s,[0,1],[n,t-2]),1),l=ko(Rc(Nl(i,[0,1],[n,t-2]),1),Oo(-1)),u=Cl([s,o],1),c=Cl([i,l],1),h=_l(qa(u,c),[a[0],a[1]]);r=Jc(h)}if(r=Ac(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=_l(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),eh=Xa({split_:function(e,t,n=0){const r={x:ja(e,"x","split")},a={numOrSizeSplits:t,axis:n};return Ma.runKernel(vr,r,a)}}),th=Xa({rfft_:function(e,t){Q("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const r=e.size/n;let a;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,a=Nl(e,r,s),n=t}else if(null!=t&&t>n){const r=e.shape.map((e=>e));r[e.shape.length-1]=t-n,a=Cl([e,oc(r)],e.shape.length-1),n=t}else a=e;const s=So(a),i=_l(qa(a,s),[r,n]),o=Yc(i),l=Math.floor(n/2)+1,u=Ac(o),c=vu(o),h=eh(u,[l,n-l],u.shape.length-1),f=eh(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,_l(qa(h[0],f[0]),d)}}),nh=Xa({squaredDifference_:function(e,t){let n=ja(e,"a","squaredDifference"),r=ja(t,"b","squaredDifference");[n,r]=Na(n,r),Ho(n.shape,r.shape);const a={a:n,b:r};return Ma.runKernel(xr,a,{})}}),rh=Xa({squeeze_:function(e,t){const n=ja(e,"x","squeeze");return _l(n,pe(n.shape,t).newShape)}}),ah=Xa({stack_:function(e,t=0){const n=Ha(e,"tensors","stack","string_or_numeric");Q(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Q(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const r=n,a={axis:t};return Ma.runKernel(Un,r,a)}}),sh=Xa({step_:function(e,t=0){const n={x:ja(e,"x","step")},r={alpha:t};return Ma.runKernel(Br,n,r)}}),ih=Xa({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:ja(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return Ma.runKernel(Cr,u,c)}}),oh=Xa({tan_:function(e){const t={x:ja(e,"x","tan")};return Ma.runKernel(Sr,t)}});function lh(e,t){te(e);const n=Wa(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ka(e,null,n,t)}function uh(e,t,n){if(te(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Wa(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Ka(e,t,r,n)}function ch(e,t,n){if(te(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Wa(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Ka(e,t,r,n)}function hh(e,t,n){if(te(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Wa(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Ka(e,t,r,n)}function fh(e,t,n){if(te(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Wa(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return Ka(e,t=t||r,r,n)}const dh=Xa({topk_:function(e,t=1,n=!0){const r=ja(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const a=r.shape[r.shape.length-1];if(t>a)throw new Error(`'k' passed to topk() must be <= the last dimension (${a}) but got ${t}`);const s={x:r},i={k:t,sorted:n},[o,l]=Ma.runKernel(Ar,s,i);return{values:o,indices:l}}}),ph=Xa({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new _c(t,n,r,!0,a),i=Us(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=Ma.runKernel(Tr,r,a);return{values:s,indices:i}}}),gh=Xa({unsortedSegmentSum_:function(e,t,n){const r=ja(e,"x","unsortedSegmentSum"),a=ja(t,"segmentIds","unsortedSegmentSum","int32");Q(ie(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return Ma.runKernel(Rr,s,i)}}),yh=Xa({unstack_:function(e,t=0){const n=ja(e,"x","unstack","string_or_numeric");Q(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const r={value:n},a={axis:t};return Ma.runKernel(Fr,r,a)}});function bh(e,t=!0,n,r){return Ma.makeVariable(e,t,n,r)}function vh(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),ee(o.slice(s,s+i),a.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=s;e"Shape mismatch in v and x"));const l=Oo(1),u=zo(l,o);let c=ko(zo(i,s),u);if(a){Q(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=ja(r,"step","movingAverage");c=_o(c,zo(l,Lo(o,e)))}return wo(s,c)}}),Ch=Xa({scatterND_:function(e,t,n){const r=ja(e,"indices","scatterND","int32"),a=ja(t,"updates","scatterND");vi(a,r,n);const s={indices:r,updates:a},i={shape:n};return Ma.runKernel(or,s,i)}}),Sh=Xa({sparseToDense_:function(e,t,n,r=0){const a=ja(e,"sparseIndices","sparseToDense","int32"),s=ja(t,"sparseValues","sparseToDense"),i=ja(r,"defaultValue","sparseToDense",s.dtype);!function(e,t,n,r){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const a=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);const i=t.size;if(0!==t.rank&&(1!==t.rank||i!==a))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${a}]`);if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(a,s,n,i);const o={sparseIndices:a,sparseValues:s,defaultValue:i},l={outputShape:n};return Ma.runKernel(Er,o,l)}}),Nh=Xa({gatherND_:function(e,t){const n=ja(t,"indices","gatherND","int32"),r={params:ja(e,"x","gatherND"),indices:n};return Ma.runKernel(Qt,r)}}),Ih=Xa({dropout_:function(e,t,n,r){const a=ja(e,"x","dropout");if(Q("float32"===a.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${a.dtype} tensor instead.`)),Q(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof ga?a.clone():a;const s=function(e,t){if(null==t)return e.shape.slice();if(se(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let r=0;r1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${r.rank}`)),Q(r.rank-1===a.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${r.rank} and targets rank ${a.rank}`)),ee(r.shape.slice(0,r.shape.length-1),a.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=r.shape[r.shape.length-1];Q(n>0&&n<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`));const i=await r.data(),o=await a.data(),[l,u]=[i.length/s,s],c=me("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Q(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Q(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===s?o.shape[3]:o.shape[1],c="NHWC"===s?l.shape[3]:l.shape[1];Q(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Q(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),null!=i&&Q(ie(a),(()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const h={x:o,dy:l},f={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,filterShape:n};return Ma.runKernel(wt,h,f)}});function Rh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return ko(e,sh(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Oh(e,t){let n=t;const r=jo(e.shape,t.shape);return r.length>0&&(n=Ou(n,r)),_l(n,e.shape)}function Bh(e,t,n,r){if("linear"===t)return e;if("relu"===t)return Tc(e);if("elu"===t)return lu(e);if("relu6"===t)return Fc(e);if("prelu"===t)return bc(e,n);if("leakyrelu"===t)return ku(e,r);throw new Error(`Unknown fused activation ${t}.`)}const Mh=(e,t)=>!(e>0)||"linear"===t,$h=Xa({fusedConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===Mh(Ma.state.gradientDepth,l)){let h=Vl(e,t,n,r,a,s,i);return null!=o&&(h=wo(h,o)),Bh(h,l,u,c)}const h=ja(e,"x","conv2d"),f=ja(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=_l(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Q(4===d.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${d.rank}.`)),Q(4===f.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${f.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Q(d.shape[3]===f.shape[2],(()=>`Error in conv2d: depth of input (${d.shape[3]}) must match input depth for filter ${f.shape[2]}.`)),Q(wl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Q("NHWC"===a,(()=>`Error in conv2d: got dataFormat of ${a} but only NHWC is currently supported.`));const m=fl(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=ja(o,"bias","fused conv2d"),[g]=Na(g,h),Ho(m.outShape,g.shape)),null!=u&&(y=ja(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Rh(e,o,l);Q(vl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Hl(i.shape,c,a,n,r),Fh(i,c,a.shape,n,r)];if(null!=u){const e=Oh(u,c);h.push(e)}return h},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Fo(((e,t,n)=>{let r=Ma.runKernel(Lr,v,w);return n([t,e,r]),p&&(r=_l(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Fo(((e,t,n,r)=>{let a=Ma.runKernel(Lr,v,w);return r([t,e,a,n]),p&&(a=_l(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Ph=Xa({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=_l(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=_l(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,filterShape:n};return Ma.runKernel(Ft,u,c)}}),Lh=Xa({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=_l(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,inputShape:e},h=Ma.runKernel(Rt,u,c);return l?_l(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),zh=Xa({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===Mh(Ma.state.gradientDepth,l)){let h=tu(e,t,n,r,a,s,i);return null!=o&&(h=wo(h,o)),Bh(h,l,u,c)}const h=ja(e,"x","depthwiseConv2d"),f=ja(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=_l(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Q(4===d.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`)),Q(4===f.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${f.rank}.`)),Q(d.shape[3]===f.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${f.shape[2]}.`)),null==s&&(s=[1,1]),Q(wl(n,s),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),null!=i&&Q(ie(r),(()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${r}.`));const m=fl(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=ja(o,"bias","fused conv2d"),[g]=Na(g,h),Ho(m.outShape,g.shape)),null!=u&&(y=ja(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Q(vl(s),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`));const[a,o,u,c]=t,h=Rh(e,u,l),f=Lh(o.shape,h,a,n,r,s,i),d=Ph(o,h,a.shape,n,r,s,i);return null!=c?[f,d,Oh(g,h)]:[f,d]},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Fo(((e,t,n)=>{let r=Ma.runKernel(zr,v,w);return n([t,e,r]),p&&(r=_l(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Fo(((e,t,n,r)=>{let a=Ma.runKernel(zr,v,w);return r([t,e,a,n]),p&&(a=_l(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Wh=Xa({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Mh(Ma.state.gradientDepth,s)){let l=ui(e,t,n,r);return null!=a&&(l=wo(l,a)),Bh(l,s,i,o)}let l=ja(e,"a","fused matMul"),u=ja(t,"b","fused matMul");[l,u]=Na(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=r?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-1]:l.shape[l.rank-2],d=r?u.shape[u.rank-2]:u.shape[u.rank-1],p=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=re(p),y=re(m);Q(l.rank>=2&&u.rank>=2&&l.rank===u.rank,(()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`)),Q(se(p,m),(()=>`Error in fused matMul: outer dimensions (${p}) and (${m}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`)),Q(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${r} must match.`));const b=l.shape.slice(0,-2).concat([f,d]),v=_l(l,n?[g,c,f]:[g,f,c]),w=_l(u,r?[y,d,h]:[y,h,d]);let x,_;null!=a&&(x=ja(a,"bias","fused matMul"),[x]=Na(x,l),Ho(b,x.shape)),null!=i&&(_=ja(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Rh(_l(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=ui(c,o,!1,!1),f=ui(c,i,!0,!1)):n&&!r?(h=ui(o,c,!1,!0),f=ui(i,c,!1,!1)):(h=ui(o,c,!0,!0),f=ui(c,i,!0,!0)):(h=ui(c,o,!1,!0),f=ui(i,c,!0,!1)),null!=a?[h,f,Oh(u,c)]:[h,f]},E={a:v,b:w,bias:x,preluActivationWeights:_},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Fo(((e,t,n)=>{const r=Ma.runKernel(Pr,E,C);return n([e,t,r]),{value:_l(r,b),gradFunc:k}}))(v,w):Fo(((e,t,n,r)=>{const a=Ma.runKernel(Pr,E,C);return r([e,t,a,n]),{value:_l(a,b),gradFunc:k}}))(v,w,x)}}),Uh=Xa({hammingWindow_:function(e){return Dh(e,.54,.46)}}),Vh=Xa({hannWindow_:function(e){return Dh(e,.5,.5)}}),jh=Xa({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(Nl(e,s,t)),s+=n;if(r)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`)),Q(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Q(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Q(2===r.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`)),Q(r[0]>=1&&r[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${r}`)),Q("bilinear"===a||"nearest"===a,(()=>`method must be bilinear or nearest, but was ${a}`));const c={image:i,boxes:o,boxInd:l},h={method:a,extrapolationValue:s,cropSize:r};return Ma.runKernel(It,c,h)}}),Xh=Xa({flipLeftRight_:function(e){const t=ja(e,"image","flipLeftRight","float32");Q(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return Ma.runKernel(qt,n,{})}}),qh=Xa({rotateWithOffset_:function(e,t,n=0,r=.5){const a=ja(e,"image","rotateWithOffset","float32");Q(4===a.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${a.rank}.`));const s={image:a},i={radians:t,fillValue:n,center:r};return Ma.runKernel($r,s,i)}});function Kh(e,t,n,r,a,s){null==r&&(r=.5),null==a&&(a=Number.NEGATIVE_INFINITY),null==s&&(s=0);const i=e.shape[0];return n=Math.min(n,i),Q(0<=r&&r<=1,(()=>`iouThreshold must be in [0, 1], but was '${r}'`)),Q(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Q(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Q(1===t.rank,(()=>"scores must be a 1D tensor")),Q(t.shape[0]===i,(()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`)),Q(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:n,iouThreshold:r,scoreThreshold:a,softNmsSigma:s}}const Zh=Xa({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=ja(e,"boxes","nonMaxSuppression"),i=ja(t,"scores","nonMaxSuppression"),o=Kh(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return Ma.runKernel($n,{boxes:s,scores:i},l)}});function Yh(e,t,n){const r=function(e,t,n){return function(e,t,n){let r=0,a=e.length,s=0,i=!1;for(;r>>1);const o=n(t,e[s]);o>0?r=s+1:(a=s,i=!o)}return i?r:-r-1}(e,t,n||Jh)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function Jh(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(sf);const c=s>0?-.5/s:0,h=[],f=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:s,suppressBeginIndex:i}=t;if(n=i;--n){const i=rf(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*af(r,c,i),t.score<=a)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(s),f.push(t.score)):t.score>a&&Yh(u,t,sf))}const d=h.length,p=n-d;o&&p>0&&(h.push(...new Array(p).fill(0)),f.push(...new Array(p).fill(0)));const m={selectedIndices:h};return i&&(m.selectedScores=f),l&&(m.validOutputs=d),m}function rf(e,t,n){const r=e.subarray(4*t,4*t+4),a=e.subarray(4*n,4*n+4),s=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),o=Math.max(r[0],r[2]),l=Math.max(r[1],r[3]),u=Math.min(a[0],a[2]),c=Math.min(a[1],a[3]),h=Math.max(a[0],a[2]),f=Math.max(a[1],a[3]),d=(o-s)*(l-i),p=(h-u)*(f-c);if(d<=0||p<=0)return 0;const m=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,h),b=Math.min(l,f),v=Math.max(y-m,0)*Math.max(b-g,0);return v/(d+p-v)}function af(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function sf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const of=Xa({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=ja(e,"boxes","nonMaxSuppression"),o=ja(t,"scores","nonMaxSuppression"),l=Kh(i,o,n,r,a,s),u={boxes:i,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:r=l.iouThreshold,scoreThreshold:a=l.scoreThreshold,softNmsSigma:s=l.softNmsSigma},h=Ma.runKernel(Ln,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),lf=Xa({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=ja(e,"boxes","nonMaxSuppression"),o=ja(t,"scores","nonMaxSuppression"),l=Kh(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=Ma.runKernel(Pn,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),uf=Xa({resizeBilinear_:function(e,t,n=!1,r=!1){const a=ja(e,"images","resizeBilinear");Q(3===a.rank||4===a.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${a.rank}.`)),Q(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Q(!1===r||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=_l(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Ma.runKernel(tr,o,l);return i?_l(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),cf=Xa({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=ja(e,"images","resizeNearestNeighbor");Q(3===a.rank||4===a.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${a.rank}.`)),Q(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Q("float32"===a.dtype||"int32"===a.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Q(!1===r||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=_l(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Ma.runKernel(Qn,o,l);return i?_l(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),hf=Xa({bandPart_:function(e,t,n){Q(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Q(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`));const r=ja(e,"a","bandPart");Q(r.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`));const a=r.shape,[s,i]=r.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);const o=_l(Ic(0,s,1,"int32"),[-1,1]),l=Ic(0,i,1,"int32"),u=zo(o,l),c=Hu(Cu(u,Oo(+t,"int32")),bu(u,Oo(-n,"int32"))),h=oc([s,i],r.dtype);return _l(ah(yh(_l(r,[-1,s,i])).map((e=>su(c,e,h)))),a)}}),ff=Xa({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Q(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=eh(e,e.shape[0],0).map((e=>rh(e,[0])));Q(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],r=e;for(let t=0;t{let e=r[t];if(t>0)for(let r=0;r{Q(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],r=e.shape[1];let a=pu(n),s=js(e);const i=uh([[1]],[1,1]);let o=js(i);const l=n>=r?r:n;for(let e=0;e{const t=Nl(s,[e,e],[n-e,1]),l=kh(t),u=Nl(s,[e,e],[1,1]),c=su(yu(u,0),uh([[-1]]),uh([[1]])),h=zo(u,ko(c,l)),f=_o(t,h);o=1===f.shape[0]?js(i):Cl([i,Nl(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Du(_o(ui(c,h),l)),p=Nl(s,[e,0],[n-e,r]),m=ko(d,o),g=hi(o);if(0===e)s=zo(p,ui(m,ui(g,p)));else{const t=zo(p,ui(m,ui(g,p)));s=Cl([Nl(s,[0,0],[e,r]),t],0)}const y=hi(m),b=Nl(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=zo(b,ui(ui(b,o),y));else{const t=zo(b,ui(ui(b,o),y));a=Cl([Nl(a,[0,0],[n,e]),t],1)}return[o,s,a]})),oo([t,l,u])}return!t&&n>r&&(a=Nl(a,[0,0],[n,r]),s=Nl(s,[0,0],[r,r])),[a,s]}))}const pf=Xa({qr_:function(e,t=!1){if(Q(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return df(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=yh(_l(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=df(e,t);a.push(n),s.push(r)})),[_l(ah(a,0),e.shape),_l(ah(s,0),e.shape)]}}});var mf;!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(mf||(mf={}));const gf=Xa({computeWeightedLoss_:function(e,t,n=mf.SUM_BY_NONZERO_WEIGHTS){const r=ja(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=ja(t,"weights","computeWeightedLoss"));const s=null==a?r:ko(r,a);if(n===mf.NONE)return s;if(n===mf.SUM)return Ou(s);if(n===mf.MEAN){if(null==a)return Ju(s);{const e=r.size/a.size,t=_o(Ou(s),Ou(a));return e>1?_o(t,Oo(e)):t}}if(n===mf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return _o(Ou(s),Oo(r.size));{const e=ko(a,lc(r.shape)),t=Vs(Ou(ic(e,Oo(0))),"float32");return _o(Ou(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),yf=Xa({absoluteDifference_:function(e,t,n,r=mf.SUM_BY_NONZERO_WEIGHTS){const a=ja(e,"labels","absoluteDifference"),s=ja(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=ja(n,"weights","absoluteDifference")),ee(a.shape,s.shape,"Error in absoluteDifference: ");const o=Uo(zo(a,s));return gf(o,i,r)}}),bf=Xa({cosineDistance_:function(e,t,n,r,a=mf.SUM_BY_NONZERO_WEIGHTS){const s=ja(e,"labels","cosineDistance"),i=ja(t,"predictions","cosineDistance");let o=null;null!=r&&(o=ja(r,"weights","cosineDistance")),ee(s.shape,i.shape,"Error in cosineDistance: ");const l=Oo(1),u=zo(l,Ou(ko(s,i),n,!0));return gf(u,o,a)}}),vf=Xa({hingeLoss_:function(e,t,n,r=mf.SUM_BY_NONZERO_WEIGHTS){let a=ja(e,"labels","hingeLoss");const s=ja(t,"predictions","hingeLoss");let i=null;null!=n&&(i=ja(n,"weights","hingeLoss")),ee(a.shape,s.shape,"Error in hingeLoss: ");const o=Oo(1);a=zo(ko(Oo(2),a),o);const l=Tc(zo(o,ko(a,s)));return gf(l,i,r)}}),wf=Xa({huberLoss_:function(e,t,n,r=1,a=mf.SUM_BY_NONZERO_WEIGHTS){const s=ja(e,"labels","huberLoss"),i=ja(t,"predictions","huberLoss");let o=null;null!=n&&(o=ja(n,"weights","huberLoss")),ee(s.shape,i.shape,"Error in huberLoss: ");const l=Oo(r),u=Uo(zo(i,s)),c=ec(u,l),h=zo(u,c),f=wo(ko(Oo(.5),Co(c)),ko(l,h));return gf(f,o,a)}}),xf=Xa({logLoss_:function(e,t,n,r=1e-7,a=mf.SUM_BY_NONZERO_WEIGHTS){const s=ja(e,"labels","logLoss"),i=ja(t,"predictions","logLoss");let o=null;null!=n&&(o=ja(n,"weights","logLoss")),ee(s.shape,i.shape,"Error in logLoss: ");const l=Oo(1),u=Oo(r),c=Du(ko(s,Iu(wo(i,u)))),h=ko(zo(l,s),Iu(wo(zo(l,i),u))),f=zo(c,h);return gf(f,o,a)}}),_f=Xa({meanSquaredError_:function(e,t,n,r=mf.SUM_BY_NONZERO_WEIGHTS){const a=ja(e,"labels","meanSquaredError"),s=ja(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=ja(n,"weights","meanSquaredError")),ee(a.shape,s.shape,"Error in meanSquaredError: ");const o=nh(a,s);return gf(o,i,r)}}),kf=Xa({sigmoidCrossEntropy_:function(e,t,n,r=0,a=mf.SUM_BY_NONZERO_WEIGHTS){let s=ja(e,"multiClassLabels","sigmoidCrossEntropy");const i=ja(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=ja(n,"weights","sigmoidCrossEntropy")),ee(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=Oo(r),t=Oo(1),n=Oo(.5);s=wo(ko(s,zo(t,e)),ko(n,e))}const l=function(e,t){const n=ja(e,"labels","sigmoidCrossEntropyWithLogits"),r=ja(t,"logits","sigmoidCrossEntropyWithLogits");ee(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=Tc(r),s=ko(r,n),i=Au(cu(Du(Uo(r))));return wo(zo(a,s),i)}(s,i);return gf(l,o,a)}}),Ef=Xa({softmaxCrossEntropy_:function(e,t,n,r=0,a=mf.SUM_BY_NONZERO_WEIGHTS){let s=ja(e,"onehotLabels","softmaxCrossEntropy");const i=ja(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=ja(n,"weights","softmaxCrossEntropy")),ee(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=Oo(r),t=Oo(1),n=Oo(s.shape[1]);s=wo(ko(s,zo(t,e)),_o(e,n))}const l=function(e,t,n=-1){if(-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Fo(((e,t,r)=>{const a=ju(t,[n],!0),s=zo(Vs(t,"float32"),a);r([e,s]);const i=Du(ko(s,e));return{value:Ou(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Lu(e.shape,[n]);return[ko(_l(e,s),zo(Vs(r,"float32"),cu(a))),ko(_l(e,s),zo(cu(a),Vs(r,"float32")))]}}}))(e,t)}(s,i);return gf(l,o,a)}}),Cf={fft:Yc,ifft:Jc,rfft:th,irfft:Qc},Sf={hammingWindow:Uh,hannWindow:Vh,frame:jh,stft:Hh},Nf={flipLeftRight:Xh,resizeNearestNeighbor:cf,resizeBilinear:uf,rotateWithOffset:qh,cropAndResize:Gh,nonMaxSuppression:Zh,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=ja(e,"boxes","nonMaxSuppressionAsync"),i=ja(t,"scores","nonMaxSuppressionAsync"),o=Kh(s,i,n,r,a);n=o.maxOutputSize,r=o.iouThreshold,a=o.scoreThreshold;const l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:h}=Qh(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),lh(h,"int32")},nonMaxSuppressionWithScore:of,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=ja(e,"boxes","nonMaxSuppressionAsync"),o=ja(t,"scores","nonMaxSuppressionAsync"),l=Kh(i,o,n,r,a,s);n=l.maxOutputSize,r=l.iouThreshold,a=l.scoreThreshold,s=l.softNmsSigma;const u=await Promise.all([i.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:f,selectedScores:d}=tf(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:lh(f,"int32"),selectedScores:lh(d)}},nonMaxSuppressionPadded:lf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=ja(e,"boxes","nonMaxSuppressionAsync"),o=ja(t,"scores","nonMaxSuppressionAsync"),l=Kh(i,o,n,r,a,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[f,d]=await Promise.all([i.data(),o.data()]),{selectedIndices:p,validOutputs:m}=ef(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:lh(p,"int32"),validOutputs:Oo(m,"int32")}}},If={bandPart:hf,gramSchmidt:ff,qr:pf},Af={absoluteDifference:yf,computeWeightedLoss:gf,cosineDistance:bf,hingeLoss:vf,huberLoss:wf,logLoss:xf,meanSquaredError:_f,sigmoidCrossEntropy:kf,softmaxCrossEntropy:Ef};class Df{static sgd(e){return new qo(e)}static momentum(e,t,n=!1){return new Ko(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new Zo(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new Wo(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Mo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new Xo(e,t,n,r,a)}static adagrad(e,t=.1){return new Po(e,t)}}const Tf={sgd:Df.sgd,momentum:Df.momentum,adadelta:Df.adadelta,adagrad:Df.adagrad,rmsprop:Df.rmsprop,adamax:Df.adamax,adam:Df.adam},Ff="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Rf(){return new Promise((e=>Ff((()=>e()))))}function Of(e,t){const n=e[0].length;e.forEach(((e,t)=>{Q(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Q(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const r=e[0];e.forEach(((e,a)=>{for(let s=0;s`Error in concat${n}D: Shape of tensors[${a}] (${e}) does not match the shape of the rest (${r}) along the non-concatenated axis ${a}.`))}))}function Bf(e,t){const n=e[0].slice();for(let r=1;r=2*t+1||r%2==1?a.push(r):n.push(r);r.push(...n),r.push(0),r.push(...a)}return r}function Wf(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n"Number of splits must evenly divide the axis.")),r=new Array(t).fill(e.shape[n]/t);else{Q(t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0)<=1,(()=>"There should be only one negative value in split array."));const a=t.indexOf(-1);if(-1!==a){const r=t.reduce(((e,t)=>t>0?e+t:e));t[a]=e.shape[n]-r}Q(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),r=t}return r}function ud(e,t){let n,r=!1;for(e<=Mf?(n=e,r=!0):n=Ie(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=Ie(e,n+1);return n}function cd(e,t,n){const r=[],a=e.length;for(let s=0;sa))throw new Error(`Expect batchDims in the range of [-${a}, ${a}], but got ${r}`);if(r<0&&(r+=a),r>s)throw new Error(`batchDims (${r}) must be less than rank(x) (\n ${s}).`);if(nra(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function dd(e){return e.map((e=>na(e)))}const pd={kernelName:He,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,sh(Vs(n,"float32"),-1))}}},md={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Co(Vs(n,"float32")),r=Eo(zo(Oo(1),t));return Du(_o(e,r))}}}},gd={kernelName:Xe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Eo(zo(Co(Vs(n,"float32")),1));return _o(e,t)}}}},yd={kernelName:qe,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{let t=e;const r=jo(n.shape,a);return r.length>0&&(t=Ou(t,r)),_l(t,n.shape)},b:()=>{let t=e;const n=jo(r.shape,a);return n.length>0&&(t=Ou(t,n)),_l(t,r.shape)}}}},bd={kernelName:Ke,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},vd={kernelName:Je,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(n)}}},wd={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(n)}}},xd={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,Eo(zo(Oo(1),Co(Vs(n,"float32")))))}}},_d={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Eo(wo(Oo(1),Co(Vs(n,"float32"))));return _o(e,t)}}}},kd={kernelName:at,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{const t=wo(Co(n),Co(r));let s=ko(e,_o(r,t));const i=jo(n.shape,a);return i.length>0&&(s=Ou(s,i)),_l(s,n.shape)},b:()=>{const t=wo(Co(n),Co(r));let s=Du(ko(e,_o(n,t)));const i=jo(r.shape,a);return i.length>0&&(s=Ou(s,i)),_l(s,r.shape)}}}},Ed={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,wo(Co(Vs(n,"float32")),1))}}},Cd={kernelName:rt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,zo(Oo(1),Co(Vs(n,"float32"))))}}},Sd=Xa({avgPool3dGrad_:function(e,t,n,r,a,s){const i=ja(e,"dy","avgPool3dGrad"),o=ja(t,"input","avgPool3dGrad");let l=i,u=o,c=!1;4===o.rank&&(c=!0,l=_l(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=_l(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Q(5===l.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`)),Q(5===u.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`)),null!=s&&Q(ie(a),(()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${a}.`));const h={dy:l,input:u},f={filterSize:n,strides:r,pad:a,dimRoundingMode:s},d=Ma.runKernel(lt,h,f);return c?_l(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}}),Nd={kernelName:ot,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>Sd(e,r,a,s,i,o)}}},Id=Xa({avgPoolGrad_:function(e,t,n,r,a){const s=ja(e,"dy","avgPoolGrad"),i=ja(t,"input","avgPoolGrad");Q(i.rank===s.rank,(()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`));let o=i,l=s,u=!1;3===i.rank&&(u=!0,o=_l(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=_l(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Q(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Q(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:r,pad:a},f=Ma.runKernel(it,c,h);return u?_l(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Ad={kernelName:st,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>Id(e,r,a,s,i)}}},Dd={kernelName:ut,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>ui(e,a,!1,!1),b:()=>ui(e,r,!0,!1)}:s&&!i?{a:()=>ui(a,e,!1,!0),b:()=>ui(r,e,!1,!1)}:{a:()=>ui(a,e,!0,!0),b:()=>ui(e,r,!0,!0)}:{a:()=>ui(e,a,!1,!0),b:()=>ui(r,e,!0,!1)}}},Td={kernelName:ct,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>gc(e,r,a)}}},Fd={kernelName:ft,gradFunc:(e,t,n)=>{const r=n,a=r.inputShape,s=r.shape,i=Array.from(s);for(let e=a.length-1;e>=0;e--)if(a[e]===s[e])i[e]=1;else if(1!==a[e])throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${s}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>Ou(e,o,!0)}}},Rd={kernelName:dt,gradFunc:e=>({x:()=>e.clone()})},Od={kernelName:pt,gradFunc:e=>({x:()=>So(e)})},Bd={kernelName:mt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>su(Hu(bu(r,a),Cu(r,s)),e,So(e))}}},Md={kernelName:yt,inputsToSave:["x"],gradFunc:pd.gradFunc},$d={kernelName:bt,saveAllInputs:!0,gradFunc:(e,t,n)=>{const r=t.map((e=>e.shape)),{axis:a}=n,s=de(a,t[0].shape)[0],i=r.map((e=>e[s]));return eh(e,i,s).map((e=>()=>e))}},Pd={kernelName:vt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Q(vl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Hl(r.shape,e,a,i,o,l),filter:()=>Fh(r,e,a.shape,i,o,l)}}},Ld={kernelName:xt,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Vl(e,a,s,i,o,1,l),filter:()=>Fh(e,r,a.shape,s,i,o,l)}}},zd=Xa({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=_l(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=_l(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Q(5===s.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`)),Q(5===i.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`)),Q(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Q(s.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`)),Q(i.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:s,dy:i},l={strides:r,pad:a,filterShape:n};return Ma.runKernel(kt,o,l)}}),Wd={kernelName:_t,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Q(vl(r),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`));const[i,o]=t;return{x:()=>ql(i.shape,e,o,a,s),filter:()=>zd(i,e,o.shape,a,s)}}},Ud={kernelName:Ct,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(Du(jc(Vs(n,"float32"))),e)}}},Vd={kernelName:St,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(Hc(Vs(n,"float32")),e)}}},jd={kernelName:Nt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=Wu([a],r.rank);let n=Jl(e,a,s,!i);return null!=t&&(n=hi(n,t)),n}}}},Hd={kernelName:Tt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Q(vl(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Q(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Q(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Q(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Q(wl(a,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'.`)),null!=i&&Q(ie(s),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`)),{x:()=>Lh(l.shape,e,u,a,s,r,i),filter:()=>Ph(l,e,u.shape,a,s,r,i)}}},Gd={kernelName:Bt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,s={x:r,filter:a,dy:e},i={x:r,filter:a,dy:e};return{x:()=>Ma.runKernel(Mt,s,n),filter:()=>Ma.runKernel($t,i,n)}}},Xd={kernelName:Lt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>Ma.runKernel(zt,r)}}},qd={kernelName:Wt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=ko(cu(Du(Co(n))),2/Math.sqrt(Math.PI));return{x:()=>ko(e,r)}}},Kd={kernelName:Vt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,n)}}},Zd={kernelName:jt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>_l(e,n.shape)}}},Yd={kernelName:Ht,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,cu(n))}}},Jd={kernelName:Kt,gradFunc:e=>({x:()=>So(e)})},Qd={kernelName:Zt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{const t=_o(e,Vs(r,"float32")),s=jo(n.shape,a);return s.length>0?_l(Ou(t,s),n.shape):t},b:()=>{let t=ko(e,Vs(n,"float32"));const s=jo(r.shape,a);s.length>0&&(t=_l(Ou(t,s),r.shape));const i=Co(r);return Du(_o(t,Vs(i,"float32")))}}}},ep={kernelName:Yt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?Oo(1):o,u=jo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?_l(ko(ko(e,du(_l(d,[1,1,1,s.shape[0]]),c)),l),a.shape):_l(ko(ko(e,d),l),a.shape),mean:()=>{let e=ko(ko(d,Oo(-1)),f);return 1===s.rank&&(e=Ou(e,u)),_l(e,s.shape)},variance:()=>{let e=ko(ko(p,h),f);return 1===s.rank&&(e=Ou(e,u)),_l(e,s.shape)},scale:()=>{const t=ko(h,d);let n=ko(e,t);return 1===s.rank&&(n=Ou(n,u)),_l(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=Ou(t,u)),_l(t,s.shape)}}}},tp={kernelName:Jt,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[r,a]=t,{axis:s}=n,i=de(s,r.shape)[0];return{x:()=>{const t=r.shape,n=a.size,o=t.slice(0,i),l=o.length,u=t.slice(s,t.length).slice(1),c=u.length,h=np(0,l),f=np(l+1,l+1+c),d=rp([o,[n],u]),p=_l(e,d),m=_l(a,[n]),g=rp([[l],h,f]),y=hi(p,g);let b=gh(y,m,r.shape[i]);const v=Uu(g);return b=hi(b,v),b},indices:()=>a}}};function np(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>So(n),b:()=>So(r)}}},sp={kernelName:nn,gradFunc:e=>({x:()=>Vs(e,"float32")})},ip={kernelName:sn,gradFunc:e=>({x:()=>So(e)})},op={kernelName:on,gradFunc:e=>({x:()=>So(e)})},lp={kernelName:ln,gradFunc:e=>({x:()=>So(e)})},up={kernelName:un,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=yu(r,0);return{x:()=>su(s,e,ko(e,a))}}},cp={kernelName:pn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,wo(n,1))}}},hp={kernelName:dn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,Vs(n,"float32"))}}},fp={kernelName:bn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=cu(r);return zo(e,ko(Ou(e,a,!0),t))}}}},dp=Xa({localResponseNormalizationBackprop_:function(e,t,n,r=5,a=1,s=1,i=.5){const o={x:e,y:t,dy:n},l={depthRadius:r,bias:a,alpha:s,beta:i};return Ma.runKernel(wn,o,l)}}),pp={kernelName:vn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>dp(r,a,e,s,i,o,l)}}};function mp(e,t,n,r){return t.rankko(e,Vs(au(n,t),e.dtype))}}const gp={kernelName:xn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=mp(e,t[1],s,de(a,s.shape));return{x:()=>i.x()}}},yp={kernelName:_n,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>ko(e,Vs(bu(n,r),"float32")),b:()=>ko(e,Vs(Eu(n,r),"float32"))}}},bp=Xa({maxPool3dGrad_:function(e,t,n,r,a,s,i){const o=ja(e,"dy","maxPool3dGrad"),l=ja(t,"input","maxPool3dGrad"),u=ja(n,"output","maxPool3dGrad");let c=o,h=l,f=u,d=!1;4===l.rank&&(d=!0,c=_l(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=_l(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=_l(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),Q(5===c.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`)),Q(5===h.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${h.rank}.`)),Q(5===f.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${f.rank}.`)),null!=i&&Q(ie(s),(()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const p={dy:c,input:h,output:f},m={filterSize:r,strides:a,pad:s,dimRoundingMode:i},g=Ma.runKernel(Sn,p,m);return d?_l(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),vp={kernelName:Cn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>bp(e,r,a,s,i,o,l)}}},wp=Xa({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=ja(e,"dy","maxPoolGrad"),l=ja(t,"input","maxPoolGrad"),u=ja(n,"output","maxPoolGrad");Q(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Q(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Q(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),null!=i&&Q(ie(s),(()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const c={dy:o,input:l,output:u},h={filterSize:r,strides:a,pad:s,dimRoundingMode:i};return Ma.runKernel(En,c,h)}}),xp={kernelName:Vn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Nl(e,s,r.shape)}}},_p={kernelName:br,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>Dl(e,r,a)}}},kp={kernelName:vr,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Cl(e,r)}}},Ep=[pd,md,gd,yd,bd,vd,wd,xd,_d,kd,Ed,Cd,Nd,Ad,Dd,Td,Fd,Rd,Od,Bd,Md,$d,Ld,Pd,Wd,Ud,Vd,jd,Hd,Gd,{kernelName:Pt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{const t=_o(e,Vs(r,"float32")),s=jo(n.shape,a);return s.length>0?_l(Ou(t,s),n.shape):t},b:()=>{let t=ko(e,Vs(n,"float32"));const s=jo(r.shape,a);s.length>0&&(t=_l(Ou(t,s),r.shape));const i=Co(r);return Du(_o(t,Vs(i,"float32")))}}}},Xd,qd,Kd,Zd,Yd,Qd,Jd,ep,tp,ap,sp,ip,op,lp,up,cp,hp,fp,pp,gp,gp,yp,vp,{kernelName:kn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>wp(e,r,a,s,i,o)}}},{kernelName:In,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=de(a,r.shape),i=re(Pu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=_l(e,t);return _o(ko(n,lc(r.shape,"float32")),i)}}}},{kernelName:An,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=mp(e,i,s,de(a,s.shape));return{x:()=>o.x()}}},{kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>ko(e,Vs(Cu(n,r),"float32")),b:()=>ko(e,Vs(yu(n,r),"float32"))}}},{kernelName:Tn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Nl(e,s,r.shape)}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{const t=jo(n.shape,a);return t.length>0?_l(Ou(e,t),n.shape):e},b:()=>{const t=ko(e,Du(mu(_o(n,r)))),s=jo(r.shape,a);return s.length>0?_l(Ou(t,s),r.shape):t}}}},{kernelName:On,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{const t=ko(e,Vs(r,"float32")),s=jo(n.shape,a);return s.length>0?_l(Ou(t,s),n.shape):t},b:()=>{const t=ko(e,Vs(n,"float32")),s=jo(r.shape,a);return s.length>0?_l(Ou(t,s),r.shape):t}}}},{kernelName:Bn,gradFunc:e=>({x:()=>Du(e)})},{kernelName:Wn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>oc(n.shape,"float32")}}},{kernelName:zn,gradFunc:e=>({x:()=>So(e)})},{kernelName:Un,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return yh(e,r).map((e=>()=>e))}},xp,xp,{kernelName:Hn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Ho(s.shape,i.shape);return{a:()=>{const t=Vs(i,"float32");let n=ko(e,ko(t,Lo(s,zo(t,Oo(1)))));const r=jo(s.shape,o);return r.length>0&&(n=Ou(n,r)),_l(n,s.shape)},b:()=>{const t=yu(s,0),n=su(t,Iu(s),So(s));let r=ko(e,ko(a,n));const l=jo(i.shape,o);return l.length>0&&(r=Ou(r,l)),_l(r,i.shape)}}}},{kernelName:Gn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=yu(n,0);return{x:()=>su(a,e,ko(e,r)),alpha:()=>{let t=su(a,So(e),ko(e,n));const s=jo(r.shape,e.shape);return s.length>0&&(t=Ou(t,s)),_l(t,r.shape)}}}},{kernelName:Zn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,Du(Co(n)))}}},{kernelName:rr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=ko(Cu(n,6),sh(n));return{x:()=>ko(e,Vs(r,"float32"))}}},{kernelName:Yn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,Vs(sh(n),"float32"))}}},{kernelName:Jn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_l(e,n.shape)}}},{kernelName:tr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Ma.runKernel(nr,a,n)}}},{kernelName:Qn,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Ma.runKernel(er,a,n)}}},{kernelName:ar,gradFunc:(e,t,n)=>{const{dims:r}=n,a=de(r,e.shape);return{x:()=>Rc(e,a)}}},{kernelName:sr,gradFunc:e=>({x:()=>So(e)})},{kernelName:ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Du(_o(e,ko(Lo(n,1.5),2)))}}},{kernelName:lr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>Vs(So(n),"float32"),t:()=>ko(e,Vs(n,e.dtype)),e:()=>ko(e,Vs(Gu(n),e.dtype))}}},{kernelName:ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=yu(n,Oo(0)),r=Oo(jf),a=Oo(Hf),s=ko(e,a),i=ko(ko(e,r),cu(Vs(n,"float32")));return su(t,s,i)}}}},{kernelName:pr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,ko(n,zo(Oo(1),n)))}}},{kernelName:dr,gradFunc:e=>({x:()=>So(e)})},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(Zl(Vs(n,"float32")),e)}}},{kernelName:fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(Yl(Vs(n,"float32")),e)}}},{kernelName:cr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Bi(r,a,s),u=[];for(let t=0;thc(e,u)}}},{kernelName:wr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=ko(e,r);return{logits:()=>zo(s,ko(Ou(s,[a],!0),r))}}},{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,Sl(n))}}},_p,_p,kp,kp,{kernelName:gr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,ko(Eo(Vs(n,"float32")),2))}}},{kernelName:xr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Oo(2);return{a:()=>ko(e,ko(a,zo(n,r))),b:()=>ko(e,ko(a,zo(r,n)))}}},{kernelName:_r,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(e,ko(Vs(n,"float32"),2))}}},{kernelName:Br,gradFunc:e=>({x:()=>So(e)})},{kernelName:kr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ho(n.shape,r.shape);return{a:()=>{let t=e;const r=jo(n.shape,a);return r.length>0&&(t=Ou(t,r)),_l(t,n.shape)},b:()=>{let t=e;const n=jo(r.shape,a);return n.length>0&&(t=Ou(t,n)),_l(Du(t),r.shape)}}}},{kernelName:yr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,a=r.shape.slice(),{axis:s}=n;de(s,r.shape).forEach((e=>{a[e]=1}));const i=_l(e,a),o=ko(i,lc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>_o(e,Co(Zl(n)))}}},{kernelName:Nr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(zo(Oo(1),Co(n)),e)}}},{kernelName:Ir,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=So(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Uu(a);return{x:()=>hi(e,s)}}},{kernelName:Fr,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>ah(e,a)}}},{kernelName:Rr,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=Go(t,So(t)),r=gu(e,n);let a=bu(t,Oo(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>So(e)})}];for(const e of Ep)Xr(e);let Cp;function Sp(){return null==Cp&&(Cp=bo().epsilon()),Cp}ya().prototype.abs=function(){return this.throwIfDisposed(),Uo(this)},ya().prototype.acos=function(){return this.throwIfDisposed(),Yo(this)},ya().prototype.acosh=function(){return this.throwIfDisposed(),Jo(this)},ya().prototype.add=function(e){return this.throwIfDisposed(),wo(this,e)},ya().prototype.all=function(e,t){return this.throwIfDisposed(),el(this,e,t)},ya().prototype.any=function(e,t){return this.throwIfDisposed(),tl(this,e,t)},ya().prototype.argMax=function(e){return this.throwIfDisposed(),nl(this,e)},ya().prototype.argMin=function(e){return this.throwIfDisposed(),rl(this,e)},ya().prototype.asScalar=function(){return this.throwIfDisposed(),Q(1===this.size,(()=>"The array must have only 1 element.")),_l(this,[])},ya().prototype.asType=function(e){return this.throwIfDisposed(),Vs(this,e)},ya().prototype.as1D=function(){return this.throwIfDisposed(),_l(this,[this.size])},ya().prototype.as2D=function(e,t){return this.throwIfDisposed(),_l(this,[e,t])},ya().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),_l(this,[e,t,n])},ya().prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),_l(this,[e,t,n,r])},ya().prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),_l(this,[e,t,n,r,a])},ya().prototype.asin=function(){return this.throwIfDisposed(),al(this)},ya().prototype.asinh=function(){return this.throwIfDisposed(),sl(this)},ya().prototype.atan=function(){return this.throwIfDisposed(),il(this)},ya().prototype.atan2=function(e){return this.throwIfDisposed(),ol(this,e)},ya().prototype.atanh=function(){return this.throwIfDisposed(),ll(this)},ya().prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),kl(this,e,t,n,r)},ya().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Dl(this,e,t)},ya().prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Tl(this,e,t,n,r,a)},ya().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Ml(this,e)},ya().prototype.cast=function(e){return this.throwIfDisposed(),Vs(this,e)},ya().prototype.ceil=function(){return this.throwIfDisposed(),$l(this)},ya().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Pl(this,e,t)},ya().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof ga&&(e=[e]),Cl([this,...e],t)},ya().prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),jl(this,e,t,n,r,a,s)},ya().prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),Gl(this,e,t,n,r,a)},ya().prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Vl(this,e,t,n,r,a,s)},ya().prototype.cos=function(){return this.throwIfDisposed(),Zl(this)},ya().prototype.cosh=function(){return this.throwIfDisposed(),Yl(this)},ya().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Jl(this,e,t,n)},ya().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),eu(this,e,t)},ya().prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),tu(this,e,t,n,r,a,s)},ya().prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),ru(this,e,t,n,r,a)},ya().prototype.divNoNan=function(e){return this.throwIfDisposed(),iu(this,e)},ya().prototype.div=function(e){return this.throwIfDisposed(),_o(this,e)},ya().prototype.dot=function(e){return this.throwIfDisposed(),ou(this,e)},ya().prototype.elu=function(){return this.throwIfDisposed(),lu(this)},ya().prototype.equal=function(e){return this.throwIfDisposed(),au(this,e)},ya().prototype.erf=function(){return this.throwIfDisposed(),uu(this)},ya().prototype.exp=function(){return this.throwIfDisposed(),cu(this)},ya().prototype.expandDims=function(e){return this.throwIfDisposed(),hu(this,e)},ya().prototype.expm1=function(){return this.throwIfDisposed(),fu(this)},ya().prototype.fft=function(){return this.throwIfDisposed(),Yc(this)},ya().prototype.flatten=function(){return this.throwIfDisposed(),_l(this,[this.size])},ya().prototype.floor=function(){return this.throwIfDisposed(),mu(this)},ya().prototype.floorDiv=function(e){return this.throwIfDisposed(),xo(this,e)},ya().prototype.gather=function(e,t){return this.throwIfDisposed(),gu(this,e,t)},ya().prototype.greaterEqual=function(e){return this.throwIfDisposed(),bu(this,e)},ya().prototype.greater=function(e){return this.throwIfDisposed(),yu(this,e)},ya().prototype.ifft=function(){return this.throwIfDisposed(),Jc(this)},ya().prototype.irfft=function(){return this.throwIfDisposed(),Qc(this)},ya().prototype.isFinite=function(){return this.throwIfDisposed(),wu(this)},ya().prototype.isInf=function(){return this.throwIfDisposed(),xu(this)},ya().prototype.isNaN=function(){return this.throwIfDisposed(),_u(this)},ya().prototype.leakyRelu=function(e){return this.throwIfDisposed(),ku(this,e)},ya().prototype.lessEqual=function(e){return this.throwIfDisposed(),Cu(this,e)},ya().prototype.less=function(e){return this.throwIfDisposed(),Eu(this,e)},ya().prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Nu(this,e,t,n,r)},ya().prototype.logSigmoid=function(){return this.throwIfDisposed(),Fu(this)},ya().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Bu(this,e)},ya().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),ju(this,e,t)},ya().prototype.log=function(){return this.throwIfDisposed(),Iu(this)},ya().prototype.log1p=function(){return this.throwIfDisposed(),Au(this)},ya().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Hu(this,e)},ya().prototype.logicalNot=function(){return this.throwIfDisposed(),Gu(this)},ya().prototype.logicalOr=function(e){return this.throwIfDisposed(),Xu(this,e)},ya().prototype.logicalXor=function(e){return this.throwIfDisposed(),qu(this,e)},ya().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ui(this,e,t,n)},ya().prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Ku(this,e,t,n,r)},ya().prototype.max=function(e,t){return this.throwIfDisposed(),Ru(this,e,t)},ya().prototype.maximum=function(e){return this.throwIfDisposed(),Go(this,e)},ya().prototype.mean=function(e,t){return this.throwIfDisposed(),Ju(this,e,t)},ya().prototype.min=function(e,t){return this.throwIfDisposed(),Qu(this,e,t)},ya().prototype.minimum=function(e){return this.throwIfDisposed(),ec(this,e)},ya().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),tc(this,e,t)},ya().prototype.mod=function(e){return this.throwIfDisposed(),nc(this,e)},ya().prototype.mul=function(e){return this.throwIfDisposed(),ko(this,e)},ya().prototype.neg=function(){return this.throwIfDisposed(),Du(this)},ya().prototype.norm=function(e,t,n){return this.throwIfDisposed(),kh(this,e,t,n)},ya().prototype.notEqual=function(e){return this.throwIfDisposed(),ic(this,e)},ya().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),ci(this,e,t,n)},ya().prototype.onesLike=function(){return this.throwIfDisposed(),uc(this)},ya().prototype.pad=function(e,t){return this.throwIfDisposed(),hc(this,e,t)},ya().prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),yc(this,e,t,n,r,a)},ya().prototype.pow=function(e){return this.throwIfDisposed(),Lo(this,e)},ya().prototype.prelu=function(e){return this.throwIfDisposed(),bc(this,e)},ya().prototype.prod=function(e,t){return this.throwIfDisposed(),vc(this,e,t)},ya().prototype.reciprocal=function(){return this.throwIfDisposed(),Dc(this)},ya().prototype.relu=function(){return this.throwIfDisposed(),Tc(this)},ya().prototype.relu6=function(){return this.throwIfDisposed(),Fc(this)},ya().prototype.reshapeAs=function(e){return this.throwIfDisposed(),_l(this,e.shape)},ya().prototype.reshape=function(e){return this.throwIfDisposed(),_l(this,e)},ya().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),uf(this,e,t,n)},ya().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),cf(this,e,t,n)},ya().prototype.reverse=function(e){return this.throwIfDisposed(),Rc(this,e)},ya().prototype.rfft=function(){return this.throwIfDisposed(),th(this)},ya().prototype.round=function(){return this.throwIfDisposed(),Pc(this)},ya().prototype.rsqrt=function(){return this.throwIfDisposed(),Lc(this)},ya().prototype.selu=function(){return this.throwIfDisposed(),zc(this)},ya().prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Wc(this,e,t,n,r,a,s)},ya().prototype.sigmoid=function(){return this.throwIfDisposed(),Sl(this)},ya().prototype.sign=function(){return this.throwIfDisposed(),Vc(this)},ya().prototype.sin=function(){return this.throwIfDisposed(),jc(this)},ya().prototype.sinh=function(){return this.throwIfDisposed(),Hc(this)},ya().prototype.slice=function(e,t){return this.throwIfDisposed(),Nl(this,e,t)},ya().prototype.softmax=function(e){return this.throwIfDisposed(),Zc(this,e)},ya().prototype.softplus=function(){return this.throwIfDisposed(),Tu(this)},ya().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),gc(this,e,t)},ya().prototype.split=function(e,t){return this.throwIfDisposed(),eh(this,e,t)},ya().prototype.sqrt=function(){return this.throwIfDisposed(),Eo(this)},ya().prototype.square=function(){return this.throwIfDisposed(),Co(this)},ya().prototype.squaredDifference=function(e){return this.throwIfDisposed(),nh(this,e)},ya().prototype.squeeze=function(e){return this.throwIfDisposed(),rh(this,e)},ya().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof ga?[this,e]:[this,...e];return ah(n,t)},ya().prototype.step=function(e){return this.throwIfDisposed(),sh(this,e)},ya().prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),ih(this,e,t,n,r,a,s,i,o)},ya().prototype.sub=function(e){return this.throwIfDisposed(),zo(this,e)},ya().prototype.sum=function(e,t){return this.throwIfDisposed(),Ou(this,e,t)},ya().prototype.tan=function(){return this.throwIfDisposed(),oh(this)},ya().prototype.tanh=function(){return this.throwIfDisposed(),Il(this)},ya().prototype.tile=function(e){return this.throwIfDisposed(),du(this,e)},ya().prototype.toBool=function(){return this.throwIfDisposed(),Vs(this,"bool")},ya().prototype.toFloat=function(){return this.throwIfDisposed(),Vs(this,"float32")},ya().prototype.toInt=function(){return this.throwIfDisposed(),Vs(this,"int32")},ya().prototype.topk=function(e,t){return this.throwIfDisposed(),dh(this,e,t)},ya().prototype.transpose=function(e){return this.throwIfDisposed(),hi(this,e)},ya().prototype.unique=function(e){return this.throwIfDisposed(),mh(this,e)},ya().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),gh(this,e,t)},ya().prototype.unstack=function(e){return this.throwIfDisposed(),yh(this,e)},ya().prototype.where=function(e,t){return this.throwIfDisposed(),su(e,this,t)},ya().prototype.zerosLike=function(){return this.throwIfDisposed(),So(this)};class Np extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Np.prototype)}}class Ip extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ip.prototype)}}class Ap extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ap.prototype)}}class Dp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Dp.prototype)}}class Tp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Tp.prototype)}}function Fp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let Lp={};function zp(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Wp(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>Wp(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?Wp(t):e[n]=t.value)}}}function Up(e,t={},n={},r="object",a=!1){if("string"==typeof e){const a=e;let s;if(a in n)s=n[a];else if(a in Lp)s=Lp[a];else if(s=t[a],null==s)throw new Ap(`Unknown ${r}: ${e}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return s}{const s=e;if(null==s.className||null==s.config)throw new Ap(`${r}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);const i=s.className;let o,l;if(i in n?[o,l]=n[i]:i in Lp?[o,l]=Lp.className:i in t&&([o,l]=t[i]),null==o)throw new Ap(`Unknown ${r}: ${i}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(Lp))e[t]=Lp[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},Lp);for(const e of Object.keys(n))Lp[e]=n[e];Wp(s.config);const r=l(o,s.config,n,a);return Lp=Object.assign({},t),r}{const e=Object.assign({},Lp);for(const e of Object.keys(n))Lp[e]=n[e];const t=new o(s.config);return Lp=Object.assign({},e),t}}}function Vp(e,t){return-1*function(e,t){return et?1:0}(e,t)}function jp(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function Hp(e){if(null==e)throw new Ap(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function Gp(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Ap(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Xp(e,t,n=0,r=1/0){return Rp(n>=0),Rp(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function qp(e,t){Array.isArray(e)?(Q(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>qp(e,`element ${n+1} of ${t}`)))):Q(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${Kp(e)}.`))}function Kp(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>Kp(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function Zp(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function Yp(e,t){return io((()=>Eo(Ou(ko(e,e),t,!0))))}class Jp extends $i{getConfig(){return{}}}class Qp extends Jp{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return io((()=>{const t=Yp(e,this.axis),n=Pl(t,0,this.maxValue);return ko(e,_o(n,wo(Sp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}Qp.className="MaxNorm",Li(Qp);class em extends Jp{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return io((()=>_o(e,wo(Sp(),Yp(e,this.axis)))))}getConfig(){return{axis:this.axis}}}em.className="UnitNorm",Li(em);class tm extends Jp{apply(e){return Tc(e)}}tm.className="NonNeg",Li(tm);class nm extends Jp{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return io((()=>{const t=Yp(e,this.axis),n=wo(ko(this.rate,Pl(t,this.minValue,this.maxValue)),ko(1-this.rate,t));return ko(e,_o(n,wo(Sp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}nm.className="MinMaxNorm",Li(nm);const rm={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function am(e){return zp(e)}function sm(e,t={}){return Up(e,Pi.getMap().classNameMap,t,"constraint")}function im(e){return null==e?null:"string"==typeof e?sm({className:e in rm?rm[e]:e,config:{}}):e instanceof Jp?e:sm(e)}function om(e){return new Qp(e)}function lm(e){return new em(e)}function um(){return new tm}function cm(e){return new nm(e)}const hm=["channelsFirst","channelsLast"],fm=["nearest","bilinear"],dm=["valid","same","causal"],pm=["max","avg"],mm=["sum","mul","concat","ave"],gm=new Map;function ym(e){Gp(hm,"DataFormat",e)}function bm(e){Gp(dm,"PaddingMode",e)}function vm(e){Gp(pm,"PoolMode",e)}const wm=[];function xm(e,t){wm.push(e);try{const e=t();return wm.pop(),e}catch(e){throw wm.pop(),e}}function _m(e){if(!Cm(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===wm.length?"":wm.join("/")+"/")+e}function km(e){if(!Cm(e))throw new Error("Not a valid tensor name: '"+e+"'");gm.has(e)||gm.set(e,0);const t=gm.get(e);if(gm.set(e,gm.get(e)+1),t>0){const n=`${e}_${t}`;return gm.set(n,1),n}return e}const Em=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Cm(e){return!!e.match(Em)}function Sm(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let r=1;for(let a=t;a{switch(e.rank){case 1:return Gc(e,t,n);case 2:return Xc(e,[t,0],[n,e.shape[1]]);case 3:return qc(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Kc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Nl(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Nl(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Ap(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Om(e,t,n){return io((()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return Xc(e,[0,t],[e.shape[0],n]);case 3:return qc(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Kc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Ap(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Bm(e,t,n,r){return io((()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:switch(r){case 1:return Rm(e,t,n);case 2:return Om(e,t,n);default:throw new Ap(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return Rm(e,t,n);case 2:return qc(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Om(e,t,n);default:throw new Ap(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return Rm(e,t,n);case 2:return Kc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Kc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Om(e,t,n);default:throw new Ap(`The axis is not within the rank of the tensor ${r}`)}default:throw new Ap(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Mm(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Cl(e,t)}function $m(e,t){switch(e.rank){case 1:return Ll([e,t]);case 2:return zl([e,t],0);case 3:return Wl([e,t],0);case 4:return Ul([e,t],0);default:throw new Ap(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Pm(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Ap(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return du(e,t)}function Lm(e,t=0,n=1,r,a){return Sc(e,t,n,r,a)}function zm(e,t,n,r){if(e.rank<2||t.rank<2)throw new Dp(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3&&e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new Dp(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`);if(2===e.rank&&2===t.rank)return Wh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?Vm(e.rank,r,"channelsLast"):null,activation:n});{const a=e.shape.slice(),s=a.pop();e=e.reshape([-1,s]);const i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=t.transpose(c).reshape([l,-1]);const h=[...a,...u];return Wh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?Vm(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function Wm(e,t,n){return io((()=>(t=Array.isArray(t)?lh(t,"int32"):t.toInt(),gu(e,t,n))))}function Um(e){return ko(e,e)}function Vm(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Ap(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1,1]):t.reshape([1,r[3],r[0],r[1],r[2]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,1,r[0]]):t.reshape([1].concat(r))}else if(4===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1]):t.reshape([1,r[2],r[0],r[1]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,r[0]]):t.reshape([1].concat(r))}else if(3===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1]):t.reshape([1,r[1],r[0]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,r[0]]):t.reshape([1].concat(r))}else if(e<3)return t;throw new Ap(`Unsupported input rank by biasAdd: ${t.rank}`)}function jm(e,t,n){return io((()=>(null==n&&(n="channelsLast"),ym(n),e.add(Vm(e.rank,t,n)))))}function Hm(e,t,n,r){return io((()=>Ih(e,t,n,r)))}function Gm(e,t,n=!1){return n?e():t()}const Xm=["fanIn","fanOut","fanAvg"],qm=["normal","uniform","truncatedNormal"];class Km extends $i{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class Zm extends Km{apply(e,t){return oc(e,t)}}Zm.className="Zeros",Li(Zm);class Ym extends Km{apply(e,t){return lc(e,t)}}Ym.className="Ones",Li(Ym);class Jm extends Km{constructor(e){if(super(),"object"!=typeof e)throw new Ap(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Ap(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return io((()=>ko(Oo(this.value),lc(e,t))))}getConfig(){return{value:this.value}}}Jm.className="Constant",Li(Jm);class Qm extends Km{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Nc(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}Qm.className="RandomUniform",Li(Qm);class eg extends Km{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Dp(`randomNormal does not support dType ${t}.`);return Lm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}eg.className="RandomNormal",Li(eg);class tg extends Km{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Dp(`truncatedNormal does not support dType ${t}.`);return ph(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}tg.className="TruncatedNormal",Li(tg);class ng extends Km{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return io((()=>{if(2!==e.length||e[0]!==e[1])throw new Ap("Identity matrix initializer can only be used for 2D square matrices.");return ko(this.gain,pu(e[0]))}))}getConfig(){return{gain:this.gain}}}ng.className="Identity",Li(ng);class rg extends Km{constructor(e){if(super(),e.scale<0)throw new Ap(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,Gp(Xm,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){Gp(qm,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(ym(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Sm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=Sm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=Sm(e);n=Math.sqrt(t),r=Math.sqrt(t)}return[n,r]}(e),r=n[0],a=n[1];let s=this.scale;if("fanIn"===this.mode?s/=Math.max(1,r):"fanOut"===this.mode?s/=Math.max(1,a):s/=Math.max(1,(r+a)/2),"normal"===this.distribution){const n=Math.sqrt(s);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Dp(`${this.getClassName()} does not support dType ${t}.`);return ph(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Nc(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}rg.className="VarianceScaling",Li(rg);class ag extends rg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return rg.className}}ag.className="GlorotUniform",Li(ag);class sg extends rg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return rg.className}}sg.className="GlorotNormal",Li(sg);class ig extends rg{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return rg.className}}ig.className="HeNormal",Li(ig);class og extends rg{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return rg.className}}og.className="HeUniform",Li(og);class lg extends rg{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return rg.className}}lg.className="LeCunNormal",Li(lg);class ug extends rg{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return rg.className}}ug.className="LeCunNormal",Li(ug);class cg extends Km{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,null!=this.seed)throw new Dp("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return io((()=>{if(e.length<2)throw new Dp("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const t=Lm(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=If.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),ko(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}cg.className="Orthogonal",Li(cg);const hg={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function fg(e,t={}){return Up(e,Pi.getMap().classNameMap,t,"initializer")}function dg(e){return zp(e)}function pg(e){if("string"==typeof e){const t=e in hg?hg[e]:e;if("GlorotNormal"===t)return new sg;if("GlorotUniform"===t)return new ag;if("HeNormal"===t)return new ig;if("HeUniform"===t)return new og;if("LeCunNormal"===t)return new lg;if("LeCunUniform"===t)return new ug;{const e={};return e.className=t,e.config={},fg(e)}}return e instanceof Km?e:fg(e)}function mg(){return new Zm}function gg(){return new Ym}function yg(e){return new Jm(e)}function bg(e){return new Qm(e)}function vg(e){return new eg(e)}function wg(e){return new tg(e)}function xg(e){return new ng(e)}function _g(e){return new rg(e)}function kg(e){return new ag(e)}function Eg(e){return new sg(e)}function Cg(e){return new ig(e)}function Sg(e){return new og(e)}function Ng(e){return new lg(e)}function Ig(e){return new ug(e)}function Ag(e){return new cg(e)}let Dg=0;function Tg(){return Dg++}const Fg={};function Rg(e=""){return e in Fg||(Fg[e]=0),Fg[e]+=1,e+Fg[e].toString()}function Og(e){return Array.isArray(e)&&Array.isArray(e[0])}function Bg(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function Mg(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Ap(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function $g(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Ap(`Expected exactly 1 Shape; got ${e.length}`)}return e}function Pg(e){let t=0;for(const n of e)0===n.shape.length?t+=1:t+=n.shape.reduce(((e,t)=>e*t));return t}class Lg{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Tg(),n=null==n?"Variable":n,this.originalName=_m(n),this.name=km(this.originalName),this.trainable_=r,this.constraint=a,this.val=bh(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function zg(e){return e.map((e=>e.read()))}function Wg(e){e.forEach((e=>{e[0].write(e[1])}))}class Ug{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class Vg{constructor(e,t,n,r,a,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=r,this.callArgs=a,this.outputTensorIndex=i,this.id=Tg(),null!=s&&(this.originalName=_m(s),this.name=km(this.originalName)),this.rank=t.length}}let jg=0;class Hg{constructor(e,t){this.callArgs=t,this.id=jg++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let Gg=0;class Xg extends $i{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=Gg++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=$p(e)+"_"+Rg(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Ip(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Ap(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Bp(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Bp(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Np(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Np(`Layer ${this.name} is not connected, no input to return.`);return Bp(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Np(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Np(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Bp(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=Mp(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=Mp(this.inputSpec);if(e.length!==t.length)throw new Ap(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;na.maxNDim)throw new Ap(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${a.maxNDim}, found ndim=${s}`);if(null!=a.minNDim&&s=0?e[r]:e[e.length+r];if(null!=s&&-1===[s,null].indexOf(i))throw new Ap(`Input ${n} is incompatible with layer ${this.name}: expected axis ${r} of input shape to have value ${s} but got shape ${e}.`)}}if(null!=a.shape)for(let e=0;e{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of Mp(e))t.push(n.shape);this.build(Bp(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&a&&(this._refCount=1)}if(this.assertInputCompatibility(e),a){let r=this.call(e,t);const a=Mp(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=Bp(s),null!=this.activityRegularizer)throw new Dp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}{const n=function(e){e=Mp(e);const t=[];for(const n of e)t.push(n.shape);return Bp(t)}(e),r=this.computeOutputShape(n);let a;const s="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),a=null!=r&&r.length>0&&Array.isArray(r[0])?r.map(((n,r)=>new Vg(s,n,this,Mp(e),t,this.name,r))):new Vg(s,r,this,Mp(e),t,this.name),this.addInboundNode(e,a,null,null,n,r,t),this._refCount++,null!=this.activityRegularizer)throw new Dp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach(((n,r)=>{null!=n&&null!=e[r]&&e[r]!==n&&(t=!0)})),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Np(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Np(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ip(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Pg(this.weights)}build(e){this.built=!0}getWeights(e=!1){return zg(e?this.trainableWeights:this.weights)}setWeights(e){io((()=>{const t=this.weights;if(t.length!==e.length)throw new Ap(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],r=zg(t);for(let a=0;aa.apply(l.read()))),null==s&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=Mp(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}addInboundNode(e,t,n,r,a,s,i=null){const o=Mp(e);t=Mp(t),n=Mp(n),r=Mp(r),a=Bg(a),s=Bg(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new Hg({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:r,inputShapes:a,outputShapes:s},i);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function qg(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;n0){const a=await Promise.all(t);for(let t=0;two(this.totals[e],ko(r,n))));this.totals[e]=a,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:io((()=>{const n=ko(_o(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),lo(t[e])})))}}class ry extends ey{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const r in this.history){const a=this.history[r];for(let s=0;s{const s=ea();return s-rnew ay(e,t)))}class iy{constructor(){}static registerCallbackConstructor(e,t){Q(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),iy.checkForDuplicate(t),null==iy.constructors[e]&&(iy.constructors[e]=[]),iy.constructors[e].push(t)}static checkForDuplicate(e){for(const t in iy.constructors)iy.constructors[+t].forEach((t=>{if(t===e)throw new Ap("Duplicate callback constructor.")}))}static clear(){iy.constructors={}}static createCallbacks(e){const t=[];for(const n in iy.constructors){const r=+n;e>=r&&t.push(...iy.constructors[r])}return t.map((e=>new e))}}function oy(e,t,n,r,a,s,i,o,l){const u=new ry,c=[new ny,...iy.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new ty(c);return h.setParams({epochs:n,initialEpoch:r,samples:a,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function ly(e,t={},n=!1){return Up(e,Pi.getMap().classNameMap,t,"layer",n)}function uy(e,t){return io((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=Ou(Um(e),t,!0),r=$o(n.shape,Sp()),a=Eo(Go(n,r));return _o(e,a)}))}function cy(e,t){return io((()=>Ju(Um(zo(t,e)),-1)))}function hy(e,t){return io((()=>Ju(Uo(zo(t,e)),-1)))}function fy(e,t){return io((()=>{const n=zo(e,t),r=Pl(Uo(e),Sp(),Number.MAX_VALUE),a=Uo(_o(n,r));return ko(100,Ju(a,-1))}))}function dy(e,t,n=!1){return io((()=>{if(n)t=Zc(t);else{const e=Ou(t,t.shape.length-1,!0);t=_o(t,e)}return t=Pl(t,Sp(),1-Sp()),Du(Ou(ko(e.toFloat(),Iu(t)),t.shape.length-1))}))}function py(e,t,n=!1){return io((()=>{const r=mu(function(e){const t=[Sm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Pl(t,Sp(),1-Sp())).shape;return dy(ci(r,a[a.length-1]).reshape(a),t,n)}))}function my(e,t){return io((()=>{let n;return n=Pl(t,Sp(),1-Sp()),n=Iu(_o(n,zo(1,n))),Ju(function(e,t){if(!se(e.shape,t.shape))throw new Ap(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return io((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function gy(e,t){return io((()=>{const n=uy(e,-1),r=uy(t,-1),a=ko(n,r);return Du(Ou(a,-1))}))}iy.constructors={};const yy={meanSquaredError:cy,meanAbsoluteError:hy,meanAbsolutePercentageError:fy,meanSquaredLogarithmicError:function(e,t){return io((()=>{const n=Pl(t,Sp(),Number.MAX_VALUE),r=Iu(wo(1,n)),a=Pl(e,Sp(),Number.MAX_VALUE),s=Iu(wo(1,a));return Ju(Um(zo(r,s)),-1)}))},squaredHinge:function(e,t){return io((()=>{const n=Go(0,zo(1,ko(e,t)));return Ju(Um(n),-1)}))},hinge:function(e,t){return io((()=>{const n=Go(0,zo(1,ko(e,t)));return Ju(n,-1)}))},categoricalHinge:function(e,t){return io((()=>{const n=Ou(ko(e,t),-1),r=Ru(ko(zo(1,e),t),-1);return Go(0,wo(1,zo(r,n)))}))},logcosh:function(e,t){return io((()=>{const n=Math.log(2),r=zo(t,e),a=zo(wo(r,Tu(ko(-2,r))),n);return Ju(a,-1)}))},categoricalCrossentropy:dy,sparseCategoricalCrossentropy:py,binaryCrossentropy:my,kullbackLeiblerDivergence:function(e,t){return io((()=>{const n=Pl(e,Sp(),1),r=Pl(t,Sp(),1);return Ou(ko(e,Iu(_o(n,r))),-1)}))},poisson:function(e,t){return io((()=>{const n=Iu(wo(Sp(),t));return Ju(zo(t,ko(e,n)),-1)}))},cosineProximity:gy};function by(e){if("string"==typeof e){if(e in yy)return yy[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Ap(t)}return e}function vy(e,t){return io((()=>{const n=ko(.5,uc(t)),r=Tm(yu(t,n),e.dtype);return Ju(au(e,r),-1)}))}function wy(e,t){return io((()=>Tm(au(nl(e,-1),nl(t,-1)),"float32")))}function xy(e,t){return io((()=>Hu(e.equal(1),t.equal(1)).sum().cast("float32")))}function _y(e,t){return io((()=>{const n=xy(e,t),r=function(e,t){return io((()=>Hu(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return su(yu(a,0),n.div(a),0).cast("float32")}))}function ky(e,t){return my(e,t)}function Ey(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),(t=t.argMax(-1)).dtype!==e.dtype&&(t=t.asType(e.dtype)),au(e,t).asType("float32")}const Cy=dy,Sy=py,Ny={binaryAccuracy:vy,categoricalAccuracy:wy,precision:_y,categoricalCrossentropy:Cy,sparseCategoricalCrossentropy:Sy,mse:cy,MSE:cy,mae:hy,MAE:hy,mape:fy,MAPE:fy,cosine:gy};function Iy(e){if("string"==typeof e&&e in Ny)return Ny[e];if("string"!=typeof e&&null!=e)return e;throw new Ap(`Unknown metric ${e}`)}function Ay(e){if(Rp(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(yy))if(yy[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Ny))if(Ny[n]===e){t=n;break}return void 0!==t?t:e.name}}function Dy(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!Ty(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){const n=JSON.stringify(e);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function Ty(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!Ty(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Ty(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Fy(e,t,n=console.log){let r="";for(let n=0;n0&&(r=r.slice(0,r.length-1)+" "),r+=e[n],r=r.slice(0,t[n]),r+=" ".repeat(t[n]-r.length);n(r)}function Ry(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}Fy([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function Oy(e,t,n,r){let a;try{a=JSON.stringify(e.outputShape)}catch(e){a="multiple"}const s=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().join(",");let h,f;if(null==zy[c]){const e=function(e,t){Q(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],r={};if(1===e.length){const a=jy(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=jy(s,t);for(const t of e)a.has(t.name)||(n.push(t),a.add(t.name));for(const e in i)null==r[e]&&(r[e]=new Set),i[e].forEach((t=>r[e].add(t)))}}return{sorted:n,recipientCounts:Vy(r)}}(i,t);h=e.sorted,f=e.recipientCounts,zy[c]=h,Wy[c]=f}h=zy[c],f={},a||Object.assign(f,Wy[c]);const d=new Ly(t);for(let e=0;er.maxNumTensors&&(r.maxNumTensors=e),e0;){const e=s[s.length-1];if(n.has(e.name)){s.pop();continue}const t=i[i.length-1]===s.length-1;if(0===e.inputs.length||t)s.pop(),r.push(e),n.add(e.name),t&&i.pop();else{i.push(s.length-1);for(const t of e.inputs)null==a[t.name]&&(a[t.name]=new Set),a[t.name].add(e.name),n.has(t.name)||s.push(t)}}return{sorted:r,recipientMap:a}}function Hy(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);jp(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map((e=>e.name))}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(r)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;Rp(0===n,"input layer has >1 nodes"),Rp(0===r,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(r)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},r={},a={},s={},i=[],o=(e,t,n,r,a,l)=>{null!=r&&null!=a&&null!=l||(r=e.sourceLayer,a=e.nodeIndex,l=e.tensorIndex);const u=r.inboundNodes[a];if(-1!==n.indexOf(u))throw new Ip(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(Gy.nodeKey(r,a)),r.id in s||(s[r.id]=Object.keys(s).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);i.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=i.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let s=t[e.id];const i=null==r[e.outboundLayer.id]?0:r[e.outboundLayer.id];s=Math.max(s,i),r[e.outboundLayer.id]=s,a[e.outboundLayer.id]=e.outboundLayer,t[e.id]=s;for(let r=0;rparseInt(e,10))).sort(Vp);this.layers=[];for(const e of d){const t=f[e];t.sort(((e,t)=>{const n=s[e.id],r=s[t.id];return nr?1:0}));for(const e of t)e instanceof Gy&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(Vp);const p=this.inputs.slice(),m=[];for(const e of d)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===p.indexOf(n))throw new Ip(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)p.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Ip(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Hg({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Ap("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let r=0;for(const e of this.layers)for(const t of e.weights){if(null!=n[t.originalName])throw new Ap(`Duplicate weight name: ${t.originalName}`);n[t.originalName]=t,r++}const a=[];for(const r in e){let s=r;if(null==n[r]){const e=r.split("/");s=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[s])a.push([n[s],e[r]]);else if(t)throw new Ap(`Provided weight data has no target variable: ${r}`);delete n[s]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Ap(`${e.length} of ${r} weights are not set: ${e}`)}Wg(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Py}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=$y(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return io((()=>{e=Mp(e);const n=new Ly;for(let t=0;t{let n;return e=Mp(e),n=null==t?Fp(null,e.length):Mp(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Bg(e);if(t.length!==this.inputLayers.length)throw new Ap(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(Vp);if(r.length>1)for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const r=[];for(let t=0;tparseInt(e,10))).sort(Vp);for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,r=e.inputTensors,a=e.outputTensors,s=new Array;for(const e of r)e.id in n&&s.push(n[e.id]);if(s.length===r.length){let r,i,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===s.length){const[e,n]=s[0];null==u.mask&&(u.mask=n),o=Mp(t.call(e,u)),l=Mp(t.computeMask(e,n)),r=[e],i=[n]}else r=s.map((e=>e[0])),i=s.map((e=>e[1])),null==u.mask&&(u.mask=i),o=Mp(t.call(r,u)),l=Mp(t.computeMask(r,i));if(t.activityRegularizer)throw new Dp("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(Bp(n),r)}function l(e){const n=e.name,s=ly(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Ap(`Corrupted configuration, expected array for nodeData: ${e}`);i(s,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!Hp(s);)for(const e of c){const t=a[e.name];if(t.name in s){const e=s[t.name];delete s[t.name];for(const n of e)o(t,n)}}const h=[],f=[],d=t.inputLayers;for(const e of d){const t=e[0],n=e[1],r=e[2];Rp(t in a);const s=a[t].inboundNodes[n].outputTensors;h.push(s[r])}const p=t.outputLayers;for(const e of p){const t=e[0],n=e[1],r=e[2];Rp(t in a);const s=a[t].inboundNodes[n].outputTensors;f.push(s[r])}return new e({inputs:h,outputs:f,name:u})}get stateful(){if(this._stateful)throw new Ap("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){io((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function Xy(e,t){return function(e,t,n){const r=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===r)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==r)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${r} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${r}) outputs, so ${n} must be either an array with ${r} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}(e,t,"classWeight")}async function qy(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=io((()=>{if(1===e.shape.length)return e.clone();if(2===e.shape.length){if(e.shape[1]>1){const t=1;return e.argMax(t)}if(1===e.shape[1])return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),r=Array.from(await t.data());oo(t);const a=[];return r.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);a.push(n[e])})),lh(a,"float32")}return null}function Ky(e,t){return ko(e,t)}function Zy(e,t){let n,r;const a=t;n=a.xs,r=a.ys,Q(null!=n&&null!=r,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const s=Yy("input",e.inputNames,n),i=Yy("output",e.outputNames,r),o=s[0].shape[0];Q(s.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Q(i.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${s[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:s,ys:i}}function Yy(e,t,n){if(n instanceof ga)return[n];if(Array.isArray(n))return Q(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const r=[];for(const a of t){if(null==n[a])throw new Ap(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function Jy(e){return"function"==typeof e.iterator}function Qy(e){Q(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function eb(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>Rm(e,t,n-t))):Rm(e,t,n-t)}function tb(e,t){return io((()=>null==e?null:Array.isArray(e)?e.map((e=>tb(e,t))):Wm(e,"int32"===t.dtype?t:t.toInt())))}function nb(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function rb(e){const t=[];e instanceof ga&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const r=t[e];n.push(r.id)}const r=[];if(e instanceof ga)-1===n.indexOf(e.id)&&r.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&r.push(e)}));else if(null!=e)for(const t in e){const a=e[t];-1===n.indexOf(a.id)&&r.push(a)}r.forEach((e=>{e.isDisposed||e.dispose()}))}function sb(e){return Array.isArray(e)}function ib(e){return!function(e){return e instanceof ga}(e)&&!sb(e)}function ob(e,t,n,r=!0,a=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(sb(e)&&e.length>0)t=!0;else if(ib(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Ap(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(ib(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Ap(`No data provided for "${n}". Need data for each key in: ${t}`);s.push(e[n])}}else if(sb(e)){if((e=e).length!==t.length)throw new Ap(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new Ap(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=rb(s),null!=n)for(let e=0;e=0&&o!==l)throw new Ap(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function lb(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Ap(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);s=e}else{if(t.length>1)throw new Ap(`The model expects ${t.length} ${a} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(null!=n)for(let e=0;e1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}r.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const a of n.inboundNodes)if(-1!==r.indexOf(a)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),s=["Layer (type)","Output shape","Param #"];let i;if(a?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!a){s.push("Receives inputs"),i=[];for(const t in e.nodesByDepth)i.push(...e.nodesByDepth[t])}r("_".repeat(t)),Fy(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eTf.adagrad(.01),Adadelta:()=>Tf.adadelta(1,.95,Sp()),Adam:()=>Tf.adam(.001,.9,.999,Sp()),Adamax:()=>Tf.adamax(.002,.9,.999,Sp(),0),RMSProp:()=>Tf.rmsprop(.001,.9,0,Sp()),SGD:()=>Tf.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Ap(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Bo))throw new Ap("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Ap(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>by(e)))}else{const n=by(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Ap(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)null==e.loss[n]&&console.warn(`Output "${n}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${n} during training`),t.push(by(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const r=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const r of t){let t=n.hasOwnProperty(r)?n[r]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),a=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};xm("metric",(()=>{for(let e=0;e{let n,r,s;for(const i of t){if("string"==typeof i&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(i)){const t=this.internalOutputShapes[e];let a;1===t[t.length-1]||this.lossFunctions[e]===my?-1!==["accuracy","acc"].indexOf(i)?r=vy:-1!==["crossentropy","ce"].indexOf(i)&&(r=ky):this.lossFunctions[e]===py?-1!==["accuracy","acc"].indexOf(i)?r=Ey:-1!==["crossentropy","ce"].indexOf(i)&&(r=Sy):-1!==["accuracy","acc"].indexOf(i)?r=wy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Cy),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=Iy(i);s=e,n=""+Ay(i)}let t;xm(n,(()=>{t=s})),a(e,n,t)}})(r[e])})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){const r=null==n.batchSize?32:n.batchSize;Qy(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return Bp(this.testLoop(i,s,r,n.verbose,n.steps))}finally{ab(a[0],e),ab(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const r=null!=(n=n||{}).batches,a=e.testFunction;let s=[];if(n.verbose>0)throw new Dp("Verbose mode is not implemented yet.");Q(!r||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const i="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!r||l{if(t.value){const{xs:n,ys:r}=Zy(e,t.value),i=n.concat(r),u=io((()=>a(i)));if(oo(i),0===l)for(let e=0;ewo(s[e],ko(c,t)))),l>0&&oo(n)}oo(u),o+=c,++l}return s})),t.done){r&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let e=0;ee.name));for(let r=0;r0){const n=[];throw t.forEach(((t,r)=>{null==t&&n.push(e[r])})),new Ap(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return io((()=>{const r=this.checkNumSamples(e);if(n)throw new Dp("Verbose predictLoop() is not implemented yet.");const a=nb(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=eb(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return Bp(s.map((e=>Cl(e,0))))}))}predict(e,t={}){const n=rb(e);lb(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return Qy(r),this.predictLoop(n,r)}finally{ab(n,e)}}predictOnBatch(e){lb(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,r){if(null==this.optimizer_)throw new Ip("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const a=[];for(let e=0;ee.shape[0])));r.sort();const a=jp(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Ap(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(a.length>1)throw new Ap(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(r.length>0&&a.length>0&&!se(r,a))throw new Ap(`Input Tensors should have the same number of samples as target Tensors. Found ${r[0]} input sample(s) and ${a[0]} target sample(s).`)}(e=ob(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=ob(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[cy,my,dy];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Ap(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${r}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,r,a=!0,s){const[i,o]=this.standardizeUserDataXY(e,t,a,s);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=r){const e=Xy(r,this.outputNames);l=[];for(let t=0;t{const s=this.checkNumSamples(t,n,a,"steps"),i=[];if(r>0)throw new Dp("Verbose mode is not implemented yet.");if(null!=a)throw new Dp("steps mode in testLoop() is not implemented yet");{const r=nb(s,n),a=lh(Dm(0,s));for(let n=0;n1&&(a+=`_${Op(e.slice(0,n),r)}`),t.push(a)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),s=[],i=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=wo(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>io((()=>{const t=[];let n;const r=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let e=0;e0){if(m=!0,2!==r.validationData.length)throw 3===r.validationData.length?new Dp("validationData including sample weights is not supported yet."):new Ap(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${r.validationData} is invalid.`);i=r.validationData[0],o=r.validationData[1];const t=!0,n=await e.standardizeUserData(i,o,null,null,t,h);l=n[0],u=n[1],p=l.concat(u)}else if(null!=r.validationSplit&&r.validationSplit>0&&r.validationSplit<1){m=!0;const e=Math.floor(a[0].shape[0]*(1-r.validationSplit)),t=a[0].shape[0];l=eb(a,e,t),a=eb(a,0,e),u=eb(s,e,t),s=eb(s,0,e),p=l.concat(u)}else null!=r.validationSteps&&(m=!0);const g=a.concat(s).concat(c);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),b=e.getDedupedMetricsNames();let v,w;m?(e.makeTestFunction(),v=e.testFunction,w=b.slice().concat(b.map((e=>"val_"+e)))):(v=null,p=[],w=b.slice());const x=sy(r.callbacks,r.yieldEvery);return await async function(e,t,n,r,a,s,i,o,l,u,c,h,f,d,p){null==a&&(a=32),null==s&&(s=1),null==c&&(c=!0),null==f&&(f=0);let m=!1;null!=l&&null!=u&&(m=!0);const g=e.checkNumSamples(n,a,d,"steps_per_epoch");let y;null!=g&&(y=Dm(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=oy(o,i,s,f,g,d,a,m,h);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let i=f;i{const f=o[c][0],d=o[c][1],p=Rm(i,f,d-f);h.batch=c,h.size=d-f;const g=tb(n,p),y=t(g);for(let e=0;e"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Q(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Q(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Q(!r||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Q(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const a=null!=n.validationData;let s,i;if(a)if(Jy(n.validationData))Q(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new Dp("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);s=e.xs,i=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=a?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=sy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=oy(c,h,n.epochs,null,null,function(e,t){let n=null;return null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size),n}(t,n),null,a,u);f.setModel(e),e.history=d,await f.onTrainBegin(),e.stopTraining_=!1;let p=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;p=n.batchesPerEpoch:t.done){if(a){let t;t=Jy(n.validationData)?Mp(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):Mp(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;n$p(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const r of t){if("string"!=typeof n[r])throw new Error("Serialization of non-string loss is not supported.");e[r]=$p(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[$p(Ay(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>$p(Ay(e))));{const e={};for(const t in this.metrics)e[t]=$p(Ay(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=ly(My(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=Pp(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>Pp(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=Pp(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>Pp(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=Pp(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=cs(e);if(0===t.length)throw new Ap(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Ap(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Ap("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Ja(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${Py}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await Ja(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=rs([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;Dy(this.userDefinedMetadata,this.name,e),r.userDefinedMetadata=this.userDefinedMetadata}return r.weightData=n.data,r.weightSpecs=n.specs,e.save(r)}setUserDefinedMetadata(e){Dy(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}ub.className="Model",Li(ub);class cb extends ub{}async function hb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=ly(My(n),t);if(null!=e.weightsManifest){const t=await Js(e.weightsManifest,e.pathPrefix,r.weights.map((e=>e.originalName))),n={};for(const e of r.weights)n[e.originalName]=t[e.originalName];r.loadWeights(n),oo(t)}return r}cb.className="Functional",Li(cb);class fb extends ub{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:Rg("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Ap(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof fb||e instanceof ub;let n;if(t){if(n=e,1!==n.outputs.length)throw new Ap("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Ap("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Ap("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=Zg({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Ap(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Ap("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=qg(this.outputs[0])}this.inboundNodes=[],new Hg({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Fp(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if($g(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new ub({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ip("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ip("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ip("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ip("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},r=!1){let a,s={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Ap("Legacy serialization format not supported yet.");a=t}else Q(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),a=t.layers,delete t.layers,s=t;const i=new e(s);if(!(i instanceof fb))throw new Dp(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=ly(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Ap("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Ap("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}function db(e){return new ub(e)}function pb(e){return new fb(e)}function mb(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=hs(e,t);if(0===n.length)n.push(ai(e,t));else if(n.length>1)throw new Ap(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return async function(e,t,n){if(null==n&&(n={}),null==e.load)throw new Ap("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const r=await e.load();let a=r.modelTopology;null!=a.model_config&&(a=a.model_config);const s=null==n.strict||n.strict,i=null!=r.weightData&&null!=r.weightSpecs&&s,o=ly(My(a),void 0,i),l=r.trainingConfig;if(null!=l&&o.loadTrainingConfig(l),null!=r.userDefinedMetadata&&o.setUserDefinedMetadata(r.userDefinedMetadata),null!=r.weightData){if(null==r.weightSpecs)throw new Ap("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:e,optimizerWeights:t}=function(e,t){const n=Qa(e,t),r={},a=[];return t.forEach((e=>{"optimizer"===e.group?a.push({name:e.name,tensor:n[e.name]}):r[e.name]=n[e.name]})),{modelWeights:r,optimizerWeights:a}}(r.weightData,r.weightSpecs);o.loadWeights(e,s),null!=o.optimizer&&t.length>0&&await o.optimizer.setWeights(t),oo(e),oo(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function gb(e){return Zg(e)}function yb(e,t){iy.registerCallbackConstructor(e,t)}fb.className="Sequential",Li(fb);class bb extends $i{getConfig(){return{}}}class vb extends bb{apply(e,t=1){return function(e,t=1){if(1!==t)throw new Dp(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return lu(e)}(e,t)}}vb.className="elu",Li(vb);class wb extends bb{apply(e){return zc(e)}}wb.className="selu",Li(wb);class xb extends bb{apply(e){return Tc(e)}}xb.className="relu",Li(xb);class _b extends bb{apply(e){return io((()=>ec(6,Tc(e))))}}_b.className="relu6",Li(_b);class kb extends bb{apply(e){return e}}kb.className="linear",Li(kb);class Eb extends bb{apply(e){return Sl(e)}}Eb.className="sigmoid",Li(Eb);class Cb extends bb{apply(e){return function(e){return io((()=>{const t=wo(.5,ko(.2,e));return Pl(t,0,1)}))}(e)}}Cb.className="hardSigmoid",Li(Cb);class Sb extends bb{apply(e){return Tu(e)}}Sb.className="softplus",Li(Sb);class Nb extends bb{apply(e){return function(e){return io((()=>_o(e,Uo(e).add(1))))}(e)}}Nb.className="softsign",Li(Nb);class Ib extends bb{apply(e){return Il(e)}}Ib.className="tanh",Li(Ib);class Ab extends bb{apply(e,t=-1){return Zc(e,t)}}Ab.className="softmax",Li(Ab);class Db extends bb{apply(e,t=-1){return Bu(e,t)}}Db.className="logSoftmax",Li(Db);class Tb extends bb{apply(e,t=1){return io((()=>Sl(e.mul(t)).mul(e)))}}function Fb(e){return e.getClassName()}function Rb(e,t={}){return Up(e,Pi.getMap().classNameMap,t,"activation")}function Ob(e){if(null==e){return Rb({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},Rb(t)}return e instanceof bb?e:Rb(e)}function Bb(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Tb.className="swish",Li(Tb);class Mb extends $i{}class $b extends Mb{constructor(e){super(),Bb(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return io((()=>{let t=oc([1]);return this.hasL1&&(t=wo(t,Ou(ko(this.l1,Uo(e))))),this.hasL2&&(t=wo(t,Ou(ko(this.l2,Um(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}$b.className="L1L2",Li($b);const Pb={l1l2:"L1L2"};function Lb(e){return zp(e)}function zb(e,t={}){return Up(e,Pi.getMap().classNameMap,t,"regularizer")}function Wb(e){return null==e?null:"string"==typeof e?zb({className:e in Pb?Pb[e]:e,config:{}}):e instanceof Mb?e:zb(e)}class Ub extends Xg{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=Mg(e);let n=Tc(e);return null!=this.maxValue&&(n=Pl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Ub.className="ReLU",Li(Ub);class Vb extends Xg{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=Mg(e);return ku(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Vb.className="LeakyReLU",Li(Vb);class jb extends Xg{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=pg(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Wb(e.alphaRegularizer),this.alphaConstraint=im(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Ap(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=$g(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t(ym(t),"channelsFirst"===t?hi(e,[0,2,3,1]):e)))}function Jb(e,t){return io((()=>(ym(t),"channelsFirst"===t?hi(e,[0,2,3,4,1]):e)))}function Qb(e,t,n,r=[1,1],a="valid",s,i,o=null){return io((()=>{if(null==s&&(s="channelsLast"),ym(s),3!==e.rank&&4!==e.rank)throw new Ap(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Ap(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Yb(e,s);if("causal"===a)throw new Dp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=$h({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=hi(l,[0,3,1,2])),l}))}Xb.className="Softmax",Li(Xb);class ev extends Xg{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",ev.verifyArgs(t),this.rank=e,qp(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new Dp(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=qb(t.kernelSize,e,"kernelSize"),this.strides=qb(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,bm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,ym(this.dataFormat),this.activation=Ob(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=pg(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=im(t.biasConstraint),this.biasRegularizer=Wb(t.biasRegularizer),this.activityRegularizer=Wb(t.activityRegularizer),this.dilationRate=qb(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Ap(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Ap(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Ap(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(Rp("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!Xp(e.kernelSize,"number",1,3))throw new Ap(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Fb(this.activation),useBias:this.useBias,biasInitializer:dg(this.biasInitializer),biasRegularizer:Lb(this.biasRegularizer),activityRegularizer:Lb(this.activityRegularizer),biasConstraint:am(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class tv extends ev{constructor(e,t){super(e,t),this.kernel=null,tv.verifyArgs(t),this.filters=t.filters,qp(this.filters,"filters"),this.kernelInitializer=pg(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=im(t.kernelConstraint),this.kernelRegularizer=Wb(t.kernelRegularizer)}build(e){e=$g(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Ap(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],r=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return io((()=>{let t;e=Mg(e);const n=null==this.bias?null:this.bias.read(),r=Zp(this.activation.getClassName());if(null!=r&&2===this.rank)t=Qb(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(1===this.rank)t=function(e,t,n,r=1,a="valid",s,i=1){return io((()=>{if(null==s&&(s="channelsLast"),ym(s),3!==e.shape.length)throw new Ap(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Ap(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Ap(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=hi(e,[0,2,1])),"causal"===a)throw new Dp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=jl(e,t,r,"same"===a?"same":"valid","NWC",i);return null!=n&&(o=jm(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=Qb(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new Dp("convolutions greater than 3D are not implemented yet.");t=function(e,t,n,r=[1,1,1],a="valid",s,i){return io((()=>{if(null==s&&(s="channelsLast"),ym(s),4!==e.rank&&5!==e.rank)throw new Ap(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Ap(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=Jb(e,s);if("causal"===a)throw new Dp("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Xl(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=jm(o,n)),"channelsFirst"===s&&(o=hi(o,[0,4,1,2,3])),o}))}(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=$g(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class nv extends tv{constructor(e){super(2,e),nv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!Xp(e.kernelSize,"number",1,2))throw new Ap(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}nv.className="Conv2D",Li(nv);class rv extends tv{constructor(e){super(3,e),rv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Ap(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}rv.className="Conv3D",Li(rv);class av extends nv{constructor(e){if(super(e),this.inputSpec=[new Ug({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Ap(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=$g(e)).length)throw new Ap("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Ap("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],r=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",r,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Ug({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return io((()=>{let t=Mg(e);if(4!==t.shape.length)throw new Ap(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,r=n[0];let a,s;"channelsFirst"===this.dataFormat?(a=2,s=3):(a=1,s=2);const i=n[a],o=n[s],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],f=[r,Zb(i,c,l,this.padding),Zb(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=hi(t,[0,2,3,1]));let d=Gl(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=hi(d,[0,3,1,2])),null!=this.bias&&(d=jm(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=$g(e)).slice();let n,r,a;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3):(n=3,r=1,a=2);const s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[r]=Zb(t[r],o,s,this.padding),t[a]=Zb(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}av.className="Conv2DTranspose",Li(av);class sv extends tv{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Ap("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Ap("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Ap(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=pg(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Wb(t.depthwiseRegularizer),this.depthwiseConstraint=im(t.depthwiseConstraint),this.pointwiseInitializer=pg(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Wb(t.pointwiseRegularizer),this.pointwiseConstraint=im(t.pointwiseConstraint)}build(e){if((e=$g(e)).length{let t;if(e=Mg(e),1===this.rank)throw new Dp("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=hi(e,[0,2,3,1])),t=Wc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=jm(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=hi(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=dg(this.depthwiseInitializer),e.pointwiseInitializer=dg(this.pointwiseInitializer),e.depthwiseRegularizer=Lb(this.depthwiseRegularizer),e.pointwiseRegularizer=Lb(this.pointwiseRegularizer),e.depthwiseConstraint=am(this.depthwiseConstraint),e.pointwiseConstraint=am(this.pointwiseConstraint),e}}sv.className="SeparableConv";class iv extends sv{constructor(e){super(2,e)}}iv.className="SeparableConv2D",Li(iv);class ov extends tv{constructor(e){super(1,e),ov.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!Xp(e.kernelSize,"number",1,1))throw new Ap(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}ov.className="Conv1D",Li(ov);class lv extends Xg{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return io((()=>{if(e=Mg(e),"channelsLast"===this.dataFormat){const t=Bm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Bm(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Bm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Bm(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}lv.className="Cropping2D",Li(lv);class uv extends Xg{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,ym(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,Gp(fm,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return io((()=>{let t=Mg(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=hi(t,[0,2,3,1]);const e=this.size[0]*n[2],r=this.size[1]*n[3],a="nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r]);return hi(a,[0,3,1,2])}{const e=this.size[0]*n[1],r=this.size[1]*n[2];return"nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}uv.className="UpSampling2D",Li(uv);class cv extends ev{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=pg(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=im(e.depthwiseConstraint),this.depthwiseRegularizer=Wb(e.depthwiseRegularizer)}build(e){if((e=$g(e)).length<4)throw new Ap(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Ap(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return io((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return io((()=>{null==a&&(a="channelsLast"),ym(a);let i=Yb(e,a);if(4!==e.rank)throw new Ap(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Ap(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=tu(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=hi(i,[0,3,1,2])),i}))}(e=Mg(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=jm(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=$g(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,a=Kb(t,this.kernelSize[0],this.padding,this.strides[0]),s=Kb(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],r,a,s]:[e[0],a,s,r]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=dg(this.depthwiseInitializer),e.depthwiseRegularizer=Lb(this.depthwiseRegularizer),e.depthwiseConstraint=am(this.depthwiseRegularizer),e}}function hv(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Ap("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=e.slice(e.length-r,e.length),e=e.slice(0,e.length-r)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function a(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=a(t),constants:n=a(n)}}function fv(e,t,n,r=!1,a,s,i=!1,o=!1){return io((()=>{const l=t.shape.length;if(l<3)throw new Ap(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(Dm(2,l));if(t=hi(t,u),null!=s)throw new Dp("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=a&&((a=a.asType("bool").asType("float32")).rank===l-1&&(a=hu(a,-1)),a=hi(a,u)),r&&(t=Rc(t,0),null!=a&&(a=Rc(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=yh(t);let m,g;null!=a&&(m=yh(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=io((()=>{const e=m[t],n=uc(e).sub(e);return{output:r[0].mul(e).add(f[0].mul(n)),newStates:f.map(((t,a)=>r[1][a].mul(e).add(t.mul(n))))}}));h=e.output,f=e.newStates}o&&c.push(h)}return o&&(g=ah(c,1)),[h,g,f]}))}cv.className="DepthwiseConv2D",Li(cv);class dv extends Xg{constructor(e){let t;if(super(e),null==e.cell)throw new Ap("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new xv({cells:e.cell}):e.cell,null==t.stateSize)throw new Ap("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new Ug({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){return null==this.states_?Dm(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null)):this.states_}setStates(e){this.states_=e}computeOutputShape(e){Og(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let r;if(r=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const r of t)n.push([e[0],r]);return[r].concat(n)}return r}computeMask(e,t){return io((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),a))throw new Ap(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map((e=>new Ug({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){io((()=>{if(!this.stateful)throw new Np("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Ap("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>oc([n,e]))):this.states_=[oc([n,this.cell.stateSize])];else if(null==e)oo(this.states_),null!=this.keptStates&&(oo(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>oc([n,e]))):this.states_[0]=oc([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Ap(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):oo(this.states_);for(let t=0;tlo(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=hv(e,n,r,this.numConstants);e=a.inputs,n=a.initialState,r=a.constants;let s=[],i=[];if(null!=n){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new Ug({shape:e.shape}));i=i.concat(this.stateSpec)}if(null!=r&&(t.constants=r,s=s.concat(r),this.numConstants=r.length),s[0]instanceof Vg){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return io((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=Mg(e),null==a&&(a=this.stateful?this.states_:this.getInitialState(e));const s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(a.length!==s)throw new Ap(`RNN Layer has ${s} state(s) but was passed ${a.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const i={training:r},o=fv(((e,t)=>{const n=this.cell.call([e].concat(t),i);return[n[0],n.slice(1)]}),e,a,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,r);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return io((()=>{let t=oc(e.shape);return t=Ou(t,[1,2]),t=Fm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?Pm(t,[1,e]):t)):this.cell.stateSize>1?[Pm(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===dv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=ly(t.cell,n);return new e(Object.assign(t,{cell:r}))}}dv.className="RNN",Li(dv);class pv extends Xg{}class mv extends pv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,qp(this.units,"units"),this.activation=Ob(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=pg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Wb(e.kernelRegularizer),this.recurrentRegularizer=Wb(e.recurrentRegularizer),this.biasRegularizer=Wb(e.biasRegularizer),this.kernelConstraint=im(e.kernelConstraint),this.recurrentConstraint=im(e.recurrentConstraint),this.biasConstraint=im(e.biasConstraint),this.dropout=Im([1,Am([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Im([1,Am([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=$g(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return io((()=>{if(2!==(e=e).length)throw new Ap(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0uc(e),rate:this.dropout,training:r})),0uc(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=zm(null!=s?ko(e,s):e,this.kernel.read()),null!=this.bias&&(a=jm(a,this.bias.read())),null!=i&&(n=ko(n,i));let o=wo(a,zm(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Fb(this.activation),useBias:this.useBias,kernelInitializer:dg(this.kernelInitializer),recurrentInitializer:dg(this.recurrentInitializer),biasInitializer:dg(this.biasInitializer),kernelRegularizer:Lb(this.kernelRegularizer),recurrentRegularizer:Lb(this.recurrentRegularizer),biasRegularizer:Lb(this.biasRegularizer),activityRegularizer:Lb(this.activityRegularizer),kernelConstraint:am(this.kernelConstraint),recurrentConstraint:am(this.recurrentConstraint),biasConstraint:am(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}mv.className="SimpleRNNCell",Li(mv);class gv extends dv{constructor(e){e.cell=new mv(e),super(e)}call(e,t){return io((()=>{null!=this.cell.dropoutMask&&(oo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(oo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return new e(t)}}gv.className="SimpleRNN",Li(gv);class yv extends pv{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Ap("GRUCell does not support reset_after parameter set to true.");this.units=e.units,qp(this.units,"units"),this.activation=Ob(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ob(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=pg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Wb(e.kernelRegularizer),this.recurrentRegularizer=Wb(e.recurrentRegularizer),this.biasRegularizer=Wb(e.biasRegularizer),this.kernelConstraint=im(e.kernelConstraint),this.recurrentConstraint=im(e.recurrentConstraint),this.biasConstraint=im(e.biasConstraint),this.dropout=Im([1,Am([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Im([1,Am([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=$g(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return io((()=>{if(2!==(e=e).length)throw new Ap(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let r=e[1];e=e[0],0uc(e),rate:this.dropout,training:n,count:3})),0uc(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(oo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(oo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}bv.className="GRU",Li(bv);class vv extends pv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,qp(this.units,"units"),this.activation=Ob(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ob(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=pg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Wb(e.kernelRegularizer),this.recurrentRegularizer=Wb(e.recurrentRegularizer),this.biasRegularizer=Wb(e.biasRegularizer),this.kernelConstraint=im(e.kernelConstraint),this.recurrentConstraint=im(e.recurrentConstraint),this.biasConstraint=im(e.biasConstraint),this.dropout=Im([1,Am([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Im([1,Am([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=$g(e))[e.length-1];let r;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;r=new((t=class extends Km{apply(t,r){const a=e.apply([n]),s=(new Ym).apply([n]),i=e.apply([2*n]);return $m($m(a,s),i)}}).className="CustomInit",t)}else r=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,r,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return io((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Ap(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0uc(e),rate:this.dropout,training:n,count:4})),0uc(r),rate:this.recurrentDropout,training:n,count:4}));const s=this.dropoutMask,i=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(oo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(oo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}wv.className="LSTM",Li(wv);class xv extends pv{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return io((()=>{let n=(e=e).slice(1);const r=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?r.push(n.splice(0,e.stateSize.length)):r.push(n.splice(0,1));r.reverse();const a=[];let s;for(let i=0;i{xm(`RNNCell_${r}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign({},e,t)}static fromConfig(e,t,n={}){const r=[];for(const e of t.cells)r.push(ly(e,n));return new e({cells:r})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return zg(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;eHm(t(),n),i=()=>Gm(s,t,r);return!a||a<=1?lo(i().clone()):Array(a).fill(void 0).map(i).map((e=>lo(e.clone())))}xv.className="StackedRNNCells",Li(xv);class kv extends dv{constructor(e){if(e.unroll)throw new Dp("Unrolling is not possible with convolutional RNNs.");if(Array.isArray(e.cell))throw new Dp("It is not possible at the moment to stack convolutional cells.");super(e),this.inputSpec=[new Ug({ndim:5})]}call(e,t){return io((()=>{if(null!=this.cell.dropoutMask&&(oo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(oo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Ap("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return io((()=>{const{stateSize:t}=this.cell,n=e.shape,r=this.computeSingleOutputShape(n),a=oc([r[0],...r.slice(2)]);return Array.isArray(t)?Array(t.length).fill(a):[a]}))}resetStates(e,t=!1){io((()=>{if(!this.stateful)throw new Np("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,r=this.computeSingleOutputShape(n),a=[r[0],...r.slice(2)];if(null==n[0])throw new Ap("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>oc(a))):this.states_=[oc(a)];else if(null==e)oo(this.states_),null!=this.keptStates&&(oo(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>oc(a))):this.states_[0]=oc(a);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Ap(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):oo(this.states_);for(let t=0;tlo(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:r,padding:a,strides:s,dilationRate:i}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=Kb(l,r[0],a,s[0],i[0]),h=Kb(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}kv.className="ConvRNN2D";class Ev extends vv{constructor(e){const{filters:t,kernelSize:n,strides:r,padding:a,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,qp(this.filters,"filters"),this.kernelSize=qb(n,2,"kernelSize"),this.kernelSize.forEach((e=>qp(e,"kernelSize"))),this.strides=qb(r||1,2,"strides"),this.strides.forEach((e=>qp(e,"strides"))),this.padding=a||"valid",bm(this.padding),this.dataFormat=s||"channelsLast",ym(this.dataFormat),this.dilationRate=qb(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>qp(e,"dilationRate")))}build(e){var t;e=$g(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Ap(`The channel dimension of the input should be defined. Found ${e[n]}`);const r=e[n],a=this.kernelSize.concat([r,4*this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const s=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",s,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,r=this.filters;e=new((t=class extends Km{apply(e,t){return Mm([n.apply([r]),lc([r]),n.apply([2*r])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return io((()=>{if(3!==e.length)throw new Ap(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,r=e[0],a=e[1],s=e[2];0uc(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?ko(t[n],e):e;let l=o(r,i,0),u=o(r,i,1),c=o(r,i,2),h=o(r,i,3);0uc(a),rate:this.recurrentDropout,training:n,count:4}));const f=this.recurrentDropoutMask;let d=o(a,f,0),p=o(a,f,1),m=o(a,f,2),g=o(a,f,3);const[y,b,v,w]=eh(this.kernel.read(),4,3),[x,_,k,E]=this.useBias?eh(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,x,this.padding),u=this.inputConv(u,b,_,this.padding),c=this.inputConv(c,v,k,this.padding),h=this.inputConv(h,w,E,this.padding);const[C,S,N,I]=eh(this.recurrentKernel.read(),4,3);d=this.recurrentConv(d,C),p=this.recurrentConv(p,S),m=this.recurrentConv(m,N),g=this.recurrentConv(g,I);const A=this.recurrentActivation.apply(wo(l,d)),D=this.recurrentActivation.apply(wo(u,p)),T=wo(ko(D,s),ko(A,this.activation.apply(wo(c,m)))),F=ko(this.recurrentActivation.apply(wo(h,g)),this.activation.apply(T));return[F,F,T]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a{this.invokeCallHook(e,t);const n=Mg(e);if(0Hm(n,this.rate,r,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}Sv.className="Dropout",Li(Sv);class Nv extends Sv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Nv.className="SpatialDropout1D",Li(Nv);class Iv extends Xg{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,qp(this.units,"units"),this.activation=Ob(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=pg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=pg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=im(e.kernelConstraint),this.biasConstraint=im(e.biasConstraint),this.kernelRegularizer=Wb(e.kernelRegularizer),this.biasRegularizer=Wb(e.biasRegularizer),this.activityRegularizer=Wb(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=$g(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=$g(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return io((()=>{this.invokeCallHook(e,t);const n=Mg(e),r=Zp(this.activation.getClassName());let a;return null!=r?a=zm(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=zm(n,this.kernel.read()),null!=this.bias&&(a=jm(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:Fb(this.activation),useBias:this.useBias,kernelInitializer:dg(this.kernelInitializer),biasInitializer:dg(this.biasInitializer),kernelRegularizer:Lb(this.kernelRegularizer),biasRegularizer:Lb(this.biasRegularizer),activityRegularizer:Lb(this.activityRegularizer),kernelConstraint:am(this.kernelConstraint),biasConstraint:am(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Iv.className="Dense",Li(Iv);class Av extends Xg{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=$g(e);for(const t of e.slice(1))if(null==t)throw new Ap(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Sm(e,1)]}call(e,t){return io((()=>{this.invokeCallHook(e,t);let n=Mg(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=Mg(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Fb(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}Dv.className="Activation",Li(Dv);class Tv extends Xg{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return io((()=>{return e=Mg(e),t=e,n=this.n,io((()=>{if(2!==t.shape.length)throw new Ap(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return Pm(Fm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Tv.className="RepeatVector",Li(Tv);class Fv extends Xg{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=Mg(e),r=n.shape,a=r.slice(0,1).concat(this.fixUnknownDimension(r.slice(1),this.targetShape));return n.reshape(a)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Fv.className="Reshape",Li(Fv);class Rv extends Xg{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=Dm(1,e.dims.length+1);if(!se(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Ug({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=$g(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return hi(Mg(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}Rv.className="Permute",Li(Rv);class Ov extends Xg{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=Mg(e);return tl(ic(n,this.maskValue),-1)}call(e,t){return io((()=>{this.invokeCallHook(e,t);const n=Mg(e),r=tl(ic(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}Ov.className="Masking",Li(Ov);class Bv extends Xg{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(Mp(e.inputLength))}this.inputDim=e.inputDim,qp(this.inputDim,"inputDim"),this.outputDim=e.outputDim,qp(this.outputDim,"outputDim"),this.embeddingsInitializer=pg(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Wb(e.embeddingsRegularizer),this.activityRegularizer=Wb(e.activityRegularizer),this.embeddingsConstraint=im(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return io((()=>this.maskZero?(e=Mg(e),ic(e,So(e))):null))}computeOutputShape(e){if(e=$g(e),null==this.inputLength)return[...e,this.outputDim];const t=Mp(this.inputLength);if(t.length!==e.length-1)throw new Ap(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let r=0;r{this.invokeCallHook(e,t);let n=Mg(e);return"int32"!==n.dtype&&(n=Tm(n,"int32")),Wm(this.embeddings.read(),n.as1D()).reshape($g(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:dg(this.embeddingsInitializer),embeddingsRegularizer:Lb(this.embeddingsRegularizer),activityRegularizer:Lb(this.activityRegularizer),embeddingsConstraint:am(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Bv.className="Embedding",Li(Bv);class Mv extends Xg{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Dp}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Ap(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===jp(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return io((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Am(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=Dm(1,e).concat([0]);t.push(hi(r,a)),n=!0}else t.push(r)}let r=this.mergeFunction(t);const a=r.rank;if(n)if(null==a){const e=r.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));r=hi(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(Dm(0,a-1));r=hi(r,e)}return r}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==(e=e)[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Ap("`mask` should be an Array");if(!Array.isArray(e))throw new Ap("`inputs` should be an Array");if(t.length!==e.length)throw new Ap(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:hu(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Ap("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return io((()=>Mm(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Ap("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),r=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[r]||null==e[r]){n[r]=null;break}n[r]+=e[r]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Ap("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Ap("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Ap(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return io((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const r=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Dp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);if(t[r[0]]!==n[r[1]])throw new Ap(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Ap(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],r=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>Vv(t,e[n].shape.length))):[Vv(this.axes,n.shape.length),Vv(this.axes,r.shape.length)],this.normalize&&(n=uy(n,t[0]),r=uy(r,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new Dp("batchDot is not implemented for tensors of 4D or higher rank yet");if(Q(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Q(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new Dp("batchDot is not implemented for complex64-type Tensors yet.");const r=e.shape.length,a=t.shape.length;null==n&&(n=[r-1,a-2]);const s=n;return io((()=>{let n,i;if(r>a){n=r-a;const e=[];for(let t=0;tr){n=a-r;const t=[];for(let e=0;e0){let e;e=r>a?r+a-3:r-1;const t=[];for(let r=e;r"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Dp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);t.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);const a=t.concat(n);return 1===a.length&&a.push(1),a}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}jv.className="Dot",Li(jv);class Hv extends Xg{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return io((()=>{this.invokeCallHook(e,t);const n=Mg(e);return Gm((()=>Lm(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}Hv.className="GaussianNoise",Li(Hv);class Gv extends Xg{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return io((()=>{this.invokeCallHook(e,t);const n=Mg(e);return this.rate>0&&this.rate<1?Gm((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(Lm(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}Gv.className="GaussianDropout",Li(Gv);class Xv extends Xg{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Mg(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return io((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return Gm((()=>{const t=Mg(e),r=-1.7580993408473766;let a=bu(Nc(n),this.rate);a=Tm(a,"float32");const s=((1-this.rate)*(1+this.rate*r**2))**-.5,i=-s*r*this.rate;return t.mul(a).add(a.add(-1).mul(r)).mul(s).add(i)}),(()=>Mg(e)),t.training||!1)}return e}))}}function qv(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Fl(e,t,n,r,a,s);else if(3===e.rank)i=Rl(e,t,n,r,a,s);else{if(4!==e.rank)throw new Dp(`batchNormalization is not implemented for array of rank ${e.rank} yet`);i=Ol(e,t,n,r,a,s)}return i}Xv.className="AlphaDropout",Li(Xv);class Kv extends Xg{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=pg(e.betaInitializer||"zeros"),this.gammaInitializer=pg(e.gammaInitializer||"ones"),this.movingMeanInitializer=pg(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=pg(e.movingVarianceInitializer||"ones"),this.betaConstraint=im(e.betaConstraint),this.gammaConstraint=im(e.gammaConstraint),this.betaRegularizer=Wb(e.betaRegularizer),this.gammaRegularizer=Wb(e.gammaRegularizer)}build(e){e=$g(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Ap(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Ug({ndim:e.length,axes:{[t]:n}})];const r=[n];this.scale&&(this.gamma=this.addWeight("gamma",r,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",r,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",r,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",r,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return io((()=>{const n=null!=t.training&&t.training,r=Mg(e),a=r.shape,s=a.length,i=Dm(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);const l=Fp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!se(u,Dm(0,s).slice(0,s-1));if(!n)return(()=>{if(c){const e=this.movingMean.read().reshape(l),t=this.movingVariance.read().reshape(l),n=this.center?this.beta.read().reshape(l):null,a=this.scale?this.gamma.read().reshape(l):null;return qv(r,e,t,n,a,this.epsilon)}return qv(r,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,f,d]=function(e,t,n,r,a=.001){return se(r.slice().sort(),Dm(0,e.rank-1))?function(e,t,n,r,a=.001){return io((()=>{const s=rc(e,r),i=s.mean,o=s.variance;return[qv(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return io((()=>{const s=rc(e,r),i=s.mean,o=s.variance,l=[];for(const t of Dm(0,e.rank))-1!==r.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=i.reshape(l),c=o.reshape(l),h=null==t?null:t.reshape(l),f=null==n?null:n.reshape(l);return[qv(e,u,c,f,h,a),i,o]}))}(e,t,n,r,a)}(r,this.gamma.read(),this.beta.read(),i,this.epsilon),p=(e,t,n)=>{io((()=>{const r=1-n,a=e.read(),s=a.sub(t).mul(r);e.write(a.sub(s))}))};return(()=>{p(this.movingMean,f,this.momentum),p(this.movingVariance,d,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:dg(this.betaInitializer),gammaInitializer:dg(this.gammaInitializer),movingMeanInitializer:dg(this.movingMeanInitializer),movingVarianceInitializer:dg(this.movingVarianceInitializer),betaRegularizer:Lb(this.betaRegularizer),gammaRegularizer:Lb(this.gammaRegularizer),betaConstraint:am(this.betaConstraint),gammaConstraint:am(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Kv.className="BatchNormalization",Li(Kv);class Zv extends Xg{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=pg(e.betaInitializer||"zeros"),this.gammaInitializer=pg(e.gammaInitializer||"ones"),this.betaRegularizer=Wb(e.betaRegularizer),this.gammaRegularizer=Wb(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=$g(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==jp(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t]));this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,!0):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,!0):this.beta=null,this.built=!0}call(e,t){const n=Mg(e),r=n.shape,a=r.length;return io((()=>{let{mean:e,variance:t}=rc(n,this.axis,!0);const s=Fp(1,a);for(const e of this.axis)s[e]=r[e];const i=e=>null!=e&&e.shape.length!==a&&this.axis!==[a-1]?e.reshape(s):e;let o=i(this.gamma.read()),l=i(this.beta.read());const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return io((()=>{return t=Mg(e),n=this.padding,r=this.dataFormat,io((()=>{if(4!==t.rank)throw new Ap(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Ap("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==r&&(r="channelsLast"),"channelsLast"!==r&&"channelsFirst"!==r)throw new Ap(`Unknown data format: ${r}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===r?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],hc(t,e)}));var t,n,r}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function Jv(e,t,n,r,a,s){return io((()=>{let i;ym(a),vm(s),bm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=Yb(e,a);const o="same"===r?"same":"valid";return i="max"===s?Ku(e,t,n,o):kl(e,t,n,o),"channelsFirst"===a&&(i=hi(i,[0,3,1,2])),i}))}function Qv(e,t,n,r,a,s){return io((()=>{let i;ym(a),vm(s),bm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=Jb(e,a);const o="same"===r?"same":"valid";return i="max"===s?Zu(e,t,n,o):El(e,t,n,o),"channelsFirst"===a&&(i=hi(i,[0,4,1,2,3])),i}))}Yv.className="ZeroPadding2D",Li(Yv);class ew extends Xg{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Ap(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(qp(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Ap(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}qp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,bm(this.padding),this.inputSpec=[new Ug({ndim:3})]}computeOutputShape(e){const t=Kb((e=$g(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return io((()=>{this.invokeCallHook(e,t),e=Fm(Mg(e),2);const n=this.poolingFunction(Mg(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return rh(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class tw extends ew{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Jv(e,t,n,r,a,"max")}}tw.className="MaxPooling1D",Li(tw);class nw extends ew{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Jv(e,t,n,r,a,"avg")}}nw.className="AveragePooling1D",Li(nw);class rw extends Xg{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Ap(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];qp(this.poolSize,"poolSize"),qp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,ym(this.dataFormat),bm(this.padding),this.inputSpec=[new Ug({ndim:4})]}computeOutputShape(e){e=$g(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=Kb(t,this.poolSize[0],this.padding,this.strides[0]),n=Kb(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return io((()=>(this.invokeCallHook(e,t),this.poolingFunction(Mg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class aw extends rw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Jv(e,t,n,r,a,"max")}}aw.className="MaxPooling2D",Li(aw);class sw extends rw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Jv(e,t,n,r,a,"avg")}}sw.className="AveragePooling2D",Li(sw);class iw extends Xg{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Ap(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];qp(this.poolSize,"poolSize"),qp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,ym(this.dataFormat),bm(this.padding),this.inputSpec=[new Ug({ndim:5})]}computeOutputShape(e){e=$g(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[4]:e[3];return t=Kb(t,this.poolSize[0],this.padding,this.strides[0]),n=Kb(n,this.poolSize[1],this.padding,this.strides[1]),r=Kb(r,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,r]:[e[0],t,n,r,e[4]]}call(e,t){return io((()=>(this.invokeCallHook(e,t),this.poolingFunction(Mg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class ow extends iw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Qv(e,t,n,r,a,"max")}}ow.className="MaxPooling3D",Li(ow);class lw extends iw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return ym(a),bm(r),Qv(e,t,n,r,a,"avg")}}lw.className="AveragePooling3D",Li(lw);class uw extends Xg{constructor(e){super(e),this.inputSpec=[new Ug({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Dp}}class cw extends uw{constructor(e){super(e||{})}call(e,t){return io((()=>{const t=Mg(e);return Ju(t,1)}))}}cw.className="GlobalAveragePooling1D",Li(cw);class hw extends uw{constructor(e){super(e||{})}call(e,t){return io((()=>{const t=Mg(e);return Ru(t,1)}))}}hw.className="GlobalMaxPooling1D",Li(hw);class fw extends Xg{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,ym(this.dataFormat),this.inputSpec=[new Ug({ndim:4})]}computeOutputShape(e){return e=e,"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Dp}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class dw extends fw{call(e,t){return io((()=>{const t=Mg(e);return"channelsLast"===this.dataFormat?Ju(t,[1,2]):Ju(t,[2,3])}))}}dw.className="GlobalAveragePooling2D",Li(dw);class pw extends fw{call(e,t){return io((()=>{const t=Mg(e);return"channelsLast"===this.dataFormat?Ru(t,[1,2]):Ru(t,[2,3])}))}}pw.className="GlobalMaxPooling2D",Li(pw);class mw extends Xg{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const r=ly(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class gw extends mw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=$g(e)).length<3)throw new Ap(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=$g(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),r=e[1];return[n[0],r].concat(n.slice(1))}call(e,t){return io((()=>fv(((e,n)=>[Mg(this.layer.call(e,t)),[]]),e=Mg(e),[],!1,null,null,!1,!0)[1]))}}gw.className="TimeDistributed",Li(gw);class yw extends mw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=ly(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=ly(r),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,a=this.mergeMode,Gp(mm,"BidirectionalMergeMode",a),e.weights)throw new Dp("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,r,a=this.forwardLayer.computeOutputShape(e);return Array.isArray(a)&&Array.isArray(a[0])||(a=[a]),a=a,this.returnState?(r=a.slice(1),t=a[0]):t=a[0],t=t,"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[t].concat(r).concat(r.slice()):Bp(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=hv(e,n,r,this.numConstants);if(e=a.inputs,n=a.initialState,r=a.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==r)return super.apply(e,t);const s=[],i=[];if(null!=n){const e=n.length;if(e%2>0)throw new Ap("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);const r=n.map((e=>new Ug({shape:e.shape})));this.forwardLayer.stateSpec=r.slice(0,e/2),this.backwardLayer.stateSpec=r.slice(e/2),i.push(...r)}if(null!=r)throw new Dp("Support for constants in Bidirectional layers is not implemented yet.");const o=s[0]instanceof Vg;for(const e of s)if(e instanceof Vg!==o)throw new Ap("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return io((()=>{const n=t.initialState;let r,a,s,i;if(null==n)r=this.forwardLayer.call(e,t),a=this.backwardLayer.call(e,t);else{const s=n.slice(0,n.length/2),i=n.slice(n.length/2);r=this.forwardLayer.call(e,Object.assign(t,{initialState:s})),a=this.backwardLayer.call(e,Object.assign(t,{initialState:i}))}return this.returnState&&(Array.isArray(r)&&(s=r.slice(1).concat(a.slice(1))),r=r[0],a=a[0]),this.returnSequences&&(a=Rc(a,1)),"concat"===this.mergeMode?i=Mm([r,a]):"sum"===this.mergeMode?i=wo(r,a):"ave"===this.mergeMode?i=ko(.5,wo(r,a)):"mul"===this.mergeMode?i=ko(r,a):null==this.mergeMode&&(i=[r,a]),this.returnState?null==this.mergeMode?i.concat(s):[i].concat(s):i}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){xm(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),xm(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=ly(t.layer);if(delete t.layer,null!=t.numConstants)throw new Dp("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const r=t;return r.layer=n,new e(r)}}function bw(e){return new Kg(e)}function vw(e){return new Hb(e)}function ww(e){return new Ub(e)}function xw(e){return new Vb(e)}function _w(e){return new jb(e)}function kw(e){return new Xb(e)}function Ew(e){return new Gb(e)}function Cw(e){return new ov(e)}function Sw(e){return new nv(e)}function Nw(e){return new av(e)}function Iw(e){return new rv(e)}function Aw(e){return new iv(e)}function Dw(e){return new lv(e)}function Tw(e){return new uv(e)}function Fw(e){return new cv(e)}function Rw(e){return new Dv(e)}function Ow(e){return new Iv(e)}function Bw(e){return new Sv(e)}function Mw(e){return new Nv(e)}function $w(e){return new Av(e)}function Pw(e){return new Tv(e)}function Lw(e){return new Fv(e)}function zw(e){return new Rv(e)}function Ww(e){return new Bv(e)}function Uw(e){return new $v(e)}function Vw(e){return new Lv(e)}function jw(e){return new Uv(e)}function Hw(e){return new zv(e)}function Gw(e){return new Wv(e)}function Xw(e){return new Pv(e)}function qw(e){return new jv(e)}function Kw(e){return new Kv(e)}function Zw(e){return new Zv(e)}function Yw(e){return new Yv(e)}function Jw(e){return new nw(e)}function Qw(e){return Jw(e)}function ex(e){return Jw(e)}function tx(e){return new sw(e)}function nx(e){return tx(e)}function rx(e){return tx(e)}function ax(e){return new lw(e)}function sx(e){return ax(e)}function ix(e){return ax(e)}function ox(e){return new cw(e)}function lx(e){return new dw(e)}function ux(e){return new hw(e)}function cx(e){return new pw(e)}function hx(e){return new tw(e)}function fx(e){return new aw(e)}function dx(e){return new ow(e)}function px(e){return new bv(e)}function mx(e){return new yv(e)}function gx(e){return new wv(e)}function yx(e){return new vv(e)}function bx(e){return new gv(e)}function vx(e){return new mv(e)}function wx(e){return new Cv(e)}function xx(e){return new Ev(e)}function _x(e){return new dv(e)}function kx(e){return new xv(e)}function Ex(e){return new yw(e)}function Cx(e){return new gw(e)}yw.className="Bidirectional",Li(yw);const Sx=ux,Nx=cx,Ix=hx,Ax=fx;function Dx(e){return new Hv(e)}function Tx(e){return new Gv(e)}function Fx(e){return new Xv(e)}function Rx(e){return new Ov(e)}function Ox(e,t){return vy(e,t)}function Bx(e,t){return ky(e,t)}function Mx(e,t){return Ey(e,t)}function $x(e,t){return wy(e,t)}function Px(e,t){return Cy(e,t)}function Lx(e,t){return _y(e,t)}function zx(e,t){return function(e,t){return io((()=>{const n=xy(e,t),r=function(e,t){return io((()=>Hu(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return su(yu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function Wx(e,t){return gy(e,t)}function Ux(e,t){return hy(e,t)}function Vx(e,t){return fy(e,t)}function jx(e,t){return fy(e,t)}function Hx(e,t){return fy(e,t)}function Gx(e,t){return cy(e,t)}function Xx(e,t){return cy(e,t)}function qx(e,t){return cy(e,t)}function Kx(e){return new $b(e)}function Zx(e){return Bb(t=e),new $b({l1:null!=t?t.l1:null,l2:0});var t}function Yx(e){return Bb(t=e),new $b({l2:null!=t?t.l2:null,l1:0});var t}class Jx extends ey{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof ub))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function Qx(e,t){return et}class t_ extends Jx{constructor(e){if(super(),null==e&&(e={}),e.restoreBestWeights)throw new Dp("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,-1===["auto","min","max"].indexOf(this.mode)&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),"min"===this.mode?this.monitorFunc=Qx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=e_:this.monitorFunc=Qx,this.monitorFunc===Qx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===Qx?1/0:-1/0}async onEpochEnd(e,t){await Yg(t);const n=this.getMonitorValue(t);null!=n&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){null==e&&(e={});const t=e[this.monitor];return null==t&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}const n_={earlyStopping:function(e){return new t_(e)}};var r_,a_;!function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(r_||(r_={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(a_||(a_={}));const s_={};function i_(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};s_[e]=n}function o_(e){return s_[e]}function l_(e){delete s_[e]}function u_(e,t,n,r,a){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,i=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return c_(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>c_(e,n,r,a)));const o=c_(t.inputNames.slice(e)[0],n,r,a),l=o.dataSync();return"number"===s.type?l[0]:Te(o.shape,l)}const i=t.attrParams[e];return i&&i.value}function c_(e,t,n,r){const[a,s]=d_(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[f_(a,e)]));return void 0!==i?t[f_(a,i)][s]:void 0}function h_(e,t){const[n,r]=d_(e);return[f_(n,t&&t.currentContextId),r]}function f_(e,t){return t?`${e}-${t}`:e}function d_(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function p_(e,t,n){let r=u_("pad",e,t,n);if("explicit"===r){r=u_("explicitPaddings",e,t,n);const a=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)a[e][0]=r[2*e],a[e][1]=r[2*e+1];return a}return r}function m_(e){return e.kept?e:js(e)}const g_=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],y_=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],b_=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],v_=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],w_=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],x_=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],__=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],k_=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],E_=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],C_=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],S_=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],N_=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],I_=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],A_=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],D_=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],T_=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],F_=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class R_{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,A,D,O,R,T,B,M,$,P,L,z,F].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,r=[],a=[],s=[],i=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?r.push(e[t.name]):"Const"===t.op?a.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(i);h.forEach((e=>{const t=i[e];t.inputNames.forEach((e=>{const[n]=h_(e);t.inputs.push(i[n]),i[n].children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=i[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=h_(e),n=i[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=h_(e),n=i[t];n&&(n.signatureKey=u[e],o.push(n))})):o=r;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const d={nodes:i,inputs:o,outputs:l,weights:a,placeholders:r,signature:t,functions:f};return s.length>0&&(d.initNodes=s),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=o_(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.substr(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const r=n.type;let a;switch(n.type){case"string":a=B_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=B_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=H_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=H_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=$_(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=$_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=j_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=j_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=M_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=M_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=X_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=X_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=V_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=V_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=G_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=G_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=z_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=z_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=W_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=W_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=L_(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=L_(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:a,type:r},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let r={};null!=t&&(r=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const a=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=h_(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:P_(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,a.push(n),r[t]=n})),Object.keys(r).forEach((e=>{const t=r[e];t.inputNames.forEach((e=>{const[n]=h_(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=h_(i[e.name]),a=r[t];null!=a&&(a.defaultOutput=n,s.push(a))}));const o=this.mapArgsToSignature(e);return{nodes:r,inputs:a,outputs:s,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function O_(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=ze().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function B_(e,t,n,r=!1){const a=e[t];return null!=a?O_(a.s,r):n}function M_(e,t,n){const r=e[t];return r?r.b:n}function $_(e,t,n){const r=e[t]||{},a=null!=r.i?r.i:null!=r.f?r.f:n;return"number"==typeof a?a:parseInt(a,10)}function P_(e){switch("string"==typeof e&&(e=r_[e]),e){case r_.DT_FLOAT:return"float32";case r_.DT_INT32:case r_.DT_INT64:case r_.DT_INT8:case r_.DT_UINT8:return"int32";case r_.DT_BOOL:return"bool";case r_.DT_DOUBLE:return"float32";case r_.DT_STRING:return"string";default:return null}}function L_(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function z_(e,t,n){const r=e[t];return r&&r.type?P_(r.type):n}function W_(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>P_(e))):n}function U_(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function V_(e,t,n){const r=e[t];return r&&r.shape?U_(r.shape):n}function j_(e,t,n){const r=e[t];return r?((r.list.f&&r.list.f.length?r.list.f:r.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function H_(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>O_(e,r))):n}function G_(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>U_(e))):n}function X_(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class q_{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return c_(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return c_(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return $_(this.node.rawAttrs,e,t);if(null!=n.s)return B_(this.node.rawAttrs,e,t);if(null!=n.b)return M_(this.node.rawAttrs,e,t);if(null!=n.shape)return V_(this.node.rawAttrs,e,t);if(null!=n.type)return z_(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return j_(this.node.rawAttrs,e,t);if(null!=n.list.s)return H_(this.node.rawAttrs,e,t);if(null!=n.list.shape)return G_(this.node.rawAttrs,e,t);if(null!=n.list.b)return X_(this.node.rawAttrs,e,t);if(null!=n.list.type)return W_(this.node.rawAttrs,e,t)}return t}}function K_(e,t,n=""){if("number"!=typeof e&&"number"!=typeof t){Q(e.length===t.length,(()=>n+` Shapes ${e} and ${t} must match`));for(let r=0;rn+` Shapes ${e} and ${t} must match`))}}}function Z_(e){return"number"!=typeof e&&!e.some((e=>e<0))}function Y_(e,t,n){let r=J_(e,n);const a=!Z_(r);if(a&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${r}`);if(a&&t.forEach((e=>{r=J_(e.shape,r)})),!Z_(r))throw new Error(`Non-fully-defined elementShape: ${r}`);return r}function J_(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const n=[];for(let r=0;r=0&&s>=0&&a!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[r]=a>=0?a:s}return n}class Q_{constructor(e,t,n,r,a,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=r,this.identicalElementShapes=a,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=Oo(0),lo(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),K_(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,lo(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,yh(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const r=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const a=0===n?0:t.size/n,s=[];io((()=>{t=_l(t,[1,n,a]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);K_(t,e.shape,"TensorList shape mismatch: "),lo(e)})),this.idTensor=Oo(0),this.maxNumElements=r,lo(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ek([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);K_(e,this.elementShape,"TensorList shape mismatch: ");const r=Y_(this.elementShape,this.tensors,e);return io((()=>{const e=this.tensors.map((e=>_l(e,r)));return ah(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=Y_(this.elementShape,this.tensors,e),r=this.tensors.pop();return K_(r.shape,e,"TensorList shape mismatch: "),_l(r,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(K_(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");lo(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);K_(this.tensors[e].shape,t,"TensorList shape mismatch: ");const r=Y_(this.elementShape,this.tensors,t);return _l(this.tensors[e],r)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);K_(this.elementShape,t.shape,"TensorList shape mismatch: "),lo(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);K_(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const r=Y_(this.elementShape,this.tensors,n);return 0===e.length?Za([],[0].concat(r)):io((()=>{const t=e.map((e=>_l(this.tensors[e],r)));return ah(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);K_(this.elementShape,t,"TensorList shape mismatch: ");const n=Y_(this.elementShape,this.tensors,t);return 0===this.size()?Za([],[0].concat(n)):io((()=>{const e=this.tensors.map((e=>_l(e,n)));return Cl(e,0)}))}}function tk(e,t,n){const[r,a]=u_("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=u_("numArgs",e,t,n);if(s){if(i&&2!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const u=u_("strides",e,t,n),c=p_(e,t,n),h=u_("dataFormat",e,t,n).toUpperCase(),f=u_("dilations",e,t,n),[d,p]=u_("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:u_("leakyreluAlpha",e,t,n)}}function nk(e,t,n){return{boxes:u_("boxes",e,t,n),scores:u_("scores",e,t,n),maxOutputSize:u_("maxOutputSize",e,t,n),iouThreshold:u_("iouThreshold",e,t,n),scoreThreshold:u_("scoreThreshold",e,t,n),softNmsSigma:u_("softNmsSigma",e,t,n)}}class rk{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=Oo(0),this.tensorMap=new Map,lo(this.handle)}get id(){return this.handle.id}clearAndClose(){this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),io((()=>{const e=yh(t),r=n.length,a=e.length;Q(r===a,(()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${a} elements.`));for(let t=0;t{const e=[];for(let r=0;r{switch(e.category){case"arithmetic":return io((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[wo(u_("a",e,t,n),u_("b",e,t,n))];case"AddN":return[Qo(u_("tensors",e,t,n))];case"FloorMod":case"Mod":return[nc(u_("a",e,t,n),u_("b",e,t,n))];case"Mul":return[ko(u_("a",e,t,n),u_("b",e,t,n))];case"RealDiv":case"Div":return[_o(u_("a",e,t,n),u_("b",e,t,n))];case"DivNoNan":return[iu(u_("a",e,t,n),u_("b",e,t,n))];case"FloorDiv":return[xo(u_("a",e,t,n),u_("b",e,t,n))];case"Sub":return[zo(u_("a",e,t,n),u_("b",e,t,n))];case"Minimum":return[ec(u_("a",e,t,n),u_("b",e,t,n))];case"Maximum":return[Go(u_("a",e,t,n),u_("b",e,t,n))];case"Pow":return[Lo(u_("a",e,t,n),u_("b",e,t,n))];case"SquaredDifference":return[nh(u_("a",e,t,n),u_("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return io((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Uo(u_("x",e,t,n))];case"Acos":return[Yo(u_("x",e,t,n))];case"Acosh":return[Jo(u_("x",e,t,n))];case"Asin":return[al(u_("x",e,t,n))];case"Asinh":return[sl(u_("x",e,t,n))];case"Atan":return[il(u_("x",e,t,n))];case"Atan2":return[ol(u_("x",e,t,n),u_("y",e,t,n))];case"Atanh":return[ll(u_("x",e,t,n))];case"Ceil":return[$l(u_("x",e,t,n))];case"Complex":return[qa(u_("real",e,t,n),u_("imag",e,t,n))];case"Cos":return[Zl(u_("x",e,t,n))];case"Cosh":return[Yl(u_("x",e,t,n))];case"Elu":return[lu(u_("x",e,t,n))];case"Erf":return[uu(u_("x",e,t,n))];case"Exp":return[cu(u_("x",e,t,n))];case"Expm1":return[fu(u_("x",e,t,n))];case"Floor":return[mu(u_("x",e,t,n))];case"Log":return[Iu(u_("x",e,t,n))];case"Log1p":return[Au(u_("x",e,t,n))];case"Imag":return[vu(u_("x",e,t,n))];case"Neg":return[Du(u_("x",e,t,n))];case"Reciprocal":return[Dc(u_("x",e,t,n))];case"Real":return[Ac(u_("x",e,t,n))];case"Relu":return[Tc(u_("x",e,t,n))];case"Round":return[Pc(u_("x",e,t,n))];case"Selu":return[zc(u_("x",e,t,n))];case"Sigmoid":return[Sl(u_("x",e,t,n))];case"Sin":return[jc(u_("x",e,t,n))];case"Sign":return[Vc(u_("x",e,t,n))];case"Sinh":return[Hc(u_("x",e,t,n))];case"Softplus":return[Tu(u_("x",e,t,n))];case"Sqrt":return[Eo(u_("x",e,t,n))];case"Square":return[Co(u_("x",e,t,n))];case"Tanh":return[Il(u_("x",e,t,n))];case"Tan":return[oh(u_("x",e,t,n))];case"ClipByValue":return[Pl(u_("x",e,t,n),u_("clipValueMin",e,t,n),u_("clipValueMax",e,t,n))];case"Relu6":return[Fc(u_("x",e,t,n))];case"Rsqrt":return[Lc(c_(e.inputNames[0],t,n))];case"Prod":return[vc(u_("x",e,t,n),u_("axes",e,t,n))];case"LeakyRelu":return[ku(u_("x",e,t,n),u_("alpha",e,t,n))];case"Prelu":return[bc(u_("x",e,t,n),u_("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return(async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const r=u_("thenBranch",e,t,n),a=u_("elseBranch",e,t,n),s=u_("cond",e,t,n),i=u_("args",e,t,n);return(await s.data())[0]?n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const r=u_("body",e,t,n),a=u_("cond",e,t,n),s=u_("args",e,t,n),i=await n.functionMap[a].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map((e=>e.id));let l=await i[0].data();i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=s;for(;l[0];){const e=u;u=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await s[0].data(),s.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[m_(u_("pred",e,t,n))];case"Switch":{const r=u_("pred",e,t,n);let a=u_("data",e,t,n);return a.kept||(a=m_(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==c_(e,t,n)));return r?[m_(c_(r,t,n))]:void 0}case"Enter":{const r=u_("frameName",e,t,n),a=u_("tensor",e,t,n);return n.enterFrame(r),[m_(a)]}case"Exit":{const r=u_("tensor",e,t,n);return n.exitFrame(),[m_(r)]}case"NextIteration":{const r=u_("tensor",e,t,n);return n.nextIteration(),[m_(r)]}case"TensorArrayV3":{const r=u_("size",e,t,n),a=u_("dtype",e,t,n),s=u_("elementShape",e,t,n),i=u_("dynamicSize",e,t,n),o=u_("clearAfterRead",e,t,n),l=u_("identicalElementShapes",e,t,n),u=u_("name",e,t,n),c=new Q_(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,Oo(1)]}case"TensorArrayWriteV3":{const r=u_("tensorArrayId",e,t,n),a=u_("index",e,t,n),s=u_("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=u_("tensorArrayId",e,t,n),a=u_("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=u_("tensorArrayId",e,t,n),a=u_("indices",e,t,n),s=u_("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=u_("tensorArrayId",e,t,n),a=u_("indices",e,t,n),s=u_("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=u_("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=u_("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=u_("tensorArrayId",e,t,n),a=u_("tensor",e,t,n),s=u_("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=u_("tensorArrayId",e,t,n);return[Oo(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=u_("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=u_("tensorListId",e,t,n),a=u_("index",e,t,n),s=u_("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=u_("tensorListId",e,t,n),a=u_("index",e,t,n),s=u_("elementShape",e,t,n),i=u_("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=u_("indices",e,t,n),a=function(e,t,n,r){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const a=Math.max(...t);if(null!=r&&-1!==r&&a>=r)throw new Error(`Max index must be < array size (${a} vs. ${r})`);const s=new ek([],n,e.dtype,r),i=yh(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(u_("tensor",e,t,n),r,u_("elementShape",e,t,n),u_("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=u_("elementShape",e,t,n),a=u_("elementDType",e,t,n);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const i=function(e,t,n){return new ek([],e,t,n)}(r,a,u_(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=u_("tensorListId",e,t,n),a=u_("indices",e,t,n),s=u_("elementShape",e,t,n),i=u_("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=u_("tensorListId",e,t,n),a=u_("elementShape",e,t,n),s=u_("elementDType",e,t,n),i=u_("numElements",e,t,n);return[n.getTensorList(r.id).stack(a,s,i)]}case"TensorListFromTensor":{const r=function(e,t,n){const r=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);K_(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=yh(e);return new ek(a,t,r)}(u_("tensor",e,t,n),u_("elementShape",e,t,n),u_("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=u_("tensorListId",e,t,n),a=n.getTensorList(r.id),s=u_("dtype",e,t,n),i=u_("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=u_("tensorListId",e,t,n),a=u_("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=u_("tensorListId",e,t,n),a=u_("elementShape",e,t,n),s=u_("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=u_("tensor",e,t,n),a=u_("elementShape",e,t,n),s=function(e,t,n){let r=0;const a=t.map((e=>(r+=e,r)));if(r!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${r}, and tensor's shape is: ${e.shape}`);const s=J_(e.shape.slice(1),n),i=0===r?0:e.size/r,o=io((()=>{const n=[];e=_l(e,[1,r,i]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=u_("stride",e,t,n),a=u_("pad",e,t,n),s=u_("dataFormat",e,t,n).toUpperCase(),i=u_("dilation",e,t,n);return[jl(u_("x",e,t,n),u_("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=u_("strides",e,t,n),a=p_(e,t,n),s=u_("dataFormat",e,t,n).toUpperCase(),i=u_("dilations",e,t,n);return[Vl(u_("x",e,t,n),u_("filter",e,t,n),[r[1],r[2]],a,s,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=tk(e,t,n);return[$h({x:u_("x",e,t,n),filter:u_("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=tk(e,t,n);return[zh({x:u_("x",e,t,n),filter:u_("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=u_("outputShape",e,t,n),a=u_("strides",e,t,n),s=p_(e,t,n);return[Gl(u_("x",e,t,n),u_("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=u_("strides",e,t,n),a=p_(e,t,n),s=u_("dilations",e,t,n),i=u_("dataFormat",e,t,n).toUpperCase();return[tu(u_("input",e,t,n),u_("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("dataFormat",e,t,n).toUpperCase(),i=u_("dilations",e,t,n);return[Xl(u_("x",e,t,n),u_("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("kernelSize",e,t,n);return[kl(u_("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("kernelSize",e,t,n);return[Ku(u_("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("kernelSize",e,t,n),i=u_("includeBatchInIndex",e,t,n),{result:o,indexes:l}=Yu(u_("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("kernelSize",e,t,n);return[El(u_("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("kernelSize",e,t,n);return[Zu(u_("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=u_("strides",e,t,n),a=u_("pad",e,t,n),s=u_("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[ru(u_("x",e,t,n),u_("filter",e,t,n),[i,o],a,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return io((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=u_("shape",e,t,n),a=u_("dtype",e,t,n);return[$o(r,u_("value",e,t,n),a)]}case"LinSpace":return[Su(u_("start",e,t,n),u_("stop",e,t,n),u_("num",e,t,n))];case"Multinomial":{const r=u_("logits",e,t,n),a=u_("numSamples",e,t,n),s=u_("seed",e,t,n);return[sc(r,a,s)]}case"OneHot":{const r=u_("indices",e,t,n),a=u_("depth",e,t,n),s=u_("onValue",e,t,n),i=u_("offValue",e,t,n);return[ci(r,a,s,i)]}case"Ones":return[lc(u_("shape",e,t,n),u_("dtype",e,t,n))];case"OnesLike":return[uc(u_("x",e,t,n))];case"RandomUniform":return[Nc(u_("shape",e,t,n),u_("minval",e,t,n),u_("maxval",e,t,n),u_("dtype",e,t,n))];case"Range":return[Ic(u_("start",e,t,n),u_("stop",e,t,n),u_("step",e,t,n),u_("dtype",e,t,n))];case"TruncatedNormal":{const r=u_("shape",e,t,n),a=u_("mean",e,t,n),s=u_("stdDev",e,t,n),i=u_("seed",e,t,n);return[ph(r,a,s,u_("dtype",e,t,n),i)]}case"Zeros":return[oc(u_("shape",e,t,n),u_("dtype",e,t,n))];case"ZerosLike":return[So(u_("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=nk(e,t,n),u=await Nf.nonMaxSuppressionWithScoreAsync(r,a,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=nk(e,t,n),l=u_("padToMaxOutputSize",e,t,n),u=await Nf.nonMaxSuppressionPaddedAsync(r,a,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=nk(e,t,n);return[await Nf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=Vs(u_("condition",e,t,n),"bool"),a=[await wh(r)];return r.dispose(),a}case"ListDiff":return Uc(u_("x",e,t,n),u_("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return io((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=u_("x",e,t,n),a=u_("k",e,t,n),s=u_("sorted",e,t,n),i=dh(r,a,s);return[i.values,i.indices]}case"Unique":{const r=u_("x",e,t,n),a=mh(r);return[a.values,a.indices]}case"UniqueV2":{const r=u_("x",e,t,n),a=u_("axis",e,t,n),s=mh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return io((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=u_("images",e,t,n),a=u_("size",e,t,n),s=u_("alignCorners",e,t,n),i=u_("halfPixelCenters",e,t,n);return[Nf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=u_("images",e,t,n),a=u_("size",e,t,n),s=u_("alignCorners",e,t,n),i=u_("halfPixelCenters",e,t,n);return[Nf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=u_("image",e,t,n),a=u_("boxes",e,t,n),s=u_("boxInd",e,t,n),i=u_("cropSize",e,t,n),o=u_("method",e,t,n),l=u_("extrapolationValue",e,t,n);return[Nf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return io((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=u_("default",e,t,n);return[c_(e.name,t,n)||r];case"Placeholder":return[c_(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[m_(u_("x",e,t,n))];case"IdentityN":return u_("x",e,t,n).map((e=>m_(e)));case"Snapshot":return[m_(u_("x",e,t,n))];case"Shape":return[lh(u_("x",e,t,n).shape,"int32")];case"ShapeN":return u_("x",e,t,n).map((e=>lh(e.shape)));case"Size":return[Oo(u_("x",e,t,n).size,"int32")];case"Rank":return[Oo(u_("x",e,t,n).rank,"int32")];case"NoOp":return[Oo(1)];case"Print":const a=u_("x",e,t,n),s=u_("data",e,t,n),i=u_("message",e,t,n),o=u_("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,n)=>{switch(e.op){case"Equal":return[au(u_("a",e,t,n),u_("b",e,t,n))];case"NotEqual":return[ic(u_("a",e,t,n),u_("b",e,t,n))];case"Greater":return[yu(u_("a",e,t,n),u_("b",e,t,n))];case"GreaterEqual":return[bu(u_("a",e,t,n),u_("b",e,t,n))];case"Less":return[Eu(u_("a",e,t,n),u_("b",e,t,n))];case"LessEqual":return[Cu(u_("a",e,t,n),u_("b",e,t,n))];case"LogicalAnd":return[Hu(u_("a",e,t,n),u_("b",e,t,n))];case"LogicalNot":return[Gu(u_("a",e,t,n))];case"LogicalOr":return[Xu(u_("a",e,t,n),u_("b",e,t,n))];case"Select":case"SelectV2":return[su(u_("condition",e,t,n),u_("a",e,t,n),u_("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return io((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ui(u_("a",e,t,n),u_("b",e,t,n),u_("transposeA",e,t,n),u_("transposeB",e,t,n))];case"Transpose":return[hi(u_("x",e,t,n),u_("perm",e,t,n))];case"_FusedMatMul":const[r,a]=u_("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=u_("numArgs",e,t,n),l=u_("leakyreluAlpha",e,t,n);if(s){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[u,c]=u_("args",e,t,n);return[Wh({a:u_("a",e,t,n),b:u_("b",e,t,n),transposeA:u_("transposeA",e,t,n),transposeB:u_("transposeB",e,t,n),bias:u,activation:a,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return io((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Tl(u_("x",e,t,n),u_("mean",e,t,n),u_("variance",e,t,n),u_("offset",e,t,n),u_("scale",e,t,n),u_("epsilon",e,t,n))];case"LRN":return[Nu(u_("x",e,t,n),u_("radius",e,t,n),u_("bias",e,t,n),u_("alpha",e,t,n),u_("beta",e,t,n))];case"Softmax":return[Zc(u_("x",e,t,n))];case"LogSoftmax":return[Bu(u_("x",e,t,n))];case"SparseToDense":return[Sh(u_("sparseIndices",e,t,n),u_("outputShape",e,t,n),u_("sparseValues",e,t,n),u_("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return io((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[Ru(u_("x",e,t,n),r,a)]}case"Mean":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[Ju(u_("x",e,t,n),r,a)]}case"Min":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[Qu(u_("x",e,t,n),r,a)]}case"Sum":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[Ou(u_("x",e,t,n),r,a)]}case"All":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[el(u_("x",e,t,n),r,a)]}case"Any":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[tl(u_("x",e,t,n),r,a)]}case"ArgMax":{const r=u_("axis",e,t,n);return[nl(u_("x",e,t,n),r)]}case"ArgMin":{const r=u_("axis",e,t,n);return[rl(u_("x",e,t,n),r)]}case"Prod":{const r=u_("axis",e,t,n),a=u_("keepDims",e,t,n);return[vc(u_("x",e,t,n),r,a)]}case"Cumsum":{const r=u_("axis",e,t,n),a=u_("exclusive",e,t,n),s=u_("reverse",e,t,n);return[Jl(u_("x",e,t,n),r,a,s)]}case"Bincount":const r=u_("x",e,t,n),a=u_("weights",e,t,n),s=u_("size",e,t,n);return[Bl(r,a,s)];case"DenseBincount":{const r=u_("x",e,t,n),a=u_("weights",e,t,n),s=u_("size",e,t,n),i=u_("binaryOutput",e,t,n);return[Ql(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return io((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=u_("n",e,t,n),a=u_("axis",e,t,n);let s=u_("tensors",e,t,n);return s=s.slice(0,r),[Cl(s,a)]}case"Gather":{const r=u_("x",e,t,n),a=u_("indices",e,t,n);return[gu(r,Vs(a,"int32"),0)]}case"GatherV2":{const r=u_("axis",e,t,n),a=u_("batchDims",e,t,n),s=u_("x",e,t,n),i=u_("indices",e,t,n);return[gu(s,Vs(i,"int32"),r,a)]}case"Reverse":{const r=u_("dims",e,t,n),a=[];for(let e=0;e{const r=u_("axis",e,t,n),a=u_("tensors",e,t,n),s=a[0].shape,i=rh(a[0]).shape,o=a.map((e=>{const t=se(e.shape,s);if(!t&&!se(rh(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:_l(e,s)}));return[ah(o,r)]}));case"Unpack":{const r=u_("axis",e,t,n),a=u_("tensor",e,t,n);return yh(a,r)}case"Tile":{const r=u_("reps",e,t,n);return[du(u_("x",e,t,n),r)]}case"Split":case"SplitV":{const r=u_("axis",e,t,n),a=u_("numOrSizeSplits",e,t,n),s=u_("x",e,t,n);return eh(s,a,r)}case"ScatterNd":{const r=u_("indices",e,t,n),a=u_("values",e,t,n),s=u_("shape",e,t,n);return[Ch(r,a,s)]}case"GatherNd":{const r=u_("x",e,t,n),a=u_("indices",e,t,n);return[Nh(r,a)]}case"SparseToDense":{const r=u_("sparseIndices",e,t,n),a=u_("outputShape",e,t,n),s=u_("sparseValues",e,t,n),i=u_("defaultValue",e,t,n);return[Sh(r,s,a,s.dtype===i.dtype?i:Vs(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return io((()=>((e,t,n)=>{switch(e.op){case"FFT":return[Yc(u_("x",e,t,n))];case"IFFT":return[Jc(u_("x",e,t,n))];case"RFFT":return[th(u_("x",e,t,n))];case"IRFFT":return[Qc(u_("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return io((()=>((e,t,n)=>{switch(e.op){case"Cast":return[Vs(u_("x",e,t,n),u_("dtype",e,t,n))];case"ExpandDims":{const r=u_("axis",e,t,n);return[hu(u_("x",e,t,n),r)]}case"Squeeze":{const r=u_("axis",e,t,n);return[rh(u_("x",e,t,n),r)]}case"Reshape":return[_l(u_("x",e,t,n),u_("shape",e,t,n))];case"MirrorPad":return[tc(u_("x",e,t,n),u_("padding",e,t,n),u_("mode",e,t,n))];case"PadV2":case"Pad":return[hc(u_("x",e,t,n),u_("padding",e,t,n),u_("constantValue",e,t,n))];case"SpaceToBatchND":{const r=u_("blockShape",e,t,n),a=u_("paddings",e,t,n);return[gc(u_("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=u_("blockShape",e,t,n),a=u_("crops",e,t,n);return[Dl(u_("x",e,t,n),r,a)]}case"DepthToSpace":{const r=u_("blockSize",e,t,n),a=u_("dataFormat",e,t,n).toUpperCase();return[eu(u_("x",e,t,n),r,a)]}case"BroadcastTo":return[Ml(u_("x",e,t,n),u_("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,r)=>{switch(e.op){case"HashTable":case"HashTableV2":{const a=u_("keyDType",e,t,n),s=u_("valueDType",e,t,n),i=new rk(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=u_("tableHandle",e,t,n,r),s=u_("keys",e,t,n),i=u_("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=u_("tableHandle",e,t,n,r),s=u_("keys",e,t,n),i=u_("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=o_(e.op);if(a&&a.customExecutor)return a.customExecutor(new q_(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return Pe(a)?a.then((e=>[].concat(e))):[].concat(a)}class sk{constructor(e={},t={},n={},r={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function ik(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>d_(e)[0]));let c=[];null!=r&&(c=r.map((e=>d_(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(ck(e)||hk(e)||fk(e))&&null==i&&(i=e,o=i.children.map((e=>e.name)).filter((e=>a.has(e)))),a.add(e.name),null==n[e.name]&&-1===u.indexOf(e.name)&&-1===c.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):s.push(e.name))}return{inputs:e,outputs:t,usedNodes:a,missingInputs:s,dynamicNode:i,syncInputs:o}}const ok=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],lk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],uk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function ck(e){return ok.indexOf(e.op)>=0}function hk(e){return lk.indexOf(e.op)>=0}function fk(e){return uk.indexOf(e.op)>=0}class dk{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new dk(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),r=t.map((e=>e.name)).sort();return n.join(this.SEPERATOR)+"--"+r.join(this.SEPERATOR)}compile(e,t){const n=ik(e,t,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:a,syncInputs:s}=n;if(null!=a)throw new Error(`This execution contains the node '${a.name}', which has the dynamic op '${a.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(r.length>0){const n=t.map((e=>e.name)),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${a}]. Missing the following inputs: [${r}]`)}return function(e,t,n){const{usedNodes:r,inputs:a}=n,s=[],i=Object.keys(a).map((e=>d_(e)[0])).map((t=>e.nodes[t])),o=e.initNodes;i.forEach((e=>{r.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{r.has(e.name)&&s.push(e)})),null!=o&&o.forEach((e=>{r.has(e.name)&&s.push(e)}));const l=new Set,u=[];for(;s.length>0;){const e=s.pop();l.add(e.name),t[e.name]||u.push(e),e.children.forEach((e=>{!l.has(e.name)&&r.has(e.name)&&e.inputs.every((e=>l.has(e.name)))&&s.push(e)}))}return u}(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const r=n.map((e=>this.graph.nodes[d_(e)[0]])),a=t.map((e=>d_(e)[0]));let s=a.map((e=>this.graph.nodes[e]));0===s.length&&(s=this._outputs);const i=this.getCompilationKey(r,s);let o=this.compiledMap.get(i);null==o&&(o=this.compile(e,s),this.compiledMap.set(i,o));const l={},u={};return io((()=>{const n=new sk(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=d_(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;ec_(e,r,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,r,a,s,i){"control"!==t.category&&-1===s.indexOf(e)&&(n[e].forEach((e=>{null!=e&&(i[e.id]=(i[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const t=function(e,t,n){return t[f_(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!a.has(e.id)){const t=i[e.id];1===t?(e.dispose(),delete i[e.id]):null!=t&&i[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,r={},a={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const s=new sk(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>c_(e,i,s))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach((e=>{i[e].forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&s.dispose(c),o}async executeFunctionAsync(e,t,n){const r=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(r,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,r){const a=Object.keys(e),s=a.map((e=>this.graph.nodes[d_(e)[0]])),i=n.map((e=>d_(e)[0]));let o=i.map((e=>this.graph.nodes[e]));0===o.length&&(o=this._outputs);const{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:h}=ik(e,o,this.weightMap,this._initNodes),f=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),d=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,r]=d_(t),a=[];a[r]=e[t],d[n]=a}));const p={},m=this.getFrozenTensorIds(d),g={};for(;f.length>0;){const e=this.processStack(s,f,t,d,g,m,i,p,l);await Promise.all(e)}null!=c||r||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=o.filter((e=>!ck(e)&&!c_(e.name,d,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=c&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${a}]. Consider providing the following inputs: [${u}]. ${e}`)}return d}processStack(e,t,n,r,a,s,i,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&u_("isConstant",e.node,r,n)&&([c]=h_(e.node.name,n)),null==r[e.node.name]){const h=ak(e.node,r,n,this._resourceManager);c||([c]=h_(e.node.name,n));const f=n.currentContext;Pe(h)?u.push(h.then((u=>(r[c]=u,n.currentContext=f,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l),u)))):(r[c]=h,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l))}else this.processChildNodes(e.node,t,n,r,a,l)}return u}processChildNodes(e,t,n,r,a,s){e.children.forEach((e=>{const[i]=h_(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!c_(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!c_(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[r]=d_(t),a=this.graph.nodes[r];if(a.attrParams.shape&&a.attrParams.shape.value){const e=a.attrParams.shape.value;Q(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${a.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}a.attrParams.dtype&&a.attrParams.dtype.value&&Q(n.dtype===a.attrParams.dtype.value,(()=>`The dtype of dict['${a.name}'] provided in model.execute(dict) must be ${a.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){const t={};for(const n in e)null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[n]?t[this._signature.inputs[n].name]=e[n]:t[n]=e[n];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=d_(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]?this._signature.outputs[e].name:e),{})}checkOutputs(e){e.forEach((e=>{const[t]=d_(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class pk{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class mk{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",null==t&&(this.loadOptions={}),this.resourceManager=new pk}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=ai(e,this.loadOptions);else{const t=hs(e,this.loadOptions);if(0===t.length)t.push(ai(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let n;n=null!=this.artifacts.userDefinedMetadata&&null!=this.artifacts.userDefinedMetadata.signature?this.artifacts.userDefinedMetadata.signature:this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const r=Qa(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new dk(R_.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(r),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=R_.Instance.transformGraph(e.modelInitializer);this.initializer=new dk(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=cs(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof ga||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,n,r)=>(t[n]=e[r],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function gk(e,t={}){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&null==e.load&&(e.endsWith("/")||(e+="/"),e=`${e}model.json?tfjs-format=file`);const n=new mk(e,t);return await n.load(),n}const yk="3.2.0";function bk(e,t,n=new Map,r=new Set){if(null==e)return null;if(r.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(a.recurse){if(kk(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=bk(e[s],t,n,r);a[s]=i}return r.delete(e),a}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,a.value),a.value}function vk(e,t=xk){return wk(e,t)}function wk(e,t,n=new Set){const r=e[0];if(n.has(r))throw new Error("Circular references are not supported.");const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(a.recurse){if(kk(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=wk(e.map((e=>e[s])),t,n);a[s]=r}return n.delete(r),a}throw new Error(`Can't recurse into non-iterable type: ${r}`)}return a.value}function xk(e){return null===e?null:kk(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function _k(e,t){const n=new Map;bk(e,t,n);for(const e of Array.from(n.keys())){const t=n.get(e);if(Pe(t)){const r=await t;n.set(e,r)}}return bk(e,t,n)}function kk(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof ga))}function Ek(e){return e instanceof ga?{value:e.clone(),recurse:!1}:kk(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Ck{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class Sk extends Ck{constructor(){super(Sk.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new Bk(this,e,t)}columnMajorBatch(e,t=!0,n=xk){return this.rowMajorBatch(e,t).map((e=>vk(e,n)))}concatenate(e,t){return new Uk(Nk([this,e]),t)}take(e){return e<0||null==e?this:new Ok(this,e)}skip(e){return e<0||null==e?this:new Rk(this,e)}prefetch(e){return new Hk(this,e)}shuffle(e,t){return new Gk(this,e,t)}serial(){return new Fk(this)}}class Dk extends Ak{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:(t=e,function(e,t){return bk(e,t)}(t,Ek)),done:!1};var t}}class Tk extends Ak{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class Fk extends Ak{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class Rk extends Ak{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class Bk extends Ak{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class Mk extends Ak{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;oo(e.value)}}}class $k extends Ak{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Da(e.value),n=this.transform(e.value),r=Da(n);for(const e of t)Aa(e,r)||e.dispose();return{value:n,done:!1}}}class Pk extends Ak{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class Lk extends Ak{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Da(e.value),n=await this.transform(e.value),r=Da(n);for(const e of t)Aa(e,r)||e.dispose();return{value:n,done:!1}}}class zk extends Ak{constructor(){super(),this.outputQueue=new Sk,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class Wk extends zk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Da(e.value),n=this.transform(e.value),r=Da(n);this.outputQueue.pushAll(n);for(const e of t)Aa(e,r)||e.dispose();return!0}}class Uk extends Ak{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var Vk;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(Vk||(Vk={}));class jk extends Ak{constructor(e,t=Vk.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;const r=await _k(this.iterators,(function(e){return e instanceof Ak?{value:e.next().then((e=>(t++,e.done&&n++,e.value))),recurse:!1}:{value:null,recurse:!0}}));if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Vk.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Vk.SHORTEST:return{value:null,done:!0};case Vk.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class Hk extends Ak{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new Ck(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class Gk extends Hk{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=xc.alea(n||ea().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class Xk{constructor(){this.size=null}batch(e,t=!0){const n=this;let r;return Q(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),r=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),qk((async()=>(await n.iterator()).columnMajorBatch(e,t,Yk)),r)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,qk((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,qk((async()=>(await t.iterator()).filter((t=>io((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return qk((async()=>(await t.iterator()).map((t=>io((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return qk((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return qk((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,qk((async()=>{return n=Ik((async()=>({value:await t.iterator(),done:!1}))).take(e),new Uk(n,r);var n,r}),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const r=this,a=xc.alea(t||ea().toString());return qk((async()=>{let t=a.int32();return n&&(t+=a.int32()),(await r.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,qk((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function qk(e,t=null){return new class extends Xk{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Kk(e){return qk((async()=>Nk(e)),e.length)}function Zk(e){if(!kk(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;nfunction(e,t=Vk.FAIL){return new jk(e,t)}(await _k(e,(e=>{if(e instanceof Xk)return{value:e.iterator(),recurse:!1};if(kk(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),Vk.SHORTEST)),t)}function Yk(e){if(null===e)return null;return null==(t=e[0])||null===(n=t)||"object"!=typeof n&&"function"!=typeof n||Array.isArray(t)||"object"==typeof t&&t instanceof ga||we(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof ga?ah(e):Za(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}Xk.MAX_BUFFER_SIZE=1e4;class Jk extends Xk{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split("\n").map((e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e)))}}const Qk='"',eE=Symbol("out"),tE=Symbol("field"),nE=Symbol("quote"),rE=Symbol("quoteafterquote"),aE=Symbol("quoteinquote");class sE extends Xk{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Jk(e),t||(t={}),this.hasHeader=!1!==t.hasHeader,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(Q(null==t.delimiter,(()=>"Delimiter should not be provided when delimWhitespace is true.")),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&Q(e.length===this.fullColumnNames.length,(()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+").")),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce(((e,t)=>(e[t]=e[t]+1||1,e)),{}),n=Object.keys(t).filter((e=>t[e]>1));if(Q(0===n.length,(()=>"Duplicate column names found: "+n.toString())),this.columnConfigs)for(const e of Object.keys(this.columnConfigs))if(-1===this.fullColumnNames.indexOf(e))throw new Error('The key "'+e+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const n=t.value;return this.parseRow(n,!1)}return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map((e=>this.makeDataElement(e)))}makeDataElement(e){const t=this.parseRow(e),n={},r={};for(let a=0;a14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!1!==e.includeSpectrogram,this.includeWaveform=!0===e.includeWaveform,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ze().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new iE(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:null==this.audioTrackConstraints||this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,this.sampleRateHz){if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`)}else this.sampleRateHz=this.audioContext.sampleRate;const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const n=await this.getAudioData();if(this.includeSpectrogram){const t=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(t,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const e=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(e,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let n=0;return new Promise((r=>{const a=setInterval((()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(a),r({freqDataQueue:e,timeDataQueue:t}))}),this.fftSize/this.sampleRateHz*1e3)}))}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),null!=this.stream&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(((e,r)=>n.set(e,r*t))),n}getTensorFromAudioDataArray(e,t){const n=new Float32Array(re(t));return n.set(e,n.length-e.length),Za(n,t)}}class oE extends Ak{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=lh([0],"int32"),this.webcamConfig.centerCrop){const e=1*this.webcamConfig.resizeWidth/this.webcamVideoElement.width,t=1*this.webcamConfig.resizeHeight/this.webcamVideoElement.height,n=(1-e)/2,r=(1-t)/2,a=n+e,s=t+r;this.cropBox=uh([r,n,s,a],[1,4])}else this.cropBox=uh([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ze().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const n=new oE(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&Q("user"===this.webcamConfig.facingMode||"environment"===this.webcamConfig.facingMode,(()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`));try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise((e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}}))}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=gi(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(!this.resize)return{value:e,done:!1};try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{e.dispose()}}needToResize(){return!(!this.webcamConfig.resizeWidth||!this.webcamConfig.resizeHeight||this.webcamVideoElement.width===this.webcamConfig.resizeWidth&&this.webcamVideoElement.height===this.webcamConfig.resizeHeight)}cropAndResizeFrame(e){return io((()=>{const t=hu(Vs(e,"float32"),0);let n;n=Nf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return _l(n,r.slice(1))}))}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach((e=>e.stop()));try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class lE{}class uE extends Ak{split(e){return new cE(this,e)}}class cE extends uE{constructor(e,t){super(),this.upstream=e,this.impl=new hE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class hE extends zk{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return""!==this.carryover&&(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const e of t.slice(0,-1))this.outputQueue.push(e);return this.carryover=t[t.length-1],!0}}class fE extends Ak{decodeUTF8(){return new dE(this)}}class dE extends uE{constructor(e){super(),this.upstream=e,this.impl=new pE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class pE extends zk{constructor(e){if(super(),this.upstream=e,ze().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:e}=n(4589);this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t,n;return!e.done&&(t=e.value,n=ze().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class mE extends fE{constructor(e,t={}){super(),this.file=e,this.options=t,Q(e instanceof Uint8Array||!!ze().get("IS_BROWSER")&&(e instanceof File||e instanceof Blob),(()=>"FileChunkIterator only supports File, Blob and Uint8Array right now.")),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1048576}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise(((e,t)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{const r=new FileReader;r.onload=n=>{let a=r.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(a)},r.onabort=e=>t(new Error("Aborted")),r.onerror=e=>t(new Error(e.type));const a=this.file.slice(this.offset,n);r.readAsArrayBuffer(a)}this.offset=n}));return{value:await e,done:!1}}}function gE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class yE extends lE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(gE(this.input)&&ze().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new mE(this.input,this.options)}}class bE extends lE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return gE(this.url)?new yE(this.url,this.fileOptions).iterator():async function(e,t={}){let n,r;var a;"string"==typeof e?n=e:(n=e.url,r={method:(a=e).method,headers:a.headers,body:a.body,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,referrer:a.referrer,integrity:a.integrity});const s=await ta(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new mE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function vE(e,t={}){return new sE(new bE(e),t)}function wE(e){const t=Ik(e);return qk((async()=>t))}function xE(e){return qk((async()=>{const t=await e();return Ik((()=>t.next()))}))}async function _E(e,t){return oE.create(e,t)}async function kE(e){return iE.create(e)}const EE="3.2.0";function CE(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Q("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const SE=vh;class NE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,ro())}nextDataId(){return NE.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ze().get("IS_NODE")&&Jf("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"));const r={id:this.nextDataId()};return this.data.set(r,{values:e,dtype:n,refCount:1}),r}makeTensorInfo(e,t,n){let r;if("string"===t&&null!=n&&n.length>0&&ke(n[0])){const a=n.map((e=>na(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return{dataId:r,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){this.data.get(e).refCount++}decRef(e){this.data.has(e)&&this.data.get(e).refCount--}move(e,t,n,r,a){this.data.set(e,{values:t,dtype:r,refCount:a})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);return"complex64"===t?ed(this.readSync(n.real.dataId),this.readSync(n.imag.dataId)):this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ra(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Us(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return ro().makeTensorFromDataId(r,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:n}=this.data.get(e);null!=n&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=ea();return e(),{kernelMs:ea()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){CE([e],"where");const t=this.readSync(e.dataId);return SE(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function IE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(CE(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=re(i.shape),c=n||i.dtype,h=ge(c,u);for(let e=0;e{const{x:i}=r;if(CE(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,a);return o.makeTensorInfo(i.shape,u,c)}}NE.nextDataId=0,yo("cpu",(()=>new NE),1);const DE=IE(Lt,(e=>e>=0?e:Math.exp(e)-1)),TE={kernelName:Lt,backendName:"cpu",kernelFunc:DE};function FE(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const RE={kernelName:nn,backendName:"cpu",kernelFunc:FE};function OE(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;CE([a],"leakyRelu");const i=re(a.shape),o=n.data.get(a.dataId).values,l=me("float32",i);for(let e=0;e{const i=Ho(t,n),o=i.length,l=Ae(i),u=me(s,re(i)),c=t.length,h=n.length,f=Ae(t),d=Ae(n),p=Vo(t,i),m=Vo(n,i);if(p.length+m.length===0)for(let t=0;ts[e]=0));const i=Me(s,c,f),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=Me(g,h,d);u[t]=e(r[i],a[y])}return[u,i]}}const $E=ME(((e,t)=>e<0?t*e:e));function PE(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;CE([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=$E(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const LE={kernelName:Gn,backendName:"cpu",kernelFunc:PE},zE=IE(Yn,(e=>Math.max(0,e))),WE={kernelName:Yn,backendName:"cpu",kernelFunc:zE},UE=IE(rr,(e=>Math.min(Math.max(0,e),6))),VE={kernelName:rr,backendName:"cpu",kernelFunc:UE};function jE(e,t,n,r,a){if("linear"===n)return FE({inputs:{x:t},backend:e});if("relu"===n)return zE({inputs:{x:t},backend:e});if("elu"===n)return DE({inputs:{x:t},backend:e});if("relu6"===n)return UE({inputs:{x:t},backend:e});if("prelu"===n)return PE({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return OE({inputs:{x:t},backend:e,attrs:{alpha:a}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function HE(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,o=n.makeTensorInfo(r.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",s),imag:n.makeTensorInfo(a.shape,"float32",i)},o}const GE={kernelName:gt,backendName:"cpu",kernelFunc:HE};function XE(e,t,n="float32"){if("complex64"===n)return HE({inputs:{real:XE(e,t,"float32"),imag:XE(e,t,"float32")},backend:e});const r=Re(re(t),n);return e.makeTensorInfo(t,n,r)}function qE(e){const{inputs:t,backend:n}=e,{input:r}=t,a=n.data.get(r.dataId).complexTensorInfos.real,s=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,s)}const KE={kernelName:Kn,backendName:"cpu",kernelFunc:qE};function ZE(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return FE({inputs:{x:a},backend:n});const e=XE(n,a.shape,a.dtype),t=ZE({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=HE({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=qE({inputs:{input:a},backend:n}),t=ZE({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!ve(a.dtype,s)){const e=FE({inputs:{x:a},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:s}}if("int32"===s){const e=n.data.get(a.dataId).values,t=Int32Array.from(e);return n.makeTensorInfo(a.shape,"int32",t)}if("bool"===s){const e=n.data.get(a.dataId).values,t=Qr([0],a.dtype),[r,s]=ME(((e,t)=>e!==t?1:0))(a.shape,[],e,t,"bool");return n.makeTensorInfo(s,"bool",r)}throw new Error(`Error in Cast: failed to cast ${a.dtype} to ${s}`)}const YE={kernelName:dt,backendName:"cpu",kernelFunc:ZE};function JE(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;CE([s,i],e);const l=o.data.get(s.dataId).values,u=o.data.get(i.dataId).values,c=r||s.dtype,[h,f]=t(s.shape,i.shape,l,u,c);return o.makeTensorInfo(f,c,h)}:({inputs:e,backend:a})=>{const{a:s,b:i}=e,o=a;if("complex64"===s.dtype||"complex64"===i.dtype){const e=ZE({inputs:{x:s},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),r=t.complexTensorInfos.real,a=t.complexTensorInfos.imag,l=o.data.get(r.dataId).values,u=o.data.get(a.dataId).values,c=ZE({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),f=h.complexTensorInfos.real,d=h.complexTensorInfos.imag,p=o.data.get(f.dataId).values,m=o.data.get(d.dataId).values,[g,y,b]=n(s.shape,i.shape,l,u,p,m),v=o.makeTensorInfo(b,"float32",g),w=o.makeTensorInfo(b,"float32",y),x=HE({inputs:{real:v,imag:w},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(v),o.disposeIntermediateTensorInfo(w),x}{const e=o.data.get(s.dataId).values,n=o.data.get(i.dataId).values,a=r||s.dtype,[l,u]=t(s.shape,i.shape,e,n,a);return o.makeTensorInfo(u,a,l)}}}function QE(e){return(t,n,r,a,s,i)=>{const o=Ho(t,n),l=re(o),u=o.length,c=Ae(o),h=me("float32",l),f=me("float32",l),d=Vo(t,o),p=Vo(n,o),m=ed(r,a),g=ed(s,i),y=t.length,b=Ae(t),v=n.length,w=Ae(n);if(d.length+p.length===0)for(let t=0;tr[e]=0));const a=Me(r,y,b),s=n.slice(-v);p.forEach((e=>s[e]=0));const i=Me(s,v,w),o=e(m[2*a],m[2*a+1],g[2*i],g[2*i+1]);h[t]=o.real,f[t]=o.imag}return[h,f,o]}}const eC=ME(((e,t)=>e+t)),tC=QE(((e,t,n,r)=>({real:e+n,imag:t+r}))),nC=JE(qe,eC,tC),rC={kernelName:qe,backendName:"cpu",kernelFunc:nC};function aC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{shape:s}=r,i=re(a.shape),o=fe(s,i),l=re(o);Q(i===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${a.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(a.dataId);const u=n.data.get(a.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:a.dataId,shape:o,dtype:a.dtype}}const sC={kernelName:Jn,backendName:"cpu",kernelFunc:aC};function iC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;CE([a,s],"matMul");const l=a.shape.length,u=s.shape.length,c=i?a.shape[l-2]:a.shape[l-1],h=o?s.shape[u-1]:s.shape[u-2],f=i?a.shape[l-1]:a.shape[l-2],d=o?s.shape[u-2]:s.shape[u-1],p=a.shape.slice(0,-2),m=s.shape.slice(0,-2),g=re(p),y=re(m);Q(l>=2&&u>=2&&(g===y||1===g||1===y),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${p}) and (${m}).`));const b=(g>y?a.shape.slice(0,-2):s.shape.slice(0,-2)).concat([f,d]);Q(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${a.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`));const v=o?[y,d,h]:[y,h,d],w=aC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),x=aC({inputs:{x:s},backend:n,attrs:{shape:v}}),_=i?w.shape[1]:w.shape[2],k=i?w.shape[2]:w.shape[1],E=o?x.shape[1]:x.shape[2],C=Math.max(g,y),S=n.data.get(w.dataId).values,N=n.data.get(x.dataId).values,I=Ae(w.shape),A=Ae(x.shape),[D,T,F]=i?[I[0],1,I[1]]:[I[0],I[1],1],[R,O,B]=o?[1,A[1],A[0]]:[A[1],1,A[0]],M=k*E,$=Us([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;CE(t,"abs");let r=new Float32Array(re(t.shape));return r=uC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},hC=IE(Ge,(e=>Math.acos(e))),fC={kernelName:Ge,backendName:"cpu",kernelFunc:hC},dC=IE(Xe,(e=>Math.acosh(e))),pC={kernelName:Xe,backendName:"cpu",kernelFunc:dC},mC={kernelName:Ke,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;CE(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Us(r[0].shape,r[0].dtype),i=s.values;for(let e=0;en&&(n=a,r=e)}f[e]=r}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},_C={kernelName:Qe,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;CE(a,"argMin");let i=de(s,a.shape);const o=Wu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=yC({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Vu(i.length,l.shape.length)),i=[i[0]],zu("argMin",i,l.shape.length);const[c,h]=Pu(l.shape,i),f=Re(re(c),"int32"),d=re(h),p=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},kC=IE(et,(e=>Math.asin(e))),EC={kernelName:et,backendName:"cpu",kernelFunc:kC},CC=IE(tt,(e=>Math.asinh(e))),SC={kernelName:tt,backendName:"cpu",kernelFunc:CC},NC=IE(nt,(e=>Math.atan(e))),IC={kernelName:nt,backendName:"cpu",kernelFunc:NC},AC=ME(((e,t)=>Math.atan2(e,t))),DC=JE(at,AC),TC={kernelName:at,backendName:"cpu",kernelFunc:DC},FC=IE(rt,(e=>Math.atanh(e))),RC={kernelName:rt,backendName:"cpu",kernelFunc:FC};function OC(e,t,n,r,a,s){const i=a.strideHeight,o=a.strideWidth,l=a.dilationHeight,u=a.dilationWidth,c=a.effectiveFilterHeight,h=a.effectiveFilterWidth,f=a.padInfo.top,d=a.padInfo.left,p="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Us(a.outShape,n),g=m.values,y=a.outShape[1]*a.outShape[2]*a.outShape[3],b=a.outShape[2]*a.outShape[3],v=a.outShape[3];for(let t=0;ty?y=i:"avg"===s&&(b+=i,w++)}if(isNaN(y))break}g[k+n*v+t]="avg"===s?b/w:y}}}return m}function BC(e,t,n,r,a=!1,s=!1){const i=Us(r.outShape,"int32"),o=r.strideHeight,l=r.strideWidth,u=r.dilationHeight,c=r.dilationWidth,h=r.effectiveFilterHeight,f=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,m=Us(t,n,e);for(let e=0;ew&&(w=u,x=a?s?((e*r.inHeight+n)*r.inWidth+o)*r.inChannels+t:(n*r.inWidth+o)*r.inChannels+t:i*f+l)}}i.set(x,e,n,o,t)}}return i}function MC(e,t,n,r,a,s){const i=a.strideDepth,o=a.strideHeight,l=a.strideWidth,u=a.dilationDepth,c=a.dilationHeight,h=a.dilationWidth,f=a.effectiveFilterDepth,d=a.effectiveFilterHeight,p=a.effectiveFilterWidth,m=a.padInfo.front,g=a.padInfo.top,y=a.padInfo.left,b="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Us(a.outShape,n),w=v.values,x=a.outShape[1]*a.outShape[2]*a.outShape[3]*a.outShape[4],_=a.outShape[2]*a.outShape[3]*a.outShape[4],k=a.outShape[3]*a.outShape[4],E=a.outShape[4];for(let t=0;t_?_=a:"avg"===s&&(k+=a,C++),isNaN(_))break}if(isNaN(_))break}if(isNaN(_))break}w[g+t]="avg"===s?k/C:_}}}}return v}const $C={kernelName:st,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;CE(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(wl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=cl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=FE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=OC(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},PC={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r;CE(a,"avgPool3d");const c=hl(a.shape,s,i,1,o,l,u),h=MC(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}},LC={kernelName:lt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=r;CE([a,s],"avgPool3DGrad");const c=hl(s.shape,i,o,1,l,u),h=c.strideDepth,f=c.strideHeight,d=c.strideWidth,p=c.filterDepth,m=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,v=c.dilationWidth,w=c.effectiveFilterDepth,x=c.effectiveFilterHeight,_=c.effectiveFilterWidth,k=w-1-c.padInfo.front,E=_-1-c.padInfo.left,C=x-1-c.padInfo.top,S=Us(s.shape,"float32"),N=1/(p*m*g),I=n.bufferSync(a);for(let e=0;e=c.outDepth||Math.floor(r)!==r))for(let n=0;n=c.outHeight||Math.floor(a)!==a))for(let n=0;n<_;n+=v){const s=(o+n)/d;s<0||s>=c.outWidth||Math.floor(s)!==s||(l+=I.get(e,r,a,s,t))}}}S.set(l*N,e,n,r,a,t)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}},zC={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;CE([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=cl(i.shape,o,l,1,u),h=c.strideHeight,f=c.strideWidth,d=c.filterHeight,p=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,v=b-1-c.padInfo.left,w=y-1-c.padInfo.top,x=Us(i.shape,"float32"),_=1/(d*p),k=n.data.get(a.dataId).values,E=Us(a.shape,"float32",k);for(let e=0;e=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(a)!==a||(i+=E.get(e,r,a,t))}}x.set(i*_,e,n,r,t)}return n.makeTensorInfo(x.shape,x.dtype,x.values)}},WC={kernelName:Yt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,scale:s,offset:i,mean:o,variance:l}=t;Q(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==s||o.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),CE([a,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=r;null==u&&(u=.001);const c=n.data.get(a.dataId).values,h=n.data.get(o.dataId).values,f=n.data.get(l.dataId).values,d=s?n.data.get(s.dataId).values:new Float32Array([1]),p=i?n.data.get(i.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=p.length,y=d.length,b=f.length,v=h.length;let w=0,x=0,_=0,k=0;for(let e=0;e=g&&(w=0),x>=v&&(x=0),_>=y&&(_=0),k>=b&&(k=0);return n.makeTensorInfo(a.shape,a.dtype,m)}};function UC(e,t,n,r,a){const s=Ri(r,t,n),i=re(n),o=Ae(r);if(s){const n=Oi(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Us(r,a,"string"===a?fd(e):e),u=Us(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?dd(u.values):u.values}function VC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;CE(a,"slice");const[o,l]=Bi(a,s,i);xi(a,o,l);const u=UC(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const jC={kernelName:cr,backendName:"cpu",kernelFunc:VC},HC={kernelName:ct,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;CE([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Lf(a.shape,s,o),u=zf(l.length,s.length),c=Wf(a.shape,s,o),h=Uf(i,s.length),f=Vf(c,i,s.length),d=aC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=yC({inputs:{x:d},backend:n,attrs:{perm:u}}),m=aC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=VC({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function GC(e,t,n,r,a){const s=re(r),i=Re(a,n);for(let n=0;n=a||(i[r]+=s>0?t[n]:1)}return i}function XC(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Us([a,n],t.dtype);for(let o=0;o=n||(r?i.set(1,o,s):t.size>0?i.set(i.get(o,s)+t.get(o,a),o,s):i.set(i.get(o,s)+1,o,s))}return i}const qC={kernelName:ht,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=GC(n.data.get(a.dataId).values,n.data.get(s.dataId).values,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,o)}};function KC(e){return(t,n,r)=>{const a=me(n,t.length);for(let n=0;nMath.ceil(e))),YC=AE(pt,ZC),JC={kernelName:pt,backendName:"cpu",kernelFunc:YC},QC=IE(mt,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,r=new Float32Array(re(t.shape)),a=n.data.get(t.dataId),s=a.complexTensorInfos.real,i=a.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let e=0;e{const n=re(e.shape);a.set(e.vals,t),t+=n}))}else{let r=0;e.forEach((e=>{const s="string"===n?fd(e.vals):e.vals;let i=0;for(let n=0;ne.shape)),s);if(0===re(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>re(e.shape)>0));if(1===o.length)return FE({inputs:{x:o[0]},backend:n});if(Of(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>qE({inputs:{input:e},backend:n}))),t=o.map((e=>rS({inputs:{input:e},backend:n}))),r=sS({inputs:e,backend:n,attrs:{axis:s}}),a=sS({inputs:t,backend:n,attrs:{axis:s}}),i=HE({inputs:{real:r,imag:a},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(a),i}const l=o.map((e=>{const t=re(e.shape.slice(s));return aC({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));i=Bf(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=nS(u,i,t[0].dtype,c),f=Bf(o.map((e=>e.shape)),s),d=n.makeTensorInfo(f,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}const iS={kernelName:bt,backendName:"cpu",kernelFunc:sS};function oS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r;CE([a,s],"conv2d");const h=xl(l),f=fl(a.shape,s.shape,i,u,o,c,!1,h),d=f.filterHeight,p=f.filterWidth,m=f.dilationHeight,g=f.dilationWidth,y=f.padInfo.left,b=f.padInfo.top,v="channelsLast"===f.dataFormat,w=new fa(f.outShape,a.dtype),x=Ae(a.shape),_=Ae(s.shape),k=x[0],E=v?x[1]:x[2],C=v?x[2]:1,S=v?1:x[1],N=w.strides[0],I=v?w.strides[1]:w.strides[2],A=v?w.strides[2]:1,D=v?1:w.strides[1],T=n.data.get(a.dataId).values,F=n.data.get(s.dataId).values,R=w.values;for(let e=0;e=f.inHeight)continue;const s=e*_[0],i=t+n*E;for(let e=0;e=f.inWidth)continue;const a=i+r*C;let o=s+e*_[1];for(let e=0;e=u.inDepth)continue;const s=e*C[0],i=t+n*E[1];for(let e=0;e=u.inHeight)continue;const a=s+e*C[1],o=i+r*E[2];for(let e=0;e=u.inWidth)continue;const s=a+e*C[2],i=o+t*u.inChannels;let l=s;for(let e=0;eMath.cos(e))),mS={kernelName:Ct,backendName:"cpu",kernelFunc:pS},gS=IE(St,(e=>Math.cosh(e))),yS={kernelName:St,backendName:"cpu",kernelFunc:gS},bS={kernelName:It,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,[c,h,f,d]=a.shape,p=s.shape[0],[m,g]=o,y=Us([p,m,g,d],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,x=Ae(a.shape),_=Ae(y.shape);for(let e=0;e=c)continue;const o=m>1?(a-n)*(h-1)/(m-1):0,p=g>1?(s-r)*(f-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+a)*(h-1);if(c<0||c>h-1)for(let n=0;n1?r*(f-1)+l*p:.5*(r+s)*(f-1);if(c<0||c>f-1){for(let n=0;n1?r*(f-1)+n*p:.5*(r+s)*(f-1);if(a<0||a>f-1){for(let r=0;re+p-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`)),Q(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l=a.shape[1],u=a.shape[2],c=a.shape[3],h=l*s,f=u*s,d=c/(s*s),p=n.data.get(a.dataId).values,m=new Float32Array(o*h*f*d);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${f}'`));const d=fl(a.shape,s.shape,i,f,o,u,!0),{filterHeight:p,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=d,v=b.left,w=b.top,x=d.outChannels/d.inChannels,_=new fa(d.outShape,a.dtype),k=n.data.get(a.dataId).values,E=n.data.get(s.dataId).values,C=_.values;for(let e=0;e=d.inHeight)continue;const s=e*h[0],i=t+n*c[1];for(let e=0;e=d.inWidth)continue;const a=s+e*h[1],o=i+r*d.inChannels;let l=t,u=a;for(let e=0;e{const{x:r,filter:a}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(r.dataId).values,c=r.shape.length,h=l.data.get(a.dataId).values,f=a.shape.length,{batchSize:d,inHeight:p,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:w,strideWidth:x,filterHeight:_,filterWidth:k,dilationHeight:E,dilationWidth:C,outShape:S}=ul(r.shape,a.shape,s,i,"NHWC",o),N=re(S),I=S.length,A=ge(r.dtype,N);for(let e=0;e=0&&s=0&&dl&&(l=m)}}}A[Me([e,t,s,o],I,Ae(S))]=l}}}return{dataId:l.write(Qr(A,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},IS={kernelName:$t,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Te(r.shape,u.data.get(r.dataId).values),h=Te(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:x,filterWidth:_,dilationHeight:k,dilationWidth:E,outShape:C}=ul(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${$t}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Te(C,u.data.get(s.dataId).values),N=Oe(a.shape,a.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=t,l=n)}}}N[o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(Qr(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},AS={kernelName:Mt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Te(r.shape,u.data.get(r.dataId).values),h=Te(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:x,filterWidth:_,dilationHeight:k,dilationWidth:E,outShape:C}=ul(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${Mt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Te(C,u.data.get(s.dataId).values),N=Oe(r.shape,r.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=r,l=u)}}}N[e][o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(Qr(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},DS={kernelName:zt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;CE([r,a],"eluGrad");const s=new Float32Array(re(a.shape)),i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values;for(let e=0;e=1?o[e]:o[e]*(t+1)}return n.makeTensorInfo(a.shape,"float32",s)}},TS=ME(((e,t)=>e===t?1:0)),FS=JE(Ut,TS,null,"bool"),RS={kernelName:Ut,backendName:"cpu",kernelFunc:FS},OS=Gf,BS=Xf,MS=qf,$S=Kf,PS=Zf,LS=Yf,zS=IE(Wt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+OS*n);return t*(1-((((LS*r+PS)*r+$S)*r+MS)*r+BS)*r*Math.exp(-n*n))})),WS={kernelName:Wt,backendName:"cpu",kernelFunc:zS},US=KC((e=>Math.exp(e))),VS=AE(Vt,US),jS={kernelName:Vt,backendName:"cpu",kernelFunc:VS};function HS(e){const{inputs:t,backend:n,attrs:r}=e,{input:a}=t,{dim:s}=r,i=a.shape.length,o=a.shape.slice();let l=s;return s<0&&(Q(-(i+1)<=s,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+s+1),o.splice(l,0,1),aC({inputs:{x:a},backend:n,attrs:{shape:o}})}const GS={kernelName:jt,backendName:"cpu",kernelFunc:HS},XS=KC((e=>Math.expm1(e))),qS=AE(Ht,XS),KS={kernelName:Ht,backendName:"cpu",kernelFunc:qS},ZS=ME(((e,t)=>e*t)),YS=QE(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),JS=JE(On,ZS,YS),QS={kernelName:On,backendName:"cpu",kernelFunc:JS},eN=ME(((e,t)=>e/t)),tN=JE(Pt,eN),nN={kernelName:Pt,backendName:"cpu",kernelFunc:tN},rN=ME(((e,t)=>e-t)),aN=QE(((e,t,n,r)=>({real:e-n,imag:t-r}))),sN=JE(kr,rN,aN),iN={kernelName:kr,backendName:"cpu",kernelFunc:sN};function oN(e,t,n){const r=e.shape,a=r[0],s=r[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[a,s],c=re(u),h=me("float32",c),f=me("float32",c);for(let e=0;e{const{image:r}=e,a=n,s=me(r.dtype,re(r.shape)),[i,o,l,u]=r.shape,c=a.data.get(r.dataId).values;for(let e=0;e=0&&fMath.floor(e))),mN=AE(Kt,pN),gN={kernelName:Kt,backendName:"cpu",kernelFunc:mN},yN=ME(((e,t)=>Math.floor(e/t))),bN=JE(Zt,yN,null,"int32"),vN={kernelName:Zt,backendName:"cpu",kernelFunc:bN},wN={kernelName:Lr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=oS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=nC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=jE(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},xN={kernelName:zr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=_S({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=nC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=jE(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},_N={kernelName:Qt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=re(r.shape),i=a.shape,o=i[i.length-1],[l,u,c,h]=yi(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Us([u,c],r.dtype),d=n.data.get(a.dataId).values,p=n.data.get(r.dataId).values;for(let e=0;e=s/c)throw new Error(`Invalid indices: ${t} does not index into ${r.shape}`);for(let t=0;te>t?1:0)),SN=JE(en,CN,null,"bool"),NN={kernelName:en,backendName:"cpu",kernelFunc:SN},IN=ME(((e,t)=>e>=t?1:0)),AN=JE(tn,IN,null,"bool"),DN={kernelName:tn,backendName:"cpu",kernelFunc:AN},TN={kernelName:rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t,a=re(r.shape),s=r.shape[r.shape.length-1],i=aC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=oN(i,!0,n),l=aC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},FN=IE(sn,(e=>Number.isFinite(e)?1:0),"bool"),RN={kernelName:sn,backendName:"cpu",kernelFunc:FN},ON=IE(on,(e=>Math.abs(e)===1/0?1:0),"bool"),BN={kernelName:on,backendName:"cpu",kernelFunc:ON},MN=IE(ln,(e=>Number.isNaN(e)?1:0),"bool"),$N={kernelName:ln,backendName:"cpu",kernelFunc:MN},PN=ME(((e,t)=>ee<=t?1:0)),UN=JE(hn,WN,null,"bool"),VN={kernelName:hn,backendName:"cpu",kernelFunc:UN};function jN(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),XN=AE(dn,GN),qN={kernelName:dn,backendName:"cpu",kernelFunc:XN},KN=IE(pn,(e=>Math.log1p(e))),ZN={kernelName:pn,backendName:"cpu",kernelFunc:KN},YN=ME(((e,t)=>e&&t)),JN=JE(mn,YN,null,"bool"),QN={kernelName:mn,backendName:"cpu",kernelFunc:JN},eI=IE(gn,(e=>e?0:1),"bool"),tI={kernelName:gn,backendName:"cpu",kernelFunc:eI},nI=ME(((e,t)=>e||t)),rI=JE(yn,nI,null,"bool"),aI={kernelName:yn,backendName:"cpu",kernelFunc:rI},sI={kernelName:vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r;CE(a,"LRN");const u=a.shape[3],c=u-1,h=n.data.get(a.dataId).values,f=re(a.shape),d=new Float32Array(f);function p(e){const t=e%u;let n=e-t+Math.max(0,t-s);const r=e-t+Math.min(t+s,c);let a=0;for(;n<=r;n++){const e=h[n];a+=e*e}return a}for(let e=0;es&&(s=t)}a[n]=s}return a}function lI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=n;let l=a.shape;const u=l.length,c=de(s,l);let h=c;const f=Wu(h,u);let d=o.data.get(a.dataId).values;if(null!=f){const e=new Array(u);for(let t=0;tMath.max(e,t))),hI=JE(_n,cI),fI={kernelName:_n,backendName:"cpu",kernelFunc:hI},dI={kernelName:kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;CE(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(wl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=cl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=FE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=OC(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},pI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r;CE(a,"maxPool3d");const c=hl(a.shape,s,i,1,o,l,u),h=MC(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}},mI={kernelName:Sn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=r;CE([a,s],"maxPool3DGrad");const c=hl(s.shape,i,o,1,l,u),h=function(e,t){const n=Us(t.outShape,"int32"),r=t.strideDepth,a=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,f=t.padInfo.front,d=t.padInfo.top,p=t.padInfo.left;for(let m=0;m=E&&(E=o,C=n*c*h+a*c+i)}}}n.set(C,m,y,r,a,g)}}}return n}(n.bufferSync(s),c),f=c.strideDepth,d=c.strideHeight,p=c.strideWidth,m=c.dilationDepth,g=c.dilationHeight,y=c.dilationWidth,b=c.effectiveFilterDepth,v=c.effectiveFilterHeight,w=c.effectiveFilterWidth,x=b-1-c.padInfo.front,_=w-1-c.padInfo.left,k=v-1-c.padInfo.top,E=Us(s.shape,"float32"),C=n.bufferSync(a);for(let e=0;e=c.outDepth||Math.floor(r)!==r))for(let a=0;a=c.outHeight||Math.floor(s)!==s))for(let i=0;i=c.outWidth||Math.floor(u)!==u)continue;const f=b*v*w-1-h.get(e,r,s,u,t)===n*v*w+a*w+i?1:0;0!==f&&(l+=C.get(e,r,s,u,t)*f)}}}E.set(l,e,n,r,a,t)}return n.makeTensorInfo(E.shape,E.dtype,E.values)}},gI={kernelName:En,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;CE([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=cl(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Us(f.outShape,o.dtype,BC(d,o.shape,o.dtype,f).values),m=f.strideHeight,g=f.strideWidth,y=f.dilationHeight,b=f.dilationWidth,v=f.effectiveFilterHeight,w=f.effectiveFilterWidth,x=w-1-f.padInfo.left,_=v-1-f.padInfo.top,k=Us(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Us(a.shape,"float32",E);for(let e=0;e=f.outHeight||Math.floor(r)!==r))for(let a=0;a=f.outWidth||Math.floor(o)!==o)continue;const l=v*w-1-p.get(e,r,o,t)===n*w+a?1:0;0!==l&&(i+=C.get(e,r,o,t)*l)}}k.set(i,e,n,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}},yI={kernelName:Nn,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;CE(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=cl(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=OC(e,0,n,Ae(t),a,"max"),i=BC(e,t,n,a,!0,r);return[s.values,i.values]}(u,r.shape,r.dtype,o,c),d=l.write(h,c.outShape,r.dtype),p=l.write(f,c.outShape,r.dtype);return[{dataId:d,shape:c.outShape,dtype:r.dtype},{dataId:p,shape:c.outShape,dtype:"int32"}]}};function bI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;CE(a,"sum"),o="bool"===a.dtype?ZE({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):FE({inputs:{x:a},backend:n});const l=o.shape.length,u=de(s,o.shape),c=Wu(u,l);let h=u,f=o;null!=c&&(f=yC({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Vu(h.length,l)),zu("sum",h,f.shape.length);const[d,p]=Pu(f.shape,h);let m=XE(n,d,Ca(f.dtype,"int32"));const g=re(p),y=n.data.get(m.dataId).values,b=n.data.get(f.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),d}},xI={kernelName:An,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;CE(a,"min");const o=de(s,a.shape);let l=o;const u=Wu(l,a.shape.length);let c=a;null!=u&&(c=yC({inputs:{x:a},backend:n,attrs:{perm:u}}),l=Vu(l.length,a.shape.length)),zu("min",l,c.shape.length);const[h,f]=Pu(c.shape,l),d=re(f),p=Re(re(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),kI=JE(Dn,_I),EI={kernelName:Dn,backendName:"cpu",kernelFunc:kI},CI={kernelName:Tn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;CE(a,"mirrorPad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=s.map(((e,t)=>e[0]+a.shape[t])),c="reflect"===i?0:1,h=n.data.get(a.dataId).values,f=a.shape.length,d=Ae(a.shape),p=re(o),m=o.length,g=Ae(o),y=me(a.dtype,p);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=Me(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},SI=ME(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),NI=JE(Fn,SI),II={kernelName:Fn,backendName:"cpu",kernelFunc:NI};function AI(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=a.shape.length;let o=s;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const l=de([o],a.shape),u=lI({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Lu(u.shape,l),h=aC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=sN({inputs:{a,b:h},backend:n}),d=VS({inputs:{x:f},backend:n}),p=bI({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=aC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=tN({inputs:{a:d,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}const DI={kernelName:wr,backendName:"cpu",kernelFunc:AI},TI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;CE(a,"multinomial");const l=o?a:AI({inputs:{logits:a},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,f=[u,s],d=Re(re(f),"int32");for(let e=0;ee!==t?1:0)),WI=JE(Mn,zI,null,"bool"),UI={kernelName:Mn,backendName:"cpu",kernelFunc:WI},VI={kernelName:Wn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;CE(a,"oneHot");const l=re(a.shape),u=new Float32Array(l*s);u.fill(o);const c=n.data.get(a.dataId).values;for(let e=0;e=0&&c[e]{ee(s,e.shape,"All tensors passed to stack must have matching shapes"),Q(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=sS({inputs:t.map((e=>{const t=HS({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const qI={kernelName:Un,backendName:"cpu",kernelFunc:XI},KI={kernelName:Vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;CE(a,"pad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=n.data.get(a.dataId).values,c=re(a.shape),h=a.shape.length,f=Ae(a.shape),d=re(o),p=o.length,m=Ae(o),g=me(a.dtype,d);0!==i&&g.fill(i);for(let e=0;ee+l[t])),p,m)]=u[e];return{dataId:n.write(g,o,a.dtype),shape:o,dtype:a.dtype}}},ZI=ME(((e,t)=>Math.pow(e,t))),YI=JE(Hn,ZI),JI={kernelName:Hn,backendName:"cpu",kernelFunc:YI};function QI(e,t,n,r){const[a,s]=Pu(e,r),i=Ca(t,"int32"),o=Re(re(a),i),l=re(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function tA(e,t,n,r){if(e===t||e1)return Re(0,r);const a=Re(Math.abs(Math.ceil((t-e)/n)),r);t1/e)),aA={kernelName:Zn,backendName:"cpu",kernelFunc:rA},sA={kernelName:tr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;CE(a,"resizeBilinear");const l=Ae(a.shape),[u,c]=o,[h,f,d,p]=a.shape,m=n.data.get(a.dataId).values,g=new Float32Array(re([h,u,c,p])),y=[s&&u>1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c];let v=0;const w=y[0]/b[0],x=y[1]/b[1];for(let e=0;e1?u-1:u,i&&d>1?c-1:c],g=[i&&f>1?f-1:f,i&&d>1?d-1:d],y=m[0]/g[0],b=m[1]/g[1],v=n.data.get(s.dataId).values;let w=0;for(let e=0;e1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],v=y[0]/b[0],w=y[1]/b[1];let x=0;for(let e=0;e1?c-1:c,i&&p>1?h-1:h],b=[i&&d>1?d-1:d,i&&p>1?p-1:p],v=y[0]/b[0],w=y[1]/b[1],x=1/v,_=1/w,k=2*Math.ceil(x)+2,E=2*Math.ceil(_)+2;for(let e=0;e=d)continue;const f=t+u*l[1],m=u*v;if(e===Math.min(c-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=p)continue;const a=f+t*l[2],s=t*w;r===Math.min(h-1,i?Math.round(s):Math.floor(s))&&(o+=g[a+n])}}m[s+n]=o}}}}return n.makeTensorInfo(a.shape,a.dtype,m)}},uA={kernelName:ar,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;CE(a,"reverse");const i=a.shape.length,o=de(s,a.shape);if(0===i)return FE({inputs:{x:a},backend:n});const l=new fa(a.shape,a.dtype),u=n.bufferSync(a);for(let e=0;en[e]=a.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},cA={kernelName:$r,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=me(r.dtype,re(r.shape)),[u,c,h,f]=r.shape,[d,p]=Pf(i,c,h),m=Math.sin(a),g=Math.cos(a),y=o.data.get(r.dataId).values;for(let e=0;e=0&&w=0&&x{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),fA={kernelName:sr,backendName:"cpu",kernelFunc:hA},dA=KC((e=>1/Math.sqrt(e))),pA=AE(ir,dA),mA={kernelName:ir,backendName:"cpu",kernelFunc:pA};function gA(e,t,n,r,a,s,i,o,l,u){const c=[r/a,a],h=e.values,f=t.values;if(0===r)return Us(n,t.dtype);const d=Us(c,t.dtype);d.values.fill(l);for(let e=0;e=r/a)throw new Error(`Invalid indices: ${s} does not index into ${n}`);for(let n=0;n1||1===a.shape.length?1:re(a.shape.slice(1));for(let e=0;ee>=0?wA*e:vA*(Math.exp(e)-1))),_A={kernelName:ur,backendName:"cpu",kernelFunc:xA},kA=IE(pr,(e=>1/(1+Math.exp(-e)))),EA={kernelName:pr,backendName:"cpu",kernelFunc:kA},CA=IE(dr,(e=>e<0?-1:e>0?1:0)),SA={kernelName:dr,backendName:"cpu",kernelFunc:CA},NA=IE(hr,(e=>Math.sin(e))),IA={kernelName:hr,backendName:"cpu",kernelFunc:NA},AA=IE(fr,(e=>Math.sinh(e))),DA={kernelName:fr,backendName:"cpu",kernelFunc:AA},TA=Math.log(1.1920928955078125e-7)+2,FA=IE(mr,(e=>{const t=e>-TA,n=e{const t=[...c];t[o]=e;const r=VC({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},$A=IE(gr,(e=>Math.sqrt(e))),PA={kernelName:gr,backendName:"cpu",kernelFunc:$A},LA={kernelName:_r,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;CE(n,"square");const a=r.data.get(n.dataId).values,s=new Float32Array(a.length);for(let e=0;e{const n=e-t;return n*n})),WA=JE(xr,zA),UA={kernelName:xr,backendName:"cpu",kernelFunc:WA},VA=IE(Br,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),jA={kernelName:Br,backendName:"cpu",kernelFunc:VA};function HA(e,t,n,r){const a=Us(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=HA(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const x=aC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),x}},XA=IE(Sr,(e=>Math.tan(e))),qA={kernelName:Sr,backendName:"cpu",kernelFunc:XA},KA=IE(Nr,(e=>Math.tanh(e)));function ZA(e,t){const n=new Array(e.rank);for(let r=0;rt.value-e.value));const i=t*r,c=l.subarray(i,i+r),h=u.subarray(i,i+r);for(let e=0;e{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},HI];for(const e of QA)Gr(e);const eD={},tD={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function nD(e){if(!(e in eD)){const t=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete eD[e]}),!1),1===e?t.getContext("webgl",tD)||t.getContext("experimental-webgl",tD):t.getContext("webgl2",tD)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;eD[e]=t}const t=eD[e];return t.isContextLost()?(delete eD[e],nD(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),eD[e])}var rD,aD,sD;function iD(e,t){return[t,e]}function oD(e){const t=re(e);return le(Math.ceil(t/4))}function lD(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function uD(e,t){const n=e;let r,a,s,i,o,l,u,c,h,f;return 2===ze().getNumber("WEBGL_VERSION")?(r=n.R32F,a=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,f=n.FLOAT):(r=e.RGBA,a=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,f=e.FLOAT),l=e.RGBA,{internalFormatFloat:r,internalFormatHalfFloat:a,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:f}}function cD(e,t){const n=t();return ze().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}(e,t))}(e),n}function hD(e){return!!(ze().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(rD||(rD={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(aD||(aD={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(sD||(sD={}));const dD=/ERROR: [0-9]+:([0-9]+):/g;function pD(e,t){if(cD(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function mD(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(cD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),cD(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),cD(e,(()=>e.enableVertexAttribArray(o))),!0)}function gD(e,t,n,r){cD(e,(()=>function(e,t,n){(function(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(`textureUnit must be in [gl.TEXTURE0, gl.TEXTURE${n}].`)})(e,n),cD(e,(()=>e.activeTexture(e.TEXTURE0+n))),cD(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),cD(e,(()=>e.uniform1i(n,r)))}function yD(e,t,n){cD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),cD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function bD(e,t){cD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),cD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function vD(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}(e,t))}function wD(e,t,n){const r=cD(e,(()=>t()));if(null==r)throw new Error(n);return r}function xD(e,t=2){return re(e.slice(0,e.length-t))}function _D(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function kD(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[xD(e),..._D(e)]),t}function ED(e){return e%2==0}function CD(e,t){if(se(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){const n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(ED(n)&&ED(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&ED(e[0])&&ED(t[0])}let SD,ND;function ID(e,t){return null!=e.getExtension(t)}function AD(e){try{if(null!=nD(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function DD(e){const t=uD(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),a}function TD(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Q("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const FD=ze();function RD(){let e,t,n,r,a,s,i,o,l,u;return 2===ze().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",a="texture",s="outputColor",i="out vec4 outputColor;",o="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",l="",u="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",a="texture2D",s="gl_FragColor",i="",o="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",l="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",u="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:a,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function OD(e,t,n="index"){const r=Ae(t);return r.map(((t,a)=>`int ${e[a]} = ${n} / ${t}; ${a===r.length-1?`int ${e[a+1]} = ${n} - ${e[a]} * ${t}`:`index -= ${e[a]} * ${t}`};`)).join("")}function BD(e){const t=Ae(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}FD.registerFlag("HAS_WEBGL",(()=>FD.getNumber("WEBGL_VERSION")>0)),FD.registerFlag("WEBGL_VERSION",(()=>AD(2)?2:AD(1)?1:0)),FD.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),FD.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===FD.get("WEBGL_VERSION"))),FD.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),FD.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),FD.registerFlag("WEBGL_PACK",(()=>FD.getBool("HAS_WEBGL"))),FD.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_CLIP",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>!1)),FD.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_PACK_REDUCE",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_LAZILY_UNPACK",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_CONV_IM2COL",(()=>FD.getBool("WEBGL_PACK"))),FD.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==SD){const t=nD(e);SD=t.getParameter(t.MAX_TEXTURE_SIZE)}return SD}(FD.getNumber("WEBGL_VERSION")))),FD.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==ND){const t=nD(e);ND=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ND)}(FD.getNumber("WEBGL_VERSION")))),FD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=FD.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=nD(e);return t=ID(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:ID(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),FD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>FD.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Pa())),FD.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=nD(e);if(1===e){if(!ID(t,"OES_texture_float"))return!1}else if(!ID(t,"EXT_color_buffer_float"))return!1;return DD(t)}(FD.getNumber("WEBGL_VERSION")))),FD.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!FD.getBool("WEBGL_FORCE_F16_TEXTURES")&&FD.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),FD.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=nD(e);if(1!==e){if(ID(t,"EXT_color_buffer_float"))return DD(t);const e="EXT_color_buffer_half_float";if(ID(t,e)){const n=t.getExtension(e);return function(e,t){const n=uD(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);const s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(a),s}(t,n)}return!1}return!!ID(t,"OES_texture_float")&&!!ID(t,"WEBGL_color_buffer_float")&&DD(t)}(FD.getNumber("WEBGL_VERSION")))),FD.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=FD.getNumber("WEBGL_VERSION"))&&null!=nD(e).fenceSync;var e})),FD.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>FD.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),FD.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)})),FD.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}));const MD="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";class $D{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=rD.DENSE;const t=oD(e),n=RD();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${OD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${n.output} = result;\n }\n `}}class PD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=rD.DENSE;const t=oD(e),n=RD();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${OD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${n.output} = result;\n }\n `}}class LD{constructor(e){this.variableNames=["A"],this.outTexUsage=aD.DOWNLOAD;const t=RD();this.outputShape=e,this.userCode=`\n ${MD}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class zD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=aD.DOWNLOAD;const t=RD();this.outputShape=e,this.userCode=`\n ${MD}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${t.output} = encode_float(x);\n }\n `}}class WD{constructor(e,t,n=!1){this.variableNames=["A"];const r=RD(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${BD(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / ${s};\n int c = imod(flatIndex, ${s});\n vec2 uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n vec4 values = ${r.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${r.output} = vec4(${i}, 0., 0., 0.);\n }\n `}}class UD{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=RD(),[a,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let n=0;n<=1;n++){const o=2*t+n;i+=`\n localCoords = coords;\n if(localCoords[2] + ${n} < ${e[2]}) {\n localCoords[2] += ${n};\n if(localCoords[1] + ${t} < ${e[1]}) {\n localCoords[1] += ${t};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / ${s};\n c = imod(flatIndex, ${s});\n uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n values = ${r.texture2D}(A, uv);\n\n if(offset == 0) {\n result[${o}] = values[0];\n } else if(offset == 1) {\n result[${o}] = values[1];\n } else if(offset == 2) {\n result[${o}] = values[2];\n } else {\n result[${o}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${BD(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${i}\n\n ${r.output} = ${o};\n }\n `}}function VD(e,t,n,r,a,s){!function(e,t){const n=ze().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const i=function(e){return wD(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return cD(e,(()=>e.bindTexture(o,i))),cD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),cD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),cD(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),cD(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),cD(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),cD(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function jD(e){return e.internalFormatFloat}function HD(e){return e.internalFormatHalfFloat}function GD(e){return e.downloadTextureFormat}function XD(e){return e.internalFormatPackedFloat}function qD(e){return e.internalFormatPackedHalfFloat}class KD{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=ze().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){eD[e]=t}(t,e)):this.gl=nD(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===ze().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=fD(this.gl,e),ID(this.gl,t))this.textureHalfFloatExtension=fD(this.gl,t);else if(ze().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ID(this.gl,r))this.colorBufferHalfFloatExtension=fD(this.gl,r);else if(ze().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ID(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!ID(this.gl,r))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(r)}this.vertexBuffer=function(e){return function(e,t){const n=wD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return cD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),cD(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}(this.gl),this.indexBuffer=function(e){return function(e,t){const n=wD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return cD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),cD(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}(this.gl),this.framebuffer=function(e){return wD(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=uD(this.gl,this.textureHalfFloatExtension)}get debug(){return ze().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;cD(e,(()=>e.finish())),cD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),cD(e,(()=>e.deleteFramebuffer(this.framebuffer))),cD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),cD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),cD(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=iD(t,n);return VD(e,a,s,jD(r),r.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=iD(t,n);return VD(e,a,s,HD(r),r.textureFormatFloat,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=iD(t,n);return VD(e,a,s,GD(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){cD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?cD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):cD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),cD(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,r){this.throwIfDisposed(),function(e,t,n,r,a,s){let i,o,l;cD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),a instanceof Uint8Array?(i=new Uint8Array(n*r*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*r*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(a),cD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),cD(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,r,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=lD(t,n);return VD(e,a,s,qD(r),e.RGBA,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=lD(t,n);return VD(e,a,s,XD(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(bD(this.gl,this.framebuffer),this.outputTexture=null),cD(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=iD(t,n),i=new Uint8Array(t*n*4);return cD(e,(()=>e.readPixels(0,0,a,s,r.downloadTextureFormat,e.UNSIGNED_BYTE,i))),new Float32Array(i.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,r,a,s){return function(e,t,n,r,a,s,i,o){const l=e,u=new Float32Array(function(e,t){const[n,r]=lD(e,t);return n*r*4}(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}(this.gl,e,0,0,0,a,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const r=e,a=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,a),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),a}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const r=function(e,t,n,r){const a=e.createBuffer();cD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return cD(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),cD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),cD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),a}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ze().getBool("WEBGL_FENCE_API_ENABLED")){const r=e,a=r.fenceSync(r.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=r.clientWaitSync(a,0,0);return e===r.ALREADY_SIGNALED||e===r.CONDITION_SATISFIED},t=a}else ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const r=new Float32Array(t*n*4);return cD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,r))),r}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl,n=function(e,t){const n=wD(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(cD(e,(()=>e.shaderSource(n,t))),cD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=dD.exec(t);if(null==n)return console.log(`Couldn't parse line number in error: ${t}`),void console.log(e);const r=+n[1],a=e.split("\n"),s=a.length.toString().length+2,i=a.map(((e,t)=>ce((t+1).toString(),s)+e));let o=0;for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(cD(e,(()=>e.shaderSource(n,t))),cD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}(t),a=function(e){return wD(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return cD(t,(()=>t.attachShader(a,r))),cD(t,(()=>t.attachShader(a,n))),function(e,t){if(cD(e,(()=>e.linkProgram(t))),!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}(t,a),this.debug&&pD(t,a),this.vertexAttrsAreBound||(this.setProgram(a),this.vertexAttrsAreBound=function(e,t,n){return cD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),mD(e,t,"clipSpacePos",n,3,20,0)&&mD(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&cD(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&pD(this.gl,this.program),cD(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return wD(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),cD(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),gD(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=lD(t,n);this.setOutputMatrixTextureDriver(e,r,a)}setOutputMatrixWriteRegion(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)}setOutputPackedMatrixWriteRegion(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&pD(this.gl,this.program),vD(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),cD(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),cD(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=fD(this.gl,2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await he((()=>this.disposed||this.isQueryAvailable(e,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),r=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),r&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||he((()=>(this.pollItems(),0===this.itemsToPoll.length)))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),yD(this.gl,e,this.framebuffer),this.debug&&vD(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(yD(this.gl,this.outputTexture,this.framebuffer),this.debug&&vD(this.gl)):bD(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const r=this.gl;yD(r,e,this.framebuffer),this.debug&&vD(r),this.outputTexture=e,cD(r,(()=>r.viewport(0,0,t,n))),cD(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),cD(this.gl,(()=>this.gl.scissor(e,t,n,r)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{getBroadcastDims:ZD}=g;function YD(e,t,n,r){const a=[];e.forEach((e=>{const t=re(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?a.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(a.push(`uniform sampler2D ${e.name};`),a.push(`uniform int offset${e.name};`))}));const s=a.join("\n"),i=e.map((e=>function(e,t,n=!1){let r="";r+=n?QD(e):JD(e);const a=e.shapeInfo.logicalShape,s=t.logicalShape;return a.length<=s.length&&(r+=n?function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=ZD(e.shapeInfo.logicalShape,t.logicalShape),l=iT(i),u=i-s;let c;const h=["x","y","z","w","u","v"];c=0===s?"":i<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let f="";f=i<2&&s>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let d="return outputValue;";const p=1===re(e.shapeInfo.logicalShape),m=1===re(t.logicalShape);if(1!==s||p||m){if(p&&!m)d=1===i?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=s-2,t=s-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?d="return vec4(outputValue.x);":o.indexOf(e)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}}else d="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${a}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${r}(${f});\n ${d}\n }\n `}(e,t):function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&se(i,s))return`\n float ${a}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=iT(l),c=ZD(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let f;const d=["x","y","z","w","u","v"];f=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${d[e+h]} = 0;`)).join("\n");let p="";return p=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${d[t+h]}`)).join(", "),`\n float ${a}() {\n ${u} coords = getOutputCoords();\n ${f}\n return get${r}(${p});\n }\n `}(e,t)),r}(e,t,r))).join("\n"),o=t.texShape,l=RD(),u=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(l);let c,h,f=function(e){return`${e.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${e.varyingFs} vec2 resultUV;\n ${e.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${e.defineSpecialNaN}\n ${e.defineSpecialInf}\n ${e.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${eT}\n ${tT}\n ${nT}\n `}(l);return t.isPacked?(c=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:1===n[1]?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}(0,t);case 2:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(se(e,t))return`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]}));\n }\n `;const r=Math.ceil(e[1]/2);return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec2(r, c);\n }\n `}(e,t);case 3:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),a=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${a};\n index -= b * ${a};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t);default:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),a=r*Math.ceil(e[e.length-2]/2);let s=a,i="",o="b, r, c";for(let t=2;te[t])).join(", ")}function uT(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const r=e.logicalShape,a=t[n],s=a.shape;if(!se(r,s))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${s} must match`);if(e.isUniform&&a.isUniform)return;const i=e.texShape,o=a.isUniform?null:a.texData.texShape;if(!se(i,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${o} must match`)}))}const{addImpl:cT,bincountImpl:hT,bincountReduceImpl:fT,ceilImpl:dT,concatImpl:pT,expImpl:mT,expm1Impl:gT,floorImpl:yT,gatherV2Impl:bT,greaterImpl:vT,lessImpl:wT,linSpaceImpl:xT,logImpl:_T,maxImpl:kT,maximumImpl:ET,minimumImpl:CT,multiplyImpl:ST,negImpl:NT,prodImpl:IT,rangeImpl:AT,rsqrtImpl:DT,simpleAbsImpl:TT,sliceImpl:FT,stridedSliceImpl:RT,subImpl:OT,tileImpl:BT,topKImpl:MT,transposeImpl:$T,uniqueImpl:PT}=U;function LT(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function zT(e,t){return 1===t?[e]:LT(e,t)}class WT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const n=zT("rc",t),r=iT(t),a=function(e,t,n){if(1===e)return`rc > ${t[0]}`;let r="";for(let a=e-2;a= ${t[a]}`,a= ${t};\n bool rEdge = rp1 >= ${n};\n `}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){const n=e.length,r=function(e,t){const n=[];for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=`${0===r?"r":"rp1"}, ${0===a?"c":"cp1"}`;for(let n=2;n= ${e[0]} ? 0. : getA(rc + 1),\n 0, 0`:`getA(${r[0]}),\n cEdge ? 0. : getA(${r[1]}),\n rEdge ? 0. : getA(${r[2]}),\n rEdge || cEdge ? 0. : getA(${r[3]})`}(e,n);this.userCode=`\n void main() {\n ${r} rc = getOutputCoords();\n\n if(${a}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${i}));\n }\n }\n `}}}class UT{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var r;this.userCode=`\n ${r=t,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${OD(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${BD(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${e[1]};\n int cols = ${e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class VT{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){const r=HT(t,n),a=GT(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=jT(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();const e=this.freeTextures[a].shift();return this.usedTextures[a].push(e),e}let i;return r===sD.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===sD.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===sD.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===sD.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===sD.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,r){if(null==this.freeTextures)return;const a=HT(n,r),s=GT(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=jT(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=ze().get("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;const l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function jT(e,t,n,r,a){const s=function(e,t){switch(e){case sD.PACKED_2X2_FLOAT32:return XD(t);case sD.PACKED_2X2_FLOAT16:return qD(t);case sD.UNPACKED_FLOAT32:return jD(t);case sD.UNPACKED_FLOAT16:return HD(t);case sD.PACKED_4X1_UNSIGNED_BYTE:return GD(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=lD(e[0],e[1]);i=t*n}else{const[t,n]=iD(e[0],e[1]);i=t*n}return i*function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}(n,s)}function HT(e,t){if(e===aD.UPLOAD)return sD.PACKED_2X2_FLOAT32;if(e===aD.RENDER||null==e)return function(e){return ze().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?sD.PACKED_2X2_FLOAT32:sD.UNPACKED_FLOAT32:e?sD.PACKED_2X2_FLOAT16:sD.UNPACKED_FLOAT16}(t);if(e===aD.DOWNLOAD||e===aD.PIXELS)return sD.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function GT(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class XT{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=`\n float unaryOperation(float x) {\n ${t}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}const qT="return abs(x);",KT="return x;";class ZT{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${t}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}class YT{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=zT("rc",t),r=iT(t),a=function(e,t){if(1===e)return"rc";let n="";for(let r=0;rt.push(e)))}const t=this.texData.get(e),{values:n,shape:r,slice:a,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(null!=a){let t;t=o?new ZT(r,KT):new XT(r,KT);const n=this.runWebGLProgram(t,[{dataId:e,shape:r,dtype:s}],s),a=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if(!ze().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===ze().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==s&&ze().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...oD(r))}if(this.pendingRead.set(e,[]),"complex64"!==s&&await this.gpgpu.createAndWaitForFence(),"complex64"===s){const e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]);u=ed(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=re(r);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}null!=l&&this.disposeIntermediateTensorInfo(l);const h=this.convertAndCacheOnCPU(e,u),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&ro().removeDataId(e,this),this.pendingDeletes--),h}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ra(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Us(e.shape,e.dtype,n)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}async time(e){const t=this.activeTimers,n=[];let r=!1;null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,e();const a=ne(this.activeTimers.map((e=>e.query))).filter((e=>null!=e)),s=ne(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,r&&(this.programTimersStack=null);const i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=Z(e),i.getExtraProfileInfo=()=>e.map(((e,t)=>({name:s[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:ea(),endMs:null}}endTimer(e){return ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=ea(),e)}async getQueryTime(e){if(ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);const{complexTensorInfos:n}=this.texData.get(e);return null!=n&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){const{texture:t,dtype:n,texShape:r,usage:a,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(r,n),this.textureManager.releaseTexture(t,r,a,s)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ze().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=ro().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=128){const n=this.getCPUBackend();return ze().getBool("IS_TEST")||this.warnedAboutCPUBackend||null!=n||(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),null!=n&&e.every((e=>null==this.texData.get(e.dataId).texture&&re(e.shape)0&&ke(n[0])){const a=n.map((e=>na(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return this.texData.get(r).usage=null,{dataId:r,shape:e,dtype:t}}makeOutput(e,t,n){const{dataId:r}=this.makeTensorInfo(e,t,n);return ro().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new YT(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new WT(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[xD(e.shape),..._D(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[xD(t),..._D(t)],s=new UT(a,n),i=this.runWebGLProgram(s,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}}decode(e){const t=this.texData.get(e),{isPacked:n,shape:r,dtype:a}=t,s=kD(r);let i;return i=n?new PD(s):new $D(s),{dtype:a,shape:r,dataId:this.runWebGLProgram(i,[{shape:s,dtype:a,dataId:e}],a,null,!0).dataId}}runWebGLProgram(e,t,n,r,a=!1){const s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===rD.DENSE){const t=oD(e.outputShape);i.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(i.usage=e.outTexUsage),0===re(s.shape))return i.values=me(s.dtype,0),s;const o=[],l=t.map((t=>{if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&re(t.shape)<=ze().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),o.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!CD(n.shape,t.shape)){const e=t,r=t.shape;t.shape=n.shape,t=this.packedReshape(t,r),o.push(t),n=this.texData.get(t.dataId),e.shape=r}return this.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(s.dataId);const u={shape:s.shape,texData:i,isUniform:!1},c=function(e,t,n){let r="";t.concat(n).forEach((e=>{const t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=`${e.shape}_${n}_${t}`}));const a=e.userCode;let s=e.constructor.name;return s+="_"+r+"_"+a,s}(e,l,u),h=this.getAndSaveBinary(c,(()=>function(e,t,n,r){const a=t.userCode,s=n.map(((e,n)=>{const r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=s.map((e=>e.shapeInfo)),o={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},l=YD(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===ze().getNumber("WEBGL_VERSION")&&(c=e.getUniformLocation(u,"INFINITY",!1));const f={};for(let n=0;n{const a=t.program.variableNames[r],s=t.uniformLocations[a],i=t.uniformLocations[`offset${a}`];if(null!=s)if(n.isUniform)if(re(n.shape)<2)e.gl.uniform1f(s,n.uniformValues[0]);else{let t=n.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(s,t)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,s,r)})),null!=a&&a(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,h,l,u,r),o.forEach((e=>this.disposeIntermediateTensorInfo(e))),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)}));const p=ze().get("WEBGL_FLUSH_THRESHOLD");if(p>0){const e=ea();e-this.lastGlFlushTime>p&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!ze().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&!1===a){const e=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),e}return s}compileAndRun(e,t,n,r,a=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,r,a)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ze().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]})),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=io((()=>{if(!ze().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=ze().getBool("DEBUG");ze().set("DEBUG",!1);const t=this.abs(Oo(1e-8)).dataSync()[0];if(ze().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:r,values:a,texture:s,usage:i,isPacked:o}=t;if(null!=s)return;const l=null!=this.activeTimers;let u;l&&(u=ea());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=ze().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?K(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=pe(e);e=t.newShape}let r=re(e);if(e.length<=1&&r<=n)return[1,r];if(2===e.length&&e[0]<=n&&e[1]<=n)return e;if(3===e.length&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){const t=xD(e);let n=2,a=2;return e.length&&([n,a]=_D(e)),r=t*(n/2)*(a/2),le(r).map((e=>2*e))}return le(r)}(n,o),t.texShape=c),null!=a){const e=kD(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=lD(c[0],c[1]),s=new UD(e,[h,i],f)):s=new WD(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?aD.PIXELS:aD.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(d.dataId),i,h,a);const p=!0,m=this.runWebGLProgram(s,[d],r,null,p),g=this.texData.get(m.dataId);t.texture=g.texture,t.texShape=g.texShape,t.isPacked=g.isPacked,t.usage=g.usage,this.disposeIntermediateTensorInfo(d),this.texData.delete(m.dataId),t.values=null,l&&(this.uploadWaitMs+=ea()-u)}else{const e=this.acquireTexture(c,i,r,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:r}=n;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){const e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,r)}computeBytes(e,t){return e[0]*e[1]*xe(t)}}eF.nextDataId=0,La()&&yo("webgl",(()=>new eF),2);class tF{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Ho(t,n),this.userCode=`\n float binaryOperation(float a, float b) {\n ${e}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}}class nF{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Ho(t,n);const a=this.outputShape.length;let s="";if(r)if(0===a||1===re(this.outputShape))s="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(s=`\n ${iT(a)} coords = getOutputCoords();\n `,1===a)s+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=zT("coords",a);s+=`\n bool nextRowOutOfBounds =\n (${e[a-2]} + 1) >= ${this.outputShape[a-2]};\n bool nextColOutOfBounds =\n (${e[a-1]} + 1) >= ${this.outputShape[a-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${e}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${s}\n\n setOutput(result);\n }\n `}}function rF(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const aF={kernelName:nn,backendName:"webgl",kernelFunc:rF};function sF(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.makeTensorInfo(r.shape,"complex64"),i=n.texData.get(s.dataId),o=rF({inputs:{x:r},backend:n}),l=rF({inputs:{x:a},backend:n});return i.complexTensorInfos={real:o,imag:l},s}const iF={kernelName:gt,backendName:"webgl",kernelFunc:sF},oF="return (a < 0.) ? b * a : a;",lF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",uF={kernelName:un,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",Jr(s,"float32")),o=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new nF(lF,a.shape,i.shape):new tF(oF,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},cF="return (a < 0.) ? b * a : a;",hF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",fF={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new nF(hF,r.shape,a.shape):new tF(cF,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function dF({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:r}){return({inputs:a,backend:s})=>{const{x:i}=a,o=s,l=r||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=n){const e=o.texData.get(i.dataId),t=n(e.values,l);return o.makeTensorInfo(i.shape,l,t)}let u;return u=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new ZT(i.shape,t):new XT(i.shape,e),o.runWebGLProgram(u,[i],l)}}function pF({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:r=!1,cpuKernelImpl:a,dtype:s}){return({inputs:i,backend:o})=>{const{a:l,b:u}=i,c=o;if(r&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[r,a]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,r]=t,a={dataId:n.dataId,dtype:n.dtype,shape:l.shape},s={dataId:r.dataId,dtype:r.dtype,shape:u.shape},i=new tF(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],Ca(n.dtype,r.dtype))})),s=sF({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||Ca(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&null!=a){const e=c.texData.get(l.dataId),t=c.texData.get(u.dataId),[n,r]=a(l.shape,u.shape,e.values,t.values,h),s=c.makeTensorInfo(r,h);return c.texData.get(s.dataId).values=n,s}let f;return f=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new nF(t,l.shape,u.shape,n):new tF(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function mF(e,t=!1){if("linear"===e)return"return x;";if("relu"===e)return t?"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n";if("elu"===e)return t?"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n":"return (x >= 0.0) ? x : (exp(x) - 1.0);";if("relu6"===e)return t?"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n";if("prelu"===e)return t?hF:cF;if("leakyrelu"===e)return t?lF:oF;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class gF{constructor(e,t,n,r=!1,a=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;const u=r?e[1]:e[2],c=Math.ceil(u/2),h=r?"i * 2, rc.y":"rc.y, i * 2",f=a?"rc.z, i * 2":"i * 2, rc.z",d=r?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],p=a?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";i&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${i}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${i}\n }`:`vec4 activation(vec4 x) {\n ${i}\n }`,g="result = activation(result);");const y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",v="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${a.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=i.texData.get(a.dataId);return!c.isPacked||CD(a.shape,l)||null!==c.texture&&CD(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[xD(e.shape),..._D(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[xD(t),..._D(t)],i=new UT(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const _F={kernelName:Jn,backendName:"webgl",kernelFunc:xF};class kF{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];const i=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${ie(e)?e.toPrecision(2):e}, ones);`}let u="";a%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${i}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${i};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class EF{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];let i="0.0",o="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",o="min"):"max"===t&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\n if (${"sum"===t}) {\n sumValue += dot(values, ones);\n } else if (${"prod"===t}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${o}(values, minMaxValue);\n }\n `,f="vec4";"all"===t?(i="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",f="bvec4"):"any"===t&&(i="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",f="bvec4");let d="";a%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${i};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${i});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function CF(e,t,n,r){const a=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],r=$f(n);t.push({inSize:n,windowSize:r,outSize:Math.ceil(n/r)})}return t}(e.shape);let s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const r=iT(this.rank),a=LT("rc",this.rank),s=new Array(this.rank);for(let e=0;e=2&&c>=2&&(y===b||1===y||1===b),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${g}).`));const v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([d,p]);Q(h===f,(()=>`Error in matMul: inner shapes (${h}) and (${f}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${r} must match.`));const w=n?[y,h,d]:[y,d,h],x=r?[b,p,f]:[b,f,p],_=xF({inputs:{x:e},backend:a,attrs:{shape:w}}),k=xF({inputs:{x:t},backend:a,attrs:{shape:x}}),E=[_,k],C=Math.max(y,b),S=n?_.shape[1]:_.shape[2],N=null!=s,I=null!=i,A="leakyrelu"===l,D=null!=l?mF(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||A||null!=D)){let e=_,t=k;n&&(e=TF({inputs:{x:_},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=TF({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=xF({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=xF({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=vF({inputs:{a:i,b:l},backend:a});T=AF({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=Ca(e.dtype,t.dtype),u=new gF(w,x,[C,d,p],n,r,N,D,I,A),c=[_,k];if(null!=s&&c.push(s),I&&c.push(i),A){const e=a.makeTensorInfo([],"float32",Jr(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const F=xF({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return F}const OF={kernelName:Pr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=r;return RF({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},BF="return abs(x);",MF={kernelName:He,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])&&"complex64"!==r.dtype){const e=n.texData.get(r.dataId),t=TT(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new ZT(r.shape,BF):new XT(r.shape,BF),n.runWebGLProgram(a,[r],r.dtype)}},$F=dF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),PF={kernelName:Ge,backendName:"webgl",kernelFunc:$F},LF=dF({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),zF={kernelName:Xe,backendName:"webgl",kernelFunc:LF},WF="return a + b;",UF=pF({opSnippet:WF,packedOpSnippet:WF,supportsComplex:!0,cpuKernelImpl:cT}),VF={kernelName:qe,backendName:"webgl",kernelFunc:UF};class jF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${r};\n setOutput(result);\n }\n `}}class HF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${r};\n setOutput(result);\n }\n `}}const GF={kernelName:Ke,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return rF({inputs:{x:a[0]},backend:r});if(a.length>ze().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(a.length/2),n=e({inputs:a.slice(0,t),backend:r}),s=e({inputs:a.slice(t),backend:r});return e({inputs:[n,s],backend:r})}const s=a.map((e=>e.dtype)).reduce(((e,t)=>Ca(e,t))),i=a.map((e=>e.shape)),o=ze().getBool("WEBGL_PACK")?new HF(a[0].shape,i):new jF(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},XF={kernelName:Ze,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=Wu(u,o);let h=a;null!=c&&(h=TF({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Vu(u.length,o)),zu("all",u,o);const[f,d]=Pu(h.shape,u),p=xF({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=CF(p,p.dtype,"all",n);let g;return g=xF(i?{inputs:{x:m},backend:n,attrs:{shape:Lu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},qF={kernelName:Ye,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=Wu(u,o);let h=a;null!=c&&(h=TF({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Vu(u.length,o)),zu("any",u,o);const[f,d]=Pu(h.shape,u),p=xF({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=CF(p,p.dtype,"any",n);let g;return g=xF(i?{inputs:{x:m},backend:n,attrs:{shape:Lu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class KF{constructor(e,t,n){this.variableNames=["A"];const{windowSize:r,batchSize:a,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[a,s];const i="max"===t?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${r};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${r}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${i} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class ZF{constructor(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Q(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const a=e[e.length-1],s=Math.ceil(a/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),r||this.variableNames.push("bestIndicesA");const i=this.outputShape,o=i.length,l=iT(o),u=zT("coords",o);let c,h;if(1===s){h=o+1;const e=iT(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const f=["x","y","z","w","u","v"].slice(0,h),d="."+f[h-1],p=f.map((e=>"int "+e)),m=zT("sourceLocR",h-1).concat("inIdx.r"),g=zT("sourceLocG",h-1).concat("inIdx.g"),y=zT("sourceLocB",h-1).concat("inIdx.b"),b=zT("sourceLocA",h-1).concat("inIdx.a"),v="max"===n?"greaterThan":"lessThan",w=r?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,x=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,_=r?"":`\n float getBestIndicesAChannel(${p.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${p.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${_}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${i[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${i[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${x};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${w}\n vec4 candidate = ${x};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${v}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function YF(e,t,n,r=null){let a=t.shape[0],s=t.shape[1];null!=r&&(a=r.shape[0],s=r.shape[1]);const i=$f(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new KF(o,n,null==r),u=[t];null!=r&&u.push(r);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=YF(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function JF(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=$f(a[a.length-1]),i=new ZF(a,s,n,null==r),o=null==r?[t]:[t,r],l=e.runWebGLProgram(i,o,"int32");if(l.shape.length===t.shape.length){const r=JF(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function QF(e,t,n,r){const a=[n];if(zu("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!ze().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Pu(t.shape,a),o=re(i),l=xF({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=YF(e,l,r);n.push(u);const c=xF({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return JF(e,t,r)}const eR={kernelName:Je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=de(s,a.shape);const o=Wu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=TF({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Vu(i.length,l.shape.length)),zu("argMax",[i[0]],l.shape.length);const c=QF(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},tR={kernelName:Qe,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=de(s,a.shape);const o=Wu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=TF({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Vu(i.length,l.shape.length)),zu("argMin",[i[0]],l.shape.length);const c=QF(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},nR=dF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),rR={kernelName:et,backendName:"webgl",kernelFunc:nR},aR=dF({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),sR={kernelName:tt,backendName:"webgl",kernelFunc:aR},iR=dF({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),oR={kernelName:nt,backendName:"webgl",kernelFunc:iR},lR=pF({opSnippet:"\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),uR={kernelName:at,backendName:"webgl",kernelFunc:lR},cR=dF({opSnippet:"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),hR={kernelName:rt,backendName:"webgl",kernelFunc:cR};class fR{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;const p="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(p||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${u}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / count");const v=4*Math.floor(s/4),w=s%4,x=`\n if (${p}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${y};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${v}; wC += 4) {\n int xC = xCCorner + wC * ${u};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n getValue(batch, xR, xC + 3 * ${u}, d)\n );\n\n ${x}\n }\n\n int xC = xCCorner + ${v};\n if (${1===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${2===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${3===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n initializationValue\n );\n\n ${x}\n }\n }\n setOutput(${b});\n }\n `}}class dR{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let v="0.0";if(b||(v="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p};\n wC += ${h}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${p} +\n wR * ${p} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let w=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(w="avgValue / count");const x=4*Math.floor(s/4),_=s%4,k=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${v};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${v});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${x}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${k}\n }\n\n int xC = xCCorner + ${x};\n if (${1===_}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${2===_}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${3===_}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${k}\n }\n }\n setOutput(${w});\n }\n }\n `}}const pR={kernelName:st,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;TD(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(wl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=cl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return rF({inputs:{x:a},backend:n});const c=new fR(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},mR={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r,c=hl(a.shape,s,i,[1,1,1],o,l,u),h=new dR(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class gR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${o};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${i}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class yR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=c-1-e.padInfo.front,p=h-1-e.padInfo.top,m=f-1-e.padInfo.left,g=1/(t*n*r);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${p}, ${m});\n const float avgMultiplier = float(${g});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${a}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${u}) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const bR={kernelName:lt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=hl(i.shape,o,l,[1,1,1],u,c),f=new yR(h);return n.runWebGLProgram(f,[a],i.dtype)}},vR={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;TD([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=cl(i.shape,o,l,1,u),h=new gR(c);return n.runWebGLProgram(h,[a],i.dtype)}},wR={kernelName:ut,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return RF({a,b:s,transposeA:i,transposeB:o,backend:n})}};class xR{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Ho(e,t),Ho(e,n);let i="0.0";null!=r&&(Ho(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Ho(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${i};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${s}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class _R{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Ho(e,t),Ho(e,n);let i="vec4(0.0)";null!=r&&(Ho(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Ho(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${i};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${s}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const kR={kernelName:Yt,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,mean:a,variance:s,offset:i,scale:o}=e;Q(a.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==i||a.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==o||a.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[r,a,s];let c=null;null!=i&&(c=i.shape,u.push(i));let h=null;null!=o&&(h=o.shape,u.push(o));const f=ze().getBool("WEBGL_PACK_NORMALIZATION")?new _R(r.shape,a.shape,s.shape,c,h,l):new xR(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class ER{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=iT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return CR.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let a;a=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${CR[t]} = start[${t}] + coords.${CR[t]};`)).join("\n")}\n `,this.userCode=`\n ${n}\n void main() {\n ${a}\n setOutput(getSource(${r}));\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}const CR=["x","y","z","w","u","v"];class SR{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=iT(this.rank),n=zT("coords",this.rank),r=zT("sourceLoc",this.rank),a=1===this.rank?"sourceLoc":`vec2(${r.slice(-2).join()})`,s=`getChannel(getSource(${r.join()}), ${a})`,i=`\n result.x = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.y = ${s};\n --${r[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${r[this.rank-2]};\n result.z = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.w = ${s};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${r[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n uniform int start[${this.rank}];\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${i}\n ${o}\n setOutput(result);\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}function NR(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Bi(a,s,i);if(xi(a,o,l),0===re(l))return n.makeTensorInfo(l,a.dtype,[]);if(n.shouldExecuteOnCPU([a])||"string"===a.dtype){const e=n.texData.get(a.dataId),t=FT(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=Ri(a.shape,o,l);if(u||!c){const e=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new SR(l):new ER(l),t=e.getCustomSetupFunc(o);return n.runWebGLProgram(e,[a],a.dtype,t)}return n.uploadToGPU(a.dataId),function(e,t,n,r){const a=r.texData.get(e.dataId),s=r.makeTensorInfo(n,e.dtype),i=r.texData.get(s.dataId);Object.assign(i,a),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=Oi(t,Ae(e.shape));a.slice&&(o+=a.slice.flatOffset),i.slice={flatOffset:o,origDataId:a.slice&&a.slice.origDataId||e.dataId};const l=r.dataRefCount.get(i.slice.origDataId)||1;return r.dataRefCount.set(i.slice.origDataId,l+1),s}(a,o,l,n)}const IR={kernelName:cr,backendName:"webgl",kernelFunc:NR},AR={kernelName:ct,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;Q(a.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=Lf(a.shape,s,o),u=zf(l.length,s.length),c=Wf(a.shape,s,o),h=Uf(i,s.length),f=Vf(c,i,s.length),d=[],p=xF({inputs:{x:a},backend:n,attrs:{shape:l}}),m=TF({inputs:{x:p},backend:n,attrs:{perm:u}}),g=xF({inputs:{x:m},backend:n,attrs:{shape:c}}),y=NR({inputs:{x:g},backend:n,attrs:{begin:h,size:f}});return d.push(p),d.push(m),d.push(g),d.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}},DR={kernelName:ht,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=n.readSync(a.dataId),l=n.readSync(s.dataId),u=hT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},TR=pF({opSnippet:"return float(a != b);",dtype:"bool"}),FR={kernelName:Mn,backendName:"webgl",kernelFunc:TR};function RR(e){const{inputs:t,backend:n}=e,{input:r}=t;return rF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const OR={kernelName:Kn,backendName:"webgl",kernelFunc:RR},BR={kernelName:dt,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r,attrs:a}=t,{x:s}=n,{dtype:i}=a;if("complex64"===i){if("complex64"===s.dtype)return rF({inputs:{x:s},backend:r});const t=oc(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=sF({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=RR({inputs:{input:s},backend:r}),n=e({inputs:{x:t},backend:r,attrs:{dtype:i}});return r.disposeIntermediateTensorInfo(t),n}if(!ve(s.dtype,i)){const e=rF({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new XT(e.shape,"return float(int(x));"),r=t.runWebGLProgram(n,[e],"int32");return{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}(s,r);if("bool"===i){const e=r.makeTensorInfo([],"bool",me("bool",1)),t=TR({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${s.dtype} to ${i}`)}},MR="return ceil(x);",$R=dF({opSnippet:MR,packedOpSnippet:MR,cpuKernelImpl:dT}),PR={kernelName:pt,backendName:"webgl",kernelFunc:$R};class LR{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}class zR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}const WR={kernelName:mt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=ze().getBool("WEBGL_PACK_CLIP")?new zR(a.shape):new LR(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class UR{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "}}function VR(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const jR={kernelName:yt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new UR(r.shape),i=[VR(r,a.complexTensorInfos.real),VR(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class HR{constructor(e){this.outputShape=[],this.outputShape=Bf(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${XR(i,l,t)}),\n vec2(${XR(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${XR(i,l,d)}),\n vec2(${XR(u,l,d)}));`,this.userCode=`\n float getValue(${i.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${a} coords = getOutputCoords();\n vec4 result = vec4(getValue(${s}), 0., 0., 0.);\n\n ${s[r-1]} = ${s[r-1]} + 1;\n if (${s[r-1]} < ${n[r-1]}) {\n result.g = getValue(${s});\n }\n\n ${s[r-2]} = ${s[r-2]} + 1;\n if (${s[r-2]} < ${n[r-2]}) {\n result.a = getValue(${s});\n }\n\n ${s[r-1]} = ${s[r-1]} - 1;\n if (${s[r-2]} < ${n[r-2]} &&\n ${s[r-1]} < ${n[r-1]}) {\n result.b = getValue(${s});\n }\n setOutput(result);\n }\n `}}function XR(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function qR(e){const{inputs:t,backend:n}=e,{input:r}=t;return rF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const KR={kernelName:an,backendName:"webgl",kernelFunc:qR};function ZR(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>RR({inputs:{input:e},backend:n}))),a=e.map((e=>qR({inputs:{input:e},backend:n}))),s=ZR(r,t,n),i=ZR(a,t,n),o=sF({inputs:{real:s,imag:i},backend:n});return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),a.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),o}if("string"===r){const{tensors2D:a,outShape:s}=YR(e,t,n),i=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),o=1===a[0].shape[0],l=pT(i,s,r,o),u=Bf(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,r,l);return a.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}if(e.length>ze().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=ZR(e.slice(0,r),t,n),s=ZR(e.slice(r),t,n),i=ZR([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new GR(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:a,outShape:s}=YR(e,t,n),i=new HR(a.map((e=>e.shape))),o=n.runWebGLProgram(i,a,r);a.forEach((e=>n.disposeIntermediateTensorInfo(e)));const l=xF({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function YR(e,t,n){const r=Bf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>xF({inputs:{x:e},attrs:{shape:[-1,re(e.shape.slice(t))]},backend:n}))),outShape:r}}function JR(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=de(a,t[0].shape)[0],i=Bf(t.map((e=>e.shape)),s);if(0===re(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>re(e.shape)>0));return 1===o.length?rF({inputs:{x:o[0]},backend:n}):(Of(o.map((e=>e.shape)),s),ZR(o,s,n))}const QR={kernelName:bt,backendName:"webgl",kernelFunc:JR};class eO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let v="",w="";n&&(v=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,w="result = activation(result);");const x=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${v}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${m}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${1===p}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${2===p}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===p}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${x}\n ${w}\n setOutput(result);\n }\n `}}class tO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${a}, ${s}, ${i});\n const ivec3 pads = ivec3(${t}, ${n}, ${r});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${u};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${1===p}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${2===p}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${3===p}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class nO{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:r,inChannels:a,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:h}=n,{left:f,top:d}=o,p=a*r,m=RD(),g="channelsLast"===h,y=g?0:1,b=g?1:2;let v="";for(let n=0;n<=1;n++)for(let r=0;r<=1;r++)v+=`\n blockIndex = rc.y + ${r};\n pos = rc.x + ${n};\n\n if(blockIndex < ${e[1]} && pos < ${e[0]}) {\n offsetY = int(blockIndex / (${l})) * ${i} - ${d};\n d0 = offsetY + ${c} * (pos / ${p});\n\n if(d0 < ${t[y]} && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${f}.);\n d1 = offsetX + ${u} * (int(mod(float(pos), ${p}.) / ${a}.));\n\n if(d1 < ${t[b]} && d1 >= 0) {\n\n ch = int(mod(float(pos), ${a}.));\n\n if (${g}) {\n innerDims = vec2(d1, ch);\n result[${2*n+r}] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*n+r}] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${v}\n\n ${m.output} = result;\n }\n `}}function rO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const l=e.shape,u=r.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],f=n.outChannels,d="channelsLast"===n.dataFormat;let p;const m=[],g=(1===h||1===f)&&c>1e3,y=l[2]%2!=0&&!!u.isPacked;if(!g&&ze().getBool("WEBGL_LAZILY_UNPACK")&&ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&y){const c=d?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},f=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Q(CD(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=xF({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=RF({a:h,b:g,backend:r,transposeA:!1,transposeB:!1,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),b=r.texData.get(y.dataId);Q(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=f,b.shape=n.outShape,p=rF({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=xF({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=xF({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=RF({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=xF({inputs:{x:h},backend:r,attrs:{shape:n.outShape}}),m.push(u),m.push(c),m.push(h)}for(const e of m)r.disposeIntermediateTensorInfo(e);return p}function aO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:f,dataFormat:d}=n,p="channelsLast"===d,m=l*u*c,g=f*h,y=[m,g],b=[],v=xF({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=xF({inputs:{x:t},backend:r,attrs:{shape:[1,m,re(t.shape)/m]}});b.push(v),b.push(w);const x=new nO(y,v.shape,n),_=r.runWebGLProgram(x,[v],"float32"),k=xF({inputs:{x:_},backend:r,attrs:{shape:[1,y[0],y[1]]}});b.push(_),b.push(k);const E=null!=a,C=null!=s,S="leakyrelu"===o,N=o?mF(o,!0):null,I=new gF(k.shape,w.shape,[1,g,n.outChannels],!0,!1,E,N,C,S),A=[k,w];if(a&&A.push(a),C&&A.push(s),S){const e=r.makeTensorInfo([],"float32",Jr(i,"float32"));A.push(e),b.push(e)}const D=r.runWebGLProgram(I,A,"float32"),T=xF({inputs:{x:D},backend:r,attrs:{shape:p?[1,f,h,n.outChannels]:[1,n.outChannels,f,h]}});b.push(D);for(const e of b)r.disposeIntermediateTensorInfo(e);return T}const sO={kernelName:vt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r,h=xl(l),f=fl(a.shape,s.shape,i,u,o,c,!1,h);let d;if(1!==f.filterHeight||1!==f.filterWidth||1!==f.dilationHeight||1!==f.dilationWidth||1!==f.strideHeight||1!==f.strideWidth||"SAME"!==f.padInfo.type&&"VALID"!==f.padInfo.type)if(ze().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=aO({x:a,filter:s,convInfo:f,backend:n});else{const e=new eO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=rO({x:a,filter:s,convInfo:f,backend:n});const p=xF({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class iO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s="channelsLast"===e.dataFormat;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n if (${s}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class oO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${s}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class lO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yF = 0; yF < ${e.outDepth}; yF++) {\n int xF = wF + yF * ${t} - ${a};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${s};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${r} - ${i};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class uO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=r-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${t}; wF++) {\n float dyF = float(dyFCorner + wF) / ${a}.0;\n\n if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${t} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${r}; wC++) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${r} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const cO={kernelName:wt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=r,h=xl(l),f=fl(a.shape,c,i,1,o,u,!1,h),d=new iO(f);return n.runWebGLProgram(d,[a,s],"float32")}},hO={kernelName:xt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=r,h=xl(u),f=fl(i,s.shape,o,1,l,c,!1,h),d=new oO(f);return n.runWebGLProgram(d,[a,s],"float32")}},fO={kernelName:_t,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=dl(a.shape,s.shape,i,l,o),c=new tO(u);return n.runWebGLProgram(c,[a,s],"float32")}},dO={kernelName:kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,filterShape:l}=r,u=dl(a.shape,l,i,1,o),c=new lO(u);return n.runWebGLProgram(c,[a,s],"float32")}},pO={kernelName:Et,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{pad:i,strides:o,inputShape:l}=r,u=dl(l,s.shape,o,1,i),c=new uO(u);return n.runWebGLProgram(c,[a,s],"float32")}},mO=dF({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),gO={kernelName:Ct,backendName:"webgl",kernelFunc:mO},yO=dF({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),bO={kernelName:St,backendName:"webgl",kernelFunc:yO};class vO{constructor(e,t,n,r,a){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[s,i,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const f="bilinear"===r?1:0,[d,p]=[i-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(i-1)/(c-1),"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[b,v,w]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${p} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${p}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${s}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${v};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${a}));\n return;\n }\n float in_x = ${w};\n if( in_x < 0.0 || in_x > ${p} ) {\n setOutput(float(${a}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}}const wO={kernelName:It,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,c=new vO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class xO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${_O(r,"coords")})`,s=e[e.length-1];let i="",o="";t?(i=n?"end != "+(s-1):"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=`\n uniform float index;\n void main() {\n ${iT(r)} coords = getOutputCoords();\n int end = ${kO(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${kO(r,"coords")} = idx;\n val += getX(${_O(r,"coords")});\n }\n setOutput(val);\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.index&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}}function _O(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function kO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}const EO={kernelName:Nt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,exclusive:i,reverse:o}=r,l=a.shape.length,u=Wu([s],l);let c=a;null!=u&&(c=TF({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=Vu(1,l)[0];if(h!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${a.shape.length-1} but got axis=${s}`);const f=c.shape[h];let d=rF({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new xO(c.shape,!1,o),r=t.getCustomSetupFunc(e),a=d;d=n.runWebGLProgram(t,[d],d.dtype,r),n.disposeIntermediateTensorInfo(a)}if(i){const e=new xO(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=TF({inputs:{x:d},backend:n,attrs:{perm:Uu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},CO={kernelName:At,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i,binaryOutput:o}=r;if(1===a.shape.length){const e=n.readSync(a.dataId),t=n.readSync(s.dataId),r=hT(e,t,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,r)}if(2===a.shape.length){const e=n.bufferSync(a),t=n.bufferSync(s),r=fT(e,t,i,o);return n.makeTensorInfo(r.shape,s.dtype,r.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${a.shape.length}.`)}};class SO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${t};\n int offset_h = imod(h, ${t});\n int in_w = w / ${t};\n int offset_w = imod(w, ${t});\n int offset_d = (offset_h * ${t} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const NO={kernelName:Dt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockSize:s,dataFormat:i}=r;Q(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l="NHWC"===i?a.shape[1]:a.shape[2],u="NHWC"===i?a.shape[2]:a.shape[3],c="NHWC"===i?a.shape[3]:a.shape[1],h=l*s,f=u*s,d=c/(s*s),p=new SO("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class IO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=e.outChannels/e.inChannels;let g="",y="";n&&(g=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,y="result = activation(result);");const b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${g}\n\n const ivec2 strides = ivec2(${u}, ${c});\n const ivec2 pads = ivec2(${o}, ${l});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${m};\n int q = d2 - d1 * ${m};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${d}; wR++) {\n int xR = xRCorner + wR * ${h};\n\n if (xR < 0 || xR >= ${s}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p}; wC++) {\n int xC = xCCorner + wC * ${f};\n\n if (xC < 0 || xC >= ${i}) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${b}\n ${y}\n setOutput(result);\n }\n `}}class AO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=p;let g="int xR; int xC; int xCOffset;";for(let e=0;e= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n xTexelR${e}C${n}.zw = vec2(0.);\n }\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n previous.zw = vec2(0.);\n }\n\n xR${e}C${n} = vec4(previous.zw, xTexelR${e}C${n}.xy);\n } else {\n xR${e}C${n} = vec4(0, 0, xTexelR${e}C${n}.xy);\n }\n `:`\n if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xR${e}C${n} = xTexelR${e}C${n};\n `,n+1= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n `,f>1&&(g+=`\n xCOffset -= 2;\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n `),g+=`\n xR${e}C${n+1} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.xy);\n `):g+=`\n xCOffset = xC + ${t};\n\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n\n xR${e}C${n+1} = xTexelR${e}C${n+2};\n `}}else n= 0 && xR < ${s}) {\n `,l%2==1?(g+=`\n xCOffset = xC + 1 - ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.zw);\n `,n+1= 0 && xCOffset < ${i}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR${e}C${n+1} = vec4(xTexelR${e}C${n+2}.xy, final.xy);\n `)):(g+=`\n if(xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.xy, xTexelR${e}C${n+2}.xy);\n `,n+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=fl(a.shape,s.shape,i,c,o,u,!0);let f;return f=ze().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new AO(h):new IO(h),n.runWebGLProgram(f,[a,s],"float32")}};class TO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${s} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class FO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const RO={kernelName:Ft,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=r,h=fl(a.shape,c,i,o,l,u,!0),f=new TO(h);return n.runWebGLProgram(f,[a,s],"float32")}},OO={kernelName:Rt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=r,h=fl(c,s.shape,i,o,l,u,!0),f=new FO(h);return n.runWebGLProgram(f,[a,s],"float32")}};class BO{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "}}const MO={kernelName:Ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=re(r.shape),i=xF({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new BO(s),l=n.runWebGLProgram(o,[i],i.dtype),u=xF({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class $O{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:r,strideHeight:a,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=r;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${s});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${i}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const PO={kernelName:Bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=ul(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new $O(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=xF({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},LO=dF({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n"}),zO={kernelName:Lt,backendName:"webgl",kernelFunc:LO},WO={kernelName:zt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new nF("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",r.shape,a.shape):new tF("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},UO=pF({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),VO={kernelName:Ut,backendName:"webgl",kernelFunc:UO},jO=dF({opSnippet:`\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = ${Gf};\n float a1 = ${Xf};\n float a2 = ${qf};\n float a3 = ${Kf};\n float a4 = ${Zf};\n float a5 = ${Yf};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`}),HO={kernelName:Wt,backendName:"webgl",kernelFunc:jO},GO="return exp(x);",XO=dF({opSnippet:GO,packedOpSnippet:GO,cpuKernelImpl:mT}),qO={kernelName:Vt,backendName:"webgl",kernelFunc:XO};function KO(e){const{inputs:t,attrs:n,backend:r}=e,{dim:a}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice();let l=a;return a<0&&(Q(-(i+1)<=a,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+a+1),o.splice(l,0,1),xF({inputs:{x:s},backend:r,attrs:{shape:o}})}const ZO={kernelName:jt,backendName:"webgl",kernelFunc:KO},YO="return exp(x) - 1.0;",JO=dF({opSnippet:YO,packedOpSnippet:YO,cpuKernelImpl:gT}),QO={kernelName:Ht,backendName:"webgl",kernelFunc:JO};class eB{constructor(e,t,n){this.variableNames=["real","imag"];const r=t[1];this.outputShape=t;const a=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${r}.0`:"1.0";let i;if("real"===e)i="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);i="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${a};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${i}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${r});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${r}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${s};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function tB(e,t,n){const r=n.texData.get(e.dataId),a=re(e.shape),s=e.shape[e.shape.length-1],i=xF({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new eB("real",o,t),u=new eB("imag",o,t),c=[{dataId:r.complexTensorInfos.real.dataId,dtype:r.complexTensorInfos.real.dtype,shape:o},{dataId:r.complexTensorInfos.imag.dataId,dtype:r.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),f=n.runWebGLProgram(u,c,"float32"),d=sF({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=xF({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const nB={kernelName:Gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return tB(r,!1,n)}};class rB{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}function aB(e){const{backend:t,attrs:n}=e,{shape:r,value:a}=n;let{dtype:s}=n;if(s=s||Se(a),"string"===s){const e=ge(s,re(r));return e.fill(a),t.makeTensorInfo(r,s,e)}{const e=new rB(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const sB={kernelName:Xt,backendName:"webgl",kernelFunc:aB};class iB{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const oB={kernelName:qt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new iB(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},lB="return floor(x);",uB=dF({opSnippet:lB,packedOpSnippet:lB,cpuKernelImpl:yT}),cB={kernelName:Kt,backendName:"webgl",kernelFunc:uB},hB=pF({opSnippet:"\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",packedOpSnippet:"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n",dtype:"int32"}),fB={kernelName:Zt,backendName:"webgl",kernelFunc:hB};class dB{constructor(e){this.variableNames=["A"];const t=RD(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${r}.0, ${n}.0);\n\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}}class pB{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=RD(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${r}.0, ${n}.0);\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${t.output} = result;\n }\n `}}const mB={kernelName:Mr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e;let{pixels:a}=t;const{numChannels:s}=r,i="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,l="undefined"!=typeof ImageBitmap&&a instanceof ImageBitmap,[u,c]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],h=[c,u],f=[c,u,s];(o||i||l)&&(null==gB&&(gB=document.createElement("canvas").getContext("2d")),gB.canvas.width=u,gB.canvas.height=c,gB.drawImage(a,0,0,u,c),a=gB.canvas);const d=n.makeTensorInfo(h,"int32");n.texData.get(d.dataId).usage=aD.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),a);const p=ze().getBool("WEBGL_PACK")?new pB(f):new dB(f),m=n.runWebGLProgram(p,[d],"int32");return n.disposeData(d.dataId),m}};let gB;const yB={kernelName:Lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r,m=xl(c),g=fl(a.shape,s.shape,l,h,u,f,!1,m);let y;const b=[];if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(ze().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=aO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});else{const e=null!=i,t=null!=o,r="leakyrelu"===d,l=d?mF(d,!1):null,u=new eO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",Jr(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=rO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=xF({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},bB={kernelName:zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:f,leakyreluAlpha:d}=r,p=[];let m=c;null==m&&(m=[1,1]),Q(wl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=fl(a.shape,s.shape,l,m,u,h,!0),y=ze().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?mF(f,y):null,v=[a,s],w=null!=i,x=null!=o,_="leakyrelu"===f;if(w&&v.push(i),x&&v.push(o),_){const e=n.makeTensorInfo([],"float32",Jr(d,"float32"));v.push(e),p.push(e)}let k;k=y?new AO(g,w,b,x,_):new IO(g,w,b,x,_);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class vB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=iT(t.length),a=iT(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=`\n ${r} strides = ${r}(${this.strides});\n void main() {\n ${a} coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < ${this.sliceDim}; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * ${s};\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n `}}const wB={kernelName:Qt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=a.shape,i=s[s.length-1],[o,l,u,c]=yi(r,a),h=xF({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=xF({inputs:{x:r},backend:n,attrs:{shape:[re(r.shape)/u,u]}}),d=new vB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=xF({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class xB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=iT(this.rank),r=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let t=0;tn.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(l.outputShape,r.dtype,r.values)}const p=new xB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=xF({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},kB=pF({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:vT,dtype:"bool"}),EB={kernelName:en,backendName:"webgl",kernelFunc:kB},CB=pF({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),SB={kernelName:tn,backendName:"webgl",kernelFunc:CB},NB={kernelName:rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return tB(r,!0,n)}},IB=dF({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),AB={kernelName:sn,backendName:"webgl",kernelFunc:IB},DB=dF({opSnippet:"return float(isinf(x));",dtype:"bool"}),TB={kernelName:on,backendName:"webgl",kernelFunc:DB},FB=dF({opSnippet:"return float(isnan(x));",dtype:"bool"}),RB={kernelName:ln,backendName:"webgl",kernelFunc:FB},OB=pF({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:wT,dtype:"bool"}),BB={kernelName:cn,backendName:"webgl",kernelFunc:OB},MB=pF({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),$B={kernelName:hn,backendName:"webgl",kernelFunc:MB},PB={kernelName:fn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=xT(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},LB=dF({opSnippet:"if (x < 0.0) return NAN;\n return log(x);",packedOpSnippet:"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:_T}),zB={kernelName:dn,backendName:"webgl",kernelFunc:LB},WB=dF({opSnippet:"return log(1.0 + x);"}),UB={kernelName:pn,backendName:"webgl",kernelFunc:WB},VB=pF({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),jB={kernelName:mn,backendName:"webgl",kernelFunc:VB},HB=dF({opSnippet:"return float(!(x >= 1.0));"}),GB={kernelName:gn,backendName:"webgl",kernelFunc:HB},XB=pF({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),qB={kernelName:yn,backendName:"webgl",kernelFunc:XB};class KB{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[];const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${s}; j <= ${s}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${i}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class ZB{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${s};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${s}; j <= ${s}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${i}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const YB={kernelName:vn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r,u=ze().getBool("WEBGL_PACK_NORMALIZATION")?new ZB(a.shape,s,i,o,l):new KB(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class JB{constructor(e,t,n,r,a){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=a,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${t})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${t} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${r}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${r})\n * float(${a})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${a});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}}const QB={kernelName:wn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=r,h=new JB(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function eM(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=Wu(u,o),h=null!=c,f=n.shouldExecuteOnCPU([a]);let d=a;if(h){if(f){const e=n.texData.get(d.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:ET}),rM={kernelName:_n,backendName:"webgl",kernelFunc:nM},aM={kernelName:kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;TD(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(wl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=cl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return rF({inputs:{x:a},backend:n});const c=new fR(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},sM={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=r,c=hl(a.shape,s,i,[1,1,1],o,u,l),h=new dR(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class iM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,a=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=a-1-e.padInfo.top,o=s-1-e.padInfo.left,l=a*s-1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${a};\n wR += ${r}) {\n float dyR = float(dyRCorner + wR) / ${t}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${s} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class oM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,f=u-1-e.padInfo.left,d=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${o};\n wD += ${a}) {\n float dyD = float(dyDCorner + wD) / ${t}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${u};\n wC += ${i}) {\n float dyC = float(dyCCorner + wC) / ${r}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const lM={kernelName:Sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=hl(i.shape,o,l,[1,1,1],u,c),f=new dR(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new oM(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},uM={kernelName:En,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;TD([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=cl(o.shape,l,u,1,c,h),d=new fR(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new iM(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},cM={kernelName:Nn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;Q(4===r.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`));const u=[1,1];Q(wl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=cl(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new fR(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new fR(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},hM={kernelName:In,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{keepDims:a,axis:s}=t,i=n,o=r.shape.length,l=de(s,r.shape);let u=l;const c=Wu(u,o),h=null!=c,f=i.shouldExecuteOnCPU([r]),d=[];let p=r;if(h){if(f){const e=i.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:CT}),pM={kernelName:Dn,backendName:"webgl",kernelFunc:dM};class mM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=iT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r),l="reflect"===n?0:1;this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n for (int i = 0; i < ${r}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class gM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=iT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=zT("rc",r),l=zT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let f="";if(1===r){const e=`\n ${a} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${a} source = rc;\n ${a} lt = ${a}(lessThan(source, start));\n ${a} gte = ${a}(greaterThanEqual(source, end));\n ${a} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${a} start = ${a}(${s});\n const ${a} end = ${a}(${i});\n\n void main() {\n ${a} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}}const yM={kernelName:Tn,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new gM(r.shape,a,s):new mM(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},bM=pF({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),vM={kernelName:Fn,backendName:"webgl",kernelFunc:bM};class wM{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=`\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${t-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${t-1}));\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.seedLoc&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}const xM=pF({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n",checkOutOfBounds:!0}),_M={kernelName:Pt,backendName:"webgl",kernelFunc:xM},kM="return a - b;",EM=pF({opSnippet:kM,packedOpSnippet:kM,supportsComplex:!0,cpuKernelImpl:OT}),CM={kernelName:kr,backendName:"webgl",kernelFunc:EM};function SM(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=de([s],a.shape),o=eM({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Lu(o.shape,i),u=xF({inputs:{x:o},backend:n,attrs:{shape:l}}),c=EM({inputs:{a,b:u},backend:n}),h=XO({inputs:{x:c},backend:n}),f=AF({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=xF({inputs:{x:f},backend:n,attrs:{shape:l}}),p=xM({inputs:{a:h,b:d},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),p}const NM={kernelName:wr,backendName:"webgl",kernelFunc:SM},IM={kernelName:Rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r,l=o?a:SM({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new wM(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},AM="return -x;",DM={kernelName:Bn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])){const e=n.texData.get(r.dataId),[t,a]=NT(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new ZT(r.shape,AM):new XT(r.shape,AM),n.runWebGLProgram(a,[r],r.dtype)}},TM=Qh,FM={kernelName:$n,backendName:"webgl",kernelFunc:function(e){Jf("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=r,u=n.readSync(a.dataId),c=n.readSync(s.dataId),{selectedIndices:h}=TM(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},RM=ef,OM={kernelName:Pn,backendName:"webgl",kernelFunc:function(e){Jf("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),{selectedIndices:f,validOutputs:d}=RM(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},BM=tf,MM={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){Jf("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),f=i,d=o,p=l,m=u,{selectedIndices:g,selectedScores:y}=BM(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class $M{constructor(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${r}), float(${n}),\n float(index == coords.y)));\n }\n `}}const PM={kernelName:Wn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r,l=re(a.shape),u=new $M(l,s,i,o),c=xF({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=xF({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function LM(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=RR({inputs:{input:r},backend:n}),t=LM({inputs:{x:e},backend:n}),a=qR({inputs:{input:r},backend:n}),s=LM({inputs:{x:a},backend:n}),i=sF({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return aB({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const zM={kernelName:Or,backendName:"webgl",kernelFunc:LM},WM={kernelName:zn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,{x:a}=n;if("string"===a.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===a.dtype){const t=RR({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=qR({inputs:{input:a},backend:r}),i=LM({inputs:{x:s},backend:r}),o=sF({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return aB({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},UM={kernelName:Un,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return KO({inputs:{input:t[0]},backend:n,attrs:{dim:a}});const s=t[0].shape,i=t[0].dtype;t.forEach((e=>{ee(s,e.shape,"All tensors passed to stack must have matching shapes"),Q(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=JR({inputs:t.map((e=>{const t=KO({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class VM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=iT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float(${n}));\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float(${n}));\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}}class jM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=iT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=zT("rc",r),l=zT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h=[`${a} rc = outputLoc;`,`${o[r-1]} += 1;\n if(${u}) {\n `,1===r?"":`}\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {`,1===r?"":` ${o[r-1]} += 1;\n if(${u}) {`],f=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let e=0,t=1===r?2:4;e{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jM(a.shape,s,i):new VM(a.shape,s,i);return n.runWebGLProgram(o,[a],a.dtype)},GM={kernelName:Vn,backendName:"webgl",kernelFunc:HM},XM=pF({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),qM={kernelName:Hn,backendName:"webgl",kernelFunc:XM},KM={kernelName:Xn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=[],u=de(s,a.shape);let c=u;const h=Wu(c,o);let f,d=a;if(null!=h&&(d=TF({inputs:{x:a},backend:n,attrs:{perm:h}}),c=Vu(c.length,o),l.push(d)),zu("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=IT(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Pu(d.shape,c),r=re(t),s=xF({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=CF(s,Sa(a.dtype),"prod",n);f=xF({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Lu(f.shape,u);f=xF({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},ZM=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=AT(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},YM={kernelName:qn,backendName:"webgl",kernelFunc:ZM},JM=dF({opSnippet:"return 1.0 / x;"}),QM={kernelName:Zn,backendName:"webgl",kernelFunc:JM},e$=dF({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),t$={kernelName:Yn,backendName:"webgl",kernelFunc:e$},n$=dF({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),r$={kernelName:rr,backendName:"webgl",kernelFunc:n$};class a${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class s${constructor(e,t,n,r,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${o}.0,\n ${o}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const i$={kernelName:tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=ze().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new s$(a.shape,l,u,s,i):new a$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class o${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${r-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${a-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const l$={kernelName:nr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new o$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class u${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=r?"0.5":"0.0";let f;f=a?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}const c$={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=new u$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],a.dtype)}};class h${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${r}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${a}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const f$={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new h$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class d${constructor(e,t){this.variableNames=["x"];const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,1===n)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const r=e.map(((n,r)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(r))).join(","),a=iT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class p${constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const r=zT("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=iT(n);function o(n){const r=e.map(((r,a)=>function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${r[n]} - 1`:`${r[n]}`}(a,n)));return`getChannel(getX(${r.join(",")}), vec2(${r.slice(-2).join(",")}))`}this.userCode=1===n?`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${e[0]} - rc - 1),\n ${e[0]} - rc - 1);\n if(${a}){\n result.g = getChannel(getX(${e[0]} - (rc + 1) - 1),\n ${e[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:`\n void main() {\n ${i} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(r.slice())};\n if(${a}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(r.slice())};\n }\n if(${s}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n if(${a}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n }\n }\n setOutput(result);\n }\n `}}const m$={kernelName:ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r,i=a.shape.length,o=de(s,a.shape);if(0===i)return rF({inputs:{x:a},backend:n});const l=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new p$(a.shape,o):new d$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class g${constructor(e,t,n,r){this.variableNames=["Image"],this.outputShape=[];const a=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;const[l,u]=Pf(r,a,s),c=l.toFixed(3),h=u.toFixed(3);let f="";f="number"==typeof n?`float outputValue = ${n.toFixed(2)};`:`\n vec3 fill = vec3(${n.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - ${c}) * ${o} - (float(y) - ${h}) * ${i};\n float coordYFloat = (float(x) - ${c}) * ${i} + (float(y) - ${h}) * ${o};\n int coordX = int(round(coordXFloat + ${c}));\n int coordY = int(round(coordYFloat + ${h}));\n ${f}\n if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${a}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const y$={kernelName:$r,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new g$(r.shape,a,s,i);return o.runWebGLProgram(l,[r],r.dtype)}},b$=dF({opSnippet:"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n"}),v$={kernelName:sr,backendName:"webgl",kernelFunc:b$},w$=dF({opSnippet:"return inversesqrt(x);",cpuKernelImpl:DT}),x$={kernelName:ir,backendName:"webgl",kernelFunc:w$};class _${constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=iT(a.length),l=iT(s.length);let u="";1===n?u="i":2===n&&(u="i, j");const c=`getIndices(${u})`;let h="";1===r?h="i":2===r&&(h="i, coords[1]");const f=`getUpdates(${h})`,d=t>1?"strides[j]":"strides";this.userCode=`\n ${o} strides = ${o}(${a});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${e}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${t}; j++) {\n int index = round(${c});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}}const k$={kernelName:or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a,updates:s}=t,{shape:i}=r,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=wi(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=xF({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=xF({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new _$(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=xF({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class E${constructor(e,t,n){let r,a;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)a="resRC",r="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[],i=[];for(let r=0;r= 1.0) {\n setOutput(getA(${a}));\n } else {\n setOutput(getB(${a}));\n }\n }\n `}}const C$={kernelName:lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new E$(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],Ca(a.dtype,s.dtype))}},S$=dF({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${jf};\n float scale = ${Hf};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),N$={kernelName:ur,backendName:"webgl",kernelFunc:S$},I$=dF({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),A$={kernelName:pr,backendName:"webgl",kernelFunc:I$},D$=dF({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),T$={kernelName:dr,backendName:"webgl",kernelFunc:D$},F$=dF({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),R$={kernelName:hr,backendName:"webgl",kernelFunc:F$},O$=dF({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),B$={kernelName:fr,backendName:"webgl",kernelFunc:O$},M$=dF({opSnippet:"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n"}),$$={kernelName:mr,backendName:"webgl",kernelFunc:M$},P$={kernelName:br,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,paddings:i}=r;Q(a.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...i);for(let e=1+s.length;en.disposeIntermediateTensorInfo(e))),g}},L$={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{sparseIndices:a,sparseValues:s,defaultValue:i}=t,{outputShape:o}=r,{sliceRank:l,numUpdates:u,strides:c,outputSize:h}=wi(0,a,o),f=new _$(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=xF({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},z$={kernelName:vr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{numOrSizeSplits:s,axis:i}=r,o=de(i,a.shape)[0],l=ld(a,s,o),u=a.shape.length,c=new Array(u).fill(0),h=a.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const r=NR({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},W$=dF({opSnippet:"return sqrt(x);"}),U$={kernelName:gr,backendName:"webgl",kernelFunc:W$},V$=dF({opSnippet:"return x * x;"}),j$={kernelName:_r,backendName:"webgl",kernelFunc:V$},H$="return (a - b) * (a - b);",G$=pF({opSnippet:H$,packedOpSnippet:H$}),X$={kernelName:xr,backendName:"webgl",kernelFunc:G$},q$={kernelName:Br,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:r}=e,a=`if (isnan(x)) return x;\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new XT(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class K${constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=iT(n.length),s=iT(n.length);let i="";if(1===r)i="coords * strides + begin";else{let e=0;i=n.map(((t,r)=>(e++,1===n.length?`coords * strides[${r}] + begin[${r}]`:`coords[${e-1}] * strides[${r}] + begin[${r}]`))).join(",")}this.userCode=`\n ${a} begin = ${a}(${e});\n ${a} strides = ${a}(${t});\n\n void main() {\n ${s} coords = getOutputCoords();\n setOutput(getX(${i}));\n }\n `}}const Z$={kernelName:Cr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:f}=r,{nonStrided:d,$begin:p,$strides:m,size:g,newShape:y,outShape:b}=Mi(a.shape,s,i,o,l,u,c,h,f),v=xF({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=NR({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=xF({inputs:{x:e},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(e)}else if(b.some((e=>0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else if(n.shouldExecuteOnCPU([v])){const e=n.texData.get(v.dataId).values,t=Us(v.shape,v.dtype,e),r=RT(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new K$(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const x=xF({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),x}},Y$=dF({opSnippet:"return tan(x);"}),J$={kernelName:Sr,backendName:"webgl",kernelFunc:Y$},Q$=dF({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),eP={kernelName:Nr,backendName:"webgl",kernelFunc:Q$};class tP{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[];for(let t=0;tra(e))),t=Us(a.shape,a.dtype,e),r=BT(t,s);return n.makeTensorInfo(r.shape,r.dtype,r.values)}const i=new tP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const rP={kernelName:Ir,backendName:"webgl",kernelFunc:nP},aP={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{k:s,sorted:i}=r,o=n.readSync(a.dataId),[l,u]=MT(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}},sP={kernelName:Tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;TD(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");const i=r.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=PT(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},iP={kernelName:Fr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{value:a}=t;let{axis:s}=r;s<0&&(s+=a.shape.length);const i=a,o=i.shape.length,l=a.shape[s],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),p}};class oP{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,r=e.batchSize,a=e.inSize,s=e.numSegments,i=s*Math.ceil(a/n);this.outputShape=[r,i];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";a%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `);let h="";a%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${s})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${s})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${2===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${3===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${u}\n }\n setOutput(sumValue);\n }\n `}}const lP=[YB,QB,OF,MF,PF,zF,VF,GF,XF,qF,eR,tR,rR,sR,uR,oR,hR,mR,pR,bR,vR,wR,kR,AR,DR,BR,PR,WR,jR,iF,QR,cO,hO,sO,dO,pO,fO,gO,bO,wO,EO,CO,NO,RO,OO,DO,MO,PO,zO,WO,VO,HO,qO,ZO,QO,nB,sB,oB,cB,fB,mB,yB,bB,wB,_B,EB,SB,aF,NB,KR,AB,TB,RB,uF,BB,$B,PB,UB,zB,jB,GB,qB,tM,sM,aM,lM,uM,cM,rM,hM,fM,pM,yM,vM,IM,wF,DM,FM,OM,MM,FR,PM,WM,UM,GM,qM,fF,KM,YM,OR,_M,QM,r$,t$,_F,i$,l$,c$,f$,m$,y$,v$,x$,k$,C$,N$,A$,T$,R$,B$,IR,NM,$$,P$,L$,z$,U$,j$,X$,q$,Z$,CM,DF,J$,eP,rP,aP,FF,sP,iP,{kernelName:Rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,segmentIds:s}=t,{numSegments:i}=r,o=a.shape.length,l=[];let u=0;const c=Wu([u],o);let h=a;null!=c&&(h=TF({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=Vu(1,o)[0]);const f=cd(h.shape,u,i),d=re([h.shape[u]]),p=xF({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Sa(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=ud(o,s),c=new oP({windowSize:u,inSize:o,batchSize:i,numSegments:s},t),h=n.compileAndRun(c,[e,r],a);if(l.push(h),h.shape[1]===s)return h;const f=ZM({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=nP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=xF({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Uu(c);b=TF({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},zM];for(const e of lP)Gr(e);const uP={"tfjs-core":Yi,"tfjs-backend-cpu":"3.2.0","tfjs-backend-webgl":"3.2.0","tfjs-data":EE,"tfjs-layers":Py,"tfjs-converter":yk,tfjs:"3.2.0"}},4538:(e,t,n)=>{"use strict";e.exports=n(4063)},4658:e=>{"use strict";const t="[\ud800-\udbff][\udc00-\udfff]";e.exports=e=>e&&e.exact?new RegExp(`^${t}$`):new RegExp(t,"g")},7737:(e,t,n)=>{"use strict";n.d(t,{z:()=>s});var r=n(6610),a=n(5991),s=function(){function e(){(0,r.Z)(this,e),this.table_width=17,this.table_truncate=16,this.dtype_test_lim=10,this.table_max_row=21,this.table_max_col_in_console=7}return(0,a.Z)(e,[{key:"set_width",value:function(e){this.table_width=e}},{key:"set_max_col_in_console",value:function(e){this.table_max_col_in_console=e}},{key:"set_row_num",value:function(e){this.table_max_row=e}},{key:"set_truncate",value:function(e){this.table_truncate=e}},{key:"set_dtype_test_lim",value:function(e){this.dtype_test_lim=e}},{key:"get_width",get:function(){return this.table_width}},{key:"get_max_col_in_console",get:function(){return this.table_max_col_in_console}},{key:"get_max_row",get:function(){return this.table_max_row}},{key:"get_truncate",get:function(){return this.table_truncate}},{key:"get_dtype_test_lim",get:function(){return this.dtype_test_lim}}]),e}()},5291:(e,t,n)=>{"use strict";n.d(t,{z:()=>c});var r=n(7329),a=n(6610),s=n(3676),i=n(697),o=n(3938),l=new i.c,u=function e(t){(0,a.Z)(this,e),l.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),l.__in_object(t,"axis","axis not found: specify the axis");var n,i;if(!Array.isArray(t.df_list))throw new Error("df_list must be an Array of dataFrames/Series");if(n=t.df_list,"number"!=typeof t.axis)throw new Error("axis must be a number");i=0==t.axis||1==t.axis?t.axis:1;var u=Object.assign({},n);if(1==i){var c=[],h={},f=0;for(var d in u){var p=u[d].columns,m=u[d].values.length;for(var g in m>f&&(f=m),p){var y=p[g];if(y in h){var b=h[y],v="".concat(y,"_").concat(b+1);c.push(v),h[y]=b+1}else c.push(y),h[y]=1}}var w=new Array(f);for(var x in n){for(var _=n[x].values,k=0;k<_.length;k++){var E,C=_[k];void 0===w[k]?Array.isArray(C)?w[k]=C:w[k]=[C]:Array.isArray(C)?(E=w[k]).push.apply(E,(0,r.Z)(C)):w[k].push(C)}if(_.length0)for(var U=0;U<$.length;U++){for(var V=$[U],j=Array(D.length),H=0;H{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>DataFrame});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(7329),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(4699),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7757),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(2137),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6610),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(5991),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(3530),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(5255),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(6616),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(7608),_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8654),_generic__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(2847),_series__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(3938),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(697),_groupby__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(7398),_plotting_plot__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(4564),_indexing__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(9365),_concat_js__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(5291),mathjs__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(3346);function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=(0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__.Z)(e);if(t){var a=(0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__.Z)(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return(0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__.Z)(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var utils=new _utils__WEBPACK_IMPORTED_MODULE_4__.c,DataFrame=function(_Ndframe){(0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__.Z)(DataFrame,_Ndframe);var _super=_createSuper(DataFrame),_sample,_to_csv;function DataFrame(e,t){var n;return(0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__.Z)(this,DataFrame),(n=_super.call(this,e,t))._set_column_property(),n}return(0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__.Z)(DataFrame,[{key:"_set_column_property",value:function(){var e=this,t=this.col_data,n=this.column_names;t.forEach((function(t,r){e[n[r]]=null,Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_8__.F(this.col_data[r],{columns:n[r],index:this.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"to_csv",value:(_to_csv=(0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9__.Z)(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark((function e(){var t,n,r,a=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]?a[0]:"",e.next=3,(0,_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_10__.Z)((0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__.Z)(DataFrame.prototype),"to_csv",this).call(this);case 3:return n=e.sent,"undefined"==typeof window?__webpack_require__(2993).writeFileSync(t,n,(function(e){return e&&console.error(e)})):(r="data:text/csv;charset=utf-8,"+n,window.open(encodeURI(r))),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)}))),function(){return _to_csv.apply(this,arguments)})},{key:"drop",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","index","inplace","axis"];utils._throw_wrong_params_error(t,n),t.inplace=t.inplace||!1,"axis"in t||(t.axis=1);var r=null;if(r="index"in t&&0==t.axis?t.index:t.columns,1==t.axis){if(!("columns"in t))throw Error("No column found. Axis of 1 must be accompanied by an array of column(s) names");var a=this,s={},i=[],o=r.map((function(e){var t=a.columns.indexOf(e);if(-1==t)throw new Error('column "'.concat(e,'" does not exist'));return t}));if(this.col_data.forEach((function(e,t){o.includes(t)||(s[a.column_names[t]]=e,i.push(a.dtypes[t]))})),!t.inplace){var l=a.columns,u=Object.keys(s),c=new DataFrame(s,{index:a.index,dtypes:i});return c.__set_col_property(c,c.col_data,u,l),c}var h=a.columns,f=Object.keys(s);this.__update_frame_in_place(null,null,s,null,i),this.__set_col_property(a,a.col_data,f,h)}else{if(!utils.__key_in_object(t,"index"))throw Error("No index label found. Axis of 0 must be accompanied by an array of index labels");r.forEach((function(t){if(!e.index.includes(t))throw new Error("".concat(t," does not exist in index"))}));var d,p,m=this.values,g=[];if("string"==typeof r[0]?(this.index.forEach((function(e,t){r.includes(e)&&g.push(t)})),d=utils.__remove_arr(m,g),p=utils.__remove_arr(this.index,g)):(d=utils.__remove_arr(m,r),p=utils.__remove_arr(this.index,r)),!t.inplace)return new DataFrame(d,{columns:this.columns,index:p});this.row_data_tensor=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(d),this.data=d,this.__set_index(p)}}},{key:"loc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="loc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_11__.j)(this,e),r=(0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__.Z)(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"iloc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="iloc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_11__.j)(this,e),r=(0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__.Z)(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return this;var t=this.values.slice(0,e),n=this.index.slice(0,e),r={columns:this.column_names,index:n},a=new DataFrame(t,r);return a}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,t=this.values.length;if(e>t||e<1)return this;var n=this.values.slice(t-e),r=this.index.slice(t-e),a={columns:this.column_names,index:r},s=new DataFrame(n,a);return s}},{key:"sample",value:(_sample=(0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9__.Z)(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark((function e(){var t,n,r,a,s=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:-1,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc({rows:r}),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return _sample.apply(this,arguments)})},{key:"add",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].add(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"sub",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].sub(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mul",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mul(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"div",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].div(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"pow",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].pow(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mod",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mod(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mean",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.mean(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_8__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"median",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__median(t,!1),a=new _series__WEBPACK_IMPORTED_MODULE_8__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"min",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.min(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_8__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"max",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.max(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_8__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"std",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_13__.qoR)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_8__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"var",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_13__.CAK)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_8__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"count",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__count_nan(t,!0,!1),a=new _series__WEBPACK_IMPORTED_MODULE_8__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"round",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.values,n=this.index,r=utils.__round(t,e,!1),a={columns:this.column_names,index:n},s=new DataFrame(r,a);return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"__cum_ops",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(0!=e&&1!=e)throw new Error("axis must be between 0 or 1");if(this.__frame_is_compactible_for_operation){var n=[],r=null;r=0==e?this.col_data:this.values;for(var a=0;ai?(i=u,o.push(u)):o.push(i);break;case"min":u0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"sum");return n}},{key:"cummin",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"min");return n}},{key:"cummax",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"max");return n}},{key:"cumprod",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"prod");return n}},{key:"copy",value:function(){return new DataFrame((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_14__.Z)(this.values),{columns:(0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_14__.Z)(this.column_names),index:this.index,dtypes:this.dtypes})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e){var t=this.copy();return t.__reset_index(),t}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["key","drop","inplace"];if(utils._throw_wrong_params_error(e,t),!utils.__key_in_object(e,"key"))throw Error("Index ValueError: You must specify an array of index");if(utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"drop")||(e.drop=!0),Array.isArray(e.key)&&e.key.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.key.length," must match lenght of existing index ").concat(this.index.length));if("string"==typeof e.key&&this.column_names.includes(e.key)&&(e.key_name=e.key,e.key=this[e.key].values),!e.inplace){var n=this.copy();return n.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&n.drop({columns:[e.key_name],axis:1,inplace:!0}),n}this.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&this.drop({columns:[e.key_name],inplace:!0,axis:1})}},{key:"describe",value:function(){var e=this.select_dtypes(["float32","int32"]),t=e.column_names,n={};return t.forEach((function(t){var r=e[t],a=[r.count(),r.mean(),r.std(),r.min(),r.median(),r.max(),r.var()];n[t]=a})),new DataFrame(n,{index:["count","mean","std","min","median","max","variance"]}).round(6)}},{key:"select_dtypes",value:function(e){var t=this.dtypes,n=this.column_names,r={},a=this.col_data,s=["float32","int32","string","boolean"];return null==e?this.copy():(e.forEach((function(e){if(!s.includes(e))throw Error("Dtype Error: dtype ".concat(e," not supported."))})),t.forEach((function(t,s){e.includes(t)&&(r[n[s]]=a[s])})),new DataFrame(r))}},{key:"sum",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{axis:1};if(this.__frame_is_compactible_for_operation()){var t,n=[];(1==e.axis?this.col_data:this.values).map((function(e){var t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(e).sum().arraySync();n.push(Number(t.toFixed(5)))})),t=1==e.axis?this.column_names:this.index;var r=new _series__WEBPACK_IMPORTED_MODULE_8__.F(n,{columns:"sum",index:t});return r}throw Error("Dtype Error: Operation can not be performed on string type")}},{key:"abs",value:function(){var e=this.values,t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(e).abs().arraySync();return new DataFrame(utils.__round(t,2,!1),{columns:this.column_names,index:this.index})}},{key:"__get_tensor_and_idx",value:function(e,t){var n,r,a;return 1==t?(n=e.row_data_tensor,r=e.column_names,a=0):(n=e.row_data_tensor,r=e.index,a=1),[n,r,a]}},{key:"query",value:function query(kwargs){var operators=[">","<","<=",">=","==","!="],column_index,operator,value;if(utils.__key_in_object(kwargs,"inplace")||(kwargs.inplace=!1),!utils.__key_in_object(kwargs,"column"))throw new Error("specify the column");if(!this.columns.includes(kwargs.column))throw new Error("column ".concat(kwargs.column," does not exist"));if(column_index=this.columns.indexOf(kwargs.column),!utils.__key_in_object(kwargs,"is"))throw new Error("specify an operator in param [is]");if(!operators.includes(kwargs.is))throw new Error(" ".concat(kwargs.is," is not a supported logical operator"));if(operator=kwargs.is,!utils.__key_in_object(kwargs,"to"))throw new Error("specify a value in param [to]");value=kwargs.to;for(var data=this.values,index=this.index,new_data=[],new_index=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","values","inplace"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"inplace")||(t.inplace=!1),utils.__key_in_object(t,"columns")){if(t.columns.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),t.columns.length!=t.values.length)throw Error("Lenght Error: The lenght of the columns names must be equal to the lenght of the values,\n got column of length ".concat(t.columns.length," but values of length ").concat(t.values.length));var r=this.col_data;t.columns.map((function(n,a){var s=e.column_names.indexOf(n),i=e.col_data[s],o=[];i.map((function(e){isNaN(e)&&"string"!=typeof e?o.push(t.values[a]):o.push(e)})),r[s]=o}));var a={};if(r.map((function(t,n){a[e.column_names[n]]=t})),!t.inplace)return new DataFrame(a,{index:this.index});this.__update_frame_in_place(null,null,a,null,null)}else{if(!utils.__key_in_object(t,"values"))throw Error("Value Error: Please specify a fill value");var s;s=Array.isArray(t.values)?t.values[0]:t.values;for(var i=[],o=this.values,l=this.columns,u=0;u0&&void 0!==arguments[0]?arguments[0]:{},t=e.axis||0,n=e.inplace||!1;if(0!=t&&1!=t)throw new Error("axis must either be 1 or 0");var r=null,a=null;0==t?(r=this.values,a=this.columns):(r=this.col_data,a=[]);for(var s=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["replace","with","in"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"in")){if(t.in.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var r={};return this.column_names.map((function(n,a){if(t.in.includes(n)){var s=e.col_data[a],i=[];s.map((function(e){e==t.replace?i.push(t.with):i.push(e)})),r[n]=i}else r[n]=e.col_data[a]})),new DataFrame(r,{columns:this.column_names,index:this.index})}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}if(utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var a=[],s=this.values;s.map((function(e){var n=[];e.map((function(e){e==t.replace?n.push(t.with):n.push(e)})),a.push(n)}));var i=new DataFrame(a,{index:this.index,columns:this.column_names});return i}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}},{key:"__logical_ops",value:function(e,t,n){var r,a;if(utils.__is_number(e))a=e;else if(e.series)if(0==n){if(e.values.length!=this.shape[0])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(e.values)}else{if(e.values.length!=this.shape[1])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(e.values)}else a=Array.isArray(e)?_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(e):e.row_data_tensor;switch(t){case"lt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).less(a).arraySync();break;case"gt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).greater(a).arraySync();break;case"le":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).lessEqual(a).arraySync();break;case"ge":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).greaterEqual(a).arraySync();break;case"ne":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).notEqual(a).arraySync();break;case"eq":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_3__.tensor(this.values).equal(a).arraySync()}return new DataFrame(utils.__map_int_to_bool(r,2),{columns:this.column_names,index:this.index})}},{key:"__get_df_from_tensor",value:function(e,t){for(var n=e.shape[0],r=[],a=0;a0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"column"))throw Error("Value Error: Please specify a column to cast");if(!utils.__key_in_object(e,"dtype"))throw Error("Value Error: Please specify dtype to cast to");if(!this.column_names.includes(e.column))throw Error("'".concat(e.column,"' not found in columns"));var t=this.column_names.indexOf(e.column),n=this.col_types,r=this.col_data;n[t]=e.dtype;var a=[],s=r[t];switch(e.dtype){case"float32":s.map((function(e){a.push(Number(e))})),r[t]=a;break;case"int32":s.map((function(e){a.push(Number(Number(e).toFixed()))})),r[t]=a;break;case"string":s.map((function(e){a.push(String(e))})),r[t]=a}var i={};this.column_names.forEach((function(e,t){i[e]=r[t]}));var o=new DataFrame(i,{dtypes:n,index:this.index});return o}},{key:"unique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n={};if(1==t){var r=this.column_names;r.forEach((function(t){n[t]=e[t].unique().values}))}else{var a=this.values,s=this.index;a.forEach((function(e,t){var r=new Set(e);n[s[t]]=Array.from(r)}))}return n}},{key:"nunique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n=[];if(1==t){var r=this.column_names;r.forEach((function(t){n.push(e[t].unique().values.length)}));var a=new _series__WEBPACK_IMPORTED_MODULE_8__.F(n,{index:this.column_names});return a}var s=this.values;s.forEach((function(e){var t=new Set(e);n.push(Array.from(t).length)}));var i=new _series__WEBPACK_IMPORTED_MODULE_8__.F(n,{index:this.index});return i}},{key:"rename",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["mapper","inplace","axis"];if(utils._throw_wrong_params_error(e,t),utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"axis")||(e.axis=1),!utils.__key_in_object(e,"mapper"))throw Error("Please specify a mapper object");if(1==e.axis){var n=Object.keys(e.mapper),r=Object.values(e.mapper),a=(0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_14__.Z)(this.column_names);if(n.forEach((function(e,t){if(!a.includes(e))throw Error("Label Error: Specified column '".concat(e,"' not found in column axis"));var n=a.indexOf(e);a[n]=r[t]})),!e.inplace){var s=this.copy();return s.columns=a,s.__set_col_property(s,s.col_data,a,n),s}this.columns=a,this.__set_col_property(this,this.col_data,a,n)}else{var i=Object.keys(e.mapper),o=this.index,l=[];if(o.forEach((function(t){i.includes(t)?l.push(e.mapper[t]):l.push(t)})),!e.inplace){var u=this.copy();return u.__set_index(l),u}this.__set_index(l)}}},{key:"sort_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.__sort_by(r,r,n),s=(0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__.Z)(a,2),i=s[0],o=s[1];if(!t){var l=this.copy();return l.__update_frame_in_place(i,null,null,o,null),l}this.__update_frame_in_place(i,null,null,o,null)}},{key:"sort_values",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"by"))throw Error("use col_name to specify column name");var t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.column(e.by).values,s=this.__sort_by(a,r,n),i=(0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__.Z)(s,2),o=i[0],l=i[1];if(!t){var u=this.copy();return u.__update_frame_in_place(o,null,null,l,null),u}this.__update_frame_in_place(o,null,null,l,null)}},{key:"__set_col_property",value:function(e,t,n,r){r.forEach((function(t){delete e[t]})),t.forEach((function(t,r){Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_8__.F(t,{columns:n[r],index:e.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"__update_frame_in_place",value:function(e,t,n,r,a){if(null!=e)this.data=e;else if(null!=n){var s=utils._get_row_and_col_values(n);this.data=s[0],this.columns=s[1],t=s[1]}null!=n?(this.col_data=Object.values(n),this.columns=Object.keys(n),t=Object.keys(n)):null!=e&&(this.col_data=utils.__get_col_values(e)),null!=t&&(this.columns=t),null!=r&&(this.index_arr=r),null!=a&&(this.col_types=a)}},{key:"__sort_by",value:function(e,t,n){for(var r=this.values,a=utils.__sort(e,n),s=utils.__get_duplicate(e),i=[],o=[],l=0;l{"use strict";n.d(t,{Z:()=>g});var r=n(7757),a=n.n(r),s=n(2137),i=n(4699),o=n(7329),l=n(6610),u=n(5991),c=n(8654),h=n(107),f=n(697),d=n(7737),p=new f.c,m=new d.z,g=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((0,l.Z)(this,e),this.kwargs=n,t instanceof c.Tensor&&(t=t.arraySync()),p.__is_1D_array(t))this.series=!0,this._read_array(t);else if(this.series=!1,p.__is_object(t[0]))this._read_object(t,1);else if(p.__is_object(t))this._read_object(t,2);else{if(!(Array.isArray(t[0])||p.__is_number(t[0])||p.__is_string(t[0])))throw new Error("File format not supported");this._read_array(t)}}var t,n;return(0,u.Z)(e,[{key:"_read_array",value:function(e){if(this.data=p.__replace_undefined_with_NaN(e,this.series),this.row_data_tensor=(0,c.tensor)(this.data),this.series?this.col_data=[this.values]:this.col_data=p.__get_col_values(this.data),this.col_data_tensor=(0,c.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=(0,o.Z)(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)"columns"in this.kwargs?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=(0,o.Z)(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}},{key:"_read_object",value:function(e,t){if(2==t){var n=p._get_row_and_col_values(e),r=(0,i.Z)(n,2),a=r[0],s=r[1];this.kwargs.columns=s,this._read_array(a)}else{var l=e.map((function(e){return Object.values(e)}));if(this.data=p.__replace_undefined_with_NaN(l,this.series),this.row_data_tensor=(0,c.tensor)(this.data),this.kwargs.columns=Object.keys(Object.values(e)[0]),this.series?this.col_data=[this.values]:this.col_data=p.__get_col_values(this.data),this.col_data_tensor=(0,c.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=(0,o.Z)(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)this.kwargs.columns?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has column length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=(0,o.Z)(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}}},{key:"_set_col_types",value:function(e,t){var n=["float32","int32","string","boolean"];if(t)this.series?this.col_types=p.__get_t(this.values):this.col_types=p.__get_t(this.col_data);else if(this.series)this.col_types=e;else{if(e.length!=this.columns.length)throw new Error("length Mixmatch: Length of specified dtypes is ".concat(e.length,", but length of columns is ").concat(this.columns.length));if(!Array.isArray(e))throw new Error("dtypes must be an Array of types");e.forEach((function(e,t){if(!n.includes(e))throw new Error("dtype error: dtype specified at index ".concat(t," is not supported"))})),this.col_types=e}}},{key:"__set_index",value:function(e){if(!Array.isArray(e))throw Error("Value Error: index must be an array");if(e.length>this.shape[0]||e.lengthr){var l,u,c,f=this.columns.slice(0,4),d=this.columns.slice(i-4);if(o=[""].concat(f).concat(["..."]).concat(d),this.values.length>n){var p=this.iloc({rows:["0:".concat(n)],columns:["0:4"]}),g=this.iloc({rows:["0:".concat(n)],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=p.values,c=g.values}else{var y=this.iloc({rows:["0:"],columns:["0:4"]}),b=this.iloc({rows:["0:"],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=y.values,c=b.values}l.map((function(e,t){var n=[e].concat(u[t]).concat(["..."]).concat(c[t]);a.push(n)}))}else{var v,w;if(o=[""].concat(this.columns),this.values.length>n){var x=this.loc({rows:["0:".concat(n)],columns:this.columns});v=x.index,w=x.values}else w=this.values,v=this.index;v.forEach((function(e,t){var n=[e].concat(w[t]);a.push(n)}))}s[0]=10;for(var _=1;_{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>GroupBy});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(7329),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(6610),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(5991),_frame__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(697),utils=new _utils__WEBPACK_IMPORTED_MODULE_0__.c,GroupBy=function(){function GroupBy(e,t,n,r){(0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__.Z)(this,GroupBy),this.key_col=t,this.col_dict=e,this.data=n,this.column_name=r,this.data_tensors={}}return(0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__.Z)(GroupBy,[{key:"group",value:function(){if(2==this.key_col.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()}));this.col(t);var r=this.arithemetic(n),a=this.to_DataFrame(this.key_col,this.group_col_name,r,n);return a}},{key:"to_DataFrame",value:function(e,t,n,r){if(2==e.length){var a=[];for(var s in n){var i=n[s];for(var o in i){var l=i[o],u=[];if(Array.isArray(l[0])){for(var c=0;c{"use strict";n.d(t,{j:()=>a});var r=new(n(697).c),a=function(e,t){var n=null,a=null,s=!1;if(Object.prototype.hasOwnProperty.call(t,"rows")){if(!Array.isArray(t.rows))throw new Error("rows parameter must be a Array");if(1==t.rows.length&&"string"==typeof t.rows[0])if(t.rows[0].includes(":")){var i=t.rows[0].split(":");if("loc"==t.type){var o,l;o=isNaN(Number(i[0]))?e.index.indexOf(i[0]):Number(i[0]),l=isNaN(Number(i[1]))?e.index.lastIndexOf(i[1])-1||e.values.length-1:Number(i[1])-1||e.values.length-1,n=r.__range(o,l)}else{var u=parseInt(i[0])||0,c=parseInt(i[1])-1||e.values.length-1;"number"==typeof u&&"number"==typeof c&&(n=r.__range(u,c))}}else{if("loc"!=t.type)throw new Error("Slice index must be separated by ':'");var h=[];e.index.map((function(e,n){t.rows[0]==e&&h.push(n)})),n=h}else if("loc"==t.type){var f=[];e.index.map((function(e,n){t.rows.includes(e)&&f.push(n)})),n=f}else n=t.rows}else t.type,n=r.__range(0,Number(e.shape[0])-1);if(Object.prototype.hasOwnProperty.call(t,"columns")){if(!Array.isArray(t.columns))throw new Error("columns must be a list");if(1==t.columns.length&&t.columns[0].includes(":")){var d,p,m=t.columns[0].split(":");"iloc"==t.type||""==m[0]?(d=parseInt(m[0])||0,p=parseInt(m[1])-1||e.values[0].length-1):(d=parseInt(e.columns.indexOf(m[0])),p=parseInt(e.columns.indexOf(m[1]))-1),"number"==typeof d&&"number"==typeof p&&(a=r.__range(d,p),s=!0)}else a=t.columns}else a="loc"==t.type?e.column_names:r.__range(0,Number(e.shape[1])-1);for(var g=e.values,y=[],b=0;bw)throw new Error("Specified row index ".concat(v," is bigger than maximum row index of ").concat(w));if(Array.isArray(g[0])){var x=g[v],_=[];for(var k in a){var E;if("loc"!=t.type||s){E=a[k];var C=e.columns.length-1;if(E>C)throw new Error("column index ".concat(E," is bigger than ").concat(C))}else if(-1==(E=e.columns.indexOf(a[k])))throw new Error("Column ".concat(a[k]," does not exist"));var S=x[E];_.push(S)}y.push(_)}else y.push(g[v])}var N=[];"iloc"==t.type||s?a.map((function(t){N.push(e.columns[t])})):N=a;var I=[];return n.forEach((function(t){I.push(e.index[t])})),[y,N,I]}},3938:(e,t,n)=>{"use strict";n.d(t,{F:()=>C});var r=n(4699),a=n(7329),s=n(7757),i=n.n(s),o=n(2137),l=n(6610),u=n(5991),c=n(5255),h=n(6616),f=n(7608),d=n(8654),p=n(3346),m=n(697),g=n(1745),y=n(2847),b=n(107),v=n(7737),w=n(9187),x=n(4564),_=n(9365);var k=new m.c,E=new v.z,C=function(e){(0,c.Z)(y,e);var t,n,s,m=(n=y,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=(0,f.Z)(n);if(s){var r=(0,f.Z)(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return(0,h.Z)(this,e)});function y(e,t){var n;return(0,l.Z)(this,y),Array.isArray(e[0])||k.__is_object(e[0])?(e=k.__convert_2D_to_1D(e),n=m.call(this,e,t)):n=m.call(this,e,t),(0,h.Z)(n)}return(0,u.Z)(y,[{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.shape[0]||e<1)return new y(this.values,{columns:this.column_names});var t=this.values.slice(0,e);return new y(t,{columns:this.column_names})}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return new y(this.values,{columns:this.column_names});var t=this.values.slice(this.shape[0]-e),n=this.index.slice(this.shape[0]-e),r=new y(t,{columns:this.column_names,index:n});return r}},{key:"sample",value:(t=(0,o.Z)(i().mark((function e(){var t,n,r,a,s=arguments;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:5,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,d.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc(r),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"add",value:function(e){return k.__is_number(e)?new y(this.row_data_tensor.add(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new y(this.tensor.add(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"sub",value:function(e){return k.__is_number(e)?new y(this.tensor.sub(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new y(this.tensor.sub(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mul",value:function(e){return k.__is_number(e)?new y(this.tensor.mul(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new y(this.tensor.mul(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"div",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(k.__is_number(e)){var n=this.tensor.div(e);return new y(n.arraySync(),{columns:this.column_names,dtypes:[n.dtype]})}if(this.__check_series_op_compactibility){var r;r=t?"float32":"int32";var a=this.tensor.asType(r),s=e.tensor.asType(r),i=a.div(s);return new y(i.arraySync(),{columns:this.column_names,dtypes:[i.dtype]})}}},{key:"pow",value:function(e){return k.__is_number(e)?new y(this.tensor.pow(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new y(this.tensor.pow(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mod",value:function(e){return k.__is_number(e)?new y(this.tensor.mod(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new y(this.tensor.mod(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mean",value:function(){k._throw_str_dtype_error(this,"mean");var e=k._remove_nans(this.values);return d.tensor(e).mean().arraySync()}},{key:"median",value:function(){k._throw_str_dtype_error(this,"median");var e=k._remove_nans(this.values);return(0,p.C2o)(e)}},{key:"mode",value:function(){k._throw_str_dtype_error(this,"median");var e=k._remove_nans(this.values);return(0,p.xJM)(e)}},{key:"min",value:function(){return k._throw_str_dtype_error(this,"min"),this.row_data_tensor.min().arraySync()}},{key:"max",value:function(){return k._throw_str_dtype_error(this,"max"),this.row_data_tensor.max().arraySync()}},{key:"sum",value:function(){if(k._throw_str_dtype_error(this,"sum"),"boolean"==this.dtypes[0]){var e=this.row_data_tensor.sum().arraySync();return Number(e)}var t=this.row_data_tensor.sum().arraySync();return Number(t.toFixed(5))}},{key:"count",value:function(){return k.__count_nan(this.values,!0,!0)}},{key:"maximum",value:function(e){if(k.__is_number(e)){var t=this.row_data_tensor.maximum(e);return new y(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.row_data_tensor,r=e.tensor;return new y(n.maximum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"minimum",value:function(e){if(k.__is_number(e)){var t=this.row_data_tensor.minimum(e);return new y(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.tensor,r=e.tensor;return new y(n.minimum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"round",value:function(e){return k.__is_undefined(e)?new y(d.round(this.row_data_tensor).arraySync(),{columns:this.column_names,index:this.index}):new y(k.__round(this.values,e,!0),{columns:this.column_names,index:this.index})}},{key:"std",value:function(){k._throw_str_dtype_error(this,"std");var e=k._remove_nans(this.values);return(0,p.qoR)(e)}},{key:"var",value:function(){k._throw_str_dtype_error(this,"std");var e=k._remove_nans(this.values);return(0,p.CAK)(e)}},{key:"isna",value:function(){return new y(this.__isna(),{index:this.index,columns:this.column_names,dtypes:["boolean"]})}},{key:"fillna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["value","inplace"];if(k._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("value"in e))throw Error("Value Error: Must specify value to replace with");var n=[];if(this.values.forEach((function(t){isNaN(t)&&"string"!=typeof t?n.push(e.value):n.push(t)})),!e.inplace){var r=new y(n,{columns:this.column_names,index:this.index,dtypes:this.dtypes});return r}this.data=n}},{key:"sort_values",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["inplace","ascending"];k._throw_wrong_params_error(t,n),"ascending"in t||(t.ascending=!0),"inplace"in t||(t.inplace=!1);var r=[],s=(0,a.Z)(this.values),i=k.__range(0,this.index.length-1),o=k._sort_arr_with_index(i,s,this.dtypes[0]);if(o.forEach((function(t){r.push(e.values[t])})),t.ascending&&(r=r.reverse(),o=o.reverse()),!t.inplace){var l=new y(r,{columns:this.column_names,index:o});return l}this.data=r,this.__set_index(o)}},{key:"copy",value:function(){return new y((0,a.Z)(this.values),{columns:(0,a.Z)(this.column_names),index:(0,a.Z)(this.index),dtypes:(0,a.Z)(this.dtypes[0])})}},{key:"describe",value:function(){return"string"==this.dtypes[0]?null:new y([this.count(),this.mean(),this.std(),this.min(),this.median(),this.max(),this.var()],{columns:this.columns,index:["count","mean","std","min","median","max","variance"]})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];if(k._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!e.inplace){var n=this.copy();return n.__reset_index(),n}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["index","inplace"];if(k._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("index"in e))throw Error("Index ValueError: You must specify an array of index");if(e.index.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.index.length," must match lenght of existing index ").concat(this.index.length));if(!e.inplace){var n=this.copy();return n.__set_index(e.index),n}this.index_arr=e.index}},{key:"__check_series_op_compactibility",value:function(e){if(k.__is_undefined(e.series))throw Error("param [other] must be a Series or a single value that can be broadcasted");if(e.values.length!=this.values.length)throw Error("Shape Error: Series shape do not match");if("float"!=this.dtypes[0]||"int"!=this.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(this.dtypes[0]," with type ").concat(e.dtypes[0]));if("float"!=e.dtypes[0]||"int"!=e.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(e.dtypes[0]," with type ").concat(this.dtypes[0]));return!0}},{key:"map",value:function(e){var t=k.__is_function(e);return new y(this.data.map((function(n){if(t)return e(n);if(k.__is_object(e))return n in e?e[n]:NaN;throw new Error("callable must either be a function or an object")})),{columns:this.column_names,index:this.index})}},{key:"apply",value:function(e){if(!k.__is_function(e))throw new Error("the arguement most be a function");return new y(this.data.map((function(t){return e(t)})),{columns:this.column_names,index:this.index})}},{key:"unique",value:function(){var e=new Set(this.values);return new y(Array.from(e))}},{key:"nunique",value:function(){return this.unique().values.length}},{key:"value_counts",value:function(){for(var e=this.values,t={},n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=["replace","with","inplace"];if(k._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("replace"in e))throw Error("Params Error: Must specify param 'replace'");if(!("with"in e))throw Error("Params Error: Must specify param 'with'");var n=[],r=this.values;if(r.forEach((function(t){t==e.replace?n.push(e.with):n.push(t)})),!e.inplace){var a=new y(n,{index:this.index,columns:this.columns,dtypes:this.dtypes});return a}this.data=n}},{key:"dropna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];k._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1;var n=this.values,r=this.index,a=[],s=[],i=this.isna().values;if(i.forEach((function(e,t){e||(a.push(n[t]),s.push(r[t]))})),!e.inplace){var o=new y(a,{columns:this.column_names,index:s,dtypes:this.dtypes});return o}this.index_arr=s,this.data=a}},{key:"argsort",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.sort_values({ascending:e}).index,n=new y(t);return n}},{key:"argmax",value:function(){return this.row_data_tensor.argMax().arraySync()}},{key:"argmin",value:function(){return this.row_data_tensor.argMin().arraySync()}},{key:"drop_duplicates",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=["inplace","keep"];k._throw_wrong_params_error(n,r),n.inplace=n.inplace||!1,n.keep=n.keep||"first","last"==n.keep?(e=this.values.reverse(),t=this.index.reverse()):(e=this.values,t=this.index);var a=[],s=[];if(e.forEach((function(e,n){s.includes(e)||(a.push(t[n]),s.push(e))})),"last"==n.keep&&(s=s.reverse(),a=a.reverse()),!n.inplace){var i=new y(s,{index:a,columns:this.column_names,dtypes:this.dtypes});return i}this.data=s,this.index_arr=a}},{key:"toString",value:function(){var e,t,n=E.get_max_row,r=[],a={},s=[""].concat(this.columns);this.values.length>n?(t=this.values.slice(0,n),e=this.index.slice(0,n)):(t=this.values,e=this.index),e.forEach((function(e,n){var a=[e].concat(t[n]);r.push(a)})),a[0]=10,a[1]={width:20,truncate:20};var i=[s].concat(r);return(0,b.Kz)(i,{columns:a})}},{key:"__bool_ops",value:function(e,t){var n,r=this.values;if("number"==typeof e)n=(0,a.Z)(r).fill(e);else{if(!(e instanceof y))throw new Error("Value Error: 'other' must be an instance of Series");n=e.values}if(r.length!==n.length)throw new Error("Length Error: Both series must be of the same length");for(var s=[],i=0;il,s.push(u);break;case"le":u=o<=l,s.push(u);break;case"ge":u=o>=l,s.push(u);break;case"ne":u=o!=l,s.push(u);break;case"eq":u=o===l,s.push(u)}}return new y(s)}},{key:"__cum_ops",value:function(e){for(var t=this.values,n=t[0],r=[n],a=1;an?(r.push(s),n=s):r.push(n);break;case"min":s1&&void 0!==arguments[1]&&arguments[1];if(!t){var n=this.copy();if(Array.isArray(e))e.forEach((function(e,t){n.data.push(e),n.index_arr.push(t)}));else if(e instanceof y){var r=e.values,a=e.index;r.forEach((function(e,t){n.data.push(e),n.index_arr.push(a[t])}))}else n.data.push(e),n.index_arr.push(0);return n}var s=this;if(Array.isArray(e))e.forEach((function(e,t){s.data.push(e),s.index_arr.push(t)}));else if(e instanceof y){var i=e.values,o=e.index;i.forEach((function(e,t){s.data.push(e),s.index_arr.push(o[t])}))}else s.data.push(e),s.index_arr.push(0)}},{key:"tensor",get:function(){return d.tensor(this.values).asType(this.dtypes[0])}},{key:"dtype",get:function(){return this.dtypes[0]}},{key:"str",get:function(){var e=this.values;if("string"!=this.dtypes[0]){var t=[];e.forEach((function(e){t.push(String(e))}));var n=new y(t,{columns:this.column_names,index:this.index});return new g.W(n)}return new g.W(this)}},{key:"dt",get:function(){var e=new w.p({data:this});return e.preprocessed(),e}}]),y}(y.Z)},1745:(e,t,n)=>{"use strict";n.d(t,{W:()=>i});var r=n(6610),a=n(5991),s=n(3938),i=function(){function e(t){(0,r.Z)(this,e),this.series=t,this.array=t.values}return(0,a.Z)(e,[{key:"toLowerCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toLowerCase())})),this.__create_new_sf_from(e,this.series)}},{key:"toUpperCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toUpperCase())})),this.__create_new_sf_from(e,this.series)}},{key:"capitalize",value:function(){var e=[];return this.array.map((function(t){var n=t.slice(0,1),r=t.slice(1),a="".concat(n.toUpperCase()).concat(r.toLowerCase());e.push(a)})),this.__create_new_sf_from(e,this.series)}},{key:"charAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=[];this.array.map((function(n){t.push(n.charAt(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"concat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(Array.isArray(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.startsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"endsWith",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.endsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"includes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.includes(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"indexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.indexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"lastIndexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.lastIndexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"replace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=[];this.array.map((function(r){n.push(r.replace(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"repeat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];this.array.map((function(n){t.push(n.repeat(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.search(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"slice",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.slice(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"split",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ",t=[];this.array.map((function(n){t.push(n.split(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"substr",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substr(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"substring",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substring(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"trim",value:function(){var e=[];return this.array.map((function(t){e.push(t.trim())})),this.__create_new_sf_from(e,this.series)}},{key:"join",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[];this.array.map((function(r){var a=e,s="".concat(r).concat(t).concat(a);n.push(s)}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"len",value:function(){var e=[];return this.array.map((function(t){e.push(t.length)})),this.__create_new_sf_from(e,this.series)}},{key:"__create_new_sf_from",value:function(e,t){return new s.F(e,{columns:t.column_names,index:t.index})}}]),e}()},9187:(e,t,n)=>{"use strict";n.d(t,{p:()=>l,J:()=>u});var r=n(6610),a=n(5991),s=n(697),i=n(3938),o=new s.c,l=function(){function e(t){(0,r.Z)(this,e),o.__in_object(t,"data","specify the data"),t.data instanceof i.F?this.data=t.data.values:this.data=t.data,this.format=t.format||null,this.keys={Y:4,m:2,H:2,M:2,S:2,b:3,d:2,"-":1},this.__in_format=["%Y-m-d%","%m-d-Y%","%m-d-Y H%M%S%"],this.__monthName=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.__weekName=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}return(0,a.Z)(e,[{key:"preprocessed",value:function(){var e=null;this.format&&(e=this.generate_format()),this.date_list=[];for(var t=0;t4?n+=":"+e.slice(r,r+s):4==a?n+=" "+e.slice(r,r+s):a>0&&a<=2&&(n+="-"+e.slice(r,r+s)),r+=s}return n}},{key:"generate_format",value:function(){var e=this.format.split(""),t=this;return e.filter((function(e){return o.__key_in_object(t.keys,e)})).map((function(e){return t.keys[e]}))}},{key:"is_timestamp",value:function(e){var t=parseInt(e),n=String(t);return!(isNaN(t)||n.length{"use strict";n.d(t,{c:()=>u});var r=n(4699),a=n(484),s=n(6610),i=n(5991),o=n(8654),l=new(n(7737).z),u=function(){function e(){(0,s.Z)(this,e)}return(0,i.Z)(e,[{key:"remove",value:function(e,t){return e.filter((function(e,n){return n!=t}))}},{key:"__remove_arr",value:function(e,t){return e.filter((function(e,n){return!t.includes(n)}))}},{key:"__is_string",value:function(e){return"string"==typeof e||e instanceof String}},{key:"__is_number",value:function(e){return"number"==typeof e&&isFinite(e)}},{key:"__is_object",value:function(e){return e&&"object"===(0,a.Z)(e)&&e.constructor===Object}},{key:"__is_null",value:function(e){return null===e}},{key:"__is_undefined",value:function(e){return void 0===e}},{key:"__sample_from_iter",value:function(e,t,n){var r=e.length;if(t<0||t>r)throw new RangeError("Sample larger than population or is negative");if(n||r<=(t<=5?21:21+Math.pow(4,Math.ceil(Math.log(3*t,4))))){n||(e=Array.prototype.slice.call(e));for(var a=0;a1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;if(n){var r=0,a=0;return e.forEach((function(e){Number.isNaN(e)?r+=1:a+=1})),t?a:r}var s=[];return e.forEach((function(e){var n=0,r=0;e.forEach((function(e){Number.isNaN(e)?n+=1:r+=1})),t?s.push(r):s.push(n)})),s}},{key:"__median",value:function(e,t){if(t){var n=e.slice().sort((function(e,t){return e-t})),r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}var a=[];return e.map((function(e){var t=e.slice().sort((function(e,t){return e-t})),n=Math.floor(t.length/2);t.length%2==0?a.push((t[n-1]+t[n])/2):a.push(t[n])})),a}},{key:"__mode",value:function(e){var t,n=[],r=[],a=0;for(t in e.forEach((function(e){r[e]=(r[e]||0)+1,r[e]>a&&(a=r[e])})),r)this.__key_in_object(r,t)&&r[t]===a&&n.push(Number(t));return n}},{key:"__round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2?arguments[2]:void 0;if(t<0&&(t=1),n){var r=[];return e.map((function(e){r.push(Number(e.toFixed(t)))})),r}var a=[];return e.map((function(e){var n=[];e.map((function(e){n.push(Number(e.toFixed(t)))})),a.push(n)})),a}},{key:"__is_function",value:function(e){return"function"==typeof e}},{key:"__randgen",value:function(e,t,n){var r=[];function a(e,t){return Math.floor(Math.random()*(t-e)+e)}function s(e,r){if(!r.includes(e))return e;s(e=a(t,n),r)}for(var i=0;i1&&void 0!==arguments[1])||arguments[1],n=e.slice();return n.sort((function(e,n){return t?"string"==typeof e&&"string"==typeof n?e.charCodeAt()-n.charCodeAt():e-n:"string"==typeof e&&"string"==typeof n?n.charCodeAt()-e.charCodeAt():n-e}))}},{key:"__is_browser_env",value:function(){return new Function("try {return this===window;}catch(e){ return false;}")()}},{key:"__is_node_env",value:function(){return new Function("try {return this===global;}catch(e){return false;}")()}},{key:"_throw_str_dtype_error",value:function(e,t){if("string"==e.dtypes[0])throw Error("dtype error: String data type does not support ".concat(t," operation"))}},{key:"_remove_nans",value:function(e){return e.filter((function(e){return!isNaN(e)&&"string"!=typeof e}))}},{key:"__get_duplicate",value:function(e){var t={},n={};for(var r in e.forEach((function(e,n){e in t?(t[e].count+=1,t[e].index.push(n)):(t[e]={},t[e].count=1,t[e].index=[n])})),t)t[r].count>=2&&(n[r]={},n[r].count=t[r].count,n[r].index=t[r].index);return n}},{key:"_sort_arr_with_index",value:function(e,t,n){var a=e.map((function(e,n){return[t[n],e]}));return"string"==n?a.sort():a.sort((function(e,t){var n=(0,r.Z)(e,1)[0];return(0,r.Z)(t,1)[0]-n})),a.map((function(e){return(0,r.Z)(e,2)[1]}))}}]),e}()},2476:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Configs:()=>M.z,DataFrame:()=>s.N,LabelEncoder:()=>C,MinMaxScaler:()=>I,NDframe:()=>r.Z,OneHotEncoder:()=>S,Series:()=>a.F,StandardScaler:()=>A,Str:()=>$.W,Utils:()=>v.c,_version:()=>P,concat:()=>k.z,date_range:()=>T,get_dummies:()=>B,merge:()=>_,read_csv:()=>d,read_excel:()=>m,read_json:()=>p,tf:()=>c,to_datetime:()=>i.J});var r=n(2847),a=n(3938),s=n(3676),i=n(9187),o=n(7757),l=n.n(o),u=n(2137),c=n(8654),h=n(7869),f=n.n(h),d=function(){var e=(0,u.Z)(l().mark((function e(t){var n,r,a,i,o,u=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.length>1&&void 0!==u[1]?u[1]:{},r=n.start,a=n.end,t.startsWith("https")||t.startsWith("http")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,c.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return o=new s.N(i),e.abrupt("return",o);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),p=function(){var e=(0,u.Z)(l().mark((function e(t){var n,r,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"Get"});case 2:return n=e.sent,e.next=5,n.json();case 5:return r=e.sent,a=new s.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(){var e=(0,u.Z)(l().mark((function e(t){var n,r,a,i,o,u,c,h,d,p,m,g,y,b,v,w=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=w.length>1&&void 0!==w[1]?w[1]:{},r=n.sheet,a=n.header_index,i=n.data_index,a||(a=1),i||(i=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return u=e.sent,e.next=10,u.arrayBuffer();case 10:for(u=e.sent,u=new Uint8Array(u),o=f().read(u,{type:"array"}),c=o.Sheets[r||o.SheetNames[0]],h=f().utils.decode_range(c["!ref"]),d=[],p=[],m=a-1;m<=h.e.r;++m){for(g=[],y=h.s.c;y<=h.e.c;++y)b=void 0,m==a-1&&(b=f().utils.encode_cell({c:y,r:a-1}),c[b]&&d.push(c[b].v)),m>=i-1&&(b=f().utils.encode_cell({c:y,r:m}),c[b]&&g.push(c[b].v));m>=i-1&&p.push(g)}return v=new s.N(p,{columns:d}),e.abrupt("return",v);case 21:throw e.prev=21,e.t0=e.catch(4),new Error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t){return e.apply(this,arguments)}}(),g=n(7329),y=n(6610),b=n(5991),v=n(697),w=new v.c,x=function(){function e(t){var n=this;if((0,y.Z)(this,e),w.__in_object(t,"left"),w.__in_object(t,"right"),w.__in_object(t,"on"),w.__key_in_object(t,"how")?this.how=t.how:(this.how="inner",t.how="inner"),this.left=null,this.right=null,this.on=null,!(t.left instanceof s.N&&t.right instanceof s.N))throw new Error("The left and right key value must be a dataFrame");if(this.left=t.left,this.right=t.right,!Array.isArray(t.on))throw new Error("key 'on' must be a list");if(this.on=t.on,!["outer","inner","left","right"].includes(t.how))throw new Error("".concat(t.how," specify in keyword how is not recognise"));this.how=t.how,this.left_col_index=[],this.right_col_index=[];for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null,s=null,i=null,o=null,l=null;if(e&&t){s=new Date(e),o=this.freq_type(s,this.freq),i=new Date(t),l=this.freq_type(i,this.freq);var u=s.getFullYear(),c=i.getFullYear();u(l=a?n*a-1:n-1)&&(l+=o);var p=D.__range(o,l);a&&(p=this.offset_count(p,a));var m=p.map((function(e){return r.set_dateProps(s,r.freq,e)})),g=this.toLocalString(m);return g}if(t&&!e){i=new Date(t),o=(l=this.freq_type(i,this.freq))-n+1;var y=D.__range(o,l);a&&(y=this.offset_count(y,a));var b=y.map((function(e){return r.set_dateProps(i,r.freq,e)})),v=this.toLocalString(b);return v}}},{key:"freq_type",value:function(e,t){var n=null;switch(t){case"M":n=e.getMonth();break;case"Y":n=e.getFullYear();break;case"s":n=e.getSeconds();break;case"D":n=e.getDate();break;case"H":n=e.getHours();break;case"m":n=e.getMinutes()}return n}},{key:"offset_count",value:function(e,t){for(var n=[],r=0;r11?e%12==0?[n=e/12,e-(t=e)]:[n,e-t]:[n,e]}))}},{key:"day_end",value:function(e,t){for(var n=this.month_end(e,t),r=D.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};R.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,i=null;if(Array.isArray(e.data)?i=e.data:e.data instanceof s.N?(i=e.data,a=!0):i=e.data.values,a){var o=[];if(r?r.forEach((function(e){var t=r.indexOf(e);o.push(t)})):(r=[],i.col_types.map((function(e,t){if("string"==e){var n=i.columns[t];r.push(n),o.push(t)}}))),t){if(!Array.isArray(t))throw new Error("prefix for dataframe must be an array");if(t.length!=r.length)throw new Error("prefix must be the same length with the number of onehot encoding column")}else t=r;var l=i.values,u=i.columns,c=i.col_data,h=[];o.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=O(e,t[r],n),s=(0,F.Z)(a,2),i=s[0],o=s[1];f.push.apply(f,(0,g.Z)(o)),0==d.length?d.push.apply(d,(0,g.Z)(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,(0,g.Z)(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=R.__remove_arr(n,o);return r.push.apply(r,(0,g.Z)(d[t])),r})),m=R.__remove_arr(u,o);return m.push.apply(m,f),new s.N(p,{columns:m})}var y=O(i,t,n),b=(0,F.Z)(y,2),v=b[0],w=b[1];return new s.N(v,{columns:w})},M=n(7737),$=n(1745),P="0.2.4"},4564:(e,t,n)=>{"use strict";n.d(t,{X:()=>u});var r=n(6610),a=n(5991),s=n(697),i=n(3938),o=new s.c;try{var l=Plotly.version;console.info("Using Plotly version ".concat(l))}catch(e){console.info("Plotly CDN not found. If you need to make Plots, then add the Plotly CDN to your script")}var u=function(){function e(t,n){(0,r.Z)(this,e),this.div=n,this.ndframe=t}return(0,a.Z)(e,[{key:"line",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={},l=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=l,s.type="line",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")&&o.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var u=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=u,h.y=c;var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(o.__key_in_object(r,"x")||o.__key_in_object(r,"y")){var p=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var s={};a.forEach((function(e){s[e]=t[e]})),o.__key_in_object(r,"x")?(s.x=e.ndframe[r.x].values,s.y=e.ndframe[n].values,s.name=n):(s.y=e.ndframe[r.y].values,s.x=e.ndframe[n].values,s.name=n),p.push(s)})),Plotly.newPlot(this.div,p,r.layout,r)}else{var m=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.x=e.ndframe.index,r.y=e.ndframe[n].values,r.name=n,m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"bar",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={},l=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=l,s.type="bar",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")&&o.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var u=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=u,h.y=c,h.type="bar";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(o.__key_in_object(r,"x")||o.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),o.__key_in_object(r,"x")?p.y=this.ndframe[r.x].values:p.y=this.ndframe[r.y].values,p.type="bar",Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe.index,n.y=e.ndframe[t].values,n.name=t,n.type="bar",m.push(n)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"scatter",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.y=this.ndframe.index,s.type="scatter",s.mode="markers",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")&&o.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var l=this.ndframe[r.x].values,u=this.ndframe[r.y].values,c={};c.x=l,c.y=u,c.type="scatter",c.mode="markers";var h={},f={};h.title=r.x,f.title=r.y,r.layout.xaxis=h,r.layout.yaxis=f,Plotly.newPlot(this.div,[c],r.layout,r)}else if(o.__key_in_object(r,"x")||o.__key_in_object(r,"y")){var d={};a.forEach((function(e){"layout"==!e&&(d[e]=t[e])})),o.__key_in_object(r,"x")?(d.y=this.ndframe.index,d.x=this.ndframe[r.x].values):(d.x=this.ndframe.index,d.y=this.ndframe[r.y].values),d.type="scatter",d.mode="markers",Plotly.newPlot(this.div,[d],r.layout,r)}else{var p=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.y=e.ndframe.index,n.x=e.ndframe[t].values,n.name=t,n.type="scatter",n.mode="markers",p.push(n)})),Plotly.newPlot(this.div,p,r.layout,r)}}},{key:"hist",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.type="histogram",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")){var l={};a.forEach((function(e){"layout"==!e&&(l[e]=t[e])})),l.x=this.ndframe[r.y].values,l.type="histogram",Plotly.newPlot(this.div,[l],r.layout,r)}else if(o.__key_in_object(r,"y")){var u={};a.forEach((function(e){"layout"==!e&&(u[e]=t[e])})),u.y=this.ndframe[r.y].values,u.type="histogram",Plotly.newPlot(this.div,[u],r.layout,r)}else{var c=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe[t].values,n.name=t,n.type="histogram",c.push(n)})),Plotly.newPlot(this.div,c,r.layout,r)}}},{key:"pie",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0];if(this.ndframe instanceof i.F){var a=[{values:this.ndframe.values,labels:this.ndframe.index,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,a,r.layout,r)}else if(o.__key_in_object(r,"values")&&o.__key_in_object(r,"labels")){if(!this.ndframe.column_names.includes(r.labels))throw Error("Column Error: ".concat(r.labels," not found in columns. labels name must be one of [ ").concat(this.ndframe.column_names,"]"));if(!this.ndframe.column_names.includes(r.values))throw Error("Column Error: ".concat(r.values," not found in columns. value name must be one of [ ").concat(this.ndframe.column_names,"]"));var s=[{values:this.ndframe[r.values].values,labels:this.ndframe[r.labels].values,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,s,r.layout,r)}else{var l;if(l=o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names,o.__key_in_object(r,"row_pos")){if(r.row_pos.length!=l.length-1)throw Error("Lenght of row_pos array must be equal to number of columns. Got ".concat(r.row_pos.length,", expected ").concat(l.length-1))}else{for(var u=[],c=0;c0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={},l=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=l,s.type="box",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")&&o.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var u=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=u,h.y=c,h.type="box";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(o.__key_in_object(r,"x")||o.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),o.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="box"):(p.x=this.ndframe.index,p.y=r.y,p.type="box"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="box",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"violin",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof i.F){var s={},l=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=l,s.type="violin",Plotly.newPlot(this.div,[s],r.layout,r)}else if(o.__key_in_object(r,"x")&&o.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var u=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=u,h.y=c,h.type="violin";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(o.__key_in_object(r,"x")||o.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),o.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="violin"):(p.x=this.ndframe.index,p.y=r.y,p.type="violin"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(o.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="violin",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"table",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this.__get_plot_params(n),a=r[0],s={},i={},l=[];o.__key_in_object(a,"columns")?(a.columns.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"));var n=t.ndframe.column_names.indexOf(e);l.push(t.ndframe.col_data[n])})),e=a.columns):(e=this.ndframe.column_names,l=this.ndframe.col_data),s.values=e,i.values=l,a.header_style&&Object.keys(a.header_style).forEach((function(e){s[e]=a.header_style[e]})),a.cell_style&&Object.keys(a.cell_style).forEach((function(e){i[e]=a.cell_style[e]}));var u=[{type:"table",header:s,cells:i}];Plotly.newPlot(this.div,u,a.layout,a)}},{key:"__get_plot_params",value:function(e){var t=Object.keys(e),n={};return t.forEach((function(t){n[t]=e[t]})),o.__key_in_object(e,"layout")||(n.layout={}),[n,t]}},{key:"____check_if_cols_exist",value:function(e){var t=this;return e.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"))})),e}}]),e}()},1977:function(e,t){var n;!function(r){"use strict";var a=function(e){return.5*(Math.exp(e)+Math.exp(-e))},s=function(e){return.5*(Math.exp(e)-Math.exp(-e))},i=function(){throw SyntaxError("Invalid Param")};function o(e,t){var n=Math.abs(e),r=Math.abs(t);return 0===e?Math.log(r):0===t?Math.log(n):n<3e3&&r<3e3?.5*Math.log(e*e+t*t):Math.log(e/Math.cos(Math.atan2(t,e)))}function l(e,t){if(!(this instanceof l))return new l(e,t);var n=function(e,t){var n={re:0,im:0};if(null==e)n.re=n.im=0;else if(void 0!==t)n.re=e,n.im=t;else switch(typeof e){case"object":if("im"in e&&"re"in e)n.re=e.re,n.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return l.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return l.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else 2===e.length?(n.re=e[0],n.im=e[1]):i();break;case"string":n.im=n.re=0;var r=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),a=1,s=0;null===r&&i();for(var o=0;o0&&i();break;case"number":n.im=0,n.re=e;break;default:i()}return isNaN(n.re)||isNaN(n.im),n}(e,t);this.re=n.re,this.im=n.im}l.prototype={re:0,im:0,sign:function(){var e=this.abs();return new l(this.re/e,this.im/e)},add:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re+n.re,this.im+n.im)},sub:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re-n.re,this.im-n.im)},mul:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:0===n.im&&0===this.im?new l(this.re*n.re,0):new l(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){var n=new l(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return l.NAN;if(this.isInfinite()||n.isZero())return l.INFINITY;if(this.isZero()||n.isInfinite())return l.ZERO;e=this.re,t=this.im;var r,a,s=n.re,i=n.im;return 0===i?new l(e/s,t/s):Math.abs(s)=0)return new l(Math.pow(e,n.re),0);if(0===e)switch((n.re%4+4)%4){case 0:return new l(Math.pow(t,n.re),0);case 1:return new l(0,Math.pow(t,n.re));case 2:return new l(-Math.pow(t,n.re),0);case 3:return new l(0,-Math.pow(t,n.re))}}if(0===e&&0===t&&n.re>0&&n.im>=0)return l.ZERO;var r=Math.atan2(t,e),a=o(e,t);return e=Math.exp(n.re*a-n.im*r),t=n.im*a+n.re*r,new l(e*Math.cos(t),e*Math.sin(t))},sqrt:function(){var e,t,n=this.re,r=this.im,a=this.abs();if(n>=0){if(0===r)return new l(Math.sqrt(n),0);e=.5*Math.sqrt(2*(a+n))}else e=Math.abs(r)/Math.sqrt(2*(a-n));return t=n<=0?.5*Math.sqrt(2*(a-n)):Math.abs(r)/Math.sqrt(2*(a+n)),new l(e,r<0?-t:t)},exp:function(){var e=Math.exp(this.re);return this.im,new l(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,t=this.im;return new l(Math.expm1(e)*Math.cos(t)+function(e){var t=Math.PI/4;if(e<-t||e>t)return Math.cos(e)-1;var n=e*e;return n*(n*(1/24+n*(-1/720+n*(1/40320+n*(-1/3628800+n*(1/4790014600+n*(-1/87178291200+n*(1/20922789888e3)))))))-.5)}(t),Math.exp(e)*Math.sin(t))},log:function(){var e=this.re,t=this.im;return new l(o(e,t),Math.atan2(t,e))},abs:function(){return e=this.re,t=this.im,n=Math.abs(e),r=Math.abs(t),n<3e3&&r<3e3?Math.sqrt(n*n+r*r):(n1&&0===t,r=1-e,a=1+e,s=r*r+t*t,i=0!==s?new l((a*r-t*t)/s,(t*r+a*t)/s):new l(-1!==e?e/0:0,0!==t?t/0:0),u=i.re;return i.re=o(i.re,i.im)/2,i.im=Math.atan2(i.im,u)/2,n&&(i.im=-i.im),i},acoth:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new l(0,Math.PI/2);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).atanh():new l(0!==e?e/0:0,0!==t?-t/0:0).atanh()},acsch:function(){var e=this.re,t=this.im;if(0===t)return new l(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).asinh():new l(0!==e?e/0:0,0!==t?-t/0:0).asinh()},asech:function(){var e=this.re,t=this.im;if(this.isZero())return l.INFINITY;var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).acosh():new l(0!==e?e/0:0,0!==t?-t/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new l(e/n,-t/n)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new l(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new l(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new l(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){var n=new l(e,t);return Math.abs(n.re-this.re)<=l.EPSILON&&Math.abs(n.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isZero()?"0":this.isInfinite()?"Infinity":(0!==e&&(n+=e),0!==t&&(0!==e?n+=t<0?" - ":" + ":t<0&&(n+="-"),1!==(t=Math.abs(t))&&(n+=t),n+="i"),n||"0")},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return!(0!==this.re&&-0!==this.re||0!==this.im&&-0!==this.im)},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-16,void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},3776:function(e,t,n){var r;!function(a){"use strict";var s,i,o,l=9e15,u=1e9,c="0123456789abcdef",h="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",f="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",d={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-l,maxE:l,crypto:!1},p=!0,m="[DecimalError] ",g=m+"Invalid argument: ",y=m+"Precision limit exceeded",b=m+"crypto unavailable",v=Math.floor,w=Math.pow,x=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,_=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,k=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,C=1e7,S=h.length-1,N=f.length-1,I={name:"[object Decimal]"};function A(e){var t,n,r,a=e.length-1,s="",i=e[0];if(a>0){for(s+=i,t=1;tn)throw Error(g+e)}function T(e,t,n,r){var a,s,i,o;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=7,a=0):(a=Math.ceil((t+1)/7),t%=7),s=w(10,7-t),o=e[a]%s|0,null==r?t<3?(0==t?o=o/100|0:1==t&&(o=o/10|0),i=n<4&&99999==o||n>3&&49999==o||5e4==o||0==o):i=(n<4&&o+1==s||n>3&&o+1==s/2)&&(e[a+1]/s/100|0)==w(10,t-2)-1||(o==s/2||0==o)&&0==(e[a+1]/s/100|0):t<4?(0==t?o=o/1e3|0:1==t?o=o/100|0:2==t&&(o=o/10|0),i=(r||n<4)&&9999==o||!r&&n>3&&4999==o):i=((r||n<4)&&o+1==s||!r&&n>3&&o+1==s/2)&&(e[a+1]/s/1e3|0)==w(10,t-3)-1,i}function F(e,t,n){for(var r,a,s=[0],i=0,o=e.length;in-1&&(void 0===s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}I.absoluteValue=I.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},I.ceil=function(){return O(new this.constructor(this),this.e+1,2)},I.comparedTo=I.cmp=function(e){var t,n,r,a,s=this,i=s.d,o=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!i||!o)return l&&u?l!==u?l:i===o?0:!i^l<0?1:-1:NaN;if(!i[0]||!o[0])return i[0]?l:o[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=0,n=(r=i.length)<(a=o.length)?r:a;to[t]^l<0?1:-1;return r===a?0:r>a^l<0?1:-1},I.cosine=I.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r,a=t.d.length;a<32?r=(1/Z(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=K(e,1,t.times(r),new e(1));for(var s=n;s--;){var i=t.times(t);t=i.times(i).minus(i).times(8).plus(1)}return e.precision-=n,t}(r,Y(r,n)),r.precision=e,r.rounding=t,O(2==o||3==o?n.neg():n,e,t,!0)):new r(1):new r(NaN)},I.cubeRoot=I.cbrt=function(){var e,t,n,r,a,s,i,o,l,u,c=this,h=c.constructor;if(!c.isFinite()||c.isZero())return new h(c);for(p=!1,(s=c.s*w(c.s*c,1/3))&&Math.abs(s)!=1/0?r=new h(s.toString()):(n=A(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=w(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(r=new h(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),i=(e=h.precision)+3;;)if(u=(l=(o=r).times(o).times(o)).plus(c),r=R(u.plus(c).times(o),u.plus(l),i+2,1),A(o.d).slice(0,i)===(n=A(r.d)).slice(0,i)){if("9999"!=(n=n.slice(i-3,i+1))&&(a||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(r,e+1,1),t=!r.times(r).times(r).eq(c));break}if(!a&&(O(o,e+1,0),o.times(o).times(o).eq(c))){r=o;break}i+=4,a=1}return p=!0,O(r,e,h.rounding,t)},I.decimalPlaces=I.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},I.dividedBy=I.div=function(e){return R(this,new this.constructor(e))},I.dividedToIntegerBy=I.divToInt=function(e){var t=this.constructor;return O(R(this,new t(e),0,1,1),t.precision,t.rounding)},I.equals=I.eq=function(e){return 0===this.cmp(e)},I.floor=function(){return O(new this.constructor(this),this.e+1,3)},I.greaterThan=I.gt=function(e){return this.cmp(e)>0},I.greaterThanOrEqualTo=I.gte=function(e){var t=this.cmp(e);return 1==t||0===t},I.hyperbolicCosine=I.cosh=function(){var e,t,n,r,a,s=this,i=s.constructor,o=new i(1);if(!s.isFinite())return new i(s.s?1/0:NaN);if(s.isZero())return o;n=i.precision,r=i.rounding,i.precision=n+Math.max(s.e,s.sd())+4,i.rounding=1,(a=s.d.length)<32?t=(1/Z(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=K(i,1,s.times(t),new i(1),!0);for(var l,u=e,c=new i(8);u--;)l=s.times(s),s=o.minus(l.times(c.minus(l.times(c))));return O(s,i.precision=n,i.rounding=r,!0)},I.hyperbolicSine=I.sinh=function(){var e,t,n,r,a=this,s=a.constructor;if(!a.isFinite()||a.isZero())return new s(a);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(a.e,a.sd())+4,s.rounding=1,(r=a.d.length)<3)a=K(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=K(s,2,a=a.times(1/Z(5,e)),a,!0);for(var i,o=new s(5),l=new s(16),u=new s(20);e--;)i=a.times(a),a=a.times(o.plus(i.times(l.times(i).plus(u))))}return s.precision=t,s.rounding=n,O(a,t,n,!0)},I.hyperbolicTangent=I.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,R(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},I.inverseCosine=I.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),a=n.precision,s=n.rounding;return-1!==r?0===r?t.isNeg()?P(n,a,s):new n(0):new n(NaN):t.isZero()?P(n,a+4,s).times(.5):(n.precision=a+6,n.rounding=1,t=t.asin(),e=P(n,a+4,s).times(.5),n.precision=a,n.rounding=s,e.minus(t))},I.inverseHyperbolicCosine=I.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,p=!1,n=n.times(n).minus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},I.inverseHyperbolicSine=I.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,p=!1,n=n.times(n).plus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln())},I.inverseHyperbolicTangent=I.atanh=function(){var e,t,n,r,a=this,s=a.constructor;return a.isFinite()?a.e>=0?new s(a.abs().eq(1)?a.s/0:a.isZero()?a:NaN):(e=s.precision,t=s.rounding,r=a.sd(),Math.max(r,e)<2*-a.e-1?O(new s(a),e,t,!0):(s.precision=n=r-a.e,a=R(a.plus(1),new s(1).minus(a),n+e,1),s.precision=e+4,s.rounding=1,a=a.ln(),s.precision=e,s.rounding=t,a.times(.5))):new s(NaN)},I.inverseSine=I.asin=function(){var e,t,n,r,a=this,s=a.constructor;return a.isZero()?new s(a):(t=a.abs().cmp(1),n=s.precision,r=s.rounding,-1!==t?0===t?((e=P(s,n+4,r).times(.5)).s=a.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,a=a.div(new s(1).minus(a.times(a)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=r,a.times(2)))},I.inverseTangent=I.atan=function(){var e,t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&h+4<=N)return(i=P(c,h+4,f).times(.25)).s=u.s,i}else{if(!u.s)return new c(NaN);if(h+4<=N)return(i=P(c,h+4,f).times(.5)).s=u.s,i}for(c.precision=o=h+10,c.rounding=1,e=n=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(o/7),r=1,l=u.times(u),i=new c(u),a=u;-1!==e;)if(a=a.times(l),s=i.minus(a.div(r+=2)),a=a.times(l),void 0!==(i=s.plus(a.div(r+=2))).d[t])for(e=t;i.d[e]===s.d[e]&&e--;);return n&&(i=i.times(2<this.d.length-2},I.isNaN=function(){return!this.s},I.isNegative=I.isNeg=function(){return this.s<0},I.isPositive=I.isPos=function(){return this.s>0},I.isZero=function(){return!!this.d&&0===this.d[0]},I.lessThan=I.lt=function(e){return this.cmp(e)<0},I.lessThanOrEqualTo=I.lte=function(e){return this.cmp(e)<1},I.logarithm=I.log=function(e){var t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(a=n[0];a%10==0;)a/=10;s=1!==a}if(p=!1,i=H(u,o=h+5),r=t?$(c,o+10):H(e,o),T((l=R(i,r,o,1)).d,a=h,f))do{if(i=H(u,o+=10),r=t?$(c,o+10):H(e,o),l=R(i,r,o,1),!s){+A(l.d).slice(a+1,a+15)+1==1e14&&(l=O(l,h+1,0));break}}while(T(l.d,a+=10,f));return p=!0,O(l,h,f)},I.minus=I.sub=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.constructor;if(e=new m(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new m(e.d||d.s!==e.s?d:NaN):e=new m(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,f=e.d,o=m.precision,l=m.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else{if(!u[0])return new m(3===l?-0:0);e=new m(d)}return p?O(e,o,l):e}if(n=v(e.e/7),c=v(d.e/7),u=u.slice(),s=c-n){for((h=s<0)?(t=u,s=-s,i=f.length):(t=f,n=c,i=u.length),s>(r=Math.max(Math.ceil(o/7),i)+2)&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for((h=(r=u.length)<(i=f.length))&&(i=r),r=0;r0;--r)u[i++]=0;for(r=f.length;r>s;){if(u[--r](i=(s=Math.ceil(o/7))>i?s+1:i+1)&&(a=i,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for((i=u.length)-(a=c.length)<0&&(a=i,n=c,c=u,u=n),t=0;a;)t=(u[--a]=u[a]+c[a]+t)/C|0,u[a]%=C;for(t&&(u.unshift(t),++r),i=u.length;0==u[--i];)u.pop();return e.d=u,e.e=M(u,r),p?O(e,o,l):e},I.precision=I.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return n.d?(t=L(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},I.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)},I.sine=I.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r=t.d.length;if(r<3)return K(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=K(e,2,t=t.times(1/Z(5,n)),t);for(var a,s=new e(5),i=new e(16),o=new e(20);n--;)a=t.times(t),t=t.times(s.plus(a.times(i.times(a).minus(o))));return t}(r,Y(r,n)),r.precision=e,r.rounding=t,O(o>2?n.neg():n,e,t,!0)):new r(NaN)},I.squareRoot=I.sqrt=function(){var e,t,n,r,a,s,i=this,o=i.d,l=i.e,u=i.s,c=i.constructor;if(1!==u||!o||!o[0])return new c(!u||u<0&&(!o||o[0])?NaN:o?i:1/0);for(p=!1,0==(u=Math.sqrt(+i))||u==1/0?(((t=A(o)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),r=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new c(u.toString()),n=(l=c.precision)+3;;)if(r=(s=r).plus(R(i,s,n+2,1)).times(.5),A(s.d).slice(0,n)===(t=A(r.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(a||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(O(r,l+1,1),e=!r.times(r).eq(i));break}if(!a&&(O(s,l+1,0),s.times(s).eq(i))){r=s;break}n+=4,a=1}return p=!0,O(r,l,c.rounding,e)},I.tangent=I.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,(n=n.sin()).s=1,n=R(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,O(2==o||4==o?n.neg():n,e,t,!0)):new r(NaN)},I.times=I.mul=function(e){var t,n,r,a,s,i,o,l,u,c=this,h=c.constructor,f=c.d,d=(e=new h(e)).d;if(e.s*=c.s,!(f&&f[0]&&d&&d[0]))return new h(!e.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:f&&d?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=f.length)<(u=d.length)&&(s=f,f=d,d=s,i=l,l=u,u=i),s=[],r=i=l+u;r--;)s.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)o=s[a]+d[r]*f[a-r-1]+t,s[a--]=o%C|0,t=o/C|0;s[a]=(s[a]+t)%C|0}for(;!s[--i];)s.pop();return t?++n:s.shift(),e.d=s,e.e=M(s,n),p?O(e,h.precision,h.rounding):e},I.toBinary=function(e,t){return J(this,2,e,t)},I.toDecimalPlaces=I.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(D(e,0,u),void 0===t?t=r.rounding:D(t,0,8),O(n,e+n.e+1,t))},I.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,!0):(D(e,0,u),void 0===t?t=a.rounding:D(t,0,8),n=B(r=O(new a(r),e+1,t),!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return void 0===e?n=B(a):(D(e,0,u),void 0===t?t=s.rounding:D(t,0,8),n=B(r=O(new s(a),e+a.e+1,t),!1,e+r.e+1)),a.isNeg()&&!a.isZero()?"-"+n:n},I.toFraction=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.d,y=d.constructor;if(!m)return new y(d);if(u=n=new y(1),r=l=new y(0),i=(s=(t=new y(r)).e=L(m)-d.e-1)%7,t.d[0]=w(10,i<0?7+i:i),null==e)e=s>0?t:u;else{if(!(o=new y(e)).isInt()||o.lt(u))throw Error(g+o);e=o.gt(t)?s>0?t:u:o}for(p=!1,o=new y(A(m)),c=y.precision,y.precision=s=7*m.length*2;h=R(o,t,0,1,1),1!=(a=n.plus(h.times(r))).cmp(e);)n=r,r=a,a=u,u=l.plus(h.times(a)),l=a,a=t,t=o.minus(h.times(a)),o=a;return a=R(e.minus(n),r,0,1,1),l=l.plus(a.times(u)),n=n.plus(a.times(r)),l.s=u.s=d.s,f=R(u,r,s,1).minus(d).abs().cmp(R(l,n,s,1).minus(d).abs())<1?[u,r]:[l,n],y.precision=c,p=!0,f},I.toHexadecimal=I.toHex=function(e,t){return J(this,16,e,t)},I.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),null==e){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),void 0===t?t=r.rounding:D(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(p=!1,n=R(n,e,0,t,1).times(e),p=!0,O(n)):(e.s=n.s,n=e),n},I.toNumber=function(){return+this},I.toOctal=function(e,t){return J(this,8,e,t)},I.toPower=I.pow=function(e){var t,n,r,a,s,i,o=this,l=o.constructor,u=+(e=new l(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new l(w(+o,u));if((o=new l(o)).eq(1))return o;if(r=l.precision,s=l.rounding,e.eq(1))return O(o,r,s);if((t=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return a=W(l,o,n,r),e.s<0?new l(1).div(a):O(a,r,s);if((i=o.s)<0){if(tl.maxE+1||t0?i/0:0):(p=!1,l.rounding=o.s=1,n=Math.min(12,(t+"").length),(a=j(e.times(H(o,r+n)),r)).d&&T((a=O(a,r+5,1)).d,r,s)&&(t=r+10,+A((a=O(j(e.times(H(o,t+n)),t),t+5,1)).d).slice(r+1,r+15)+1==1e14&&(a=O(a,r+1,0))),a.s=i,p=!0,l.rounding=s,O(a,r,s))},I.toPrecision=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(D(e,1,u),void 0===t?t=a.rounding:D(t,0,8),n=B(r=O(new a(r),e,t),e<=r.e||r.e<=a.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toSignificantDigits=I.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(D(e,1,u),void 0===t?t=n.rounding:D(t,0,8)),O(new n(this),e,t)},I.toString=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},I.truncated=I.trunc=function(){return O(new this.constructor(this),this.e+1,1)},I.valueOf=I.toJSON=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var R=function(){function e(e,t,n){var r,a=0,s=e.length;for(e=e.slice();s--;)r=e[s]*t+a,e[s]=r%n|0,a=r/n|0;return a&&e.unshift(a),e}function t(e,t,n,r){var a,s;if(n!=r)s=n>r?1:-1;else for(a=s=0;at[a]?1:-1;break}return s}function n(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;)e.shift()}return function(r,a,s,o,l,u){var c,h,f,d,p,m,g,y,b,w,x,_,k,E,S,N,I,A,D,T,F=r.constructor,R=r.s==a.s?1:-1,B=r.d,M=a.d;if(!(B&&B[0]&&M&&M[0]))return new F(r.s&&a.s&&(B?!M||B[0]!=M[0]:M)?B&&0==B[0]||!M?0*R:R/0:NaN);for(u?(p=1,h=r.e-a.e):(u=C,p=7,h=v(r.e/p)-v(a.e/p)),D=M.length,I=B.length,w=(b=new F(R)).d=[],f=0;M[f]==(B[f]||0);f++);if(M[f]>(B[f]||0)&&h--,null==s?(E=s=F.precision,o=F.rounding):E=l?s+(r.e-a.e)+1:s,E<0)w.push(1),m=!0;else{if(E=E/p+2|0,f=0,1==D){for(d=0,M=M[0],E++;(f1&&(M=e(M,d,u),B=e(B,d,u),D=M.length,I=B.length),N=D,_=(x=B.slice(0,D)).length;_=u/2&&++A;do{d=0,(c=t(M,x,D,_))<0?(k=x[0],D!=_&&(k=k*u+(x[1]||0)),(d=k/A|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(M,d,u),x,y=g.length,_=x.length))&&(d--,n(g,D=10;d/=10)f++;b.e=f+h*p-1,O(b,l?s+b.e+1:s,o,m)}return b}}();function O(e,t,n,r){var a,s,i,o,l,u,c,h,f,d=e.constructor;e:if(null!=t){if(!(h=e.d))return e;for(a=1,o=h[0];o>=10;o/=10)a++;if((s=t-a)<0)s+=7,i=t,l=(c=h[f=0])/w(10,a-i-1)%10|0;else if((f=Math.ceil((s+1)/7))>=(o=h.length)){if(!r)break e;for(;o++<=f;)h.push(0);c=l=0,a=1,i=(s%=7)-7+1}else{for(c=o=h[f],a=1;o>=10;o/=10)a++;l=(i=(s%=7)-7+a)<0?0:c/w(10,a-i-1)%10|0}if(r=r||t<0||void 0!==h[f+1]||(i<0?c:c%w(10,a-i-1)),u=n<4?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(s>0?i>0?c/w(10,a-i):0:h[f-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=w(10,(7-t%7)%7),e.e=-t||0):h[0]=e.e=0,e;if(0==s?(h.length=f,o=1,f--):(h.length=f+1,o=w(10,7-s),h[f]=i>0?(c/w(10,a-i)%w(10,i)|0)*o:0),u)for(;;){if(0==f){for(s=1,i=h[0];i>=10;i/=10)s++;for(i=h[0]+=o,o=1;i>=10;i/=10)o++;s!=o&&(e.e++,h[0]==C&&(h[0]=1));break}if(h[f]+=o,h[f]!=C)break;h[f--]=0,o=1}for(s=h.length;0===h[--s];)h.pop()}return p&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+z(r):i>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):a<0?(s="0."+z(-a-1)+s,n&&(r=n-i)>0&&(s+=z(r))):a>=i?(s+=z(a+1-i),n&&(r=n-a-1)>0&&(s=s+"."+z(r))):((r=a+1)0&&(a+1===i&&(s+="."),s+=z(r))),s}function M(e,t){var n=e[0];for(t*=7;n>=10;n/=10)t++;return t}function $(e,t,n){if(t>S)throw p=!0,n&&(e.precision=n),Error(y);return O(new e(h),t,1,!0)}function P(e,t,n){if(t>N)throw Error(y);return O(new e(f),t,n,!0)}function L(e){var t=e.length-1,n=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function z(e){for(var t="";e--;)t+="0";return t}function W(e,t,n,r){var a,s=new e(1),i=Math.ceil(r/7+4);for(p=!1;;){if(n%2&&Q((s=s.times(t)).d,i)&&(a=!0),0===(n=v(n/2))){n=s.d.length-1,a&&0===s.d[n]&&++s.d[n];break}Q((t=t.times(t)).d,i)}return p=!0,s}function U(e){return 1&e.d[e.d.length-1]}function V(e,t,n){for(var r,a=new e(t[0]),s=0;++s17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,l=m):l=t,o=new f(.03125);e.e>-2;)e=e.times(o),h+=5;for(l+=r=Math.log(w(2,h))/Math.LN10*2+5|0,n=s=i=new f(1),f.precision=l;;){if(s=O(s.times(e),l,1),n=n.times(++c),A((o=i.plus(R(s,n,l,1))).d).slice(0,l)===A(i.d).slice(0,l)){for(a=h;a--;)i=O(i.times(i),l,1);if(null!=t)return f.precision=m,i;if(!(u<3&&T(i.d,l-r,d,u)))return O(i,f.precision=m,d,p=!0);f.precision=l+=10,n=s=o=new f(1),c=0,u++}i=o}}function H(e,t){var n,r,a,s,i,o,l,u,c,h,f,d=1,m=e,g=m.d,y=m.constructor,b=y.rounding,v=y.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new y(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(p=!1,c=v):c=t,y.precision=c+=10,r=(n=A(g)).charAt(0),!(Math.abs(s=m.e)<15e14))return u=$(y,c+2,v).times(s+""),m=H(new y(r+"."+n.slice(1)),c-10).plus(u),y.precision=v,null==t?O(m,v,b,p=!0):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=A((m=m.times(e)).d)).charAt(0),d++;for(s=m.e,r>1?(m=new y("0."+n),s++):m=new y(r+"."+n.slice(1)),h=m,l=i=m=R(m.minus(1),m.plus(1),c,1),f=O(m.times(m),c,1),a=3;;){if(i=O(i.times(f),c,1),A((u=l.plus(R(i,new y(a),c,1))).d).slice(0,c)===A(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus($(y,c+2,v).times(s+""))),l=R(l,new y(d),c,1),null!=t)return y.precision=v,l;if(!T(l.d,c-10,b,o))return O(l,y.precision=v,b,p=!0);y.precision=c+=10,u=i=m=R(h.minus(1),h.plus(1),c,1),f=O(m.times(m),c,1),a=o=1}l=u,a+=2}}function G(e){return String(e.s*e.s/0)}function X(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);r++);for(a=t.length;48===t.charCodeAt(a-1);--a);if(t=t.slice(r,a)){if(a-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%7,n<0&&(r+=7),re.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),o=(i=t.indexOf("."))>=0,r=e.constructor,o&&(i=(l=(t=t.replace(".","")).length)-i,a=W(r,new r(n),i,2*i)),i=h=(c=F(t,n,C)).length-1;0===c[i];--i)c.pop();return i<0?new r(0*e.s):(e.e=M(c,h),e.d=c,p=!1,o&&(e=R(e,a,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):s.pow(2,u))),p=!0,e)}function K(e,t,n,r,a){var s,i,o,l,u=e.precision,c=Math.ceil(u/7);for(p=!1,l=n.times(n),o=new e(r);;){if(i=R(o.times(l),new e(t++*t++),u,1),o=a?r.plus(i):r.minus(i),r=R(i.times(l),new e(t++*t++),u,1),void 0!==(i=o.plus(r)).d[c]){for(s=c;i.d[s]===o.d[s]&&s--;);if(-1==s)break}s=o,o=r,r=i,i=s}return p=!0,i.d.length=c+1,i}function Z(e,t){for(var n=e;--t;)n*=e;return n}function Y(e,t){var n,r=t.s<0,a=P(e,e.precision,1),s=a.times(.5);if((t=t.abs()).lte(s))return o=r?4:1,t;if((n=t.divToInt(a)).isZero())o=r?3:2;else{if((t=t.minus(n.times(a))).lte(s))return o=U(n)?r?2:3:r?4:1,t;o=U(n)?r?1:4:r?3:2}return t.minus(a).abs()}function J(e,t,n,r){var a,s,o,l,h,f,d,p,m,g=e.constructor,y=void 0!==n;if(y?(D(n,1,u),void 0===r?r=g.rounding:D(r,0,8)):(n=g.precision,r=g.rounding),e.isFinite()){for(y?(a=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):a=t,(o=(d=B(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=F(B(m),10,a),m.e=m.d.length),s=h=(p=F(d,10,a)).length;0==p[--h];)p.pop();if(p[0]){if(o<0?s--:((e=new g(e)).d=p,e.e=s,p=(e=R(e,m,n,r,0,a)).d,s=e.e,f=i),o=p[n],l=a/2,f=f||void 0!==p[n+1],f=r<4?(void 0!==o||f)&&(0===r||r===(e.s<0?3:2)):o>l||o===l&&(4===r||f||6===r&&1&p[n-1]||r===(e.s<0?8:7)),p.length=n,f)for(;++p[--n]>a-1;)p[n]=0,n||(++s,p.unshift(1));for(h=p.length;!p[h-1];--h);for(o=0,d="";o1)if(16==t||8==t){for(o=16==t?4:3,--h;h%o;h++)d+="0";for(h=(p=F(d,a,t)).length;!p[h-1];--h);for(o=1,d="1.";oh)for(s-=h;s--;)d+="0";else st)return e.length=t,!0}function ee(e){return new this(e).abs()}function te(e){return new this(e).acos()}function ne(e){return new this(e).acosh()}function re(e,t){return new this(e).plus(t)}function ae(e){return new this(e).asin()}function se(e){return new this(e).asinh()}function ie(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function le(e,t){e=new this(e),t=new this(t);var n,r=this.precision,a=this.rounding,s=r+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?P(this,r,a):new this(0)).s=e.s:!e.d||t.isZero()?(n=P(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(R(e,t,s,1)),t=P(this,s,1),this.precision=r,this.rounding=a,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(R(e,t,s,1)):(n=P(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function ue(e){return new this(e).cbrt()}function ce(e){return O(e=new this(e),e.e+1,2)}function he(e){if(!e||"object"!=typeof e)throw Error(m+"Object expected");var t,n,r,a=!0===e.defaults,s=["precision",1,u,"rounding",0,8,"toExpNeg",-l,0,"toExpPos",0,l,"maxE",0,l,"minE",-l,0,"modulo",0,9];for(t=0;t=s[t+1]&&r<=s[t+2]))throw Error(g+n+": "+r);this[n]=r}if(n="crypto",a&&(this[n]=d[n]),void 0!==(r=e[n])){if(!0!==r&&!1!==r&&0!==r&&1!==r)throw Error(g+n+": "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(b);this[n]=!0}else this[n]=!1}return this}function fe(e){return new this(e).cos()}function de(e){return new this(e).cosh()}function pe(e,t){return new this(e).div(t)}function me(e){return new this(e).exp()}function ge(e){return O(e=new this(e),e.e+1,3)}function ye(){var e,t,n=new this(0);for(p=!1,e=0;e=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=a%1e7;else{if(!crypto.randomBytes)throw Error(b);for(t=crypto.randomBytes(r*=4);s=214e7?crypto.randomBytes(4).copy(t,s):(o.push(a%1e7),s+=4);s=r/4}else for(;s=10;a/=10)r++;r<7&&(n-=7-r)}return i.e=n,i.d=o,i}function Ae(e){return O(e=new this(e),e.e+1,this.rounding)}function De(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Te(e){return new this(e).sin()}function Fe(e){return new this(e).sinh()}function Re(e){return new this(e).sqrt()}function Oe(e,t){return new this(e).sub(t)}function Be(e){return new this(e).tan()}function Me(e){return new this(e).tanh()}function $e(e){return O(e=new this(e),e.e+1,1)}(s=function e(t){var n,r,a;function s(e){var t,n,r,a=this;if(!(a instanceof s))return new s(e);if(a.constructor=s,e instanceof s)return a.s=e.s,void(p?!e.d||e.e>s.maxE?(a.e=NaN,a.d=null):e.e=10;n/=10)t++;return void(p?t>s.maxE?(a.e=NaN,a.d=null):t{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,s[a]))return!1;for(a=r;0!=a--;){var i=s[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},5628:function(e,t){var n;!function(r){"use strict";var a={s:1,n:0,d:1};function s(e){function t(){var t=Error.apply(this,arguments);t.name=this.name=e,this.stack=t.stack,this.message=t.message}function n(){}return n.prototype=Error.prototype,t.prototype=new n,t}var i=f.DivisionByZero=s("DivisionByZero"),o=f.InvalidParameter=s("InvalidParameter");function l(e,t){return isNaN(e=parseInt(e,10))&&u(),e*t}function u(){throw new o}var c=function(e,t){var n,r=0,s=1,o=1,c=0,h=0,f=0,d=1,p=1,m=0,g=1,y=1,b=1,v=1e7;if(null==e);else if(void 0!==t)o=(r=e)*(s=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(r=e.n,s=e.d,"s"in e&&(r*=e.s)):0 in e?(r=e[0],1 in e&&(s=e[1])):u(),o=r*s;break;case"number":if(e<0&&(o=e,e=-e),e%1==0)r=e;else if(e>0){for(e>=1&&(e/=p=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));g<=v&&b<=v;){if(e===(n=(m+y)/(g+b))){g+b<=v?(r=m+y,s=g+b):b>g?(r=y,s=b):(r=m,s=g);break}e>n?(m+=y,g+=b):(y+=m,b+=g),g>v?(r=y,s=b):(r=m,s=g)}r*=p}else(isNaN(e)||isNaN(t))&&(s=r=NaN);break;case"string":if(null===(g=e.match(/\d+|./g))&&u(),"-"===g[m]?(o=-1,m++):"+"===g[m]&&m++,g.length===m+1?h=l(g[m++],o):"."===g[m+1]||"."===g[m]?("."!==g[m]&&(c=l(g[m++],o)),(1+ ++m===g.length||"("===g[m+1]&&")"===g[m+3]||"'"===g[m+1]&&"'"===g[m+3])&&(h=l(g[m],o),d=Math.pow(10,g[m].length),m++),("("===g[m]&&")"===g[m+2]||"'"===g[m]&&"'"===g[m+2])&&(f=l(g[m+1],o),p=Math.pow(10,g[m+1].length)-1,m+=3)):"/"===g[m+1]||":"===g[m+1]?(h=l(g[m],o),d=l(g[m+2],1),m+=3):"/"===g[m+3]&&" "===g[m+1]&&(c=l(g[m],o),h=l(g[m+2],o),d=l(g[m+4],1),m+=5),g.length<=m){o=r=f+(s=d*p)*c+p*h;break}default:u()}if(0===s)throw new i;a.s=o<0?-1:1,a.n=Math.abs(r),a.d=Math.abs(s)};function h(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function f(e,t){if(!(this instanceof f))return new f(e,t);c(e,t),e=f.REDUCE?h(a.d,a.n):1,this.s=a.s,this.n=a.n/e,this.d=a.d/e}f.REDUCE=1,f.prototype={s:1,n:0,d:1,abs:function(){return new f(this.n,this.d)},neg:function(){return new f(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),new f(this.s*this.n*a.d+a.s*this.d*a.n,this.d*a.d)},sub:function(e,t){return c(e,t),new f(this.s*this.n*a.d-a.s*this.d*a.n,this.d*a.d)},mul:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.n,this.d*a.d)},div:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.d,this.d*a.n)},clone:function(){return new f(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new f(NaN):void 0===e?new f(this.s*this.n%this.d,1):(c(e,t),0===a.n&&0===this.d&&f(0,0),new f(this.s*(a.d*this.n)%(a.n*this.d),a.d*this.d))},gcd:function(e,t){return c(e,t),new f(h(a.n,this.n)*h(a.d,this.d),a.d*this.d)},lcm:function(e,t){return c(e,t),0===a.n&&0===this.n?new f:new f(a.n*this.n,h(a.n,this.n)*h(a.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new f(this.s*this.d,this.n)},pow:function(e){return e<0?new f(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new f(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return c(e,t),this.s*this.n*a.d==a.s*a.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*a.d-a.s*a.n*this.d;return(00&&(n+=t,n+=" ",r%=a),n+=r,n+="/",n+=a),n},toLatex:function(e){var t,n="",r=this.n,a=this.d;return this.s<0&&(n+="-"),1===a?n+=r:(e&&(t=Math.floor(r/a))>0&&(n+=t,r%=a),n+="\\frac{",n+=r,n+="}{",n+=a,n+="}"),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do{r.push(Math.floor(t/n)),e=t%n,t=n,n=e}while(1!==t);return r},toString:function(e){var t,n=this.n,r=this.d;if(isNaN(n)||isNaN(r))return"NaN";f.REDUCE||(n/=t=h(n,r),r/=t),e=e||15;var a=function(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(1===t)return 0;for(var n=10%t,r=1;1!==n;r++)if(n=10*n%t,r>2e3)return 0;return r}(0,r),s=function(e,t,n){for(var r=1,a=function(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)1&t&&(r=r*e%n);return r}(10,n,t),s=0;s<300;s++){if(r===a)return s;r=10*r%t,a=10*a%t}return 0}(0,r,a),i=-1===this.s?"-":"";if(i+=n/r|0,n%=r,(n*=10)&&(i+="."),a){for(var o=s;o--;)i+=n/r|0,n%=r,n*=10;for(i+="(",o=a;o--;)i+=n/r|0,n%=r,n*=10;i+=")"}else for(o=e;n&&o--;)i+=n/r|0,n%=r,n*=10;return i}},void 0===(n=function(){return f}.apply(t,[]))||(e.exports=n)}()},1903:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)},3228:e=>{e.exports=function e(t,n){"use strict";var r,a,s=/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,i=/(^[ ]*|[ ]*$)/g,o=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,u=/^0/,c=function(t){return e.insensitive&&(""+t).toLowerCase()||""+t},h=c(t).replace(i,"")||"",f=c(n).replace(i,"")||"",d=h.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),p=f.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=parseInt(h.match(l),16)||1!==d.length&&h.match(o)&&Date.parse(h),g=parseInt(f.match(l),16)||m&&f.match(o)&&Date.parse(f)||null;if(g){if(mg)return 1}for(var y=0,b=Math.max(d.length,p.length);ya)return 1}return 0}},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),a=n(401),s=n(7667),i=n(1327),o=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7040),a=n(4125),s=n(2117),i=n(7518),o=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),a=n(1285),s=n(6e3),i=n(9916),o=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),a=n(619),s=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(8407),a=n(7465),s=n(3779),i=n(7599),o=n(4758),l=n(4309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=s,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,e.exports=u},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n{var r=n(2545),a=n(5694),s=n(1469),i=n(4144),o=n(5776),l=n(6719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=s(e),c=!n&&a(e),h=!n&&!c&&i(e),f=!n&&!c&&!h&&l(e),d=n||c||h||f,p=d?r(e.length,String):[],m=p.length;for(var g in e)!t&&!u.call(e,g)||d&&("length"==g||h&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||o(g,m))||p.push(g);return p}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(371)("length");e.exports=r},4286:e=>{e.exports=function(e){return e.split("")}},4865:(e,t,n)=>{var r=n(9465),a=n(7813),s=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];s.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},3886:(e,t,n)=>{var r=n(8363),a=n(1704);e.exports=function(e,t){return e&&r(t,a(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),a=n(7412),s=n(4865),i=n(4037),o=n(3886),l=n(4626),u=n(278),c=n(8805),h=n(1911),f=n(8234),d=n(6904),p=n(4160),m=n(3824),g=n(9148),y=n(8517),b=n(1469),v=n(4144),w=n(6688),x=n(3218),_=n(2928),k=n(3674),E=n(1704),C="[object Arguments]",S="[object Function]",N="[object Object]",I={};I[C]=I["[object Array]"]=I["[object ArrayBuffer]"]=I["[object DataView]"]=I["[object Boolean]"]=I["[object Date]"]=I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Map]"]=I["[object Number]"]=I[N]=I["[object RegExp]"]=I["[object Set]"]=I["[object String]"]=I["[object Symbol]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I["[object Error]"]=I[S]=I["[object WeakMap]"]=!1,e.exports=function e(t,n,A,D,T,F){var R,O=1&n,B=2&n,M=4&n;if(A&&(R=T?A(t,D,T,F):A(t)),void 0!==R)return R;if(!x(t))return t;var $=b(t);if($){if(R=m(t),!O)return u(t,R)}else{var P=p(t),L=P==S||"[object GeneratorFunction]"==P;if(v(t))return l(t,O);if(P==N||P==C||L&&!T){if(R=B||L?{}:y(t),!O)return B?h(t,o(R,t)):c(t,i(R,t))}else{if(!I[P])return T?t:{};R=g(t,P,O)}}F||(F=new r);var z=F.get(t);if(z)return z;F.set(t,R),_(t)?t.forEach((function(r){R.add(e(r,n,A,r,t,F))})):w(t)&&t.forEach((function(r,a){R.set(a,e(r,n,A,a,t,F))}));var W=$?void 0:(M?B?d:f:B?E:k)(t);return a(W||t,(function(r,a){W&&(r=t[a=r]),s(R,a,e(r,n,A,a,t,F))})),R}},3118:(e,t,n)=>{var r=n(3218),a=Object.create,s=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=s},6029:(e,t,n)=>{var r=n(3448);e.exports=function(e,t,n){for(var a=-1,s=e.length;++a{e.exports=function(e,t,n,r){for(var a=e.length,s=n+(r?1:-1);r?s--:++s{var r=n(2488),a=n(7285);e.exports=function e(t,n,s,i,o){var l=-1,u=t.length;for(s||(s=a),o||(o=[]);++l0&&s(c)?n>1?e(c,n-1,s,i,o):r(o,c):i||(o[o.length]=c)}return o}},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},7786:(e,t,n)=>{var r=n(1811),a=n(327);e.exports=function(e,t){for(var n=0,s=(t=r(t,e)).length;null!=e&&n{var r=n(2488),a=n(1469);e.exports=function(e,t,n){var s=t(e);return a(e)?s:r(s,n(e))}},4239:(e,t,n)=>{var r=n(2705),a=n(9607),s=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):s(e)}},3325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,n)=>{var r=n(1848),a=n(2722),s=n(2351);e.exports=function(e,t,n){return t==t?s(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),a=n(7005);e.exports=function e(t,n,s,i,o){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,s,i,e,o))}},2492:(e,t,n)=>{var r=n(6384),a=n(7114),s=n(8351),i=n(6096),o=n(4160),l=n(1469),u=n(4144),c=n(6719),h="[object Arguments]",f="[object Array]",d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,y){var b=l(e),v=l(t),w=b?f:o(e),x=v?f:o(t),_=(w=w==h?d:w)==d,k=(x=x==h?d:x)==d,E=w==x;if(E&&u(e)){if(!u(t))return!1;b=!0,_=!1}if(E&&!_)return y||(y=new r),b||c(e)?a(e,t,n,m,g,y):s(e,t,w,n,m,g,y);if(!(1&n)){var C=_&&p.call(e,"__wrapped__"),S=k&&p.call(t,"__wrapped__");if(C||S){var N=C?e.value():e,I=S?t.value():t;return y||(y=new r),g(N,I,n,m,y)}}return!!E&&(y||(y=new r),i(e,t,n,m,g,y))}},5588:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(6384),a=n(939);e.exports=function(e,t,n,s){var i=n.length,o=i,l=!s;if(null==e)return!o;for(e=Object(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i{e.exports=function(e){return e!=e}},8458:(e,t,n)=>{var r=n(3560),a=n(5346),s=n(3218),i=n(346),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,h=u.hasOwnProperty,f=RegExp("^"+c.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||a(e))&&(r(e)?f:o).test(i(e))}},3933:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object RegExp]"==r(e)}},9221:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),a=n(1780),s=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return s(e)&&a(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),a=n(6432),s=n(6557),i=n(1469),o=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):o(e)}},280:(e,t,n)=>{var r=n(5726),a=n(6916),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))s.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),a=n(5726),s=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return s(e);var t=a(e),n=[];for(var o in e)("constructor"!=o||!t&&i.call(e,o))&&n.push(o);return n}},1573:(e,t,n)=>{var r=n(2958),a=n(1499),s=n(2634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),a=n(7361),s=n(9095),i=n(5403),o=n(9162),l=n(2634),u=n(327);e.exports=function(e,t){return i(e)&&o(t)?l(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?s(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},4259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(a);++r{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(2705),a=n(9932),s=n(1469),i=n(3448),o=r?r.prototype:void 0,l=o?o.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(s(t))return a(t,e)+"";if(i(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,n)=>{var r=n(9932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},1811:(e,t,n)=>{var r=n(1469),a=n(5403),s=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:s(i(e))}},180:(e,t,n)=>{var r=n(4259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(2118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a?r.Buffer:void 0,o=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),a=r?r.prototype:void 0,s=a?a.valueOf:void 0;e.exports=function(e){return s?Object(s.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(4865),a=n(9465);e.exports=function(e,t,n,s){var i=!n;n||(n={});for(var o=-1,l=t.length;++o{var r=n(8363),a=n(9551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(8363),a=n(1442);e.exports=function(e,t){return r(e,a(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},5063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,s=Object(t),i=r(t),o=i.length;o--;){var l=i[e?o:++a];if(!1===n(s[l],l,s))break}return t}}},8777:(e,t,n)=>{var r=n(852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},7114:(e,t,n)=>{var r=n(8668),a=n(2908),s=n(4757);e.exports=function(e,t,n,i,o,l){var u=1&n,c=e.length,h=t.length;if(c!=h&&!(u&&h>c))return!1;var f=l.get(e),d=l.get(t);if(f&&d)return f==t&&d==e;var p=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++p{var r=n(2705),a=n(1149),s=n(7813),i=n(7114),o=n(8776),l=n(1814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,h,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!h(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return s(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=o;case"[object Set]":var p=1&r;if(d||(d=l),e.size!=t.size&&!p)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(d(e),d(t),r,u,h,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,s,i,o){var l=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!l)return!1;for(var h=c;h--;){var f=u[h];if(!(l?f in t:a.call(t,f)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=l;++h{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),a=n(9551),s=n(3674);e.exports=function(e){return r(e,s,a)}},6904:(e,t,n)=>{var r=n(8866),a=n(1442),s=n(1704);e.exports=function(e){return r(e,s,a)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var s=t[n],i=e[s];t[n]=[s,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),a=n(7801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),a=Object.prototype,s=a.hasOwnProperty,i=a.toString,o=r?r.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[o]=n:delete e[o]),a}},9551:(e,t,n)=>{var r=n(4963),a=n(479),s=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,o=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return s.call(e,t)})))}:a;e.exports=o},1442:(e,t,n)=>{var r=n(2488),a=n(5924),s=n(9551),i=n(479),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,s(e)),e=a(e);return t}:i;e.exports=o},4160:(e,t,n)=>{var r=n(8552),a=n(7071),s=n(3818),i=n(8525),o=n(577),l=n(4239),u=n(346),c="[object Map]",h="[object Promise]",f="[object Set]",d="[object WeakMap]",p="[object DataView]",m=u(r),g=u(a),y=u(s),b=u(i),v=u(o),w=l;(r&&w(new r(new ArrayBuffer(1)))!=p||a&&w(new a)!=c||s&&w(s.resolve())!=h||i&&w(new i)!=f||o&&w(new o)!=d)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return p;case g:return c;case y:return h;case b:return f;case v:return d}return t}),e.exports=w},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),a=n(5694),s=n(1469),i=n(5776),o=n(1780),l=n(327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,h=!1;++u{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},1789:(e,t,n)=>{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),a=n(7157),s=n(3147),i=n(419),o=n(7133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return s(e);case"[object Set]":return new l;case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),a=n(5924),s=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||s(e)?{}:r(a(e))}},7285:(e,t,n)=>{var r=n(2705),a=n(5694),s=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||a(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(1469),a=n(3448),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!s.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,a=n(4429),s=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!s&&s in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),a=n(8407),s=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(s||a),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a&&r.process,o=function(){try{return s&&s.require&&s.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=o},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var r=n(1957),a="object"==typeof self&&self&&self.Object===Object&&self,s=r||a||Function("return this")();e.exports=s},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),a=n(7071),s=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new s(i)}return n.set(e,t),this.size=n.size,this}},2351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r{var r=n(8983),a=n(2689),s=n(8816);e.exports=function(e){return a(e)?s(e):r(e)}},3140:(e,t,n)=>{var r=n(4286),a=n(2689),s=n(676);e.exports=function(e){return a(e)?s(e):r(e)}},5514:(e,t,n)=>{var r=n(4523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(s,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},8816:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){for(var t=c.lastIndex=0;c.test(e);)++t;return t}},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){return e.match(c)||[]}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5564:(e,t,n)=>{var r=n(1078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},9095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),a=n(7005),s=Object.prototype,i=s.hasOwnProperty,o=s.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),a=n(1780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},1584:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return!0===e||!1===e||a(e)&&"[object Boolean]"==r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=n(5062),s=t&&!t.nodeType&&t,i=s&&e&&!e.nodeType&&e,o=i&&i.exports===s?r.Buffer:void 0,l=(o?o.isBuffer:void 0)||a;e.exports=l},3560:(e,t,n)=>{var r=n(4239),a=n(3218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),a=n(1717),s=n(1167),i=s&&s.isMap,o=i?a(i):r;e.exports=o},1763:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"number"==typeof e||a(e)&&"[object Number]"==r(e)}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},6347:(e,t,n)=>{var r=n(3933),a=n(1717),s=n(1167),i=s&&s.isRegExp,o=i?a(i):r;e.exports=o},2928:(e,t,n)=>{var r=n(9221),a=n(1717),s=n(1167),i=s&&s.isSet,o=i?a(i):r;e.exports=o},7037:(e,t,n)=>{var r=n(4239),a=n(1469),s=n(7005);e.exports=function(e){return"string"==typeof e||!a(e)&&s(e)&&"[object String]"==r(e)}},3448:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),a=n(1717),s=n(1167),i=s&&s.isTypedArray,o=i?a(i):r;e.exports=o},2353:e=>{e.exports=function(e){return void 0===e}},3674:(e,t,n)=>{var r=n(4636),a=n(280),s=n(8612);e.exports=function(e){return s(e)?r(e):a(e)}},1704:(e,t,n)=>{var r=n(4636),a=n(313),s=n(8612);e.exports=function(e){return s(e)?r(e,!0):a(e)}},6604:(e,t,n)=>{var r=n(9465),a=n(7816),s=n(7206);e.exports=function(e,t){var n={};return t=s(t,3),a(e,(function(e,a,s){r(n,a,t(e,a,s))})),n}},6162:(e,t,n)=>{var r=n(6029),a=n(3325),s=n(6557);e.exports=function(e){return e&&e.length?r(e,s,a):void 0}},8306:(e,t,n)=>{var r=n(3369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=n.cache;if(s.has(a))return s.get(a);var i=e.apply(this,r);return n.cache=s.set(a,i)||s,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},9601:(e,t,n)=>{var r=n(371),a=n(9152),s=n(5403),i=n(327);e.exports=function(e){return s(e)?r(i(e)):a(e)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8913:(e,t,n)=>{var r=n(2545),a=n(4290),s=n(554),i=4294967295,o=Math.min;e.exports=function(e,t){if((e=s(e))<1||e>9007199254740991)return[];var n=i,l=o(e,i);t=a(t),e-=i;for(var u=r(l,t);++n{var r=n(4841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,n)=>{var r=n(8601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},4841:(e,t,n)=>{var r=n(3218),a=n(3448),s=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var n=o.test(e);return n||l.test(e)?u(e.slice(2),n?2:8):i.test(e)?NaN:+e}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},691:(e,t,n)=>{var r=n(531),a=n(180),s=n(5512),i=n(3140),o=n(9833),l=/\s+$/;e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.replace(l,"");if(!e||!(t=r(t)))return e;var u=i(e),c=s(u,i(t))+1;return a(u,0,c).join("")}},9138:(e,t,n)=>{var r=n(531),a=n(180),s=n(2689),i=n(3218),o=n(6347),l=n(8016),u=n(3140),c=n(554),h=n(9833),f=/\w*$/;e.exports=function(e,t){var n=30,d="...";if(i(t)){var p="separator"in t?t.separator:p;n="length"in t?c(t.length):n,d="omission"in t?r(t.omission):d}var m=(e=h(e)).length;if(s(e)){var g=u(e);m=g.length}if(n>=m)return e;var y=n-l(d);if(y<1)return d;var b=g?a(g,0,y).join(""):e.slice(0,y);if(void 0===p)return b+d;if(g&&(y+=b.length-y),o(p)){if(e.slice(y).search(p)){var v,w=b;for(p.global||(p=RegExp(p.source,h(f.exec(p))+"g")),p.lastIndex=0;v=p.exec(w);)var x=v.index;b=b.slice(0,void 0===x?y:x)}}else if(e.indexOf(r(p),y)!=y){var _=b.lastIndexOf(p);_>-1&&(b=b.slice(0,_))}return b+d}},2628:(e,t,n)=>{var r=n(7415),a=n(3674);e.exports=function(e){return null==e?[]:r(e,a(e))}},3346:(e,t,n)=>{"use strict";n.d(t,{C2o:()=>kn,xJM:()=>nn,qoR:()=>_n,CAK:()=>xn});var r={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function a(){return(a=Object.assign||function(e){for(var t=1;tt.re?1:e.ret.im?1:e.im=0?"+":"")+r.toString()}(e,n);case"auto":var a=t&&void 0!==t.lowerExp?t.lowerExp:-3,s=t&&void 0!==t.upperExp?t.upperExp:5;if(e.isZero())return"0";var i=e.toSignificantDigits(n),o=i.e;return(o>=a&&o=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function $(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function P(e,t,n){var r,a=e.length;if(a!==t[n])throw new B(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new B(e.length,0)}else P(e,t,0)}function z(e,t){if(!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&e>=t)throw new M(e,t)}function W(e,t,n){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach((function(e){if(!(0,i.hj)(e)||!(0,g.U)(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+R(t)+")")})),U(e,t,0,void 0!==n?n:0),e}function U(e,t,n,r){var a,s,i=e.length,o=t[n],l=Math.min(i,o);if(e.length=o,n");h(e,t.max().map((function(e){return e+1})),r);var d=s.length;o(e._data,t,n,d,0)}return e}function o(e,t,n,r,a){var s=a===r-1,i=t.dimension(a);s?i.forEach((function(t,r){z(t),e[t]=n[r[0]]})):i.forEach((function(s,i){z(s),o(e[s],t,n[i[0]],r,a+1)}))}function u(e,t,n){if(0===t.length){for(var r=e._data;(0,i.kJ)(r);)r=r[0];return r}return e._size=t.slice(0),e._data=W(e._data,e._size,n),e}function h(e,t,n){for(var r=e._size.slice(0),a=!1;r.lengthr[s]&&(r[s]=t[s],a=!0);a&&u(e,r,n)}function f(e){for(var t=0,n=e.length;t0?e:0,r=e<0?-e:0,a=this._size[0],s=this._size[1],o=Math.min(a-r,s-t),l=[],u=0;u0?r:0,l=r<0?-r:0,u=e[0],c=e[1],h=Math.min(u-l,c-o);if((0,i.kJ)(t)){if(t.length!==h)throw new Error("Invalid value array length");s=function(e){return t[e]}}else if((0,i.SW)(t)){var f=t.size();if(1!==f.length||f[0]!==h)throw new Error("Invalid matrix length");s=function(e){return t.get([e])}}else s=function(){return t};a||(a=(0,i.l9)(s(0))?s(0).mul(0):0);var d=[];if(e.length>0){d=W(d,e,a);for(var p=0;p15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new t(e)}},{from:"number",to:"Complex",convert:function(e){return n||Q(e),new n(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return n||Q(e),new n(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(e){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return n||Q(e),new n(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){a||ee(e);var t=new a(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(e){t||J(e);try{return new t(e)}catch(t){throw new Error('Cannot convert "'+e+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(e){a||ee(e);try{return new a(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(e){n||Q(e);try{return new n(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return t||J(e),new t(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return a||ee(e),new a(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return r||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new r(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],s}));function J(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function Q(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function ee(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}function te(e,t){(0,i.SW)(e)&&(e=e.valueOf());for(var n=0,r=e.length;nMath.pow(2,32)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));2147483648&t&&(t=-1*~(t-1))}return t},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(e){throw new Error("Second argument with valueless unit expected")},null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return ne(e,this)}});return t.fromJSON=function(e){return parseFloat(e.value)},t}))),pe="number",me="number, number";function ge(e){return Math.abs(e)}function ye(e,t){return e+t}function be(e,t){return e*t}function ve(e){return-e}ge.signature=pe,ye.signature=me,be.signature=me,ve.signature=pe;var we="apply",xe=f(we,["typed","isInteger"],(function(e){var t=e.typed,n=e.isInteger;return t(we,{"Array | Matrix, number | BigNumber, function":function(e,t,r){if(!n(t))throw new TypeError("Integer number expected for dimension");var a=Array.isArray(e)?$(e):e.size();if(t<0||t>=a.length)throw new M(t,a.length);return(0,i.SW)(e)?e.create(_e(e.valueOf(),t,r)):_e(e,t,r)}})}));function _e(e,t,n){var r,a,s;if(t<=0){if(Array.isArray(e[0])){for(s=function(e){var t,n,r=e.length,a=e[0].length,s=[];for(n=0;nMath.pow(2,31)-1||n<-Math.pow(2,31))throw new Error("Value must be in range [-2^31, 2^31-1]");if(!(0,g.U)(n))throw new Error("Value must be an integer");return n<0&&(n+=Math.pow(2,32)),"".concat(t).concat(n.toString(e))}}Math.pow(2,53);var Ce=["typed"];function Se(e,t){return f(e,Ce,(function(n){return(0,n.typed)(e,{number:Ee(t)})}))}Se("oct",8);n(2424);n(7905);var Ne=f("fraction",["typed","Fraction"],(function(e){var t=e.typed,n=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new n(e)},string:function(e){return new n(e)},"number, number":function(e,t){return new n(e,t)},null:function(e){return new n(0)},BigNumber:function(e){return new n(e.toString())},Fraction:function(e){return e},Object:function(e){return new n(e)},"Array | Matrix":function(e){return ne(e,this)}})})),Ie="unaryMinus",Ae=f(Ie,["typed"],(function(e){return(0,e.typed)(Ie,{number:ve,Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=this(e.value),t},"Array | Matrix":function(e){return ne(e,this,!0)}})})),De="addScalar",Te=f(De,["typed"],(function(e){return(0,e.typed)(De,{"number, number":ye,"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null===e.value||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n}})})),Fe=f("sqrt",["config","typed","Complex"],(function(e){var t=e.config,n=e.typed,r=e.Complex;return n("sqrt",{number:a,Complex:function(e){return e.sqrt()},BigNumber:function(e){return!e.isNegative()||t.predictable?e.sqrt():a(e.toNumber())},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.pow(.5)}});function a(e){return isNaN(e)?NaN:e>=0||t.predictable?Math.sqrt(e):new r(e,0).sqrt()}})),Re="conj",Oe=f(Re,["typed"],(function(e){return(0,e.typed)(Re,{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.conjugate()},"Array | Matrix":function(e){return ne(e,this)}})})),Be="mode",Me=f(Be,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Be,{"Array | Matrix":a,"...":function(e){return a(e)}});function a(e){if(0===(e=H(e.valueOf())).length)throw new Error("Cannot calculate mode of an empty array");for(var t={},a=[],s=0,i=0;is&&(s=t[o],a=[o])}return a}}));Se("bin",2);var $e=f("SparseMatrix",["typed","equalScalar","Matrix"],(function(e){var t=e.typed,n=e.equalScalar,r=e.Matrix;function a(e,t){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!(0,i.HD)(t))throw new Error("Invalid datatype: "+t);if((0,i.SW)(e))!function(e,t,n){"SparseMatrix"===t.type?(e._values=t._values?l(t._values):void 0,e._index=l(t._index),e._ptr=l(t._ptr),e._size=l(t._size),e._datatype=n||t._datatype):s(e,t.valueOf(),n||t._datatype)}(this,e,t);else if(e&&(0,i.kJ)(e.index)&&(0,i.kJ)(e.ptr)&&(0,i.kJ)(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if((0,i.kJ)(e))s(this,e,t);else{if(e)throw new TypeError("Unsupported type of data ("+(0,i.kM)(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}function s(e,r,a){e._values=[],e._index=[],e._ptr=[],e._datatype=a;var s=r.length,o=0,l=n,u=0;if((0,i.HD)(a)&&(l=t.find(n,[a,a])||n,u=t.convert(0,a)),s>0){var c=0;do{e._ptr.push(e._index.length);for(var h=0;h");for(var h=t.min()[0],f=t.min()[1],d=a[0],p=a[1],m=0;mm){for(h=m;hp){if(d){var g=0;for(h=0;hr-1&&(e._values.splice(f,1),e._index.splice(f,1),b++)}e._ptr[h]=e._values.length}return e._size[0]=r,e._size[1]=a,e}function p(e,t,n,r,a){var s,i,o=r[0],u=r[1],c=[];for(s=0;sl-1||o>u-1)&&(d(this,Math.max(s+1,l),Math.max(o+1,u),a),l=this._size[0],u=this._size[1]),z(s,l),z(o,u);var m=h(s,this._ptr[o],this._ptr[o+1],this._index);return m=0&&x<=s&&g(e._values[w],x-0,y-0)}else{for(var _={},k=b;k "+(this._values?R(this._values[l],e):"X");return a},a.prototype.toString=function(){return R(this.toArray())},a.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(e){if(e){if((0,i.l9)(e)&&(e=e.toNumber()),!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=e>0?e:0,n=e<0?-e:0,r=this._size[0],s=this._size[1],o=Math.min(r-n,s-t),l=[],u=[],c=[];c[0]=0;for(var h=t;h0?s:0,d=s<0?-s:0,p=e[0],m=e[1],y=Math.min(p-d,m-f);if((0,i.kJ)(r)){if(r.length!==y)throw new Error("Invalid value array length");h=function(e){return r[e]}}else if((0,i.SW)(r)){var b=r.size();if(1!==b.length||b[0]!==y)throw new Error("Invalid matrix length");h=function(e){return r.get([e])}}else h=function(){return r};for(var v=[],w=[],x=[],_=0;_=0&&k=l||a[c]!==t)){var d=r?r[u]:void 0;a.splice(c,0,t),r&&r.splice(c,0,d),a.splice(c<=u?u+1:u,1),r&&r.splice(c<=u?u+1:u,1)}else if(c=l||a[u]!==e)){var p=r?r[c]:void 0;a.splice(u,0,e),r&&r.splice(u,0,p),a.splice(u<=c?c+1:c,1),r&&r.splice(u<=c?c+1:c,1)}}},a}),{isClass:!0}),Pe="matrix",Le=f(Pe,["typed","Matrix","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,n=(e.Matrix,e.DenseMatrix),r=e.SparseMatrix;return t(Pe,{"":function(){return a([])},string:function(e){return a([],e)},"string, string":function(e,t){return a([],e,t)},Array:function(e){return a(e)},Matrix:function(e){return a(e,e.storage())},"Array | Matrix, string":a,"Array | Matrix, string, string":a});function a(e,t,a){if("dense"===t||"default"===t||void 0===t)return new n(e,a);if("sparse"===t)return new r(e,a);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}})),ze=f("algorithm01",["typed"],(function(e){var t=e.typed;return function(e,n,r,a){var s=e._data,i=e._size,o=e._datatype,l=n._values,u=n._index,c=n._ptr,h=n._size,f=n._datatype;if(i.length!==h.length)throw new B(i.length,h.length);if(i[0]!==h[0]||i[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+i+") must match Matrix B ("+h+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,p,m=i[0],g=i[1],y="string"==typeof o&&o===f?o:void 0,b=y?t.find(r,[y,y]):r,v=[];for(d=0;d0?n(p,0,f,f[0],i,u):[];return e.createDenseMatrix({data:m,size:f,datatype:s})};function n(e,t,r,a,s,i){var o=[];if(t===r.length-1)for(var l=0;l0?n(h,0,u,u[0],o,r,s):[];return e.createDenseMatrix({data:f,size:l(u),datatype:i})};function n(e,t,r,a,s,i,o){var l=[];if(t===r.length-1)for(var u=0;ut?1:-1},"number, number":function(e,t){return(0,g.RI)(e,t,n.epsilon)?0:e>t?1:-1},"BigNumber, BigNumber":function(e,t){return ce(e,t,n.epsilon)?new s(0):new s(e.cmp(t))},"Fraction, Fraction":function(e,t){return new i(e.compare(t))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return l(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return h(e,t,this)},"Array, Array":function(e,t){return this(a(e),a(t)).valueOf()},"Array, Matrix":function(e,t){return this(a(e),t)},"Matrix, Array":function(e,t){return this(e,a(t))},"SparseMatrix, any":function(e,t){return c(e,t,this,!1)},"DenseMatrix, any":function(e,t){return f(e,t,this,!1)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(a(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(a(t),e,this,!0).valueOf()}})})),at="smaller",st=f(at,["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,n=e.config,r=e.matrix,a=e.DenseMatrix,s=He({typed:t}),i=Ke({typed:t,DenseMatrix:a}),o=qe({typed:t,DenseMatrix:a}),l=Ve({typed:t}),u=je({typed:t});return t(at,{"boolean, boolean":function(e,t){return et},"number, number":function(e,t){return e>t&&!(0,g.RI)(e,t,n.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!ce(e,t,n.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return i(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return o(e,t,this,!1)},"DenseMatrix, any":function(e,t){return u(e,t,this,!1)},"any, SparseMatrix":function(e,t){return o(t,e,this,!0)},"any, DenseMatrix":function(e,t){return u(t,e,this,!0)},"Array, any":function(e,t){return u(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return u(r(t),e,this,!0).valueOf()}})})),lt="unequal",ut=(f(lt,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(lt,{"any, any":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:!n(e,t)}})})),f("FibonacciHeap",["smaller","larger"],(function(e){var t=e.smaller,n=e.larger,r=1/Math.log((1+Math.sqrt(5))/2);function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function s(e,t,n){t.left.right=t.right,t.right.left=t.left,n.degree--,n.child===t&&(n.child=t.right),0===n.degree&&(n.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1}function i(e,t){var n=t.parent;n&&(t.mark?(s(e,t,n),i(n)):t.mark=!0)}a.prototype.type="FibonacciHeap",a.prototype.isFibonacciHeap=!0,a.prototype.insert=function(e,n){var r={key:e,value:n,degree:0};if(this._minimum){var a=this._minimum;r.left=a,r.right=a.right,a.right=r,r.right.left=r,t(e,a.key)&&(this._minimum=r)}else r.left=r,r.right=r,this._minimum=r;return this._size++,r},a.prototype.size=function(){return this._size},a.prototype.clear=function(){this._minimum=null,this._size=0},a.prototype.isEmpty=function(){return 0===this._size},a.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var a=this._minimum,s=e.degree,i=e.child;s>0;){var l=i.right;i.left.right=i.right,i.right.left=i.left,i.left=a,i.right=a.right,a.right=i,i.right.left=i,i.parent=null,i=l,s--}return e.left.right=e.right,e.right.left=e.left,a=e===e.right?null:function(e,a){var s,i=Math.floor(Math.log(a)*r)+1,l=new Array(i),u=0,c=e;if(c)for(u++,c=c.right;c!==e;)u++,c=c.right;for(;u>0;){for(var h=c.degree,f=c.right;s=l[h];){if(n(c.key,s.key)){var d=s;s=c,c=d}o(s,c),l[h]=null,h++}l[h]=c,c=f,u--}e=null;for(var p=0;pm?d++:p===m&&(u=c(u,h(s[f],l[d])),f++,d++)}return u}});function o(e,t){var n,r,a=l(e),s=l(t);if(1===a.length)n=a[0];else{if(2!==a.length||1!==a[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+a.join(", ")+")");n=a[0]}if(1===s.length)r=s[0];else{if(2!==s.length||1!==s[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+s.join(", ")+")");r=s[0]}if(n!==r)throw new RangeError("Vectors must have equal length ("+n+" != "+r+")");if(0===n)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function l(e){return(0,i.SW)(e)?e.size():s(e)}})),ft=f("abs",["typed"],(function(e){return(0,e.typed)("abs",{number:ge,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.abs()}})})),dt="multiply",pt=f(dt,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],(function(e){var t=e.typed,n=e.matrix,r=e.addScalar,a=e.multiplyScalar,s=e.equalScalar,o=e.dot,l=Xe({typed:t,equalScalar:s}),c=je({typed:t});function h(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}}var f=t("_multiplyMatrixVector",{"DenseMatrix, any":function(e,n){var s,i=e._data,o=e._size,l=e._datatype,u=n._data,c=n._datatype,h=o[0],f=o[1],d=r,p=a;l&&c&&l===c&&"string"==typeof l&&(s=l,d=t.find(r,[s,s]),p=t.find(a,[s,s]));for(var m=[],g=0;gS)for(var I=0,A=0;A1)throw new Error("Only one dimensional matrices supported");return u(e.valueOf(),t,n)}if(Array.isArray(e))return u(e,t,n)}function u(e,t,a){if(t>=e.length)throw new Error("k out of bounds");for(var s=0;s=0){var h=e[u];e[u]=e[l],e[l]=h,--u}else++l;a(e[l],c)>0&&--l,t<=l?o=l:i=l+1}return e[t]}})),bt=f("bignumber",["typed","BigNumber"],(function(e){var t=e.typed,n=e.BigNumber;return t("bignumber",{"":function(){return new n(0)},number:function(e){return new n(e+"")},string:function(e){return new n(e)},BigNumber:function(e){return e},Fraction:function(e){return new n(e.n).div(e.d).times(e.s)},null:function(e){return new n(0)},"Array | Matrix":function(e){return ne(e,this)}})})),vt=f("numeric",["number","?bignumber","?fraction"],(function(e){var t=e.number,n=e.bignumber,r=e.fraction,a={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:function(e){return t(e)},BigNumber:n?function(e){return n(e)}:Je,Fraction:r?function(e){return r(e)}:Qe};return function(e,t){var n=(0,i.kM)(e);if(!(n in a))throw new TypeError("Cannot convert "+e+' of type "'+n+'"; valid input types are '+Object.keys(a).join(", "));if(!(t in s))throw new TypeError("Cannot convert "+e+' to type "'+t+'"; valid output types are '+Object.keys(s).join(", "));return t===n?e:s[t](e)}}));function wt(e,t,n){var r;return-1!==String(e).indexOf("Unexpected type")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):-1!==String(e).indexOf("complex numbers")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):e}var xt="subtract",_t=f(xt,["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],(function(e){var t=e.typed,n=e.matrix,r=e.equalScalar,a=e.addScalar,s=e.unaryMinus,i=e.DenseMatrix,o=ze({typed:t}),l=He({typed:t}),u=Ge({typed:t,equalScalar:r}),c=Ue({typed:t,DenseMatrix:i}),h=Ve({typed:t}),f=je({typed:t});return t(xt,{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n},"SparseMatrix, SparseMatrix":function(e,t){return kt(e,t),u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return kt(e,t),l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return kt(e,t),o(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return kt(e,t),h(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return c(e,s(t),a)},"DenseMatrix, any":function(e,t){return f(e,t,this)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(n(t),e,this,!0).valueOf()}})}));function kt(e,t){var n=e.size(),r=t.size();if(n.length!==r.length)throw new B(n.length,r.length)}var Et="equal",Ct=(f(Et,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(Et,{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:n(e,t)}})})),"divideScalar"),St=f(Ct,["typed","numeric"],(function(e){var t=e.typed,n=e.numeric;return t(Ct,{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var r=e.clone(),a=n(1,(0,i.kM)(t));return r.value=this(null===r.value?r._normalize(a):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.clone();r=r.pow(-1);var a=n(1,(0,i.kM)(e));return r.value=this(e,null===t.value?t._normalize(a):t.value),r},"Unit, Unit":function(e,t){return e.divide(t)}})})),Nt=f("Spa",["addScalar","equalScalar","FibonacciHeap"],(function(e){var t=e.addScalar,n=e.equalScalar,r=e.FibonacciHeap;function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new r}return a.prototype.type="Spa",a.prototype.isSpa=!0,a.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var n=this._heap.insert(e,t);this._values[e]=n}},a.prototype.get=function(e){var t=this._values[e];return t?t.value:0},a.prototype.accumulate=function(e,n){var r=this._values[e];r?r.value=t(r.value,n):(r=this._heap.insert(e,n),this._values[e]=r)},a.prototype.forEach=function(e,t,r){var a=this._heap,s=this._values,i=[],o=a.extractMinimum();for(o&&i.push(o);o&&o.key<=t;)o.key>=e&&(n(o.value,0)||r(o.key,o.value,this)),(o=a.extractMinimum())&&i.push(o);for(var l=0;l0&&e.forEach(0,n-1,(function(t,n){d._forEachRow(t,b,v,w,(function(r,a){r>t&&e.accumulate(r,h(i(a,n)))}))}));var I,A,D,T,F=n,R=e.get(n),O=r(R);e.forEach(n+1,o-1,(function(e,t){var n=r(t);u(n,O)&&(F=e,O=n,R=t)})),n!==F&&(d._swapRows(n,F,x[1],b,v,w),d._swapRows(n,F,C[1],_,k,E),e.swap(n,F),A=F,D=N[I=n],T=N[A],S[D]=A,S[T]=I,N[I]=T,N[A]=D),e.forEach(0,o-1,(function(e,t){e<=n?(_.push(t),k.push(e)):(t=s(t,R),c(t,0)||(b.push(t),v.push(e)))}))};for(n=0;n0)for(t=0;t=t)break;for(var p=f,m=0;!d[i.p[p]];)d[i.p[p]]=!0,p=i.p[p],m++;m%2==0&&h++}return h%2==0?u:s(u)}(e.clone().valueOf(),u);throw new RangeError("Matrix must be square (size: "+R(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+R(t)+")")}}})})),Dt=f("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],(function(e){var t=e.typed,n=e.matrix,r=e.divideScalar,a=e.addScalar,s=e.multiply,o=e.unaryMinus,l=e.det,u=e.identity,c=e.abs;return t("inv",{"Array | Matrix":function(e){var t=(0,i.SW)(e)?e.size():$(e);switch(t.length){case 1:if(1===t[0])return(0,i.SW)(e)?n([r(1,e.valueOf()[0])]):[r(1,e[0])];throw new RangeError("Matrix must be square (size: "+R(t)+")");case 2:var a=t[0],s=t[1];if(a===s)return(0,i.SW)(e)?n(h(e.valueOf(),a,s),e.storage()):h(e,a,s);throw new RangeError("Matrix must be square (size: "+R(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+R(t)+")")}},any:function(e){return r(1,e)}});function h(e,t,n){var i,h,f,d,p;if(1===t){if(0===(d=e[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,d)]]}if(2===t){var m=l(e);if(0===m)throw Error("Cannot calculate inverse, determinant is zero");return[[r(e[1][1],m),r(o(e[0][1]),m)],[r(o(e[1][0]),m),r(e[0][0],m)]]}var g=e.concat();for(i=0;iv&&(v=c(g[i][b]),w=i),i++;if(0===v)throw Error("Cannot calculate inverse, determinant is zero");(i=w)!==b&&(p=g[b],g[b]=g[i],g[i]=p,p=y[b],y[b]=y[i],y[i]=p);var x=g[b],_=y[b];for(i=0;i0&&(i=e[o]);return u(i,r)}var c=s(e,(t-1)/2);return l(c)}catch(e){throw wt(e,"median")}}var l=t({"number | BigNumber | Complex | Unit":function(e){return e}}),u=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(e,t){return r(n(e,t),2)}});return t(Mt,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":function(e,t){throw new Error("median(A, dim) is not yet supported")},"...":function(e){if(function(e){for(var t=0;t{"use strict";n.d(t,{gammaG:()=>a.Yc,gammaNumber:()=>a.wZ,gammaP:()=>a.lG,acoshNumber:()=>s.cw,acotNumber:()=>s.y,acothNumber:()=>s.LJ,acscNumber:()=>s.VL,acschNumber:()=>s.F4,asecNumber:()=>s.zq,asechNumber:()=>s.Pe,asinhNumber:()=>s.Rm,atanhNumber:()=>s.Sz,cotNumber:()=>s.Nw,cothNumber:()=>s.ws,cscNumber:()=>s.c$,cschNumber:()=>s.zr,secNumber:()=>s.wX,sechNumber:()=>s.pL,sinhNumber:()=>s.T$,isNaNNumber:()=>i.kU,isNegativeNumber:()=>i.Tk,isPositiveNumber:()=>i.r,isZeroNumber:()=>i.hG});var r=n(6802);n.o(r,"acoshNumber")&&n.d(t,{acoshNumber:function(){return r.acoshNumber}}),n.o(r,"acotNumber")&&n.d(t,{acotNumber:function(){return r.acotNumber}}),n.o(r,"acothNumber")&&n.d(t,{acothNumber:function(){return r.acothNumber}}),n.o(r,"acscNumber")&&n.d(t,{acscNumber:function(){return r.acscNumber}}),n.o(r,"acschNumber")&&n.d(t,{acschNumber:function(){return r.acschNumber}}),n.o(r,"asecNumber")&&n.d(t,{asecNumber:function(){return r.asecNumber}}),n.o(r,"asechNumber")&&n.d(t,{asechNumber:function(){return r.asechNumber}}),n.o(r,"asinhNumber")&&n.d(t,{asinhNumber:function(){return r.asinhNumber}}),n.o(r,"atanhNumber")&&n.d(t,{atanhNumber:function(){return r.atanhNumber}}),n.o(r,"cotNumber")&&n.d(t,{cotNumber:function(){return r.cotNumber}}),n.o(r,"cothNumber")&&n.d(t,{cothNumber:function(){return r.cothNumber}}),n.o(r,"cscNumber")&&n.d(t,{cscNumber:function(){return r.cscNumber}}),n.o(r,"cschNumber")&&n.d(t,{cschNumber:function(){return r.cschNumber}}),n.o(r,"gammaG")&&n.d(t,{gammaG:function(){return r.gammaG}}),n.o(r,"gammaNumber")&&n.d(t,{gammaNumber:function(){return r.gammaNumber}}),n.o(r,"gammaP")&&n.d(t,{gammaP:function(){return r.gammaP}}),n.o(r,"isNaNNumber")&&n.d(t,{isNaNNumber:function(){return r.isNaNNumber}}),n.o(r,"isNegativeNumber")&&n.d(t,{isNegativeNumber:function(){return r.isNegativeNumber}}),n.o(r,"isPositiveNumber")&&n.d(t,{isPositiveNumber:function(){return r.isPositiveNumber}}),n.o(r,"isZeroNumber")&&n.d(t,{isZeroNumber:function(){return r.isZeroNumber}}),n.o(r,"secNumber")&&n.d(t,{secNumber:function(){return r.secNumber}}),n.o(r,"sechNumber")&&n.d(t,{sechNumber:function(){return r.sechNumber}}),n.o(r,"sinhNumber")&&n.d(t,{sinhNumber:function(){return r.sinhNumber}});var a=n(9065),s=n(333),i=n(6493)},9065:(e,t,n)=>{"use strict";n.d(t,{wZ:()=>s,Yc:()=>i,lG:()=>o});var r=n(4008),a=n(2424);function s(e){var t;if((0,r.U)(e))return e<=0?isFinite(e)?1/0:NaN:e>171?1/0:(0,a.O)(1,e-1);if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*s(1-e));if(e>=171.35)return 1/0;if(e>85){var n=e*e,l=n*e,u=l*e,c=u*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*n)-139/(51840*l)-571/(2488320*u)+163879/(209018880*c)+5246819/(75246796800*c*e))}--e,t=o[0];for(var h=1;h{},333:(e,t,n)=>{"use strict";n.d(t,{cw:()=>s,y:()=>i,LJ:()=>o,VL:()=>l,F4:()=>u,zq:()=>c,Pe:()=>h,Rm:()=>f,Sz:()=>d,Nw:()=>p,ws:()=>m,c$:()=>g,zr:()=>y,wX:()=>b,pL:()=>v,T$:()=>w});var r=n(4008),a="number";function s(e){return(0,r.__)(e)}function i(e){return Math.atan(1/e)}function o(e){return isFinite(e)?(Math.log((e+1)/e)+Math.log(e/(e-1)))/2:0}function l(e){return Math.asin(1/e)}function u(e){var t=1/e;return Math.log(t+Math.sqrt(t*t+1))}function c(e){return Math.acos(1/e)}function h(e){var t=1/e,n=Math.sqrt(t*t-1);return Math.log(n+t)}function f(e){return(0,r.Vf)(e)}function d(e){return(0,r.C8)(e)}function p(e){return 1/Math.tan(e)}function m(e){var t=Math.exp(2*e);return(t+1)/(t-1)}function g(e){return 1/Math.sin(e)}function y(e){return 0===e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*(0,r.Xx)(e)}function b(e){return 1/Math.cos(e)}function v(e){return 2/(Math.exp(e)+Math.exp(-e))}function w(e){return(0,r.R_)(e)}s.signature=a,i.signature=a,o.signature=a,l.signature=a,u.signature=a,c.signature=a,h.signature=a,f.signature=a,d.signature=a,p.signature=a,m.signature=a,g.signature=a,y.signature=a,b.signature=a,v.signature=a,w.signature=a},6493:(e,t,n)=>{"use strict";n.d(t,{Tk:()=>a,r:()=>s,hG:()=>i,kU:()=>o}),n(4008);var r="number";function a(e){return e<0}function s(e){return e>0}function i(e){return 0===e}function o(e){return Number.isNaN(e)}a.signature=r,s.signature=r,i.signature=r,o.signature=r},4080:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return"number"==typeof e}function s(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function i(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isComplex||!1}function o(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isFraction||!1}function l(e){return e&&!0===e.constructor.prototype.isUnit||!1}function u(e){return"string"==typeof e}n.d(t,{hj:()=>a,l9:()=>s,Mc:()=>i,yQ:()=>o,wr:()=>l,HD:()=>u,kJ:()=>c,SW:()=>h,uZ:()=>f,jH:()=>d,sA:()=>p,bR:()=>m,dh:()=>g,jn:()=>y,cB:()=>b,x1:()=>v,mf:()=>w,J_:()=>x,Kj:()=>_,Kn:()=>k,Ft:()=>E,o8:()=>C,Yz:()=>S,j0:()=>N,Bp:()=>I,zh:()=>A,tS:()=>D,nu:()=>T,l7:()=>F,VO:()=>R,Cl:()=>O,UG:()=>B,Lr:()=>M,bV:()=>$,Ig:()=>P,ex:()=>L,FG:()=>z,qg:()=>W,kM:()=>U});var c=Array.isArray;function h(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function f(e){return Array.isArray(e)||h(e)}function d(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function p(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function m(e){return e&&!0===e.constructor.prototype.isRange||!1}function g(e){return e&&!0===e.constructor.prototype.isIndex||!1}function y(e){return"boolean"==typeof e}function b(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function v(e){return e&&!0===e.constructor.prototype.isHelp||!1}function w(e){return"function"==typeof e}function x(e){return e instanceof Date}function _(e){return e instanceof RegExp}function k(e){return!(!e||"object"!==r(e)||e.constructor!==Object||i(e)||o(e))}function E(e){return null===e}function C(e){return void 0===e}function S(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function N(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function I(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function A(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function O(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function B(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function M(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function $(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function P(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function L(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function z(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function W(e){return e&&!0===e.constructor.prototype.isChain||!1}function U(e){var t=r(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":s(e)?"BigNumber":i(e)?"Complex":o(e)?"Fraction":h(e)?"Matrix":l(e)?"Unit":g(e)?"Index":m(e)?"Range":b(e)?"ResultSet":B(e)?e.type:W(e)?"Chain":v(e)?"Help":"Object":"function"===t?"Function":t}},4008:(e,t,n)=>{"use strict";n.d(t,{U:()=>a,Xx:()=>s,k3:()=>i,mv:()=>o,Kr:()=>l,eK:()=>u,t$:()=>c,WU:()=>h,FH:()=>d,nz:()=>y,RI:()=>v,__:()=>w,Vf:()=>x,C8:()=>_,f9:()=>k,R_:()=>E,AE:()=>C});var r=n(4080);function a(e){return"boolean"==typeof e||!!isFinite(e)&&e===Math.round(e)}var s=Math.sign||function(e){return e>0?1:e<0?-1:0},i=Math.log2||function(e){return Math.log(e)/Math.LN2},o=Math.log10||function(e){return Math.log(e)/Math.LN10},l=Math.log1p||function(e){return Math.log(e+1)},u=Math.cbrt||function(e){if(0===e)return e;var t,n=e<0;return n&&(e=-e),t=isFinite(e)?(e/((t=Math.exp(Math.log(e)/3))*t)+2*t)/3:e,n?-t:t},c=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function h(e,t){if("function"==typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n,a="auto";switch(t&&(t.notation&&(a=t.notation),(0,r.hj)(t)?n=t:(0,r.hj)(t.precision)&&(n=t.precision)),a){case"fixed":return d(e,n);case"exponential":return p(e,n);case"engineering":return function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=m(f(e),t),a=n.exponent,s=n.coefficients,i=a%3==0?a:a<0?a-3-a%3:a-a%3;if((0,r.hj)(t))for(;t>s.length||a-i+1>s.length;)s.push(0);else for(var o=Math.abs(a-i)-(s.length-1),l=0;l0;)c++,u--;var h=s.slice(c).join(""),d=(0,r.hj)(t)&&h.length||h.match(/[1-9]/)?"."+h:"",p=s.slice(0,c).join("")+d+"e"+(a>=0?"+":"")+i.toString();return n.sign+p}(e,n);case"auto":return function(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&void 0!==n.lowerExp?n.lowerExp:-3,a=n&&void 0!==n.upperExp?n.upperExp:5,s=f(e),i=t?m(s,t):s;if(i.exponent=a)return p(e,t);var o=i.coefficients,l=i.exponent;o.length0?l:0;return u<(o=g(-l).concat(o)).length-1&&o.splice(u+1,0,"."),i.sign+o.join("")}(e,n,t&&t).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", or "fixed".')}}function f(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var n=t[1],r=t[2],a=parseFloat(t[4]||"0"),s=r.indexOf(".");a+=-1!==s?s-1:r.length-1;var i=r.replace(".","").replace(/^0*/,(function(e){return a-=e.length,""})).replace(/0*$/,"").split("").map((function(e){return parseInt(e)}));return 0===i.length&&(i.push(0),a++),{sign:n,coefficients:i,exponent:a}}function d(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=f(e),r="number"==typeof t?m(n,n.exponent+1+t):n,a=r.coefficients,s=r.exponent+1,i=s+(t||0);return a.length0?"."+a.join(""):"")+"e"+(s>=0?"+":"")+s}function m(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t&&r.splice(t,r.length-t)[0]>=5){var a=t-1;for(r[a]++;10===r[a];)r.pop(),0===a&&(r.unshift(0),n.exponent++,a++),r[--a]++}return n}function g(e){for(var t=[],n=0;n{"use strict";function r(e,t){if(t>1;return r(e,n)*r(n+1,t)}n.d(t,{O:()=>r})},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",o=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,s=Object.create(a.prototype),i=new I(r||[]);return s._invoke=function(e,t,n){var r=h;return function(a,s){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===a)throw s;return D()}for(n.method=a,n.arg=s;;){var i=n.delegate;if(i){var o=C(i,n);if(o){if(o===m)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(e,n,i),s}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",m={};function g(){}function y(){}function b(){}var v={};v[s]=function(){return this};var w=Object.getPrototypeOf,x=w&&w(w(A([])));x&&x!==n&&r.call(x,s)&&(v=x);var _=b.prototype=g.prototype=Object.create(v);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,s,i,o){var l=c(e[a],e,s);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,i,o)}),(function(e){n("throw",e,i,o)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,o)}))}o(l.arg)}var a;this._invoke=function(e,r){function s(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(s,s):s()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=c(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var s=a.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function A(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function n(){for(;++a=0;--s){var i=this.tryEntries[s],o=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},7905:(e,t,n)=>{"use strict";var r=256,a=[],s=void 0===n.g?window:n.g,i=Math.pow(r,6),o=Math.pow(2,52),l=2*o,u=255,c=Math.random;function h(e){var t,n=e.length,a=this,s=0,i=a.i=a.j=0,o=a.S=[];for(n||(e=[n++]);s=l;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=c},d(Math.random(),a)},6377:(e,t,n)=>{var r=n(4832),a=n(8652),s=n(801),i=n(2030),o=n(3618),l=n(9049),u=n(1971);u.alea=r,u.xor128=a,u.xorwow=s,u.xorshift7=i,u.xor4096=o,u.tychei=l,e.exports=u},4832:function(e,t,n){var r;!function(e,a,s){function i(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},9049:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},8652:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},3618:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,s=t.i;return t.w=r=r+1640531527|0,n=a[s+34&127],e=a[s=s+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[s]=n^e,t.i=s,n+(r^r>>>16)|0},function(e,t){var n,r,a,s,i,o=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,s=-32;s>>15,r^=r<<4,r^=r>>>13,s>=0&&(i=i+1640531527|0,a=0==(n=o[127&s]^=r+i)?a+1:0);for(a>=128&&(o[127&(t&&t.length||0)]=-1),a=127,s=512;s>0;--s)r=o[a+34&127],n=o[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,o[a]=r^n;e.w=i,e.X=o,e.i=a}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},2030:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},801:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},1971:(e,t,n)=>{var r;!function(a,s){var i,o=this,l=256,u=s.pow(l,6),c=s.pow(2,52),h=2*c,f=255;function d(e,t,n){var r=[],f=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),d=new p(r),v=function(){for(var e=d.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return v.int32=function(){return 0|d.g(4)},v.quick=function(){return d.g(4)/4294967296},v.double=v,y(b(d.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,d),e.state=function(){return m(d,{})}),n?(s.random=e,t):e})(v,f,"global"in t?t.global:this==s,t.state)}function p(e){var t,n=e.length,r=this,a=0,s=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);a{"use strict";const r=n(1903),a=n(4658),s=n(5413),i=["","›"],o=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=[...e.normalize()];n="number"==typeof n?n:l.length;let u=!1,c=null,h=0,f="";for(const[d,p]of l.entries()){let l=!1;if(i.includes(p)){u=!0;const t=/\d[^m]*/.exec(e.slice(d,d+18));c=39===t?null:t}else u&&"m"===p&&(u=!1,l=!0);if(u||l||++h,!a({exact:!0}).test(p)&&r(p.codePointAt())&&++h,h>t&&h<=n)f+=p;else if(h!==t||u||null===c||39===c){if(h>=n){null!==c&&(f+=o(s.codes.get(parseInt(c,10))||39));break}}else f+=o(c)}return f}},5413:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(6465),a=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},s=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const a=r[n];t[n]={open:`[${a[0]}m`,close:`[${a[1]}m`},r[n]=t[n],e.set(a[0],a[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,o=(e,t,n)=>[e,t,n];t.color.close="",t.bgColor.close="",t.color.ansi={ansi:a(n,0)},t.color.ansi256={ansi256:s(n,0)},t.color.ansi16m={rgb:i(o,0)},t.bgColor.ansi={ansi:a(n,10)},t.bgColor.ansi256={ansi256:s(n,10)},t.bgColor.ansi16m={rgb:i(o,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=a(n.ansi16,0),t.bgColor.ansi[e]=a(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=s(n.ansi256,0),t.bgColor.ansi256[e]=s(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=i(n.rgb,0),t.bgColor.ansi16m[e]=i(n.rgb,10))}return t}})},1025:(e,t,n)=>{var r=n(3645),a={};for(var s in r)r.hasOwnProperty(s)&&(a[r[s]]=s);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in i)if(i.hasOwnProperty(o)){if(!("channels"in i[o]))throw new Error("missing channels property: "+o);if(!("labels"in i[o]))throw new Error("missing channel labels property: "+o);if(i[o].labels.length!==i[o].channels)throw new Error("channel and label counts mismatch: "+o);var l=i[o].channels,u=i[o].labels;delete i[o].channels,delete i[o].labels,Object.defineProperty(i[o],"channels",{value:l}),Object.defineProperty(i[o],"labels",{value:u})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,a=e[1]/255,s=e[2]/255,i=Math.min(r,a,s),o=Math.max(r,a,s),l=o-i;return o===i?t=0:r===o?t=(a-s)/l:a===o?t=2+(s-r)/l:s===o&&(t=4+(r-a)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(i+o)/2,[t,100*(o===i?0:n<=.5?l/(o+i):l/(2-o-i)),100*n]},i.rgb.hsv=function(e){var t,n,r,a,s,i=e[0]/255,o=e[1]/255,l=e[2]/255,u=Math.max(i,o,l),c=u-Math.min(i,o,l),h=function(e){return(u-e)/6/c+.5};return 0===c?a=s=0:(s=c/u,t=h(i),n=h(o),r=h(l),i===u?a=r-n:o===u?a=1/3+t-r:l===u&&(a=2/3+n-t),a<0?a+=1:a>1&&(a-=1)),[360*a,100*s,100*u]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-a)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-a-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var t=a[e];if(t)return t;var n,s,i,o=1/0;for(var l in r)if(r.hasOwnProperty(l)){var u=(s=e,i=r[l],Math.pow(s[0]-i[0],2)+Math.pow(s[1]-i[1],2)+Math.pow(s[2]-i[2],2));u.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},i.hsl.rgb=function(e){var t,n,r,a,s,i=e[0]/360,o=e[1]/100,l=e[2]/100;if(0===o)return[s=255*l,s,s];t=2*l-(n=l<.5?l*(1+o):l+o-l*o),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,s=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,a[u]=255*s;return a},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,a=n,s=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=s<=1?s:2-s,[t,100*(0===r?2*a/(s+a):2*n/(r+n)),(r+n)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,a=Math.floor(t)%6,s=t-Math.floor(t),i=255*r*(1-n),o=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,a){case 0:return[r,l,i];case 1:return[o,r,i];case 2:return[i,r,l];case 3:return[i,o,r];case 4:return[l,i,r];case 5:return[r,i,o]}},i.hsv.hsl=function(e){var t,n,r,a=e[0],s=e[1]/100,i=e[2]/100,o=Math.max(i,.01);return r=(2-s)*i,n=s*o,[a,100*(n=(n/=(t=(2-s)*o)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,a,s,i,o,l=e[0]/360,u=e[1]/100,c=e[2]/100,h=u+c;switch(h>1&&(u/=h,c/=h),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),a=u+r*((n=1-c)-u),t){default:case 6:case 0:s=n,i=a,o=u;break;case 1:s=a,i=n,o=u;break;case 2:s=u,i=n,o=a;break;case 3:s=u,i=a,o=n;break;case 4:s=a,i=u,o=n;break;case 5:s=n,i=u,o=a}return[255*s,255*i,255*o]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,a=e[3]/100;return[255*(1-Math.min(1,t*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},i.xyz.rgb=function(e){var t,n,r,a=e[0]/100,s=e[1]/100,i=e[2]/100;return n=-.9689*a+1.8758*s+.0415*i,r=.0557*a+-.204*s+1.057*i,t=(t=3.2406*a+-1.5372*s+-.4986*i)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,a=e[0];t=e[1]/500+(n=(a+16)/116),r=n-e[2]/200;var s=Math.pow(n,3),i=Math.pow(t,3),o=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,r=o>.008856?o:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],a=e[2];return(t=360*Math.atan2(a,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+a*a),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],a=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(a=Math.round(a/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255,s=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),o=s-i;return t=o<=0?0:s===n?(r-a)/o%6:s===r?2+(a-n)/o:4+(n-r)/o+4,t/=6,[360*(t%=1),100*o,100*(o<1?i/(1-o):0)]},i.hsl.hcg=function(e){var t,n=e[1]/100,r=e[2]/100,a=0;return(t=r<.5?2*n*r:2*n*(1-r))<1&&(a=(r-.5*t)/(1-t)),[e[0],100*t,100*a]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var a,s=[0,0,0],i=t%1*6,o=i%1,l=1-o;switch(Math.floor(i)){case 0:s[0]=1,s[1]=o,s[2]=0;break;case 1:s[0]=l,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=o;break;case 3:s[0]=0,s[1]=l,s[2]=1;break;case 4:s[0]=o,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=l}return a=(1-n)*r,[255*(n*s[0]+a),255*(n*s[1]+a),255*(n*s[2]+a)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},6465:(e,t,n)=>{var r=n(1025),a=n(3340),s={};Object.keys(r).forEach((function(e){s[e]={},Object.defineProperty(s[e],"channels",{value:r[e].channels}),Object.defineProperty(s[e],"labels",{value:r[e].labels});var t=a(e);Object.keys(t).forEach((function(n){var r=t[n];s[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,a=0;a1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=s},3340:(e,t,n)=>{var r=n(1025);function a(e,t){return function(n){return t(e(n))}}function s(e,t){for(var n=[t[e].parent,e],s=r[t[e].parent][e],i=t[e].parent;t[i].parent;)n.unshift(t[i].parent),s=a(r[t[i].parent][i],s),i=t[i].parent;return s.conversion=n,s}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,a=0;a{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},6484:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(1763)),a=i(n(7037)),s=i(n(3393));function i(e){return e&&e.__esModule?e:{default:e}}const o=["left","right","center"];t.default=(e,t,n)=>{if(!(0,a.default)(e))throw new TypeError("Subject parameter value must be a string.");if(!(0,r.default)(t))throw new TypeError("Container width parameter value must be a number.");const i=(0,s.default)(e);if(i>t)throw new Error("Subject parameter value width cannot be greater than the container width.");if(!(0,a.default)(n))throw new TypeError("Alignment parameter value must be a string.");if(!o.includes(n))throw new Error("Alignment parameter value must be a known alignment parameter value (left, right, center).");if(0===i)return" ".repeat(t);const l=t-i;return"left"===n?((e,t)=>e+" ".repeat(t))(e,l):"right"===n?((e,t)=>" ".repeat(t)+e)(e,l):((e,t)=>{let n;return n=t/2,n%2==0?" ".repeat(n)+e+" ".repeat(n):(n=Math.floor(n)," ".repeat(n)+e+" ".repeat(n+1))})(e,l)}},6411:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(3393)),a=s(n(6484));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const s=t.columns[n];return(0,r.default)(e)===s.width?e:(0,a.default)(e,s.width,s.alignment)}))))},8247:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(7037)),a=s(n(7810));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n=!1)=>{if(!(0,r.default)(e))throw new TypeError("Value must be a string.");if(!Number.isInteger(t))throw new TypeError("Column width must be an integer.");if(t<1)throw new Error("Column width must be greater than 0.");return(0,a.default)(e,t,n).length}},6078:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(3393))&&r.__esModule?r:{default:r};t.default=e=>e.map((e=>Math.max(...e.split("\n").map((e=>(0,a.default)(e))))))},3819:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(6078))&&r.__esModule?r:{default:r};t.default=e=>{if(!e[0])throw new Error("Dataset must have at least one row.");const t=new Array(e[0].length).fill(0);return e.forEach((e=>{(0,a.default)(e).forEach(((e,n)=>{t[n]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(6162)),a=o(n(1584)),s=o(n(1763)),i=o(n(8247));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{const n=e[0].length,o=[];return e.forEach((e=>{const l=new Array(n).fill(1);e.forEach(((e,n)=>{if(!(0,s.default)(t.columns[n].width))throw new TypeError("column[index].width must be a number.");if(!(0,a.default)(t.columns[n].wrapWord))throw new TypeError("column[index].wrapWord must be a boolean.");l[n]=(0,i.default)(e,t.columns[n].width,t.columns[n].wrapWord)})),o.push((0,r.default)(l))})),o}},6955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(6604)),a=m(n(2628)),s=m(n(691)),i=m(n(7884)),o=m(n(9045)),l=n(8417),u=m(n(9466)),c=m(n(8381)),h=m(n(1741)),f=m(n(6411)),d=m(n(4220)),p=m(n(5970));function m(e){return e&&e.__esModule?e:{default:e}}const g=(e,t)=>{let n;n=(0,u.default)(e),n=(0,c.default)(e,t);const r=(0,p.default)(n,t);return n=(0,h.default)(n,r,t),n=(0,f.default)(n,t),n=(0,d.default)(n,t),n};t.default=(e={})=>{const t=(0,i.default)(e),n=(0,a.default)((0,r.default)(t.columns,(e=>e.width+e.paddingLeft+e.paddingRight)));let u;return u=!0,{write:e=>{if(e.length!==t.columnCount)throw new Error("Row cell count does not match the config.columnCount.");return u?(u=!1,((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a;a="",a+=(0,l.drawBorderTop)(t,n.border),a+=r,a+=(0,l.drawBorderBottom)(t,n.border),a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)):((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a="";const i=(0,l.drawBorderBottom)(t,n.border);"\n"!==i&&(a="\r"),a+=(0,l.drawBorderJoin)(t,n.border),a+=r,a+=i,a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)}}}},8417:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawBorderTop=t.drawBorderJoin=t.drawBorderBottom=t.drawBorder=void 0;const n=(e,t)=>{const n=e.map((e=>t.body.repeat(e))).join(t.join);return t.left+n+t.right+"\n"};t.drawBorder=n,t.drawBorderTop=(e,t)=>{const r=n(e,{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight});return"\n"===r?"":r},t.drawBorderJoin=(e,t)=>n(e,{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight}),t.drawBorderBottom=(e,t)=>n(e,{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight})},9045:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>t.bodyLeft+e.join(t.bodyJoin)+t.bodyRight+"\n"},9658:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=n(8417),s=(r=n(9045))&&r.__esModule?r:{default:r};t.default=(e,t,n,r,i,o)=>{let l,u,c;const h=e.length;return u=0,l="",i(u,h)&&(l+=(0,a.drawBorderTop)(n,t)),e.forEach(((e,f)=>{l+=(0,s.default)(e,t),c||(c=r[u],u++),c--,!o&&0===c&&f!==h-1&&i(u,h)&&(l+=(0,a.drawBorderJoin)(n,t))})),i(u,h)&&(l+=(0,a.drawBorderBottom)(n,t)),l}},9487:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if("honeywell"===e)return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼"};if("norc"===e)return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼"};if("ramac"===e)return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|"};if("void"===e)return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:""};throw new Error('Unknown border template "'+e+'".')}},107:(e,t,n)=>{"use strict";Object.defineProperty(t,"Kz",{enumerable:!0,get:function(){return r.default}});var r=a(n(3848));a(n(6955)),a(n(9487));function a(e){return e&&e.__esModule?e:{default:e}}},6482:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(361)),a=u(n(2353)),s=u(n(8913)),i=u(n(9487)),o=u(n(11)),l=u(n(3819));function u(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{(0,o.default)("config.json",t);const n=(0,r.default)(t);return n.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(n.border),n.columns=((e,t={},n={})=>{const r=(0,l.default)(e);return(0,s.default)(e[0].length,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,width:r[e],wrapWord:!1},n,t[e])})),t})(e,n.columns,n.columnDefault),n.drawHorizontalLine||(n.drawHorizontalLine=()=>!0),void 0===n.singleLine&&(n.singleLine=!1),n}},7884:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(361)),a=l(n(2353)),s=l(n(8913)),i=l(n(9487)),o=l(n(11));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e={})=>{(0,o.default)("streamConfig.json",e);const t=(0,r.default)(e);if(!t.columnDefault||!t.columnDefault.width)throw new Error("Must provide config.columnDefault.width when creating a stream.");if(!t.columnCount)throw new Error("Must provide config.columnCount.");return t.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(t.border),t.columns=((e,t={},n={})=>((0,s.default)(e,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,wrapWord:!1},n,t[e])})),t))(t.columnCount,t.columns,t.columnDefault),t}},1741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(5564)),a=i(n(8913)),s=i(n(7810));function i(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const i=e[0].length,o=e.map(((e,r)=>{const o=(0,a.default)(t[r],(()=>new Array(i).fill("")));return e.forEach(((e,t)=>{(0,s.default)(e,n.columns[t].width,n.columns[t].wrapWord).forEach(((e,n)=>{o[n][t]=e}))})),o}));return(0,r.default)(o)}},4220:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const r=t.columns[n];return" ".repeat(r.paddingLeft)+e+" ".repeat(r.paddingRight)}))))},9466:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.map((e=>e.map(String)))},3848:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(9658)),a=d(n(6078)),s=d(n(6482)),i=d(n(5970)),o=d(n(1741)),l=d(n(6411)),u=d(n(4220)),c=d(n(3522)),h=d(n(9466)),f=d(n(8381));function d(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{let n;(0,c.default)(e),n=(0,h.default)(e);const d=(0,s.default)(n,t);n=(0,f.default)(e,d);const p=(0,i.default)(n,d);n=(0,o.default)(n,p,d),n=(0,l.default)(n,d),n=(0,u.default)(n,d);const m=(0,a.default)(n[0]);return(0,r.default)(n,d.border,m,p,d.drawHorizontalLine,d.singleLine)}},8381:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(9138))&&r.__esModule?r:{default:r};t.default=(e,t)=>e.map((e=>e.map(((e,n)=>(0,a.default)(e,{length:t.columns[n].truncate})))))},11:(e,t,n)=>{"use strict";var r=n(4538),a=function(){new RegExp("^[0-9]+$");var e=[],t=(new RegExp("^[0-9]+$"),function t(r,a,s,i,o){var l=null,u=0;if(void 0===o&&(o=r),r&&"object"==typeof r&&!Array.isArray(r)){for(var c in r)if(!t.schema.properties.hasOwnProperty(c)){var h={keyword:"additionalProperties",dataPath:(a||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}void 0!==r.topBody&&(n(r.topBody,(a||"")+".topBody",r,"topBody",o)||(u=(l=null===l?n.errors:l.concat(n.errors)).length)),void 0!==r.topJoin&&(e[2](r.topJoin,(a||"")+".topJoin",r,"topJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topLeft&&(e[2](r.topLeft,(a||"")+".topLeft",r,"topLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topRight&&(e[2](r.topRight,(a||"")+".topRight",r,"topRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomBody&&(e[2](r.bottomBody,(a||"")+".bottomBody",r,"bottomBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomJoin&&(e[2](r.bottomJoin,(a||"")+".bottomJoin",r,"bottomJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomLeft&&(e[2](r.bottomLeft,(a||"")+".bottomLeft",r,"bottomLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomRight&&(e[2](r.bottomRight,(a||"")+".bottomRight",r,"bottomRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyLeft&&(e[2](r.bodyLeft,(a||"")+".bodyLeft",r,"bodyLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyRight&&(e[2](r.bodyRight,(a||"")+".bodyRight",r,"bodyRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyJoin&&(e[2](r.bodyJoin,(a||"")+".bodyJoin",r,"bodyJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinBody&&(e[2](r.joinBody,(a||"")+".joinBody",r,"joinBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinLeft&&(e[2](r.joinLeft,(a||"")+".joinLeft",r,"joinLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinRight&&(e[2](r.joinRight,(a||"")+".joinRight",r,"joinRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinJoin&&(e[2](r.joinJoin,(a||"")+".joinJoin",r,"joinJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length))}else h={keyword:"type",dataPath:(a||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return t.errors=l,0===u});t.schema={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"}},additionalProperties:!1},t.errors=null,e[1]=t;var n=(new RegExp("^[0-9]+$"),function e(t,n,r,a,s){var i=null,o=0;if("string"!=typeof t){var l={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"string"},message:"should be string"};null===i?i=[l]:i.push(l),o++}return e.errors=i,0===o});n.schema={type:"string"},n.errors=null,e[2]=n;var a,s=(a=new RegExp("^[0-9]+$"),function e(t,n,r,s,o){var l=null,u=0;if(void 0===o&&(o=t),t&&"object"==typeof t&&!Array.isArray(t)){for(var c in t)if(!a.test(c)){var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}for(var c in t)a.test(c)&&(i(t[c],(n||"")+"['"+c+"']",t,c,o)||(u=(l=null===l?i.errors:l.concat(i.errors)).length))}else h={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return e.errors=l,0===u});s.schema={type:"object",patternProperties:{"^[0-9]+$":{$ref:"#/definitions/column"}},additionalProperties:!1},s.errors=null,e[3]=s;var i=(new RegExp("^[0-9]+$"),function e(t,n,a,s,i){var o=null,l=0;if(t&&"object"==typeof t&&!Array.isArray(t)){var u=!0;for(var c in t)if("alignment"!=c&&"width"!=c&&"wrapWord"!=c&&"truncate"!=c&&"paddingLeft"!=c&&"paddingRight"!=c){u=!1;var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===o?o=[h]:o.push(h),l++}var f=t.alignment;if(void 0!==f){var d=l;"string"!=typeof f&&(h={keyword:"type",dataPath:(n||"")+".alignment",schemaPath:"#/properties/alignment/type",params:{type:"string"},message:"should be string"},null===o?o=[h]:o.push(h),l++);var p=e.schema.properties.alignment.enum;u=!1;for(var m=0;m{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if(!Array.isArray(e))throw new TypeError("Table data must be an array.");if(0===e.length)throw new Error("Table must define at least one row.");if(0===e[0].length)throw new Error("Table must define at least one column.");const t=e[0].length;var n=!0,r=!1,a=void 0;try{for(var s,i=e[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){const e=s.value;if(!Array.isArray(e))throw new TypeError("Table row data must be an array.");if(e.length!==t)throw new Error("Table must have a consistent number of cells.");var o=!0,l=!1,u=void 0;try{for(var c,h=e[Symbol.iterator]();!(o=(c=h.next()).done);o=!0){const e=c.value;if(/[\u0001-\u0006\u0008-\u0009\u000B-\u001A]/.test(e))throw new Error("Table data must not contain control characters.")}}catch(e){l=!0,u=e}finally{try{o||null==h.return||h.return()}finally{if(l)throw u}}}}catch(e){r=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw a}}}},7810:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(6213)),a=s(n(8624));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const s=e.split("\n");for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[];do{s.push((0,r.default)(n,0,t)),n=(0,r.default)(n,t).trim()}while((0,a.default)(n));return s}},8624:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[],i=new RegExp("(^.{1,"+t+"}(\\s+|$))|(^.{1,"+(t-1)+"}(\\\\|/|_|\\.|,|;|-))");do{let e;e=n.match(i),e?(e=e[0],n=(0,r.default)(n,(0,a.default)(e)),e=e.trim()):(e=(0,r.default)(n,0,t),n=(0,r.default)(n,t)),s.push(e)}while((0,a.default)(n));return s}},5113:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},8175:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},3393:(e,t,n)=>{"use strict";const r=n(3377),a=n(1903),s=n(8175)();e.exports=e=>{if("string"!=typeof(e=e.replace(s," "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||r>=768&&r<=879||(r>65535&&n++,t+=a(r)?2:1)}return t}},3377:(e,t,n)=>{"use strict";const r=n(5113),a=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=a,e.exports.default=a},2287:function(e,t){"use strict";var n,r;void 0===(r="function"==typeof(n=function(){function e(){return!0}function t(){return!1}function n(){}return function r(){var a=[{name:"number",test:function(e){return"number"==typeof e}},{name:"string",test:function(e){return"string"==typeof e}},{name:"boolean",test:function(e){return"boolean"==typeof e}},{name:"Function",test:function(e){return"function"==typeof e}},{name:"Array",test:Array.isArray},{name:"Date",test:function(e){return e instanceof Date}},{name:"RegExp",test:function(e){return e instanceof RegExp}},{name:"Object",test:function(e){return"object"==typeof e&&null!==e&&e.constructor===Object}},{name:"null",test:function(e){return null===e}},{name:"undefined",test:function(e){return void 0===e}}],s={name:"any",test:e},i=[],o=[],l={types:a,conversions:o,ignore:i};function u(e){var t=L(l.types,(function(t){return t.name===e}));if(t)return t;if("any"===e)return s;var n=L(l.types,(function(t){return t.name.toLowerCase()===e.toLowerCase()}));throw new TypeError('Unknown type "'+e+'"'+(n?'. Did you mean "'+n.name+'"?':""))}function c(e){return e===s?999:l.types.indexOf(e)}function h(e){var t=L(l.types,(function(t){return t.test(e)}));if(t)return t.name;throw new TypeError("Value has unknown type. Value: "+e)}function f(e){return e.map((function(e){var t=e.types.map(w);return(e.restParam?"...":"")+t.join("|")})).join(",")}function d(e,t){var n=0===e.indexOf("..."),r=(n?e.length>3?e.slice(3):"any":e).split("|").map(F).filter(R).filter(T),a=function(e,t){var n={};return e.forEach((function(e){-1!==t.indexOf(e.from)||-1===t.indexOf(e.to)||n[e.from]||(n[e.from]=e)})),Object.keys(n).map((function(e){return n[e]}))}(t,r),s=r.map((function(e){var t=u(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}})),i=a.map((function(e){var n=u(e.from);return{name:e.from,typeIndex:c(n),test:n.test,conversion:e,conversionIndex:t.indexOf(e)}}));return{types:s.concat(i),restParam:n}}function p(e){var t=M(e);return!!t&&t.restParam}function m(e){return e.types.some((function(e){return null!=e.conversion}))}function g(t){if(t&&0!==t.types.length){if(1===t.types.length)return u(t.types[0].name).test;if(2===t.types.length){var n=u(t.types[0].name).test,r=u(t.types[1].name).test;return function(e){return n(e)||r(e)}}var a=t.types.map((function(e){return u(e.name).test}));return function(e){for(var t=0;t=s+1}}return 0===e.length?function(e){return 0===e.length}:1===e.length?(n=g(e[0]),function(e){return n(e[0])&&1===e.length}):2===e.length?(n=g(e[0]),r=g(e[1]),function(e){return n(e[0])&&r(e[1])&&2===e.length}):(t=e.map(g),function(e){for(var n=0;n0){var u=h(t[s]);return(r=new TypeError("Unexpected type of argument in function "+i+" (expected: "+a.join(" or ")+", actual: "+u+", index: "+s+")")).data={category:"wrongType",fn:i,index:s,actual:u,expected:a},r}}else o=l}var c=o.map((function(e){return p(e.params)?1/0:e.params.length}));if(t.lengthf?((r=new TypeError("Too many arguments in function "+i+" (expected: "+f+", actual: "+t.length+")")).data={category:"tooManyArgs",fn:i,index:t.length,expectedLength:f},r):((r=new TypeError('Arguments of type "'+t.join(", ")+'" do not match any of the defined signatures of function '+i+".")).data={category:"mismatch",actual:t.map(h)},r)}function E(e){for(var t=999,n=0;n=a:o?a>=s:a===s}(t,e)}));if(t)throw new TypeError('Conflicting signatures "'+f(t.params)+'" and "'+f(e.params)+'".');a.push(e)}));var s=z(a,(function(e){return(e?A(e.params,!1):[]).map((function(t){return{params:t,fn:e.fn}}))})).filter(O);s.sort(N);var i=s[0]&&s[0].params.length<=2&&!p(s[0].params),o=s[1]&&s[1].params.length<=2&&!p(s[1].params),u=s[2]&&s[2].params.length<=2&&!p(s[2].params),c=s[3]&&s[3].params.length<=2&&!p(s[3].params),h=s[4]&&s[4].params.length<=2&&!p(s[4].params),b=s[5]&&s[5].params.length<=2&&!p(s[5].params),w=i&&o&&u&&c&&h&&b,x=s.map((function(e){return y(e.params)})),_=i?g(s[0].params[0]):t,E=o?g(s[1].params[0]):t,C=u?g(s[2].params[0]):t,S=c?g(s[3].params[0]):t,D=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,R=i?g(s[0].params[1]):t,M=o?g(s[1].params[1]):t,W=u?g(s[2].params[1]):t,U=c?g(s[3].params[1]):t,V=h?g(s[4].params[1]):t,j=b?g(s[5].params[1]):t,H=s.map((function(e){return function(e,t){var n=t;if(e.some(m)){var r=p(e),a=e.map(I);n=function(){for(var e=[],n=r?arguments.length-1:arguments.length,s=0;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[620]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖܢ٥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[737]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[850]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[852]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[857]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[861]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[865]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[866]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[874]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[895]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[932]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[250]="����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);return{enc:n,dec:t}}(),t[936]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);for(r[254]="����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[254].length;++e)65533!==r[254][e].charCodeAt(0)&&(n[r[254][e]]=65024+e,t[65024+e]=r[254][e]);return{enc:n,dec:t}}(),t[949]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);return{enc:n,dec:t}}(),t[950]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);return{enc:n,dec:t}}(),t[1250]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1251]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1252]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1253]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1254]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1255]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1256]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1257]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1258]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1e4]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10006]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10007]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10008]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);return{enc:n,dec:t}}(),t[10029]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10079]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10081]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE&&(e.exports=t),function(n,r){"use strict";if(void 0===t){var a=t;e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE?e.exports=r(a):n.cptable=r(a)}else t=r(t)}(this,(function(e){"use strict";var t={1200:"utf16le",1201:"utf16be",12e3:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65e3:"utf7",65001:"utf8"},n=[874,1250,1251,1252,1253,1254,1255,1256,1e4],r=[932,936,949,950],a=[65001],s={},i={},o={},l={},u=function(e){return String.fromCharCode(e)},c=function(e){return e.charCodeAt(0)},h="undefined"!=typeof Buffer,f=function(){};if(h){var d=!Buffer.from;if(!d)try{Buffer.from("foo","utf8")}catch(e){d=!0}f=d?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)});var p=1024,m=Buffer.allocUnsafe(p),g=function(t){var n=function(e){for(var t=Buffer.allocUnsafe(65536),n=0;n<65536;++n)t[n]=0;for(var r=Object.keys(e),a=r.length,s=0,i=r[s];s>10&1023)],r[i++]=n[56320+(1023&l)]));r=r.slice(0,i)}else for(r=Buffer.allocUnsafe(a),s=0;s>8}return function(e){var t=e.length,n=0,a=0;if(2*t>p&&(p=2*t,m=Buffer.allocUnsafe(p)),Buffer.isBuffer(e))for(n=0;n>8}return function(e,t){var n=e.length,a=Buffer.allocUnsafe(2*n),s=0,i=0,o=0,l=0,u=0;if("string"==typeof e){for(s=l=0;s0&&(a[l++]=r[i]);a=a.slice(0,l)}else if(Buffer.isBuffer(e)){for(s=l=0;s0&&(a[l++]=r[i])):(i=2*(55296+((o=i-65536)>>10&1023)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]),i=2*(56320+(1023&o)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]));a=a.slice(0,l)}else for(s=l=0;s0&&(a[l++]=r[i]);return t&&"buf"!==t?"arr"!==t?a.toString("binary"):[].slice.call(a):a}},v=function(t){var n,r=e[t].dec,a=Buffer.allocUnsafe(131072),s=0,i=0,o=0,l=0;for(l=0;l<65536;++l)a[2*l]=255,a[2*l+1]=253;for(s=0;s>8);return function(e){var t=e.length,n=Buffer.allocUnsafe(2*t),r=0,s=0,i=0;if(Buffer.isBuffer(e))for(r=0;rp&&(p=4*n,m=Buffer.allocUnsafe(p));var s=0;n>=3&&239==t[0]&&187==t[1]&&191==t[2]&&(s=3);for(var i=1,o=0,l=0;s>8):(a=55296+((r-=65536)>>10&1023),r=56320+(1023&r),m[o++]=255&a,m[o++]=a>>>8,m[o++]=255&r,m[o++]=r>>>8&255);return m.slice(0,o).toString("ucs2")},i[65001]=function(e,t){if(h&&Buffer.isBuffer(e))return t&&"buf"!==t?"arr"!==t?e.toString("binary"):[].slice.call(e):e;var n=e.length,r=0,a=0,s=0,i="string"==typeof e;4*n>p&&(p=4*n,m=Buffer.allocUnsafe(p));for(var o=0;o>6),m[s++]=128+(63&r)):r>=55296&&r<=57343?(r-=55296,++o,a=(i?e.charCodeAt(o):e[o].charCodeAt(0))-56320+(r<<10),m[s++]=240+(a>>>18&7),m[s++]=144+(a>>>12&63),m[s++]=128+(a>>>6&63),m[s++]=128+(63&a)):(m[s++]=224+(r>>12),m[s++]=128+(r>>6&63),m[s++]=128+(63&r));return t&&"buf"!==t?"arr"!==t?m.slice(0,s).toString("binary"):[].slice.call(m,0,s):m.slice(0,s)}}var w=function(){if(h){if(o[n[0]])return;var t=0,u=0;for(t=0;t=3&&239==a[0]&&187==a[1]&&191==a[2]&&(p=3);p>10&1023),d=56320+(1023&d),u[g++]=String.fromCharCode(y)),u[g++]=String.fromCharCode(d);break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(v);for(p=0;p=2&&255==a[0]&&254==a[1]&&(p=2),h&&Buffer.isBuffer(a))return a.toString(v);for(m=2;p+1=2&&254==a[0]&&255==a[1]&&(p=2),m=2;p+1=4&&255==a[0]&&254==a[1]&&0===a[2]&&0===a[3]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf32be":for(l>=4&&255==a[3]&&254==a[2]&&0===a[1]&&0===a[0]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf7":for(l>=4&&43==a[0]&&47==a[1]&&118==a[2]&&(l>=5&&56==a[3]&&45==a[4]?p=5:56!=a[3]&&57!=a[3]&&43!=a[3]&&47!=a[3]||(p=4));p>4,x.push(k),-1!==(I=E.indexOf(String.fromCharCode(a[p+D++]))))&&(C=(15&N)<<4|I>>2,x.push(C),-1!==(A=E.indexOf(String.fromCharCode(a[p+D++]))));)S=(3&I)<<6|A,A<64&&x.push(S);for(_=n(1201,x),D=0;D<_.length;++D)u[g++]=_.charAt(D)}else m=2,u[g++]="+";else m=1,u[g++]=String.fromCharCode(a[p]);break;default:throw new Error("Unsupported magic: "+r+" "+t[r])}}return u.slice(0,g).join("")},encode:function n(r,a,s){if(r===S&&C)return C(a,s);if(l[r])return(C=l[S=r])(a,s);h&&Buffer.isBuffer(a)&&(a=a.toString("utf8"));var i,o=a.length,c=h?Buffer.allocUnsafe(4*o):[],d=0,p=0,m=0,g=0,y=e[r],b="",v="string"==typeof a;if(y&&(i=y.enc))for(p=0;p255?(c[m]=d>>8,c[++m]=255&d):c[m]=255&d;else{if(!(b=t[r]))throw new Error("Unrecognized CP: "+r);switch(b){case"utf8":if(h&&v){m=(c=f(a,b)).length;break}for(p=0;p>6),c[++m]=128+(63&d)):d>=55296&&d<=57343?(d-=55296,g=(v?a.charCodeAt(++p):a[++p].charCodeAt(0))-56320+(d<<10),c[m]=240+(g>>>18&7),c[++m]=144+(g>>>12&63),c[++m]=128+(g>>>6&63),c[++m]=128+(63&g)):(c[m]=224+(d>>12),c[++m]=128+(d>>6&63),c[++m]=128+(63&d));break;case"ascii":if(h&&"string"==typeof a){m=(c=f(a,b)).length;break}for(p=0;p>8;break;case"utf16be":for(p=0;p>8,c[m++]=255&d;break;case"utf32le":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d;break;case"utf32be":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m+3]=255&d,d>>=8,c[m+2]=255&d,d>>=8,c[m+1]=255&d,d>>=8,c[m]=255&d,m+=4;break;case"utf7":for(p=0;p-1)c[m++]=w.charCodeAt(0);else{var x=n(1201,w);c[m++]=43,c[m++]=E.charCodeAt(x[0]>>2),c[m++]=E.charCodeAt(((3&x[0])<<4)+((x[1]||0)>>4)),c[m++]=E.charCodeAt(((15&x[1])<<2)+((x[2]||0)>>6)),c[m++]=45}else c[m++]=43,c[m++]=45}break;default:throw new Error("Unsupported magic: "+r+" "+t[r])}}return c=c.slice(0,m),h?s&&"buf"!==s?"arr"!==s?c.toString("binary"):[].slice.call(c):c:"str"==s?c.map(u).join(""):c},hascp:function(n){return!(!e[n]&&!t[n])},magic:t,cache:k},e}))},2903:(e,t,n)=>{var r,a,s;!function(i){if("undefined"==typeof DO_NOT_EXPORT_JSZIP)e.exports=i();else if("undefined"==typeof DO_NOT_EXPORT_JSZIP)JSZipSync=i(),a=[],void 0===(s="function"==typeof(r=i)?r.apply(t,a):r)||(e.exports=s);else{var o;"undefined"!=typeof globalThis?o=globalThis:"undefined"!=typeof window?o=window:void 0!==n.g?o=n.g:"undefined"!=typeof $&&$.global?o=$.global:"undefined"!=typeof self&&(o=self),o.JSZipSync=i()}}((function(){return function e(t,n,r){function a(i,o){if(!n[i]){if(!t[i]){if(s)return s(i,!0);throw new Error("Cannot find module '"+i+"'")}var l=n[i]={exports:{}};t[i][0].call(l.exports,(function(e){return a(t[i][1][e]||e)}),l,l.exports,e,t,n,r)}return n[i].exports}for(var s=void 0,i=0;i>2,o=(3&n)<<4|(a=e.charCodeAt(h++))>>4,l=(15&a)<<2|(s=e.charCodeAt(h++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),c=c+r.charAt(i)+r.charAt(o)+r.charAt(l)+r.charAt(u);return c},n.decode=function(e,t){var n,a,s,i,o,l,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c>4,a=(15&i)<<4|(o=r.indexOf(e.charAt(c++)))>>2,s=(3&o)<<6|(l=r.indexOf(e.charAt(c++))),u+=String.fromCharCode(n),64!=o&&(u+=String.fromCharCode(a)),64!=l&&(u+=String.fromCharCode(s));return u}},{}],2:[function(e,t,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},t.exports=r},{}],3:[function(e,t,n){"use strict";n.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null},n.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,t,n){"use strict";var r=e("./utils"),a=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];t.exports=function(e,t){if(void 0===e||!e.length)return 0;var n="string"!==r.getTypeOf(e);void 0===t&&(t=0);var s=0;t^=-1;for(var i=0,o=e.length;i>>8^a[255&(t^s)];return-1^t}},{"./utils":21}],5:[function(e,t,n){"use strict";var r=e("./utils");function a(e){this.data=null,this.length=0,this.index=0}a.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1)}},t.exports=a},{"./utils":21}],6:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.comment=null},{}],7:[function(e,t,n){"use strict";var r=e("./utils");n.string2binary=function(e){return r.string2binary(e)},n.string2Uint8Array=function(e){return r.transformTo("uint8array",e)},n.uint8Array2String=function(e){return r.transformTo("string",e)},n.string2Blob=function(e){var t=r.transformTo("arraybuffer",e);return r.arrayBuffer2Blob(t)},n.arrayBuffer2Blob=function(e){return r.arrayBuffer2Blob(e)},n.transformTo=function(e,t){return r.transformTo(e,t)},n.getTypeOf=function(e){return r.getTypeOf(e)},n.checkSupport=function(e){return r.checkSupport(e)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(e){return r.pretty(e)},n.findCompression=function(e){return r.findCompression(e)},n.isRegExp=function(e){return r.isRegExp(e)}},{"./utils":21}],8:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,a=e("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\0",n.compress=function(e){return a.deflateRaw(e)},n.uncompress=function(e){return a.inflateRaw(e)}},{pako:24}],9:[function(e,t,n){"use strict";var r=e("./base64");function a(e,t){if(!(this instanceof a))return new a(e,t);this.files={},this.comment=null,this.root="",e&&this.load(e,t),this.clone=function(){var e=new a;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}a.prototype=e("./object"),a.prototype.load=e("./load"),a.support=e("./support"),a.defaults=e("./defaults"),a.utils=e("./deprecatedPublicUtils"),a.base64={encode:function(e){return r.encode(e)},decode:function(e){return r.decode(e)}},a.compressions=e("./compressions"),t.exports=a},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,t,n){"use strict";var r=e("./base64"),a=e("./zipEntries");t.exports=function(e,t){var n,s,i,o;for((t=t||{}).base64&&(e=r.decode(e)),n=(s=new a(e,t)).files,i=0;i>>=8;return r},w=function(){var e,t,n={};for(e=0;e0?e.substring(0,t):""},k=function(e,t){return"/"!=e.slice(-1)&&(e+="/"),t=void 0!==t&&t,this.files[e]||x.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]},E=function(e,t){var n,r=new c;return e._data instanceof c?(r.uncompressedSize=e._data.uncompressedSize,r.crc32=e._data.crc32,0===r.uncompressedSize||e.dir?(t=u.STORE,r.compressedContent="",r.crc32=0):e._data.compressionMethod===t.magic?r.compressedContent=e._data.getCompressedContent():(n=e._data.getContent(),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n)))):((n=g(e))&&0!==n.length&&!e.dir||(t=u.STORE,n=""),r.uncompressedSize=n.length,r.crc32=s(n),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n))),r.compressedSize=r.compressedContent.length,r.compressionMethod=t.magic,r},C=function(e,t,n,r){n.compressedContent;var o,l,u,c,h=a.transformTo("string",f.utf8encode(t.name)),d=t.comment||"",p=a.transformTo("string",f.utf8encode(d)),m=h.length!==t.name.length,g=p.length!==d.length,y=t.options,b="",w="",x="";u=t._initialMetadata.dir!==t.dir?t.dir:y.dir,o=(c=t._initialMetadata.date!==t.date?t.date:y.date).getHours(),o<<=6,o|=c.getMinutes(),o<<=5,o|=c.getSeconds()/2,l=c.getFullYear()-1980,l<<=4,l|=c.getMonth()+1,l<<=5,l|=c.getDate(),m&&(w=v(1,1)+v(s(h),4)+h,b+="up"+v(w.length,2)+w),g&&(x=v(1,1)+v(this.crc32(p),4)+p,b+="uc"+v(x.length,2)+x);var _="";return _+="\n\0",_+=m||g?"\0\b":"\0\0",_+=n.compressionMethod,_+=v(o,2),_+=v(l,2),_+=v(n.crc32,4),_+=v(n.compressedSize,4),_+=v(n.uncompressedSize,4),_+=v(h.length,2),_+=v(b.length,2),{fileRecord:i.LOCAL_FILE_HEADER+_+h+b,dirRecord:i.CENTRAL_FILE_HEADER+"\0"+_+v(p.length,2)+"\0\0\0\0"+(!0===u?"\0\0\0":"\0\0\0\0")+v(r,4)+h+b+p,compressedObject:n}},S={load:function(e,t){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var t,n,r,a,s=[];for(t in this.files)this.files.hasOwnProperty(t)&&(r=this.files[t],a=new b(r.name,r._data,w(r.options)),n=t.slice(this.root.length,t.length),t.slice(0,this.root.length)===this.root&&e(n,a)&&s.push(a));return s},file:function(e,t,n){if(1===arguments.length){if(a.isRegExp(e)){var r=e;return this.filter((function(e,t){return!t.dir&&r.test(e)}))}return this.filter((function(t,n){return!n.dir&&t===e}))[0]||null}return e=this.root+e,x.call(this,e,t,n),this},folder:function(e){if(!e)return this;if(a.isRegExp(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=k.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!=e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r=0;--s)if(this.data[s]===t&&this.data[s+1]===n&&this.data[s+2]===r&&this.data[s+3]===a)return s;return-1},a.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.index,this.index+e);return this.index+=e,t},t.exports=a},{"./dataReader":5}],19:[function(e,t,n){"use strict";var r=e("./utils"),a=function(e){this.data=new Uint8Array(e),this.index=0};a.prototype={append:function(e){0!==e.length&&(e=r.transformTo("uint8array",e),this.data.set(e,this.index),this.index+=e.length)},finalize:function(){return this.data}},t.exports=a},{"./utils":21}],20:[function(e,t,n){"use strict";for(var r=e("./utils"),a=e("./support"),s=e("./nodeBuffer"),i=new Array(256),o=0;o<256;o++)i[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;i[254]=i[254]=1;var l=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t},u=function(e){var t,n,a,s,o=e.length,l=new Array(2*o);for(n=0,t=0;t4)l[n++]=65533,t+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&t1?l[n++]=65533:a<65536?l[n++]=a:(a-=65536,l[n++]=55296|a>>10&1023,l[n++]=56320|1023&a)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)};n.utf8encode=function(e){return a.nodebuffer?s(e,"utf-8"):function(e){var t,n,r,s,i,o=e.length,l=0;for(s=0;s>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){if(a.nodebuffer)return r.transformTo("nodebuffer",e).toString("utf-8");for(var t=[],n=0,s=(e=r.transformTo(a.uint8array?"uint8array":"array",e)).length;n1;)try{"array"===i||"nodebuffer"===i?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+t,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+t,a)))),o+=t}catch(e){t=Math.floor(t/2)}return r.join("")}function u(e,t){for(var n=0;n1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==n)throw new Error(i[n]);t.header&&r.deflateSetHeader(this.strm,t.header)};function u(e,t){var n=new l(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}l.prototype.push=function(e,t){var n,i,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,o.input="string"==typeof e?s.string2buf(e):e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(l),o.next_out=0,o.avail_out=l),1!==(n=r.deflate(o,i))&&0!==n)return this.onEnd(n),this.ended=!0,!1;(0===o.avail_out||0===o.avail_in&&4===i)&&("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==n);return 4!==i||(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n)},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=l,n.deflate=u,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,t,n){"use strict";var r=e("./zlib/inflate.js"),a=e("./utils/common"),s=e("./utils/strings"),i=e("./zlib/constants"),o=e("./zlib/messages"),l=e("./zlib/zstream"),u=e("./zlib/gzheader"),c=function(e){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(o[n]);this.header=new u,r.inflateGetHeader(this.strm,this.header)};function h(e,t){var n=new c(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}c.prototype.push=function(e,t){var n,o,l,u,c,h=this.strm,f=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,h.input="string"==typeof e?s.binstring2buf(e):e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new a.Buf8(f),h.next_out=0,h.avail_out=f),(n=r.inflate(h,i.Z_NO_FLUSH))!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),this.ended=!0,!1;h.next_out&&(0===h.avail_out||n===i.Z_STREAM_END||0===h.avail_in&&o===i.Z_FINISH)&&("string"===this.options.to?(l=s.utf8border(h.output,h.next_out),u=h.next_out-l,c=s.buf2string(h.output,l),h.next_out=u,h.avail_out=f-u,u&&a.arraySet(h.output,h.output,l,u,0),this.onData(c)):this.onData(a.shrinkBuf(h.output,h.next_out)))}while(h.avail_in>0&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(o=i.Z_FINISH),o!==i.Z_FINISH||(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK)},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=c,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var a={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var s=0;s=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&a))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,a=t.length;n4)u[r++]=65533,n+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&n1?u[r++]=65533:a<65536?u[r++]=a:(a-=65536,u[r++]=55296|a>>10&1023,u[r++]=56320|1023&a)}return l(u,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":27}],29:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var a=65535&e|0,s=e>>>16&65535|0,i=0;0!==n;){n-=i=n>2e3?2e3:n;do{s=s+(a=a+t[r++]|0)|0}while(--i);a%=65521,s%=65521}return a|s<<16|0}},{}],30:[function(e,t,n){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,a){var s=r,i=a+n;e^=-1;for(var o=a;o>>8^s[255&(e^t[o])];return-1^e}},{}],32:[function(e,t,n){"use strict";var r=e("../utils/common"),a=e("./trees"),s=e("./adler32"),i=e("./crc32"),o=e("./messages"),l=-2,u=258,c=262,h=103,f=113,d=666;function p(e,t){return e.msg=o[t],t}function m(e){return(e<<1)-(e>4?9:0)}function g(e){for(var t=e.length;--t>=0;)e[t]=0}function y(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(r.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function b(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,y(e.strm)}function v(e,t){e.pending_buf[e.pending++]=t}function w(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function x(e,t){var n,r,a=e.max_chain_length,s=e.strstart,i=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-c?e.strstart-(e.w_size-c):0,h=e.window,f=e.w_mask,d=e.prev,p=e.strstart+u,m=h[s+i-1],g=h[s+i];e.prev_length>=e.good_match&&(a>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(n=t)+i]===g&&h[n+i-1]===m&&h[n]===h[s]&&h[++n]===h[s+1]){s+=2,n++;do{}while(h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&si){if(e.match_start=t,i=r,r>=o)break;m=h[s+i-1],g=h[s+i]}}}while((t=d[t&f])>l&&0!=--a);return i<=e.lookahead?i:e.lookahead}function _(e){var t,n,a,o,l,u,h,f,d,p,m=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-c)){r.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;do{a=e.head[--t],e.head[t]=a>=m?a-m:0}while(--n);t=n=m;do{a=e.prev[--t],e.prev[t]=a>=m?a-m:0}while(--n);o+=m}if(0===e.strm.avail_in)break;if(u=e.strm,h=e.window,f=e.strstart+e.lookahead,d=o,p=void 0,(p=u.avail_in)>d&&(p=d),n=0===p?0:(u.avail_in-=p,r.arraySet(h,u.input,u.next_in,p,f),1===u.state.wrap?u.adler=s(u.adler,h,p,f):2===u.state.wrap&&(u.adler=i(u.adler,h,p,f)),u.next_in+=p,u.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=(e.ins_h<15&&(o=2,a-=16),s<1||s>9||8!==n||a<8||a>15||t<0||t>9||i<0||i>4)return p(e,l);8===a&&(a=9);var u=new N;return e.state=u,u.strm=e,u.wrap=o,u.gzhead=null,u.w_bits=a,u.w_size=1<>1,u.l_buf=3*u.lit_bufsize,u.level=t,u.strategy=i,u.method=n,A(e)}C=[new S(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(_(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,b(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-c&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(b(e,!1),e.strm.avail_out),1)})),new S(4,4,8,4,k),new S(4,5,16,8,k),new S(4,6,32,32,k),new S(4,4,16,16,E),new S(8,16,32,32,E),new S(8,16,128,128,E),new S(8,32,128,256,E),new S(32,128,258,1024,E),new S(32,258,258,4096,E)],n.deflateInit=function(e,t){return D(e,t,8,15,8,0)},n.deflateInit2=D,n.deflateReset=A,n.deflateResetKeep=I,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=t,0):l},n.deflate=function(e,t){var n,r,s,o;if(!e||!e.state||t>5||t<0)return e?p(e,l):l;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===d&&4!==t)return p(e,0===e.avail_out?-5:l);if(r.strm=e,n=r.last_flush,r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,v(r,31),v(r,139),v(r,8),r.gzhead?(v(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),v(r,255&r.gzhead.time),v(r,r.gzhead.time>>8&255),v(r,r.gzhead.time>>16&255),v(r,r.gzhead.time>>24&255),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(v(r,255&r.gzhead.extra.length),v(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=i(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(v(r,0),v(r,0),v(r,0),v(r,0),v(r,0),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,3),r.status=f);else{var c=8+(r.w_bits-8<<4)<<8;c|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(c|=32),c+=31-c%31,r.status=f,w(r,c),0!==r.strstart&&(w(r,e.adler>>>16),w(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(s=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending!==r.pending_buf_size));)v(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.status=h)}else r.status=h;if(r.status===h&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&y(e),r.pending+2<=r.pending_buf_size&&(v(r,255&e.adler),v(r,e.adler>>8&255),e.adler=0,r.status=f)):r.status=f),0!==r.pending){if(y(e),0===e.avail_out)return r.last_flush=-1,0}else if(0===e.avail_in&&m(t)<=m(n)&&4!==t)return p(e,-5);if(r.status===d&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==r.lookahead||0!==t&&r.status!==d){var x=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(_(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,s,i,o=e.window;;){if(e.lookahead<=u){if(_(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=o[s=e.strstart-1])===o[++s]&&r===o[++s]&&r===o[++s]){i=e.strstart+u;do{}while(r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&se.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):C[r.level].func(r,t);if(3!==x&&4!==x||(r.status=d),1===x||3===x)return 0===e.avail_out&&(r.last_flush=-1),0;if(2===x&&(1===t?a._tr_align(r):5!==t&&(a._tr_stored_block(r,0,0,!1),3===t&&(g(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),y(e),0===e.avail_out))return r.last_flush=-1,0}return 4!==t?0:r.wrap<=0?1:(2===r.wrap?(v(r,255&e.adler),v(r,e.adler>>8&255),v(r,e.adler>>16&255),v(r,e.adler>>24&255),v(r,255&e.total_in),v(r,e.total_in>>8&255),v(r,e.total_in>>16&255),v(r,e.total_in>>24&255)):(w(r,e.adler>>>16),w(r,65535&e.adler)),y(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},n.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==h&&t!==f&&t!==d?p(e,l):(e.state=null,t===f?p(e,-3):0):l},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],34:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,a,s,i,o,l,u,c,h,f,d,p,m,g,y,b,v,w,x,_,k,E,C,S;n=e.state,r=e.next_in,C=e.input,a=r+(e.avail_in-5),s=e.next_out,S=e.output,i=s-(t-e.avail_out),o=s+(e.avail_out-257),l=n.dmax,u=n.wsize,c=n.whave,h=n.wnext,f=n.window,d=n.hold,p=n.bits,m=n.lencode,g=n.distcode,y=(1<>>=w=v>>>24,p-=w,0==(w=v>>>16&255))S[s++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=m[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=C[r++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<l){e.msg="invalid distance too far back",n.mode=30;break e}if(d>>>=w,p-=w,_>(w=s-i)){if((w=_-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(k=0,E=f,0===h){if(k+=u-w,w2;)S[s++]=E[k++],S[s++]=E[k++],S[s++]=E[k++],x-=3;x&&(S[s++]=E[k++],x>1&&(S[s++]=E[k++]))}else{k=s-_;do{S[s++]=S[k++],S[s++]=S[k++],S[s++]=S[k++],x-=3}while(x>2);x&&(S[s++]=S[k++],x>1&&(S[s++]=S[k++]))}break}}break}}while(r>3,d&=(1<<(p-=x<<3))-1,e.next_in=r,e.next_out=s,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function p(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,d(e)):l}function m(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?l:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,p(e))):l}function g(e,t){var n,r;return e?(r=new f,e.state=r,r.window=null,0!==(n=m(e,t))&&(e.state=null),n):l}var y,b,v=!0;function w(e){if(v){var t;for(y=new r.Buf32(512),b=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(2,e.lens,0,32,b,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=b,e.distbits=5}n.inflateReset=p,n.inflateReset2=m,n.inflateResetKeep=d,n.inflateInit=function(e){return g(e,15)},n.inflateInit2=g,n.inflate=function(e,t){var n,f,d,p,m,g,y,b,v,x,_,k,E,C,S,N,I,A,D,T,F,R,O,B,M=0,$=new r.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;(n=e.state).mode===u&&(n.mode=13),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,x=g,_=y,R=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0),b=0,v=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",n.mode=c;break}if(8!=(15&b)){e.msg="unknown compression method",n.mode=c;break}if(v-=4,F=8+(15&(b>>>=4)),0===n.wbits)n.wbits=F;else if(F>n.wbits){e.msg="invalid window size",n.mode=c;break}n.dmax=1<>8&1),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=3;case 3:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>8&255,$[2]=b>>>16&255,$[3]=b>>>24&255,n.check=s(n.check,$,4,0)),b=0,v=0,n.mode=4;case 4:for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>8),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((k=n.length)>g&&(k=g),k&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,p,k,F)),512&n.flags&&(n.check=s(n.check,f,k,p)),g-=k,p+=k,n.length-=k),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===g)break e;k=0;do{F=f[p+k++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F))}while(F&&k>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=u;break;case 10:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===g)break e;g--,b+=f[p++]<>>=1)){case 0:n.mode=14;break;case 1:if(w(n),n.mode=20,6===t){b>>>=2,v-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=c}b>>>=2,v-=2;break;case 14:for(b>>>=7&v,v-=7&v;v<32;){if(0===g)break e;g--,b+=f[p++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=c;break}if(n.length=65535&b,b=0,v=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(k=n.length){if(k>g&&(k=g),k>y&&(k=y),0===k)break e;r.arraySet(d,f,p,k,m),g-=k,p+=k,y-=k,m+=k,n.length-=k;break}n.mode=u;break;case 17:for(;v<14;){if(0===g)break e;g--,b+=f[p++]<>>=5,v-=5,n.ndist=1+(31&b),b>>>=5,v-=5,n.ncode=4+(15&b),b>>>=4,v-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=c;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,v-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},R=o(0,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,R){e.msg="invalid code lengths set",n.mode=c;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(B=S+2;v>>=S,v-=S,0===n.have){e.msg="invalid bit length repeat",n.mode=c;break}F=n.lens[n.have-1],k=3+(3&b),b>>>=2,v-=2}else if(17===I){for(B=S+3;v>>=S)),b>>>=3,v-=3}else{for(B=S+7;v>>=S)),b>>>=7,v-=7}if(n.have+k>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=c;break}for(;k--;)n.lens[n.have++]=F}}if(n.mode===c)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=c;break}if(n.lenbits=9,O={bits:n.lenbits},R=o(1,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,R){e.msg="invalid literal/lengths set",n.mode=c;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},R=o(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,R){e.msg="invalid distances set",n.mode=c;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(g>=6&&y>=258){e.next_out=m,e.avail_out=y,e.next_in=p,e.avail_in=g,n.hold=b,n.bits=v,i(e,_),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,n.mode===u&&(n.back=-1);break}for(n.back=0;N=(M=n.lencode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&M,!(A+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=A,v-=A,n.back+=A}if(b>>>=S,v-=S,n.back+=S,n.length=I,0===N){n.mode=26;break}if(32&N){n.back=-1,n.mode=u;break}if(64&N){e.msg="invalid literal/length code",n.mode=c;break}n.extra=15&N,n.mode=22;case 22:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(M=n.distcode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&M,!(A+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=A,v-=A,n.back+=A}if(b>>>=S,v-=S,n.back+=S,64&N){e.msg="invalid distance code",n.mode=c;break}n.offset=I,n.extra=15&N,n.mode=24;case 24:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=c;break}n.mode=25;case 25:if(0===y)break e;if(k=_-y,n.offset>k){if((k=n.offset-k)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=c;break}k>n.wnext?(k-=n.wnext,E=n.wsize-k):E=n.wnext-k,k>n.length&&(k=n.length),C=n.window}else C=d,E=m-n.offset,k=n.length;k>y&&(k=y),y-=k,n.length-=k;do{d[m++]=C[E++]}while(--k);0===n.length&&(n.mode=21);break;case 26:if(0===y)break e;d[m++]=n.length,y--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===g)break e;g--,b|=f[p++]<=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((s=i.wsize-i.wnext)>a&&(s=a),r.arraySet(i.window,t,n-a,s,i.wnext),(a-=s)?(r.arraySet(i.window,t,n-a,a,0),i.wnext=a,i.whave=i.wsize):(i.wnext+=s,i.wnext===i.wsize&&(i.wnext=0),i.whave=1&&0===B[S];S--);if(N>S&&(N=S),0===S)return u[c++]=20971520,u[c++]=20971520,f.bits=1,0;for(C=1;C0&&(0===e||1!==S))return-1;for(M[1]=0,k=1;k<15;k++)M[k+1]=M[k]+B[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-A,h[E]b?(w=$[P+h[E]],x=R[O+h[E]]):(w=96,x=0),d=1<>A)+(p-=d)]=v<<24|w<<16|x|0}while(0!==p);for(d=1<>=1;if(0!==d?(F&=d-1,F+=d):F=0,E++,0==--B[k]){if(k===S)break;k=t[n+h[E]]}if(k>N&&(F&g)!==m){for(0===A&&(A=N),y+=C,D=1<<(I=k-A);I+A852||2===e&&T>592)return 1;u[m=F&g]=N<<24|I<<16|y-c|0}}return 0!==F&&(u[y+F]=k-A<<24|64<<16|0),f.bits=N,0}},{"../utils/common":27}],37:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,t,n){"use strict";var r=e("../utils/common");function a(e){for(var t=e.length;--t>=0;)e[t]=0}var s=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],i=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],u=new Array(576);a(u);var c=new Array(60);a(c);var h=new Array(512);a(h);var f=new Array(256);a(f);var d=new Array(29);a(d);var p=new Array(30);a(p);var m,g,y,b=function(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length},v=function(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t};function w(e){return e<256?h[e]:h[256+(e>>>7)]}function x(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function _(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<>>=1,n<<=1}while(--t>0);return n>>>1}function C(e,t,n){var r,a,s=new Array(16),i=0;for(r=1;r<=15;r++)s[r]=i=i+n[r-1]<<1;for(a=0;a<=t;a++){var o=e[2*a+1];0!==o&&(e[2*a]=E(s[o]++,o))}}function S(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){e.bi_valid>8?x(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function I(e,t,n,r){var a=2*t,s=2*n;return e[a]>1;n>=1;n--)A(e,s,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],A(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,s[2*a]=s[2*n]+s[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,s[2*n+1]=s[2*r+1]=a,e.heap[1]=a++,A(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,s,i,o,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,h=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=15;s++)e.bl_count[s]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(s=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(s=p,m++),l[2*r+1]=s,r>u||(e.bl_count[s]++,i=0,r>=d&&(i=f[r-d]),o=l[2*r],e.opt_len+=o*(s+i),h&&(e.static_len+=o*(c[2*r+1]+i)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)(a=e.heap[--n])>u||(l[2*a+1]!==s&&(e.opt_len+=(s-l[2*a+1])*l[2*a],l[2*a+1]=s),r--)}}(e,t),C(s,u,e.bl_count)}function F(e,t,n){var r,a,s=-1,i=t[1],o=0,l=7,u=4;for(0===i&&(l=138,u=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=i,i=t[2*(r+1)+1],++o>=7;r<30;r++)for(p[r]=a<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),T(e,e.l_desc),T(e,e.d_desc),i=function(e){var t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),T(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*l[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),a=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=a&&(a=s)):a=s=n+5,n+4<=a&&-1!==t?B(e,t,n,r):4===e.strategy||s===a?(_(e,2+(r?1:0),3),D(e,u,c)):(_(e,4+(r?1:0),3),function(e,t,n,r){var a;for(_(e,t-257,5),_(e,n-1,5),_(e,r-4,4),a=0;a>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(f[n]+256+1)]++,e.dyn_dtree[2*w(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){_(e,2,3),k(e,256,u),function(e){16===e.bi_valid?(x(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":27}],39:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}]},{},[9])(9)}))},7869:(e,t,n)=>{!function(t){t.version="0.16.9";var r=1200,a=1252;"undefined"==typeof cptable&&(void 0!==n.g?n.g.cptable=n(6113):"undefined"!=typeof window&&(window.cptable=n(6113)));for(var s=[874,932,936,949,950],i=0;i<=8;++i)s.push(1250+i);var o={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},l=function(e){-1!=s.indexOf(e)&&(a=o[0]=e)},u=function(e){r=e,l(e)};function c(){u(1200),l(1252)}function h(e){for(var t=[],n=0,r=e.length;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n)+(e.charCodeAt(2*n+1)<<8));return t.join("")}(e.slice(2)):254==t&&255==n?function(e){for(var t=[],n=0;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n+1)+(e.charCodeAt(2*n)<<8));return t.join("")}(e.slice(2)):65279==t?e.slice(1):e},d=function(e){return String.fromCharCode(e)},p=function(e){return String.fromCharCode(e)};"undefined"!=typeof cptable&&(u=function(e){r=e,l(e)},f=function(e){return 255===e.charCodeAt(0)&&254===e.charCodeAt(1)?cptable.utils.decode(1200,h(e.slice(2))):e},d=function(e){return 1200===r?String.fromCharCode(e):cptable.utils.decode(r,[255&e,e>>8])[0]},p=function(e){return cptable.utils.decode(a,[e])[0]});var m,g=(m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",{encode:function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0,l=0,u=0;u>2,i=(3&n)<<4|(r=e.charCodeAt(u++))>>4,o=(15&r)<<2|(a=e.charCodeAt(u++))>>6,l=63&a,isNaN(r)?o=l=64:isNaN(a)&&(l=64),t+=m.charAt(s)+m.charAt(i)+m.charAt(o)+m.charAt(l);return t},decode:function(e){var t="",n=0,r=0,a=0,s=0,i=0,o=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var l=0;l>4,t+=String.fromCharCode(n),r=(15&s)<<4|(i=m.indexOf(e.charAt(l++)))>>2,64!==i&&(t+=String.fromCharCode(r)),a=(3&i)<<6|(o=m.indexOf(e.charAt(l++))),64!==o&&(t+=String.fromCharCode(a));return t}}),y="undefined"!=typeof Buffer&&"undefined"!=typeof process&&void 0!==process.versions&&!!process.versions.node,b=function(){};if("undefined"!=typeof Buffer){var v=!Buffer.from;if(!v)try{Buffer.from("foo","utf8")}catch(e){v=!0}b=v?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.alloc||(Buffer.alloc=function(e){return new Buffer(e)}),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)})}function w(e){return y?Buffer.alloc(e):new Array(e)}function x(e){return y?Buffer.allocUnsafe(e):new Array(e)}var _=function(e){return y?b(e,"binary"):e.split("").map((function(e){return 255&e.charCodeAt(0)}))};function k(e){if("undefined"==typeof ArrayBuffer)return _(e);for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r!=e.length;++r)n[r]=255&e.charCodeAt(r);return t}function E(e){if(Array.isArray(e))return e.map((function(e){return String.fromCharCode(e)})).join("");for(var t=[],n=0;n=0;)t+=e.charAt(n--);return t}function n(e,t){for(var n="";n.length=t?r:n("0",t-r.length)+r}function a(e,t){var r=""+e;return r.length>=t?r:n(" ",t-r.length)+r}function s(e,t){var r=""+e;return r.length>=t?r:r+n(" ",t-r.length)}e.version="0.11.2";var i=Math.pow(2,32);function o(e,t){return e>i||e<-i?function(e,t){var r=""+Math.round(e);return r.length>=t?r:n("0",t-r.length)+r}(e,t):function(e,t){var r=""+e;return r.length>=t?r:n("0",t-r.length)+r}(Math.round(e),t)}function l(e,t){return t=t||0,e.length>=7+t&&103==(32|e.charCodeAt(t))&&101==(32|e.charCodeAt(t+1))&&110==(32|e.charCodeAt(t+2))&&101==(32|e.charCodeAt(t+3))&&114==(32|e.charCodeAt(t+4))&&97==(32|e.charCodeAt(t+5))&&108==(32|e.charCodeAt(t+6))}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],c=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function h(e){e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var f={};h(f);var d=[],p=0;for(p=5;p<=8;++p)d[p]=32+p;for(p=23;p<=26;++p)d[p]=0;for(p=27;p<=31;++p)d[p]=14;for(p=50;p<=58;++p)d[p]=14;for(p=59;p<=62;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-58;for(p=72;p<=75;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-57;for(p=76;p<=78;++p)d[p]=p-56;for(p=79;p<=81;++p)d[p]=p-34;var m=[];function g(e,t,n){for(var r=e<0?-1:1,a=e*r,s=0,i=1,o=0,l=1,u=0,c=0,h=Math.floor(a);ut&&(u>t?(c=l,o=s):(c=u,o=i)),!n)return[0,r*o,c];var f=Math.floor(r*o/c);return[f,r*o-f*c,c]}function y(e,t,n){if(e>2958465||e<0)return null;var r=0|e,a=Math.floor(86400*(e-r)),s=0,i=[],o={D:r,T:a,u:86400*(e-r)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6&&(o.u=0),t&&t.date1904&&(r+=1462),o.u>.9999&&(o.u=0,86400==++a&&(o.T=a=0,++r,++o.D)),60===r)i=n?[1317,10,29]:[1900,2,29],s=3;else if(0===r)i=n?[1317,8,29]:[1900,1,0],s=6;else{r>60&&--r;var l=new Date(1900,0,1);l.setDate(l.getDate()+r-1),i=[l.getFullYear(),l.getMonth()+1,l.getDate()],s=l.getDay(),r<60&&(s=(s+6)%7),n&&(s=function(e,t){t[0]-=581;var n=e.getDay();return e<60&&(n=(n+6)%7),n}(l,i))}return o.y=i[0],o.m=i[1],o.d=i[2],o.S=a%60,a=Math.floor(a/60),o.M=a%60,a=Math.floor(a/60),o.H=a,o.q=s,o}m[5]=m[63]='"$"#,##0_);\\("$"#,##0\\)',m[6]=m[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',m[7]=m[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',m[8]=m[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',m[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',m[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',m[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',m[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)',e.parse_date_code=y;var b=new Date(1899,11,31,0,0,0),v=b.getTime(),w=new Date(1900,2,1,0,0,0);function x(e,t){var n=e.getTime();return t?n-=1262304e5:e>=w&&(n+=864e5),(n-(v+6e4*(e.getTimezoneOffset()-b.getTimezoneOffset())))/864e5}e._general_int=function(e){return e.toString(10)};var _=function(){var e=/(?:\.0*|(\.\d*[1-9])0+)$/;function t(t){return-1==t.indexOf(".")?t:t.replace(e,"$1")}var n=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,r=/(E[+-])(\d)$/;return function(e){var a,s=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return a=s>=-4&&s<=-1?e.toPrecision(10+s):Math.abs(s)<=9?function(e){var n=e<0?12:11,r=t(e.toFixed(12));return r.length<=n||(r=e.toPrecision(10)).length<=n?r:e.toExponential(5)}(e):10===s?e.toFixed(10).substr(0,12):function(e){var n=t(e.toFixed(11));return n.length>(e<0?12:11)||"0"===n||"-0"===n?e.toPrecision(6):n}(e),t(function(e){return-1==e.indexOf("E")?e:e.replace(n,"$1E").replace(r,"$10$2")}(a.toUpperCase()))}}();function k(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):_(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return O(14,x(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function E(e,t,n,a){var s,i="",o=0,l=0,h=n.y,f=0;switch(e){case 98:h=n.y+543;case 121:switch(t.length){case 1:case 2:s=h%100,f=2;break;default:s=h%1e4,f=4}break;case 109:switch(t.length){case 1:case 2:s=n.m,f=t.length;break;case 3:return c[n.m-1][1];case 5:return c[n.m-1][0];default:return c[n.m-1][2]}break;case 100:switch(t.length){case 1:case 2:s=n.d,f=t.length;break;case 3:return u[n.q][0];default:return u[n.q][1]}break;case 104:switch(t.length){case 1:case 2:s=1+(n.H+11)%12,f=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:s=n.H,f=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:s=n.M,f=t.length;break;default:throw"bad minute format: "+t}break;case 115:if("s"!=t&&"ss"!=t&&".0"!=t&&".00"!=t&&".000"!=t)throw"bad second format: "+t;return 0!==n.u||"s"!=t&&"ss"!=t?(l=a>=2?3===a?1e3:100:1===a?10:1,(o=Math.round(l*(n.S+n.u)))>=60*l&&(o=0),"s"===t?0===o?"0":""+o/l:(i=r(o,2+a),"ss"===t?i.substr(0,2):"."+i.substr(2,t.length-1))):r(n.S,t.length);case 90:switch(t){case"[h]":case"[hh]":s=24*n.D+n.H;break;case"[m]":case"[mm]":s=60*(24*n.D+n.H)+n.M;break;case"[s]":case"[ss]":s=60*(60*(24*n.D+n.H)+n.M)+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+t}f=3===t.length?1:2;break;case 101:s=h,f=1}return f>0?r(s,f):""}function C(e){if(e.length<=3)return e;for(var t=e.length%3,n=e.substr(0,t);t!=e.length;t+=3)n+=(n.length>0?",":"")+e.substr(t,3);return n}e._general_num=_,e._general=k;var S=function(){var e=/%/g;function i(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+i(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),-1===(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).indexOf("e")){var o=Math.floor(Math.log(t)*Math.LOG10E);for(-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(o-n.length+s):n+="E+"+(o-s);"0."===n.substr(0,2);)n=(n=n.charAt(0)+n.substr(2,a)+"."+n.substr(2+a)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}var l=/# (\?+)( ?)\/( ?)(\d+)/,u=/^#*0*\.([0#]+)/,c=/\).*[0#]/,h=/\(###\) ###\\?-####/;function f(e){for(var t,n="",r=0;r!=e.length;++r)switch(t=e.charCodeAt(r)){case 35:break;case 63:n+=" ";break;case 48:n+="0";break;default:n+=String.fromCharCode(t)}return n}function d(e,t){var n=Math.pow(10,t);return""+Math.round(e*n)/n}function p(e,t){var n=e-Math.floor(e),r=Math.pow(10,t);return t<(""+Math.round(n*r)).length?0:Math.round(n*r)}function m(y,b,v){if(40===y.charCodeAt(0)&&!b.match(c)){var w=b.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return v>=0?m("n",w,v):"("+m("n",w,-v)+")"}if(44===b.charCodeAt(b.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(y,b,v);if(-1!==b.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(y,b,v);if(-1!==b.indexOf("E"))return i(b,v);if(36===b.charCodeAt(0))return"$"+m(y,b.substr(" "==b.charAt(1)?2:1),v);var x,_,k,E,N=Math.abs(v),I=v<0?"-":"";if(b.match(/^00+$/))return I+o(N,b.length);if(b.match(/^[#?]+$/))return"0"===(x=o(v,0))&&(x=""),x.length>b.length?x:f(b.substr(0,b.length-x.length))+x;if(_=b.match(l))return function(e,t,s){var i=parseInt(e[4],10),o=Math.round(t*i),l=Math.floor(o/i),u=o-l*i,c=i;return s+(0===l?"":""+l)+" "+(0===u?n(" ",e[1].length+1+e[4].length):a(u,e[1].length)+e[2]+"/"+e[3]+r(c,e[4].length))}(_,N,I);if(b.match(/^#+0+$/))return I+o(N,b.length-b.indexOf("0"));if(_=b.match(u))return x=d(v,_[1].length).replace(/^([^\.]+)$/,"$1."+f(_[1])).replace(/\.$/,"."+f(_[1])).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(_[1]).length-t.length)})),-1!==b.indexOf("0.")?x:x.replace(/^0\./,".");if(b=b.replace(/^#+([0.])/,"$1"),_=b.match(/^(0*)\.(#*)$/))return I+d(N,_[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,_[1].length?"0.":".");if(_=b.match(/^#{1,3},##0(\.?)$/))return I+C(o(N,0));if(_=b.match(/^#,##0\.([#0]*0)$/))return v<0?"-"+m(y,b,-v):C(""+(Math.floor(v)+function(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}(v,_[1].length)))+"."+r(p(v,_[1].length),_[1].length);if(_=b.match(/^#,#*,#0/))return m(y,b.replace(/^#,#*,/,""),v);if(_=b.match(/^([0#]+)(\\?-([0#]+))+$/))return x=t(m(y,b.replace(/[\\-]/g,""),v)),k=0,t(t(b.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return k-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(v)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,(function(e){return"00,"+(e.length<3?r(0,3-e.length):"")+e}))+"."+r(k,_[1].length);switch(b){case"###,##0.00":return m(y,"#,##0.00",v);case"###,###":case"##,###":case"#,###":var F=C(o(N,0));return"0"!==F?I+F:"";case"###,###.00":return m(y,"###,##0.00",v).replace(/^0\./,".");case"#,###.00":return m(y,"#,##0.00",v).replace(/^0\./,".")}throw new Error("unsupported format |"+b+"|")}function y(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+y(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),!(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).match(/[Ee]/)){var i=Math.floor(Math.log(t)*Math.LOG10E);-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(i-n.length+s):n+="E+"+(i-s),n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}function b(i,o,d){if(40===i.charCodeAt(0)&&!o.match(c)){var p=o.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return d>=0?b("n",p,d):"("+b("n",p,-d)+")"}if(44===o.charCodeAt(o.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(i,o,d);if(-1!==o.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(i,o,d);if(-1!==o.indexOf("E"))return y(o,d);if(36===o.charCodeAt(0))return"$"+b(i,o.substr(" "==o.charAt(1)?2:1),d);var m,v,w,x,_=Math.abs(d),k=d<0?"-":"";if(o.match(/^00+$/))return k+r(_,o.length);if(o.match(/^[#?]+$/))return m=""+d,0===d&&(m=""),m.length>o.length?m:f(o.substr(0,o.length-m.length))+m;if(v=o.match(l))return function(e,t,r){return r+(0===t?"":""+t)+n(" ",e[1].length+2+e[4].length)}(v,_,k);if(o.match(/^#+0+$/))return k+r(_,o.length-o.indexOf("0"));if(v=o.match(u))return m=(m=(""+d).replace(/^([^\.]+)$/,"$1."+f(v[1])).replace(/\.$/,"."+f(v[1]))).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(v[1]).length-t.length)})),-1!==o.indexOf("0.")?m:m.replace(/^0\./,".");if(o=o.replace(/^#+([0.])/,"$1"),v=o.match(/^(0*)\.(#*)$/))return k+(""+_).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,v[1].length?"0.":".");if(v=o.match(/^#{1,3},##0(\.?)$/))return k+C(""+_);if(v=o.match(/^#,##0\.([#0]*0)$/))return d<0?"-"+b(i,o,-d):C(""+d)+"."+n("0",v[1].length);if(v=o.match(/^#,#*,#0/))return b(i,o.replace(/^#,#*,/,""),d);if(v=o.match(/^([0#]+)(\\?-([0#]+))+$/))return m=t(b(i,o.replace(/[\\-]/g,""),d)),w=0,t(t(o.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return w-1||"\\"==n&&"-"==e.charAt(t+1)&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===n;);break;case"*":++t," "!=e.charAt(t)&&"*"!=e.charAt(t)||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;case" ":default:++t}return!1}function D(e,t,n,r){for(var a,s,i,o=[],u="",c=0,h="",f="t",d="H";c=12?"P":"A"),g.t="T",d="h",c+=3):"AM/PM"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"PM":"AM"),g.t="T",c+=5,d="h"):"上午/下午"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"下午":"上午"),g.t="T",c+=5,d="h"):(g.t="t",++c),null==a&&"T"===g.t)return"";o[o.length]=g,f=h;break;case"[":for(u=h;"]"!==e.charAt(c++)&&c-1&&(u=(u.match(/\$([^-\[\]]*)/)||[])[1]||"$",A(e)||(o[o.length]={t:"t",v:u}));break;case".":if(null!=a){for(u=h;++c-1;)u+=h;o[o.length]={t:"n",v:u};break;case"?":for(u=h;e.charAt(++c)===h;)u+=h;o[o.length]={t:h,v:u},f=h;break;case"*":++c," "!=e.charAt(c)&&"*"!=e.charAt(c)||++c;break;case"(":case")":o[o.length]={t:1===r?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(u=h;c-1;)u+=e.charAt(c);o[o.length]={t:"D",v:u};break;case" ":o[o.length]={t:h,v:h},++c;break;case"$":o[o.length]={t:"t",v:"$"},++c;break;default:if(-1===",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h))throw new Error("unrecognized character "+h+" in "+e);o[o.length]={t:"t",v:h},++c}var b,v=0,w=0;for(c=o.length-1,f="t";c>=0;--c)switch(o[c].t){case"h":case"H":o[c].t=d,f="h",v<1&&(v=1);break;case"s":(b=o[c].v.match(/\.0+$/))&&(w=Math.max(w,b[0].length-1)),v<3&&(v=3);case"d":case"y":case"M":case"e":f=o[c].t;break;case"m":"s"===f&&(o[c].t="M",v<2&&(v=2));break;case"X":break;case"Z":v<1&&o[c].v.match(/[Hh]/)&&(v=1),v<2&&o[c].v.match(/[Mm]/)&&(v=2),v<3&&o[c].v.match(/[Ss]/)&&(v=3)}switch(v){case 0:break;case 1:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H);break;case 2:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M)}var x,_="";for(c=0;c0){40==_.charCodeAt(0)?(C=t<0&&45===_.charCodeAt(0)?-t:t,N=S("n",_,C)):(N=S("n",_,C=t<0&&r>1?-t:t),C<0&&o[0]&&"t"==o[0].t&&(N=N.substr(1),o[0].v="-"+o[0].v)),x=N.length-1;var T=o.length;for(c=0;c-1){T=c;break}var F=o.length;if(T===o.length&&-1===N.indexOf("E")){for(c=o.length-1;c>=0;--c)null!=o[c]&&-1!=="n?".indexOf(o[c].t)&&(x>=o[c].v.length-1?(x-=o[c].v.length,o[c].v=N.substr(x+1,o[c].v.length)):x<0?o[c].v="":(o[c].v=N.substr(0,x+1),x=-1),o[c].t="t",F=c);x>=0&&F=0;--c)if(null!=o[c]&&-1!=="n?".indexOf(o[c].t)){for(s=o[c].v.indexOf(".")>-1&&c===T?o[c].v.indexOf(".")-1:o[c].v.length-1,D=o[c].v.substr(s+1);s>=0;--s)x>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(D=N.charAt(x--)+D);o[c].v=D,o[c].t="t",F=c}for(x>=0&&F-1&&c===T?o[c].v.indexOf(".")+1:0,D=o[c].v.substr(0,s);s-1&&(C=r>1&&t<0&&c>0&&"-"===o[c-1].v?-t:t,o[c].v=S(o[c].t,o[c].v,C),o[c].t="t");var R="";for(c=0;c!==o.length;++c)null!=o[c]&&(R+=o[c].v);return R}e.is_date=A,e._eval=D;var T=/\[[=<>]/,F=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function R(e,t){if(null==t)return!1;var n=parseFloat(t[2]);switch(t[1]){case"=":if(e==n)return!0;break;case">":if(e>n)return!0;break;case"<":if(e":if(e!=n)return!0;break;case">=":if(e>=n)return!0;break;case"<=":if(e<=n)return!0}return!1}function O(e,t,n){null==n&&(n={});var r="";switch(typeof e){case"string":r="m/d/yy"==e&&n.dateNF?n.dateNF:e;break;case"number":null==(r=14==e&&n.dateNF?n.dateNF:(null!=n.table?n.table:f)[e])&&(r=n.table&&n.table[d[e]]||f[d[e]]),null==r&&(r=m[e]||"General")}if(l(r,0))return k(t,n);t instanceof Date&&(t=x(t,n.date1904));var a=function(e,t){var n=N(e),r=n.length,a=n[r-1].indexOf("@");if(r<4&&a>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if("number"!=typeof t)return[4,4===n.length||a>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=a>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=a>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=a>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"]}var s=t>0?n[0]:t<0?n[1]:n[2];if(-1===n[0].indexOf("[")&&-1===n[1].indexOf("["))return[r,s];if(null!=n[0].match(T)||null!=n[1].match(T)){var i=n[0].match(F),o=n[1].match(F);return R(t,i)?[r,n[0]]:R(t,o)?[r,n[1]]:[r,n[null!=i&&null!=o?2:1]]}return[r,s]}(r,t);if(l(a[1]))return k(t,n);if(!0===t)t="TRUE";else if(!1===t)t="FALSE";else if(""===t||null==t)return"";return D(a[1],t,n,a[0])}function B(e,t){if("number"!=typeof t){t=+t||-1;for(var n=0;n<392;++n)if(null!=f[n]){if(f[n]==e){t=n;break}}else t<0&&(t=n);t<0&&(t=391)}return f[t]=e,t}e.load=B,e._table=f,e.get_table=function(){return f},e.load_table=function(e){for(var t=0;392!=t;++t)void 0!==e[t]&&B(e[t],t)},e.init_table=h,e.format=O};D(A);var T,F={"General Number":"General","General Date":A._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":A._table[15],"Short Date":A._table[14],"Long Time":A._table[19],"Medium Time":A._table[18],"Short Time":A._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:A._table[2],Standard:A._table[4],Percent:A._table[10],Scientific:A._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'},R={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},O=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;!function(e){e.version="1.2.0";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!=typeof Int32Array?new Int32Array(t):t}();e.table=t,e.bstr=function(e,n){for(var r=-1^n,a=e.length-1,s=0;s>>8^t[255&(r^e.charCodeAt(s++))])>>>8^t[255&(r^e.charCodeAt(s++))];return s===a&&(r=r>>>8^t[255&(r^e.charCodeAt(s))]),-1^r},e.buf=function(e,n){if(e.length>1e4)return function(e,n){for(var r=-1^n,a=e.length-7,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r}(e,n);for(var r=-1^n,a=e.length-3,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r},e.str=function(e,n){for(var r,a,s=-1^n,i=0,o=e.length;i>>8^t[255&(s^r)]:r<2048?s=(s=s>>>8^t[255&(s^(192|r>>6&31))])>>>8^t[255&(s^(128|63&r))]:r>=55296&&r<57344?(r=64+(1023&r),a=1023&e.charCodeAt(i++),s=(s=(s=(s=s>>>8^t[255&(s^(240|r>>8&7))])>>>8^t[255&(s^(128|r>>2&63))])>>>8^t[255&(s^(128|a>>6&15|(3&r)<<4))])>>>8^t[255&(s^(128|63&a))]):s=(s=(s=s>>>8^t[255&(s^(224|r>>12&15))])>>>8^t[255&(s^(128|r>>6&63))])>>>8^t[255&(s^(128|63&r))];return-1^s}}(T={});var B,M=function(){var e,t={};function r(e){if("/"==e.charAt(e.length-1))return-1===e.slice(0,-1).indexOf("/")?e:r(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(0,t+1)}function a(e){if("/"==e.charAt(e.length-1))return a(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(t+1)}function s(e,t){"string"==typeof t&&(t=new Date(t));var n=t.getHours();n=(n=n<<6|t.getMinutes())<<5|t.getSeconds()>>>1,e.write_shift(2,n);var r=t.getFullYear()-1980;r=(r=r<<4|t.getMonth()+1)<<5|t.getDate(),e.write_shift(2,r)}function i(e){Bt(e,0);for(var t={},n=0;e.l<=e.length-4;){var r=e.read_shift(2),a=e.read_shift(2),s=e.l+a,i={};switch(r){case 21589:1&(n=e.read_shift(1))&&(i.mtime=e.read_shift(4)),a>5&&(2&n&&(i.atime=e.read_shift(4)),4&n&&(i.ctime=e.read_shift(4))),i.mtime&&(i.mt=new Date(1e3*i.mtime))}e.l=s,t[r]=i}return t}function o(){return e||(e=n(2993))}function l(e,t){if(80==e[0]&&75==e[1])return he(e,t);if(e.length<512)throw new Error("CFB file size "+e.length+" < 512");var n,r,a,s,i,o,l=512,d=[],p=e.slice(0,512);Bt(p,0);var m=function(e){if(80==e[e.l]&&75==e[e.l+1])return[0,0];e.chk(E,"Header Signature: "),e.l+=16;var t=e.read_shift(2,"u");return[e.read_shift(2,"u"),t]}(p);switch(n=m[0]){case 3:l=512;break;case 4:l=4096;break;case 0:if(0==m[1])return he(e,t);default:throw new Error("Major Version: Expected 3 or 4 saw "+n)}512!==l&&Bt(p=e.slice(0,l),28);var g=e.slice(0,l);!function(e,t){var n;switch(e.l+=2,n=e.read_shift(2)){case 9:if(3!=t)throw new Error("Sector Shift: Expected 9 saw "+n);break;case 12:if(4!=t)throw new Error("Sector Shift: Expected 12 saw "+n);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+n)}e.chk("0600","Mini Sector Shift: "),e.chk("000000000000","Reserved: ")}(p,n);var y=p.read_shift(4,"i");if(3===n&&0!==y)throw new Error("# Directory Sectors: Expected 0 saw "+y);p.l+=4,s=p.read_shift(4,"i"),p.l+=4,p.chk("00100000","Mini Stream Cutoff Size: "),i=p.read_shift(4,"i"),r=p.read_shift(4,"i"),o=p.read_shift(4,"i"),a=p.read_shift(4,"i");for(var b=-1,v=0;v<109&&!((b=p.read_shift(4,"i"))<0);++v)d[v]=b;var w=function(e,t){for(var n=Math.ceil(e.length/t)-1,r=[],a=1;a=a&&(f-=a),!i[f]){l=[];var p=[];for(h=f;h>=0;){p[h]=!0,i[h]=!0,o[o.length]=h,l.push(e[h]);var m=n[Math.floor(4*h/r)];if(r<4+(d=4*h&u))throw new Error("FAT boundary crossed: "+h+" 4 "+r);if(!e[m])break;if(p[h=At(e[m],d)])break}s[f]={nodes:o,data:it([l])}}return s}(w,s,d,l);x[s].name="!Directory",r>0&&i!==k&&(x[i].name="!MiniFAT"),x[d[0]].name="!FAT",x.fat_addrs=d,x.ssz=l;var _=[],C=[],S=[];!function(e,t,n,r,a,s,i,o){for(var l,c=0,d=r.length?2:0,p=t[e].data,m=0,g=0;m0&&c!==k&&(t[c].name="!StreamData")):b.size>=4096?(b.storage="fat",void 0===t[b.start]&&(t[b.start]=h(n,b.start,t.fat_addrs,t.ssz)),t[b.start].name=b.name,b.content=t[b.start].data.slice(0,b.size)):(b.storage="minifat",b.size<0?b.size=0:c!==k&&b.start!==k&&t[c]&&(b.content=u(b,t[c].data,(t[o]||{}).data))),b.content&&Bt(b.content,0),s[l]=b,i.push(b)}}(s,x,w,_,r,{},C,i),function(e,t,n){for(var r=0,a=0,s=0,i=0,o=0,l=n.length,u=[],c=[];r0&&i>=0;)s.push(t.slice(i*v,i*v+v)),a-=v,i=At(n,4*i);return 0===s.length?$t(0):S(s).slice(0,e.size)}function c(e,t,n,r,a){var s=k;if(e===k){if(0!==t)throw new Error("DIFAT chain shorter than expected")}else if(-1!==e){var i=n[e],o=(r>>>2)-1;if(!i)return;for(var l=0;l=0;){a[l]=!0,s[s.length]=l,i.push(e[l]);var c=n[Math.floor(4*l/r)];if(r<4+(u=4*l&o))throw new Error("FAT boundary crossed: "+l+" 4 "+r);if(!e[c])break;l=At(e[c],u)}return{nodes:s,data:it([i])}}function f(e,t){return new Date(1e3*(It(e,t+4)/1e7*Math.pow(2,32)+It(e,t)/1e7-11644473600))}function d(e,t){var n=t||{},r=n.root||"Root Entry";if(e.FullPaths||(e.FullPaths=[]),e.FileIndex||(e.FileIndex=[]),e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");0===e.FullPaths.length&&(e.FullPaths[0]=r+"/",e.FileIndex[0]={name:r,type:5}),n.CLSID&&(e.FileIndex[0].clsid=n.CLSID),function(e){var t="Sh33tJ5";if(!M.find(e,"/"+t)){var n=$t(4);n[0]=55,n[1]=n[3]=50,n[2]=54,e.FileIndex.push({name:t,type:2,content:n,size:4,L:69,R:69,C:69}),e.FullPaths.push(e.FullPaths[0]+t),p(e)}}(e)}function p(e,t){d(e);for(var n=!1,s=!1,i=e.FullPaths.length-1;i>=0;--i){var o=e.FileIndex[i];switch(o.type){case 0:s?n=!0:(e.FileIndex.pop(),e.FullPaths.pop());break;case 1:case 2:case 5:s=!0,isNaN(o.R*o.L*o.C)&&(n=!0),o.R>-1&&o.L>-1&&o.R==o.L&&(n=!0);break;default:n=!0}}if(n||t){var l=new Date(1987,1,19),u=0,c=[];for(i=0;i1?1:-1,f.size=0,f.type=5;else if("/"==p.slice(-1)){for(u=i+1;u=c.length?-1:u,u=i+1;u=c.length?-1:u,f.type=1}else r(e.FullPaths[i+1]||"")==r(p)&&(f.R=i+1),f.type=2}}}function m(e,t){var n=t||{};if(p(e),"zip"==n.fileType)return function(e,t){var n=t||{},r=[],a=[],i=$t(1),o=n.compression?8:0,l=0,u=0,c=0,h=0,f=e.FullPaths[0],d=f,p=e.FileIndex[0],m=[],g=0;for(l=1;l0&&(s<4096?t+=s+63>>6:n+=s+511>>9)}}for(var i=e.FullPaths.length+3>>2,o=t+127>>7,l=(t+7>>3)+n+i+o,u=l+127>>7,c=u<=109?0:Math.ceil((u-109)/127);l+u+c+127>>7>u;)c=++u<=109?0:Math.ceil((u-109)/127);var h=[1,c,u,o,i,n,t,0];return e.FileIndex[0].size=t<<6,h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3),h}(e),a=$t(r[7]<<9),i=0,o=0;for(i=0;i<8;++i)a.write_shift(1,C[i]);for(i=0;i<8;++i)a.write_shift(2,0);for(a.write_shift(2,62),a.write_shift(2,3),a.write_shift(2,65534),a.write_shift(2,9),a.write_shift(2,6),i=0;i<3;++i)a.write_shift(2,0);for(a.write_shift(4,0),a.write_shift(4,r[2]),a.write_shift(4,r[0]+r[1]+r[2]+r[3]-1),a.write_shift(4,0),a.write_shift(4,4096),a.write_shift(4,r[3]?r[0]+r[1]+r[2]-1:k),a.write_shift(4,r[3]),a.write_shift(-4,r[1]?r[0]-1:k),a.write_shift(4,r[1]),i=0;i<109;++i)a.write_shift(-4,i>9)));for(l(r[6]+7>>3);511&a.l;)a.write_shift(-4,D.ENDOFCHAIN);for(o=i=0,u=0;u=4096||(h.start=o,l(c+63>>6)));for(;511&a.l;)a.write_shift(-4,D.ENDOFCHAIN);for(i=0;i=4096){for(a.l=h.start+1<<9,u=0;u0&&h.size<4096){for(u=0;u>16|B>>8|B));function V(e,t){var n=W[255&e];return t<=8?n>>>8-t:(n=n<<8|W[e>>8&255],t<=16?n>>>16-t:(n=n<<8|W[e>>16&255])>>>24-t)}function j(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=6?0:e[r+1]<<8))>>>n&3}function H(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=5?0:e[r+1]<<8))>>>n&7}function G(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=3?0:e[r+1]<<8))>>>n&31}function X(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=1?0:e[r+1]<<8))>>>n&127}function q(e,t,n){var r=7&t,a=t>>>3,s=(1<>>r;return n<8-r?i&s:(i|=e[a+1]<<8-r,n<16-r?i&s:(i|=e[a+2]<<16-r,n<24-r?i&s:(i|=e[a+3]<<24-r)&s))}function K(e,t){var n=e.length,r=2*n>t?2*n:t+5,a=0;if(n>=t)return e;if(y){var s=x(r);if(e.copy)e.copy(s);else for(;a0;)t[t.l++]=e[n++]}return t.l},function(e){var t=$t(50+Math.floor(1.1*e.length)),n=Y(e,t);return t.slice(0,n)});function Q(e,t,n){var r=1,a=0,s=0,i=0,o=0,l=e.length,u=z?new Uint16Array(32):Z(32);for(s=0;s<32;++s)u[s]=0;for(s=l;s>r-h,i=(1<=0;--i)t[o|i<>>3;return(e[r]|(n<=4?0:e[r+1]<<8))>>>n&15}(e,t+=5)+4;t+=4;for(var s=0,i=z?new Uint8Array(19):Z(19),o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=1,u=z?new Uint8Array(8):Z(8),c=z?new Uint8Array(8):Z(8),h=i.length,f=0;f>8-p;for(var m=(1<<7-p)-1;m>=0;--m)se[d|m<>>=3){case 16:for(s=3+j(e,t),t+=2,d=g[g.length-1];s-- >0;)g.push(d);break;case 17:for(s=3+H(e,t),t+=3;s-- >0;)g.push(0);break;case 18:for(s=11+X(e,t),t+=7;s-- >0;)g.push(0);break;default:g.push(d),l>>0,o=0,l=0;0==(1&r);)if(r=H(e,n),n+=3,r>>>1!=0)for(r>>>1==1?(o=9,l=5):(n=le(e,n),o=ie,l=oe),!t&&i>>1==1?ee[u]:re[u];if(n+=15&c,0==((c>>>=4)>>>8&255))a[s++]=c;else{if(256==c)break;var h=(c-=257)<8?0:c-4>>2;h>5&&(h=0);var f=s+P[c];h>0&&(f+=q(e,n,h),n+=h),u=q(e,n,l),n+=15&(c=r>>>1==1?te[u]:ae[u]);var d=(c>>>=4)<4?0:c-2>>1,p=L[c];for(d>0&&(p+=q(e,n,d),n+=d),!t&&i>>3]|e[1+(n>>>3)]<<8;if(n+=32,!t&&i>>3,(n>>>3)+m),s+=m,n+=8*m;else for(;m-- >0;)a[s++]=e[n>>>3],n+=8}return[t?a:a.slice(0,s),n+7>>>3]}(e.slice(e.l||0),t);return e.l+=n[1],n[0]}function ce(e,t){if(!e)throw new Error(t);"undefined"!=typeof console&&console.error(t)}function he(e,t){var n=e;Bt(n,0);var r={FileIndex:[],FullPaths:[]};d(r,{root:t.root});for(var a=n.length-4;(80!=n[a]||75!=n[a+1]||5!=n[a+2]||6!=n[a+3])&&a>=0;)--a;n.l=a+4,n.l+=4;var s=n.read_shift(2);n.l+=6;var o=n.read_shift(4);for(n.l=o,a=0;a>>=5);n>>>=4,r.setMilliseconds(0),r.setFullYear(n+1980),r.setMonth(s-1),r.setDate(a);var i=31&t,o=63&(t>>>=5);return t>>>=6,r.setHours(t),r.setMinutes(o),r.setSeconds(i<<1),r}(e);if(8257&s)throw new Error("Unsupported ZIP encryption");for(var u=e.read_shift(4),c=e.read_shift(4),h=e.read_shift(4),f=e.read_shift(2),d=e.read_shift(2),p="",m=0;m3&&(r=!0),a[s].slice(a[s].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+a[s].slice(a[s].length-1));case"D":n*=24;case"H":n*=60;case"M":if(!r)throw new Error("Unsupported ISO Duration Field: M");n*=60}t+=n*parseInt(a[s],10)}return t}var Y=new Date("2017-02-19T19:06:09.000Z");isNaN(Y.getFullYear())&&(Y=new Date("2/19/17"));var J=2017==Y.getFullYear();function Q(e,t){var n=new Date(e);if(J)return t>0?n.setTime(n.getTime()+60*n.getTimezoneOffset()*1e3):t<0&&n.setTime(n.getTime()-60*n.getTimezoneOffset()*1e3),n;if(e instanceof Date)return e;if(1917==Y.getFullYear()&&!isNaN(n.getFullYear())){var r=n.getFullYear();return e.indexOf(""+r)>-1||n.setFullYear(n.getFullYear()+100),n}var a=e.match(/\d+/g)||["2017","2","19","0","0","0"],s=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf("Z")>-1&&(s=new Date(s.getTime()-60*s.getTimezoneOffset()*1e3)),s}function ee(e){for(var t="",n=0;n!=e.length;++n)t+=String.fromCharCode(e[n]);return t}function te(e){if("undefined"!=typeof JSON&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=te(e[n]));return t}function ne(e,t){for(var n="";n.length8099?n:(a>0||s>1)&&101!=r||e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)?t:e.match(/[^-0-9:,\/\\]/)?n:t}var se,ie=5=="abacaba".split(/(:?b)/i).length;function oe(e){return e?e.data?f(e.data):e.asNodeBuffer&&y?f(e.asNodeBuffer().toString("binary")):e.asBinary?f(e.asBinary()):e._data&&e._data.getContent?f(ee(Array.prototype.slice.call(e._data.getContent(),0))):e.content&&e.type?f(ee(e.content)):null:null}function le(e,t){for(var n=e.FullPaths||z(e.files),r=t.toLowerCase(),a=r.replace(/\//g,"\\"),s=0;s\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,ye=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s?[\/\?]?>/gm;me.match(ye)||(ye=/<[^>]*>/g);var be=/<\w*:/,ve=/<(\/?)\w+:/;function we(e,t,n){for(var r={},a=0,s=0;a!==e.length&&32!==(s=e.charCodeAt(a))&&10!==s&&13!==s;++a);if(t||(r[0]=e.slice(0,a)),a===e.length)return r;var i=e.match(ge),o=0,l="",u=0,c="",h="",f=1;if(i)for(u=0;u!=i.length;++u){for(h=i[u],s=0;s!=h.length&&61!==h.charCodeAt(s);++s);for(c=h.slice(0,s).trim();32==h.charCodeAt(s+1);)++s;for(f=34==(a=h.charCodeAt(s+1))||39==a?1:0,l=h.slice(s+1+f,h.length-f),o=0;o!=c.length&&58!==c.charCodeAt(o);++o);if(o===c.length)c.indexOf("_")>0&&(c=c.slice(0,c.indexOf("_"))),r[c]=l,n||(r[c.toLowerCase()]=l);else{var d=(5===o&&"xmlns"===c.slice(0,5)?"xmlns":"")+c.slice(o+1);if(r[d]&&"ext"==c.slice(o-3,o))continue;r[d]=l,n||(r[d.toLowerCase()]=l)}}return r}function xe(e){return e.replace(ve,"<$1")}var _e,ke,Ee={""":'"',"'":"'",">":">","<":"<","&":"&"},Ce=U(Ee),Se=(_e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi,ke=/_x([\da-fA-F]{4})_/gi,function e(t){var n=t+"",r=n.indexOf("-1?16:10))||e})).replace(ke,(function(e,t){return String.fromCharCode(parseInt(t,16))}));var a=n.indexOf("]]>");return e(n.slice(0,r))+n.slice(r+9,a)+e(n.slice(a+3))}),Ne=/[&<>'"]/g,Ie=/[\u0000-\u0008\u000b-\u001f]/g;function Ae(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(Ie,(function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"}))}function De(e){return Ae(e).replace(/ /g,"_x0020_")}var Te=/[\u0000-\u001f]/g;function Fe(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(/\n/g,"
").replace(Te,(function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"}))}var Re=function(){var e=/&#(\d+);/g;function t(e,t){return String.fromCharCode(parseInt(t,10))}return function(n){return n.replace(e,t)}}();function Oe(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}var Be=function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0;n191&&r<224?(i=(31&r)<<6,i|=63&a,t+=String.fromCharCode(i)):(s=e.charCodeAt(n++),r<240?t+=String.fromCharCode((15&r)<<12|(63&a)<<6|63&s):(o=((7&r)<<18|(63&a)<<12|(63&s)<<6|63&(i=e.charCodeAt(n++)))-65536,t+=String.fromCharCode(55296+(o>>>10&1023)),t+=String.fromCharCode(56320+(1023&o)))));return t},Me=function(e){for(var t=[],n=0,r=0,a=0;n>6))),t.push(String.fromCharCode(128+(63&r)));break;case r>=55296&&r<57344:r-=55296,a=e.charCodeAt(n++)-56320+(r<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(63&a)));break;default:t.push(String.fromCharCode(224+(r>>12))),t.push(String.fromCharCode(128+(r>>6&63))),t.push(String.fromCharCode(128+(63&r)))}return t.join("")};if(y){var $e=function(e){var t,n,r,a=Buffer.alloc(2*e.length),s=1,i=0,o=0;for(n=0;n>>10&1023),t=56320+(1023&t)),0!==o&&(a[i++]=255&o,a[i++]=o>>>8,o=0),a[i++]=t%256,a[i++]=t>>>8;return a.slice(0,i).toString("ucs2")},Pe="foo bar baz☃🍣";Be(Pe)==$e(Pe)&&(Be=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Be(Pe)==Le(Pe)&&(Be=Le),Me=function(e){return b(e,"utf8").toString("binary")}}var ze,We,Ue,Ve=(ze={},function(e,t){var n=e+"|"+(t||"");return ze[n]?ze[n]:ze[n]=new RegExp("<(?:\\w+:)?"+e+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",t||"")}),je=(We=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map((function(e){return[new RegExp("&"+e[0]+";","ig"),e[1]]})),function(e){for(var t=e.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,"\n").replace(/<[^>]*>/g,""),n=0;n([\\s\\S]*?)","g")}),Ge=/<\/?(?:vt:)?variant>/g,Xe=/<(?:vt:)([^>]*)>([\s\S]*)"+t+""}function Ye(e){return z(e).map((function(t){return" "+t+'="'+e[t]+'"'})).join("")}function Je(e,t,n){return"<"+e+(null!=n?Ye(n):"")+(null!=t?(t.match(Ke)?' xml:space="preserve"':"")+">"+t+""}function Qe(e,t){try{return e.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}return""}var et,tt,nt={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",main:["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"]},rt="urn:schemas-microsoft-com:office:office",at="urn:schemas-microsoft-com:office:excel",st="urn:schemas-microsoft-com:office:spreadsheet",it=function(e){for(var t=[],n=0;n0?ft(e,t+4,t+4+n-1):""},mt=pt,gt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},yt=gt,bt=function(e,t){var n=2*It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},vt=bt;et=tt=function(e,t){var n=It(e,t);return n>0?lt(e,t+4,t+4+n):""};var wt,xt,_t=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n):""},kt=_t;wt=xt=function(e,t){return function(e,t){for(var n=1-2*(e[t+7]>>>7),r=((127&e[t+7])<<4)+(e[t+6]>>>4&15),a=15&e[t+6],s=5;s>=0;--s)a=256*a+e[t+s];return 2047==r?0==a?n*(1/0):NaN:(0==r?r=-1022:(r-=1023,a+=Math.pow(2,52)),n*Math.pow(2,r-52)*a)}(e,t)};var Et=function(e){return Array.isArray(e)};y&&(lt=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf16le",t,n).replace(N,""):ut(e,t,n)},ct=function(e,t,n){return Buffer.isBuffer(e)?e.toString("hex",t,t+n):ht(e,t,n)},pt=function(e,t){if(!Buffer.isBuffer(e))return mt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},gt=function(e,t){if(!Buffer.isBuffer(e))return yt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},bt=function(e,t){if(!Buffer.isBuffer(e))return vt(e,t);var n=2*e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n-1)},et=function(e,t){if(!Buffer.isBuffer(e))return tt(e,t);var n=e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n)},_t=function(e,t){if(!Buffer.isBuffer(e))return kt(e,t);var n=e.readUInt32LE(t);return e.toString("utf8",t+4,t+4+n)},ft=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf8",t,n):dt(e,t,n)},it=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):ot(e)},S=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)},wt=function(e,t){return Buffer.isBuffer(e)?e.readDoubleLE(t):xt(e,t)},Et=function(e){return Buffer.isBuffer(e)||Array.isArray(e)}),"undefined"!=typeof cptable&&(lt=function(e,t,n){return cptable.utils.decode(1200,e.slice(t,n)).replace(N,"")},ft=function(e,t,n){return cptable.utils.decode(65001,e.slice(t,n))},pt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(a,e.slice(t+4,t+4+n-1)):""},gt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(r,e.slice(t+4,t+4+n-1)):""},bt=function(e,t){var n=2*It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n-1)):""},et=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n)):""},_t=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(65001,e.slice(t+4,t+4+n)):""});var Ct=function(e,t){return e[t]},St=function(e,t){return 256*e[t+1]+e[t]},Nt=function(e,t){var n=256*e[t+1]+e[t];return n<32768?n:-1*(65535-n+1)},It=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},At=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},Dt=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function Tt(e,t){var n,a,s,i,o,l,u="",c=[];switch(t){case"dbcs":if(l=this.l,y&&Buffer.isBuffer(this))u=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o0?At:Dt)(this,this.l),this.l+=4,n):(a=It(this,this.l),this.l+=4,a);case 8:case-8:if("f"===t)return a=8==e?wt(this,this.l):wt([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,a;e=8;case 16:u=ct(this,this.l,e)}}return this.l+=e,u}var Ft=function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255};function Rt(e,t,n){var r=0,s=0;if("dbcs"===n){for(s=0;s!=t.length;++s)Ft(this,t.charCodeAt(s),this.l+2*s);r=2*t.length}else if("sbcs"===n){if("undefined"!=typeof cptable&&874==a)for(s=0;s!=t.length;++s){var i=cptable.utils.encode(a,t.charAt(s));this[this.l+s]=i[0]}else for(t=t.replace(/[^\x00-\x7F]/g,"_"),s=0;s!=t.length;++s)this[this.l+s]=255&t.charCodeAt(s);r=t.length}else{if("hex"===n){for(;s>8}for(;this.l>>=8,this[this.l+1]=255&t;break;case 3:r=3,this[this.l]=255&t,t>>>=8,this[this.l+1]=255&t,t>>>=8,this[this.l+2]=255&t;break;case 4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24&255}(this,t,this.l);break;case 8:if(r=8,"f"===n){!function(e,t,n){var r=(t<0||1/t==-1/0?1:0)<<7,a=0,s=0,i=r?-t:t;isFinite(i)?0==i?a=s=0:(a=Math.floor(Math.log(i)/Math.LN2),s=i*Math.pow(2,52-a),a<=-1023&&(!isFinite(s)||s>4|r}(this,t,this.l);break}case 16:break;case-4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>8&255,e[n+2]=t>>16&255,e[n+3]=t>>24&255}(this,t,this.l)}}return this.l+=r,this}function Ot(e,t){var n=ct(this,this.l,e.length>>1);if(n!==e)throw new Error(t+"Expected "+e+" saw "+n);this.l+=e.length>>1}function Bt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Rt}function Mt(e,t){e.l+=t}function $t(e){var t=w(e);return Bt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Bt(e,e.l||0);for(var i=e.length,o=0,l=0;e.lr.l&&((r=r.slice(0,r.l)).l=r.length),r.length>0&&e.push(r),r=null)},s=function(e){return r&&e=128?1:0)+1,r>=128&&++a,r>=16384&&++a,r>=2097152&&++a;var i=e.next(a);s<=127?i.write_shift(1,s):(i.write_shift(1,128+(127&s)),i.write_shift(1,s>>7));for(var o=0;4!=o;++o){if(!(r>=128)){i.write_shift(1,r);break}i.write_shift(1,128+(127&r)),r>>=7}r>0&&Et(n)&&e.push(n)}}function Wt(e,t,n){var r=te(e);if(t.s?(r.cRel&&(r.c+=t.s.c),r.rRel&&(r.r+=t.s.r)):(r.cRel&&(r.c+=t.c),r.rRel&&(r.r+=t.r)),!n||n.biff<12){for(;r.c>=256;)r.c-=256;for(;r.r>=65536;)r.r-=65536}return r}function Ut(e,t,n){var r=te(e);return r.s=Wt(r.s,t.s,n),r.e=Wt(r.e,t.s,n),r}function Vt(e,t){if(e.cRel&&e.c<0)for(e=te(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=te(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var n=Zt(e);return e.cRel||null==e.cRel||(n=n.replace(/^([A-Z])/,"$$$1")),e.rRel||null==e.rRel||(n=n.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")),n}function jt(e,t){return 0!=e.s.r||e.s.rRel||e.e.r!=(t.biff>=12?1048575:t.biff>=8?65536:16384)||e.e.rRel?0!=e.s.c||e.s.cRel||e.e.c!=(t.biff>=12?16383:255)||e.e.cRel?Vt(e.s,t.biff)+":"+Vt(e.e,t.biff):(e.s.rRel?"":"$")+Gt(e.s.r)+":"+(e.e.rRel?"":"$")+Gt(e.e.r):(e.s.cRel?"":"$")+qt(e.s.c)+":"+(e.e.cRel?"":"$")+qt(e.e.c)}function Ht(e){return parseInt(e.replace(/\$(\d+)$/,"$1"),10)-1}function Gt(e){return""+(e+1)}function Xt(e){for(var t=e.replace(/^\$([A-Z])/,"$1"),n=0,r=0;r!==t.length;++r)n=26*n+t.charCodeAt(r)-64;return n-1}function qt(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function Kt(e){for(var t=0,n=0,r=0;r=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(n=26*n+(a-64))}return{c:n-1,r:t-1}}function Zt(e){for(var t=e.c+1,n="";t;t=(t-1)/26|0)n=String.fromCharCode((t-1)%26+65)+n;return n+(e.r+1)}function Yt(e){var t=e.indexOf(":");return-1==t?{s:Kt(e),e:Kt(e)}:{s:Kt(e.slice(0,t)),e:Kt(e.slice(t+1))}}function Jt(e,t){return void 0===t||"number"==typeof t?Jt(e.s,e.e):("string"!=typeof e&&(e=Zt(e)),"string"!=typeof t&&(t=Zt(t)),e==t?e:e+":"+t)}function Qt(e){var t={s:{c:0,r:0},e:{c:0,r:0}},n=0,r=0,a=0,s=e.length;for(n=0;r26);++r)n=26*n+a;for(t.s.c=--n,n=0;r9);++r)n=10*n+a;if(t.s.r=--n,r===s||58===e.charCodeAt(++r))return t.e.c=t.s.c,t.e.r=t.s.r,t;for(n=0;r!=s&&!((a=e.charCodeAt(r)-64)<1||a>26);++r)n=26*n+a;for(t.e.c=--n,n=0;r!=s&&!((a=e.charCodeAt(r)-48)<0||a>9);++r)n=10*n+a;return t.e.r=--n,t}function en(e,t,n){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&n&&n.dateNF&&(e.z=n.dateNF),function(e,t){var n="d"==e.t&&t instanceof Date;if(null!=e.z)try{return e.w=A.format(e.z,n?H(t):t)}catch(e){}try{return e.w=A.format((e.XF||{}).numFmtId||(n?14:0),n?H(t):t)}catch(e){return""+t}}(e,null==t?e.v:t))}function tn(e,t){var n=t&&t.sheet?t.sheet:"Sheet1",r={};return r[n]=e,{SheetNames:[n],Sheets:r}}function nn(e,t,n){var r=n||{},a=e?Array.isArray(e):r.dense,s=e||(a?[]:{}),i=0,o=0;if(s&&null!=r.origin){if("number"==typeof r.origin)i=r.origin;else{var l="string"==typeof r.origin?Kt(r.origin):r.origin;i=l.r,o=l.c}s["!ref"]||(s["!ref"]="A1:A1")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(s["!ref"]){var c=Qt(s["!ref"]);u.s.c=c.s.c,u.s.r=c.s.r,u.e.c=Math.max(u.e.c,c.e.c),u.e.r=Math.max(u.e.r,c.e.r),-1==i&&(u.e.r=i=c.e.r+1)}for(var h=0;h!=t.length;++h)if(t[h]){if(!Array.isArray(t[h]))throw new Error("aoa_to_sheet expects an array of arrays");for(var f=0;f!=t[h].length;++f)if(void 0!==t[h][f]){var d={v:t[h][f]},p=i+h,m=o+f;if(u.s.r>p&&(u.s.r=p),u.s.c>m&&(u.s.c=m),u.e.r0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}function ln(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function un(e,t){var n=e.l,r=e.read_shift(1),a=sn(e),s=[],i={t:a,h:a};if(0!=(1&r)){for(var o=e.read_shift(4),l=0;l!=o;++l)s.push(ln(e));i.r=s}else i.r=[{ich:0,ifnt:0}];return e.l=n+t,i}!function(e,t){var r;if(void 0!==t)r=t;else try{r=n(3906)}catch(e){r=null}e.rc4=function(e,t){var n=new Array(256),r=0,a=0,s=0,i=0;for(a=0;256!=a;++a)n[a]=a;for(a=0;256!=a;++a)s=s+n[a]+e[a%e.length].charCodeAt(0)&255,i=n[a],n[a]=n[s],n[s]=i;a=s=0;var o=w(t.length);for(r=0;r!=t.length;++r)s=(s+n[a=a+1&255])%256,i=n[a],n[a]=n[s],n[s]=i,o[r]=t[r]^n[n[a]+n[s]&255];return o},e.md5=function(e){if(!r)throw new Error("Unsupported crypto");return r.createHash("md5").update(e).digest("hex")}}({},"undefined"!=typeof crypto?crypto:void 0);var cn=un;function hn(e){var t=e.read_shift(4),n=e.read_shift(2);return n+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:n}}function fn(e,t){return null==t&&(t=$t(8)),t.write_shift(-4,e.c),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}var dn=sn,pn=on;function mn(e){var t=e.read_shift(4);return 0===t||4294967295===t?"":e.read_shift(t,"dbcs")}function gn(e,t){var n=!1;return null==t&&(n=!0,t=$t(127)),t.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}var yn=sn,bn=mn,vn=gn;function wn(e){var t=e.slice(e.l,e.l+4),n=1&t[0],r=2&t[0];e.l+=4,t[0]&=252;var a=0===r?wt([0,0,0,0,t[0],t[1],t[2],t[3]],0):At(t,0)>>2;return n?a/100:a}function xn(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}var _n=xn,kn=function(e,t){return t||(t=$t(16)),t.write_shift(4,e.s.r),t.write_shift(4,e.e.r),t.write_shift(4,e.s.c),t.write_shift(4,e.e.c),t};function En(e){return e.read_shift(8,"f")}function Cn(e,t){return(t||$t(8)).write_shift(8,e,"f")}function Sn(e,t){if(t||(t=$t(8)),!e||e.auto)return t.write_shift(4,0),t.write_shift(4,0),t;null!=e.index?(t.write_shift(1,2),t.write_shift(1,e.index)):null!=e.theme?(t.write_shift(1,6),t.write_shift(1,e.theme)):(t.write_shift(1,5),t.write_shift(1,0));var n=e.tint||0;if(n>0?n*=32767:n<0&&(n*=32768),t.write_shift(2,n),e.rgb&&null==e.theme){var r=e.rgb||"FFFFFF";"number"==typeof r&&(r=("000000"+r.toString(16)).slice(-6)),t.write_shift(1,parseInt(r.slice(0,2),16)),t.write_shift(1,parseInt(r.slice(2,4),16)),t.write_shift(1,parseInt(r.slice(4,6),16)),t.write_shift(1,255)}else t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);return t}function Nn(e,t){var n=e.read_shift(4);switch(n){case 0:return"";case 4294967295:case 4294967294:return{2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"}[e.read_shift(4)]||""}if(n>400)throw new Error("Unsupported Clipboard: "+n.toString(16));return e.l-=4,e.read_shift(0,1==t?"lpstr":"lpwstr")}var In=80,An=[In,81],Dn={1:{n:"CodePage",t:2},2:{n:"Category",t:In},3:{n:"PresentationFormat",t:In},4:{n:"ByteCount",t:3},5:{n:"LineCount",t:3},6:{n:"ParagraphCount",t:3},7:{n:"SlideCount",t:3},8:{n:"NoteCount",t:3},9:{n:"HiddenCount",t:3},10:{n:"MultimediaClipCount",t:3},11:{n:"ScaleCrop",t:11},12:{n:"HeadingPairs",t:4108},13:{n:"TitlesOfParts",t:4126},14:{n:"Manager",t:In},15:{n:"Company",t:In},16:{n:"LinksUpToDate",t:11},17:{n:"CharacterCount",t:3},19:{n:"SharedDoc",t:11},22:{n:"HyperlinksChanged",t:11},23:{n:"AppVersion",t:3,p:"version"},24:{n:"DigSig",t:65},26:{n:"ContentType",t:In},27:{n:"ContentStatus",t:In},28:{n:"Language",t:In},29:{n:"Version",t:In},255:{}},Tn={1:{n:"CodePage",t:2},2:{n:"Title",t:In},3:{n:"Subject",t:In},4:{n:"Author",t:In},5:{n:"Keywords",t:In},6:{n:"Comments",t:In},7:{n:"Template",t:In},8:{n:"LastAuthor",t:In},9:{n:"RevNumber",t:In},10:{n:"EditTime",t:64},11:{n:"LastPrinted",t:64},12:{n:"CreatedDate",t:64},13:{n:"ModifiedDate",t:64},14:{n:"PageCount",t:3},15:{n:"WordCount",t:3},16:{n:"CharCount",t:3},17:{n:"Thumbnail",t:71},18:{n:"Application",t:In},19:{n:"DocSecurity",t:3},255:{}},Fn={2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}};!function(){for(var e in Fn)Object.prototype.hasOwnProperty.call(Fn,e)&&(Dn[e]=Tn[e]=Fn[e])}();var Rn,On=W(Dn,"n"),Bn=W(Tn,"n"),Mn={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},$n=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Pn=te([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].map((function(e){return[e>>16&255,e>>8&255,255&e]}))),Ln={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},zn=V(Ln),Wn={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Un=(z(Rn={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}}).forEach((function(e){["xlsm","xlam"].forEach((function(t){Rn[e][t]||(Rn[e][t]=Rn[e].xlsx)}))})),z(Rn).forEach((function(e){z(Rn[e]).forEach((function(t){Wn[Rn[e][t]]=e}))})),Rn),Vn=function(e){for(var t=[],n=z(e),r=0;r!==n.length;++r)null==t[e[n[r]]]&&(t[e[n[r]]]=[]),t[e[n[r]]].push(n[r]);return t}(Wn);nt.CT="http://schemas.openxmlformats.org/package/2006/content-types";var jn=Je("Types",null,{xmlns:nt.CT,"xmlns:xsd":nt.xsd,"xmlns:xsi":nt.xsi}),Hn=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",Vn.rels[0]]].map((function(e){return Je("Default",null,{Extension:e[0],ContentType:e[1]})})),Gn={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Xn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function qn(e,t){var n={"!id":{}};if(!e)return n;"/"!==t.charAt(0)&&(t="/"+t);var r={};return(e.match(ye)||[]).forEach((function(e){var a=we(e);if("2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Yn=[Gn.HLINK,Gn.XPATH,Gn.XMISS];function Jn(e,t,n,r,a,s){if(a||(a={}),e["!id"]||(e["!id"]={}),t<0)for(t=1;e["!id"]["rId"+t];++t);if(a.Id="rId"+t,a.Type=r,a.Target=n,s?a.TargetMode=s:Yn.indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+t);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,t}function Qn(e,t,n){return[' \n',' \n'," \n"].join("")}var er,tr=(er='SheetJS '+t.version+"",function(){return er}),nr=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];nt.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties",Gn.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var rr=function(){for(var e=new Array(nr.length),t=0;t]*>([\\s\\S]*?)")}return e}();function ar(e){var t={};e=Be(e);for(var n=0;n0&&(t[r[1]]=Se(a[1])),"date"===r[2]&&t[r[1]]&&(t[r[1]]=Q(t[r[1]]))}return t}var sr=Je("cp:coreProperties",null,{"xmlns:cp":nt.CORE_PROPS,"xmlns:dc":nt.dc,"xmlns:dcterms":nt.dcterms,"xmlns:dcmitype":nt.dcmitype,"xmlns:xsi":nt.xsi});function ir(e,t,n,r,a){null==a[e]&&null!=t&&""!==t&&(a[e]=t,t=Ae(t),r[r.length]=n?Je(e,t,n):Ze(e,t))}var or=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function lr(e,t,n,r){var a=[];if("string"==typeof e)a=qe(e,r);else for(var s=0;s0)for(var u=0;u!==a.length;u+=2){switch(l=+a[u+1].v,a[u].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":n.Worksheets=l,n.SheetNames=i.slice(o,o+l);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":n.NamedRanges=l,n.DefinedNames=i.slice(o,o+l);break;case"Charts":case"Diagramme":n.Chartsheets=l,n.ChartNames=i.slice(o,o+l)}o+=l}}nt.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",Gn.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";var ur=Je("Properties",null,{xmlns:nt.EXT_PROPS,"xmlns:vt":nt.vt});nt.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",Gn.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var cr=/<[^>]+>[^<]*/g,hr=Je("Properties",null,{xmlns:nt.CUST_PROPS,"xmlns:vt":nt.vt});var fr={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},dr=U(fr);function pr(e,t,n){e[t=dr[t]||t]=n}function mr(e){var t=e.read_shift(4),n=e.read_shift(4);return new Date(1e3*(n/1e7*Math.pow(2,32)+t/1e7-11644473600)).toISOString().replace(/\.000/,"")}function gr(e,t,n){var r=e.l,a=e.read_shift(0,"lpstr-cp");if(n)for(;e.l-r&3;)++e.l;return a}function yr(e,t,n){var r=e.read_shift(0,"lpwstr");return n&&(e.l+=4-(r.length+1&3)&3),r}function br(e,t,n){return 31===t?yr(e):gr(e,0,n)}function vr(e,t,n){return br(e,t,!1===n?0:4)}function wr(e){return[kr(e,81),kr(e,3)]}function xr(e,t){for(var n=e.read_shift(4),r={},a=0;a!=n;++a){var s=e.read_shift(4),i=e.read_shift(4);r[s]=e.read_shift(i,1200===t?"utf16le":"utf8").replace(N,"").replace(I,"!"),1200===t&&i%2&&(e.l+=2)}return 3&e.l&&(e.l=e.l>>3<<2),r}function _r(e){var t=e.read_shift(4),n=e.slice(e.l,e.l+t);return e.l+=t,(3&t)>0&&(e.l+=4-(3&t)&3),n}function kr(e,t,n){var r,a=e.read_shift(2),s=n||{};if(e.l+=2,12!==t&&a!==t&&-1===An.indexOf(t))throw new Error("Expected type "+t+" saw "+a);switch(12===t?a:t){case 2:return r=e.read_shift(2,"i"),s.raw||(e.l+=2),r;case 3:return e.read_shift(4,"i");case 11:return 0!==e.read_shift(4);case 19:return e.read_shift(4);case 30:return gr(e,0,4).replace(N,"");case 31:return yr(e);case 64:return mr(e);case 65:return _r(e);case 71:return function(e){var t={};return t.Size=e.read_shift(4),e.l+=t.Size+3-(t.Size-1)%4,t}(e);case 80:return vr(e,a,!s.raw).replace(N,"");case 81:return function(e,t){if(!t)throw new Error("VtUnalignedString must have positive length");return br(e,t,0)}(e,a).replace(N,"");case 4108:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t/2;++r)n.push(wr(e));return n}(e)}(e);case 4126:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t;++r)n[r]=e.read_shift(0,"lpstr-cp").replace(N,"");return n}(e)}(e);default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+a)}}function Er(e,t){var n=$t(4),r=$t(4);switch(n.write_shift(4,80==e?31:e),e){case 3:r.write_shift(-4,t);break;case 5:(r=$t(8)).write_shift(8,t,"f");break;case 11:r.write_shift(4,t?1:0);break;case 64:r=function(e){var t=("string"==typeof e?new Date(Date.parse(e)):e).getTime()/1e3+11644473600,n=t%Math.pow(2,32),r=(t-n)/Math.pow(2,32);r*=1e7;var a=(n*=1e7)/Math.pow(2,32)|0;a>0&&(n%=Math.pow(2,32),r+=a);var s=$t(8);return s.write_shift(4,n),s.write_shift(4,r),s}(t);break;case 31:case 80:for((r=$t(4+2*(t.length+1)+(t.length%2?0:2))).write_shift(4,t.length+1),r.write_shift(0,t,"dbcs");r.l!=r.length;)r.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+e+" "+t)}return S([n,r])}function Cr(e,t){var n=e.l,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0,o=0,l=-1,c={};for(i=0;i!=a;++i){var h=e.read_shift(4),f=e.read_shift(4);s[i]=[h,f+n]}s.sort((function(e,t){return e[1]-t[1]}));var d={};for(i=0;i!=a;++i){if(e.l!==s[i][1]){var p=!0;if(i>0&&t)switch(t[s[i-1][0]].t){case 2:e.l+2===s[i][1]&&(e.l+=2,p=!1);break;case 80:case 4108:e.l<=s[i][1]&&(e.l=s[i][1],p=!1)}if((!t||0==i)&&e.l<=s[i][1]&&(p=!1,e.l=s[i][1]),p)throw new Error("Read Error: Expected address "+s[i][1]+" at "+e.l+" :"+i)}if(t){var m=t[s[i][0]];if(d[m.n]=kr(e,m.t,{raw:!0}),"version"===m.p&&(d[m.n]=String(d[m.n]>>16)+"."+("0000"+String(65535&d[m.n])).slice(-4)),"CodePage"==m.n)switch(d[m.n]){case 0:d[m.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:u(o=d[m.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[m.n])}}else if(1===s[i][0]){if(o=d.CodePage=kr(e,2),u(o),-1!==l){var g=e.l;e.l=s[l][1],c=xr(e,o),e.l=g}}else if(0===s[i][0]){if(0===o){l=i,e.l=s[i+1][1];continue}c=xr(e,o)}else{var y,b=c[s[i][0]];switch(e[e.l]){case 65:e.l+=4,y=_r(e);break;case 30:case 31:e.l+=4,y=vr(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,y=e.read_shift(4,"i");break;case 19:e.l+=4,y=e.read_shift(4);break;case 5:e.l+=4,y=e.read_shift(8,"f");break;case 11:e.l+=4,y=Fr(e,4);break;case 64:e.l+=4,y=Q(mr(e));break;default:throw new Error("unparsed value: "+e[e.l])}d[b]=y}}return e.l=n+r,d}var Sr=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"].concat(["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"]);function Nr(e){switch(typeof e){case"boolean":return 11;case"number":return(0|e)==e?3:5;case"string":return 31;case"object":if(e instanceof Date)return 64}return-1}function Ir(e,t,n){var r=$t(8),a=[],s=[],i=8,o=0,l=$t(8),u=$t(8);if(l.write_shift(4,2),l.write_shift(4,1200),u.write_shift(4,1),s.push(l),a.push(u),i+=8+l.length,!t){(u=$t(8)).write_shift(4,0),a.unshift(u);var c=[$t(4)];for(c[0].write_shift(4,e.length),o=0;o-1)&&null!=e[o][1]){var f=e[o][1],d=0;if(t){var p=n[d=+t[e[o][0]]];if("version"==p.p&&"string"==typeof f){var m=f.split(".");f=(+m[0]<<16)+(+m[1]||0)}l=Er(p.t,f)}else{var g=Nr(f);-1==g&&(g=31,f=String(f)),l=Er(g,f)}s.push(l),(u=$t(8)).write_shift(4,t?d:2+o),a.push(u),i+=8+l.length}var y=8*(s.length+1);for(o=0;o=12?2:1),s="sbcs-cont",i=r;n&&n.biff>=8&&(r=1200),n&&8!=n.biff?12==n.biff&&(s="wstr"):e.read_shift(1)&&(s="dbcs-cont"),n.biff>=2&&n.biff<=5&&(s="cpstr");var o=a?e.read_shift(a,s):"";return r=i,o}function Pr(e){var t=r;r=1200;var n,a=e.read_shift(2),s=e.read_shift(1),i=4&s,o=8&s,l=1+(1&s),u=0,c={};o&&(u=e.read_shift(2)),i&&(n=e.read_shift(4));var h=2==l?"dbcs-cont":"sbcs-cont",f=0===a?"":e.read_shift(a,h);return o&&(e.l+=4*u),i&&(e.l+=n),c.t=f,o||(c.raw=""+c.t+"",c.r=c.t),r=t,c}function Lr(e){var t=e.t||"",n=$t(3);n.write_shift(2,t.length),n.write_shift(1,1);var r=$t(2*t.length);return r.write_shift(2*t.length,t,"utf16le"),S([n,r])}function zr(e,t,n){if(n){if(n.biff>=2&&n.biff<=5)return e.read_shift(t,"cpstr");if(n.biff>=12)return e.read_shift(t,"dbcs-cont")}return 0===e.read_shift(1)?e.read_shift(t,"sbcs-cont"):e.read_shift(t,"dbcs-cont")}function Wr(e,t,n){var r=e.read_shift(n&&2==n.biff?1:2);return 0===r?(e.l++,""):zr(e,r,n)}function Ur(e,t,n){if(n.biff>5)return Wr(e,0,n);var r=e.read_shift(1);return 0===r?(e.l++,""):e.read_shift(r,n.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function Vr(e,t,n){return n||(n=$t(3+2*e.length)),n.write_shift(2,e.length),n.write_shift(1,1),n.write_shift(31,e,"utf16le"),n}function jr(e){var t=e.read_shift(4);return t>0?e.read_shift(t,"utf16le").replace(N,""):""}function Hr(e){var t=$t(512),n=0,r=e.Target,a=r.indexOf("#")>-1?31:23;switch(r.charAt(0)){case"#":a=28;break;case".":a&=-3}t.write_shift(4,2),t.write_shift(4,a);var s=[8,6815827,6619237,4849780,83];for(n=0;n8?4:2;return[e.read_shift(r),e.read_shift(r,"i"),e.read_shift(r,"i")]}function Yr(e){return[e.read_shift(2),wn(e)]}function Jr(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(2),r:t},e:{c:e.read_shift(2),r:n}}}function Qr(e,t){return t||(t=$t(8)),t.write_shift(2,e.s.r),t.write_shift(2,e.e.r),t.write_shift(2,e.s.c),t.write_shift(2,e.e.c),t}function ea(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(1),r:t},e:{c:e.read_shift(1),r:n}}}var ta=ea;function na(e){e.l+=4;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(2);return e.l+=12,[n,t,r]}function ra(e){e.l+=2,e.l+=e.read_shift(2)}var aa={0:ra,4:ra,5:ra,6:ra,7:function(e){return e.l+=4,e.cf=e.read_shift(2),{}},8:ra,9:ra,10:ra,11:ra,12:ra,13:function(e){var t={};return e.l+=4,e.l+=16,t.fSharedNote=e.read_shift(2),e.l+=4,t},14:ra,15:ra,16:ra,17:ra,18:ra,19:ra,20:ra,21:na};function sa(e,t){var n={BIFFVer:0,dt:0};switch(n.BIFFVer=e.read_shift(2),(t-=2)>=2&&(n.dt=e.read_shift(2),e.l-=2),n.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(t>6)throw new Error("Unexpected BIFF Ver "+n.BIFFVer)}return e.read_shift(t),n}function ia(e,t,n){var r=1536,a=16;switch(n.bookType){case"biff8":break;case"biff5":r=1280,a=8;break;case"biff4":r=4,a=6;break;case"biff3":r=3,a=6;break;case"biff2":r=2,a=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var s=$t(a);return s.write_shift(2,r),s.write_shift(2,t),a>4&&s.write_shift(2,29282),a>6&&s.write_shift(2,1997),a>8&&(s.write_shift(2,49161),s.write_shift(2,1),s.write_shift(2,1798),s.write_shift(2,0)),s}function oa(e,t){var n=!t||t.biff>=8?2:1,r=$t(8+n*e.name.length);r.write_shift(4,e.pos),r.write_shift(1,e.hs||0),r.write_shift(1,e.dt),r.write_shift(1,e.name.length),t.biff>=8&&r.write_shift(1,1),r.write_shift(n*e.name.length,e.name,t.biff<8?"sbcs":"utf16le");var a=r.slice(0,r.l);return a.l=r.l,a}function la(e,t,n){var r=0;n&&2==n.biff||(r=e.read_shift(2));var a=e.read_shift(2);return n&&2==n.biff&&(r=1-(a>>15),a&=32767),[{Unsynced:1&r,DyZero:(2&r)>>1,ExAsc:(4&r)>>2,ExDsc:(8&r)>>3},a]}function ua(e,t,n,r){var a=n&&5==n.biff;r||(r=$t(a?3+t.length:5+2*t.length)),r.write_shift(2,e),r.write_shift(a?1:2,t.length),a||r.write_shift(1,1),r.write_shift((a?1:2)*t.length,t,a?"sbcs":"utf16le");var s=r.length>r.l?r.slice(0,r.l):r;return null==s.l&&(s.l=s.length),s}var ca=Ur;function ha(e,t,n){var r=e.l+t,a=8!=n.biff&&n.biff?2:4,s=e.read_shift(a),i=e.read_shift(a),o=e.read_shift(2),l=e.read_shift(2);return e.l=r,{s:{r:s,c:o},e:{r:i,c:l}}}function fa(e,t,n,r){var a=n&&5==n.biff;return r||(r=$t(a?16:20)),r.write_shift(2,0),e.style?(r.write_shift(2,e.numFmtId||0),r.write_shift(2,65524)):(r.write_shift(2,e.numFmtId||0),r.write_shift(2,t<<4)),r.write_shift(4,0),r.write_shift(4,0),a||r.write_shift(4,0),r.write_shift(2,0),r}function da(e,t,n){var r=qr(e);2==n.biff&&++e.l;var a=function(e){var t=e.read_shift(1);return 1===e.read_shift(1)?t:1===t}(e);return r.val=a,r.t=!0===a||!1===a?"b":"e",r}var pa=function(e,t,n){return 0===t?"":Ur(e,0,n)};function ma(e,t,n){var r,a=e.read_shift(2),s={fBuiltIn:1&a,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};return 14849===n.sbcch&&(r=function(e,t,n){e.l+=4,t-=4;var r=e.l+t,a=$r(e,0,n),s=e.read_shift(2);if(s!==(r-=e.l))throw new Error("Malformed AddinUdf: padding = "+r+" != "+s);return e.l+=s,a}(e,t-2,n)),s.body=r||e.read_shift(t-2),"string"==typeof r&&(s.Name=r),s}var ga=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function ya(e,t,n){var r=e.l+t,a=e.read_shift(2),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(n&&2==n.biff?1:2),l=0;(!n||n.biff>=5)&&(5!=n.biff&&(e.l+=2),l=e.read_shift(2),5==n.biff&&(e.l+=2),e.l+=4);var u=zr(e,i,n);32&a&&(u=ga[u.charCodeAt(0)]);var c=r-e.l;return n&&2==n.biff&&--c,{chKey:s,Name:u,itab:l,rgce:r==e.l||0===o?[]:function(e,t,n,r){var a,s=e.l+t,i=Oi(e,r,n);return s!==e.l&&(a=Ri(e,s-e.l,i,n)),[i,a]}(e,c,n,o)}}function ba(e,t,n){if(n.biff<8)return function(e,t,n){3==e[e.l+1]&&e[e.l]++;var r=$r(e,0,n);return 3==r.charCodeAt(0)?r.slice(1):r}(e,0,n);for(var r=[],a=e.l+t,s=e.read_shift(n.biff>8?4:2);0!=s--;)r.push(Zr(e,n.biff,n));if(e.l!=a)throw new Error("Bad ExternSheet: "+e.l+" != "+a);return r}function va(e,t,n){var r=ta(e,6);switch(n.biff){case 2:e.l++,t-=7;break;case 3:case 4:e.l+=2,t-=8;break;default:e.l+=6,t-=12}return[r,Wi(e,t,n)]}var wa=[];function xa(e){var t=$t(24),n=Kt(e[0]);t.write_shift(2,n.r),t.write_shift(2,n.r),t.write_shift(2,n.c),t.write_shift(2,n.c);for(var r="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" "),a=0;a<16;++a)t.write_shift(1,parseInt(r[a],16));return S([t,Hr(e[1])])}function _a(e){var t=e[1].Tooltip,n=$t(10+2*(t.length+1));n.write_shift(2,2048);var r=Kt(e[0]);n.write_shift(2,r.r),n.write_shift(2,r.r),n.write_shift(2,r.c),n.write_shift(2,r.c);for(var a=0;a=12?4:2,a=e.read_shift(r),s=e.read_shift(r),i=e.read_shift(r),o=e.read_shift(r),l=e.read_shift(2);2==r&&(e.l+=2);var u={s:a,e:s,w:i,ixfe:o,flags:l};return(n.biff>=5||!n.biff)&&(u.level=l>>8&7),u}wa[8]=function(e,t){var n=e.l+t;e.l+=10;var r=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var a=e.read_shift(1);return e.l+=a,e.l=n,{fmt:r}};var Ea=qr,Ca=Mr,Sa=Wr,Na=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,255:16969},t=U({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function n(t,n){var r=n||{};return r.dateNF||(r.dateNF="yyyymmdd"),rn(function(t,n){var r=[],a=w(1);switch(n.type){case"base64":a=_(g.decode(t));break;case"binary":a=_(t);break;case"buffer":case"array":a=t}Bt(a,0);var s=a.read_shift(1),i=!1,o=!1,l=!1;switch(s){case 2:case 3:break;case 48:o=!0,i=!0;break;case 49:o=!0;break;case 131:case 139:i=!0;break;case 140:i=!0,l=!0;break;case 245:i=!0;break;default:throw new Error("DBF Unsupported Version: "+s.toString(16))}var u=0,c=0;2==s&&(u=a.read_shift(2)),a.l+=3,2!=s&&(u=a.read_shift(4)),2!=s&&(c=a.read_shift(2));var h=a.read_shift(2),f=1252;2!=s&&(a.l+=16,a.read_shift(1),0!==a[a.l]&&(f=e[a[a.l]]),a.l+=1,a.l+=2),l&&(a.l+=36);for(var d=[],p={},m=c-10-(o?264:0),y=l?32:11;2==s?a.l0;)if(42!==a[a.l])for(++a.l,r[++b]=[],v=0,v=0;v!=d.length;++v){var x=a.slice(a.l,a.l+d[v].len);a.l+=d[v].len,Bt(x,0);var k=cptable.utils.decode(f,x);switch(d[v].type){case"C":r[b][v]=cptable.utils.decode(f,x),r[b][v]=r[b][v].trim();break;case"D":8===k.length?r[b][v]=new Date(+k.slice(0,4),+k.slice(4,6)-1,+k.slice(6,8)):r[b][v]=k;break;case"F":r[b][v]=parseFloat(k.trim());break;case"+":case"I":r[b][v]=l?2147483648^x.read_shift(-4,"i"):x.read_shift(4,"i");break;case"L":switch(k.toUpperCase()){case"Y":case"T":r[b][v]=!0;break;case"N":case"F":r[b][v]=!1;break;case" ":case"?":r[b][v]=!1;break;default:throw new Error("DBF Unrecognized L:|"+k+"|")}break;case"M":if(!i)throw new Error("DBF Unexpected MEMO for type "+s.toString(16));r[b][v]="##MEMO##"+(l?parseInt(k.trim(),10):x.read_shift(4));break;case"N":r[b][v]=+k.replace(/\u0000/g,"").trim();break;case"@":r[b][v]=new Date(x.read_shift(-8,"f")-621356832e5);break;case"T":r[b][v]=new Date(864e5*(x.read_shift(4)-2440588)+x.read_shift(4));break;case"Y":r[b][v]=x.read_shift(4,"i")/1e4;break;case"O":r[b][v]=-x.read_shift(-8,"f");break;case"B":if(o&&8==d[v].len){r[b][v]=x.read_shift(8,"f");break}case"G":case"P":x.l+=d[v].len;break;case"0":if("_NullFlags"===d[v].name)break;default:throw new Error("DBF Unsupported data type "+d[v].type)}}else a.l+=h;if(2!=s&&a.l=0&&u(+s.codepage),"string"==s.type)throw new Error("Cannot write DBF to JS string");var i=Lt(),o=Au(e,{header:1,raw:!0,cellDates:!0}),l=o[0],c=o.slice(1),h=0,f=0,d=0,p=1;for(h=0;h":190,"?":191,"{":223},t=new RegExp("N("+z(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),n=function(t,n){var r=e[n];return"number"==typeof r?p(r):r},r=function(e,t,n){var r=t.charCodeAt(0)-32<<4|n.charCodeAt(0)-48;return 59==r?e:p(r)};function a(e,a){var s,i=e.split(/[\n\r]+/),o=-1,l=-1,c=0,h=0,f=[],d=[],p=null,m={},g=[],y=[],b=[],v=0;for(+a.codepage>=0&&u(+a.codepage);c!==i.length;++c){v=0;var w,x=i[c].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,r).replace(t,n),_=x.replace(/;;/g,"\0").split(";").map((function(e){return e.replace(/\u0000/g,";")})),k=_[0];if(x.length>0)switch(k){case"ID":case"E":case"B":case"O":break;case"P":"P"==_[1].charAt(0)&&d.push(x.slice(3).replace(/;;/g,";"));break;case"C":var E=!1,C=!1;for(h=1;h<_.length;++h)switch(_[h].charAt(0)){case"X":l=parseInt(_[h].slice(1))-1,C=!0;break;case"Y":for(o=parseInt(_[h].slice(1))-1,C||(l=0),s=f.length;s<=o;++s)f[s]=[];break;case"K":'"'===(w=_[h].slice(1)).charAt(0)?w=w.slice(1,w.length-1):"TRUE"===w?w=!0:"FALSE"===w?w=!1:isNaN(re(w))?isNaN(ae(w).getDate())||(w=Q(w)):(w=re(w),null!==p&&A.is_date(p)&&(w=K(w))),"undefined"!=typeof cptable&&"string"==typeof w&&"string"!=(a||{}).type&&(a||{}).codepage&&(w=cptable.utils.decode(a.codepage,w)),E=!0;break;case"E":var S=ti(_[h].slice(1),{r:o,c:l});f[o][l]=[f[o][l],S];break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+x)}E&&(f[o][l]=w,p=null);break;case"F":var N=0;for(h=1;h<_.length;++h)switch(_[h].charAt(0)){case"X":l=parseInt(_[h].slice(1))-1,++N;break;case"Y":for(o=parseInt(_[h].slice(1))-1,s=f.length;s<=o;++s)f[s]=[];break;case"M":v=parseInt(_[h].slice(1))/20;break;case"F":case"G":break;case"P":p=d[parseInt(_[h].slice(1))];break;case"S":case"D":case"N":break;case"W":for(b=_[h].slice(1).split(" "),s=parseInt(b[0],10);s<=parseInt(b[1],10);++s)v=parseInt(b[2],10),y[s-1]=0===v?{hidden:!0}:{wch:v},ms(y[s-1]);break;case"C":y[l=parseInt(_[h].slice(1))-1]||(y[l]={});break;case"R":g[o=parseInt(_[h].slice(1))-1]||(g[o]={}),v>0?(g[o].hpt=v,g[o].hpx=ys(v)):0===v&&(g[o].hidden=!0);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+x)}N<1&&(p=null);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+x)}}return g.length>0&&(m["!rows"]=g),y.length>0&&(m["!cols"]=y),a&&a.sheetRows&&(f=f.slice(0,a.sheetRows)),[f,m]}function s(e,t){var n=function(e,t){switch(t.type){case"base64":return a(g.decode(e),t);case"binary":return a(e,t);case"buffer":return a(e.toString("binary"),t);case"array":return a(ee(e),t)}throw new Error("Unrecognized type "+t.type)}(e,t),r=n[0],s=n[1],i=rn(r,t);return z(s).forEach((function(e){i[e]=s[e]})),i}function i(e,t,n,r){var a="C;Y"+(n+1)+";X"+(r+1)+";K";switch(e.t){case"n":a+=e.v||0,e.f&&!e.F&&(a+=";E"+ri(e.f,{r:n,c:r}));break;case"b":a+=e.v?"TRUE":"FALSE";break;case"e":a+=e.w||e.v;break;case"d":a+='"'+(e.w||e.v)+'"';break;case"s":a+='"'+e.v.replace(/"/g,"")+'"'}return a}return e["|"]=254,{to_workbook:function(e,t){return tn(s(e,t),t)},to_sheet:s,from_sheet:function(e,t){var n,r,a=["ID;PWXL;N;E"],s=[],o=Qt(e["!ref"]),l=Array.isArray(e),u="\r\n";a.push("P;PGeneral"),a.push("F;P0;DG0G8;M255"),e["!cols"]&&(r=a,e["!cols"].forEach((function(e,t){var n="F;W"+(t+1)+" "+(t+1)+" ";e.hidden?n+="0":("number"==typeof e.width&&(e.wpx=cs(e.width)),"number"==typeof e.wpx&&(e.wch=hs(e.wpx)),"number"==typeof e.wch&&(n+=Math.round(e.wch)))," "!=n.charAt(n.length-1)&&r.push(n)}))),e["!rows"]&&function(e,t){t.forEach((function(t,n){var r="F;";t.hidden?r+="M0;":t.hpt?r+="M"+20*t.hpt+";":t.hpx&&(r+="M"+20*gs(t.hpx)+";"),r.length>2&&e.push(r+"R"+(n+1))}))}(a,e["!rows"]),a.push("B;Y"+(o.e.r-o.s.r+1)+";X"+(o.e.c-o.s.c+1)+";D"+[o.s.c,o.s.r,o.e.c,o.e.r].join(" "));for(var c=o.s.r;c<=o.e.r;++c)for(var h=o.s.c;h<=o.e.c;++h){var f=Zt({r:c,c:h});(n=l?(e[c]||[])[h]:e[f])&&(null!=n.v||n.f&&!n.F)&&s.push(i(n,0,c,h))}return a.join(u)+u+s.join(u)+u+"E"+u}}}(),Aa=function(){function e(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s)if("BOT"!==n[s].trim()){if(!(r<0)){var o=n[s].trim().split(","),l=o[0],u=o[1],c=n[++s].trim();switch(+l){case-1:if("BOT"===c){i[++r]=[],a=0;continue}if("EOD"!==c)throw new Error("Unrecognized DIF special command "+c);break;case 0:"TRUE"===c?i[r][a]=!0:"FALSE"===c?i[r][a]=!1:isNaN(re(u))?isNaN(ae(u).getDate())?i[r][a]=u:i[r][a]=Q(u):i[r][a]=re(u),++a;break;case 1:c=c.slice(1,c.length-1),i[r][a++]=""!==c?c:null}if("EOD"===c)break}}else i[++r]=[],a=0;return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}function t(t,n){return rn(function(t,n){switch(n.type){case"base64":return e(g.decode(t),n);case"binary":return e(t,n);case"buffer":return e(t.toString("binary"),n);case"array":return e(ee(t),n)}throw new Error("Unrecognized type "+n.type)}(t,n),n)}var n,r;return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:(n=function(e,t,n,r,a){e.push(t),e.push(n+","+r),e.push('"'+a.replace(/"/g,'""')+'"')},r=function(e,t,n,r){e.push(t+","+n),e.push(1==t?'"'+r.replace(/"/g,'""')+'"':r)},function(e){var t,a=[],s=Qt(e["!ref"]),i=Array.isArray(e);n(a,"TABLE",0,1,"sheetjs"),n(a,"VECTORS",0,s.e.r-s.s.r+1,""),n(a,"TUPLES",0,s.e.c-s.s.c+1,""),n(a,"DATA",0,0,"");for(var o=s.s.r;o<=s.e.r;++o){r(a,-1,0,"BOT");for(var l=s.s.c;l<=s.e.c;++l){var u=Zt({r:o,c:l});if(t=i?(e[o]||[])[l]:e[u])switch(t.t){case"n":var c=t.w;c||null==t.v||(c=t.v),null==c?t.f&&!t.F?r(a,1,0,"="+t.f):r(a,1,0,""):r(a,0,c,"V");break;case"b":r(a,0,t.v?1:0,t.v?"TRUE":"FALSE");break;case"s":r(a,1,0,isNaN(t.v)?t.v:'="'+t.v+'"');break;case"d":t.w||(t.w=A.format(t.z||A._table[14],H(Q(t.v)))),r(a,0,t.w,"V");break;default:r(a,1,0,"")}else r(a,1,0,"")}}return r(a,-1,0,"EOD"),a.join("\r\n")})}}(),Da=function(){function e(e){return e.replace(/\\/g,"\\b").replace(/:/g,"\\c").replace(/\n/g,"\\n")}function t(e,t){return rn(function(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s){var o=n[s].trim().split(":");if("cell"===o[0]){var l=Kt(o[1]);if(i.length<=l.r)for(r=i.length;r<=l.r;++r)i[r]||(i[r]=[]);switch(r=l.r,a=l.c,o[2]){case"t":i[r][a]=o[3].replace(/\\b/g,"\\").replace(/\\c/g,":").replace(/\\n/g,"\n");break;case"v":i[r][a]=+o[3];break;case"vtf":var u=o[o.length-1];case"vtc":switch(o[3]){case"nl":i[r][a]=!!+o[4];break;default:i[r][a]=+o[4]}"vtf"==o[2]&&(i[r][a]=[i[r][a],u])}}}return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}(e,t),t)}var n=["socialcalc:version:1.5","MIME-Version: 1.0","Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join("\n"),r=["--SocialCalcSpreadsheetControlSave","Content-type: text/plain; charset=UTF-8"].join("\n")+"\n",a=["# SocialCalc Spreadsheet Control Save","part:sheet"].join("\n"),s="--SocialCalcSpreadsheetControlSave--";function i(t){if(!t||!t["!ref"])return"";for(var n,r=[],a=[],s="",i=Yt(t["!ref"]),o=Array.isArray(t),l=i.s.r;l<=i.e.r;++l)for(var u=i.s.c;u<=i.e.c;++u)if(s=Zt({r:l,c:u}),(n=o?(t[l]||[])[u]:t[s])&&null!=n.v&&"z"!==n.t){switch(a=["cell",s,"t"],n.t){case"s":case"str":a.push(e(n.v));break;case"n":n.f?(a[2]="vtf",a[3]="n",a[4]=n.v,a[5]=e(n.f)):(a[2]="v",a[3]=n.v);break;case"b":a[2]="vt"+(n.f?"f":"c"),a[3]="nl",a[4]=n.v?"1":"0",a[5]=e(n.f||(n.v?"TRUE":"FALSE"));break;case"d":var c=H(Q(n.v));a[2]="vtc",a[3]="nd",a[4]=""+c,a[5]=n.w||A.format(n.z||A._table[14],c);break;case"e":continue}r.push(a.join(":"))}return r.push("sheet:c:"+(i.e.c-i.s.c+1)+":r:"+(i.e.r-i.s.r+1)+":tvf:1"),r.push("valueformat:1:text-wiki"),r.join("\n")}return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:function(e){return[n,r,a,r,i(e),s].join("\n")}}}(),Ta=function(){function e(e,t,n,r,a){a.raw?t[n][r]=e:"TRUE"===e?t[n][r]=!0:"FALSE"===e?t[n][r]=!1:""===e||(isNaN(re(e))?isNaN(ae(e).getDate())?t[n][r]=e:t[n][r]=Q(e):t[n][r]=re(e))}var t={44:",",9:"\t",59:";"},n={44:3,9:2,59:1};function r(e,r){var a=r||{},s="",i=a.dense?[]:{},o={s:{c:0,r:0},e:{c:0,r:0}};"sep="==e.slice(0,4)?13==e.charCodeAt(5)&&10==e.charCodeAt(6)?(s=e.charAt(4),e=e.slice(7)):13!=e.charCodeAt(5)&&10!=e.charCodeAt(5)||(s=e.charAt(4),e=e.slice(6)):s=function(e){for(var r={},a=!1,s=0,i=0;s=0?o=u:a=u}})),l>=0&&-1==o&&a>=0&&(o=a,a=-1);var u=(""+(r>=0?r:(new Date).getFullYear())).slice(-4)+"-"+("00"+(a>=1?a:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);7==u.length&&(u="0"+u),8==u.length&&(u="20"+u);var c=("00"+(i>=0?i:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);return-1==i&&-1==o&&-1==l?u:-1==r&&-1==a&&-1==s?c:u+"T"+c}(0,a.dateNF,t.match(b)||[]),r=1),a.cellDates?(n.t="d",n.v=Q(t,r)):(n.t="n",n.v=H(Q(t,r))),!1!==a.cellText&&(n.w=A.format(n.z,n.v instanceof Date?H(n.v):n.v)),a.cellNF||delete n.z}else n.t="s",n.v=t;else n.t="n",!1!==a.cellText&&(n.w=t),n.v=c;if("z"==n.t||(a.dense?(i[l]||(i[l]=[]),i[l][u]=n):i[Zt({c:u,r:l})]=n),h=f+1,o.e.c0&&v(),i["!ref"]=Jt(o),i}function a(t,n){var a="",s="string"==n.type?[0,0,0,0]:yu(t,n);switch(n.type){case"base64":a=g.decode(t);break;case"binary":a=t;break;case"buffer":a=65001==n.codepage?t.toString("utf8"):n.codepage&&"undefined"!=typeof cptable?cptable.utils.decode(n.codepage,t):t.toString("binary");break;case"array":a=ee(t);break;case"string":a=t;break;default:throw new Error("Unrecognized type "+n.type)}return 239==s[0]&&187==s[1]&&191==s[2]?a=Be(a.slice(3)):"binary"==n.type&&"undefined"!=typeof cptable&&n.codepage&&(a=cptable.utils.decode(n.codepage,cptable.utils.encode(1252,a))),"socialcalc:version:"==a.slice(0,19)?Da.to_sheet("string"==n.type?a:Be(a),n):function(t,n){return n&&n.PRN?"sep="==t.slice(0,4)||t.indexOf("\t")>=0||t.indexOf(",")>=0||t.indexOf(";")>=0?r(t,n):rn(function(t,n){var r=n||{},a=[];if(!t||0===t.length)return a;for(var s=t.split(/[\r\n]/),i=s.length-1;i>=0&&0===s[i].length;)--i;for(var o=10,l=0,u=0;u<=i;++u)-1==(l=s[u].indexOf(" "))?l=s[u].length:l++,o=Math.max(o,l);for(u=0;u<=i;++u){a[u]=[];var c=0;for(e(s[u].slice(0,o).trim(),a,u,c,r),c=1;c<=(s[u].length-o)/10+1;++c)e(s[u].slice(o+10*(c-1),o+10*c).trim(),a,u,c,r)}return r.sheetRows&&(a=a.slice(0,r.sheetRows)),a}(t,n),n):r(t,n)}(a,n)}return{to_workbook:function(e,t){return tn(a(e,t),t)},to_sheet:a,from_sheet:function(e){for(var t,n=[],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){for(var i=[],o=r.s.c;o<=r.e.c;++o){var l=Zt({r:s,c:o});if((t=a?(e[s]||[])[o]:e[l])&&null!=t.v){for(var u=(t.w||(en(t),t.w)||"").slice(0,10);u.length<10;)u+=" ";i.push(u+(0===o?" ":""))}else i.push(" ")}n.push(i.join(""))}return n.join("\n")}}}(),Fa=function(){function e(e,t){if(!e)return e;var n=t||{},r=n.dense?[]:{},a="Sheet1",s=0,l={},u=[a],c={s:{r:0,c:0},e:{r:0,c:0}},h=n.sheetRows||0;if(2==e[2])n.Enum=i;else if(26==e[2])n.Enum=o;else{if(14!=e[2])throw new Error("Unrecognized LOTUS BOF "+e[2]);n.Enum=o,n.qpro=!0,e.l=0}return function(e,t,n){if(e){Bt(e,e.l||0);for(var r=n.Enum||i;e.l=4096&&(n.qpro=!0);break;case 6:c=t;break;case 15:n.qpro||(t[1].v=t[1].v.slice(1));case 13:case 14:case 16:case 51:14==o&&112==(112&t[2])&&(15&t[2])>1&&(15&t[2])<15&&(t[1].z=n.dateNF||A._table[14],n.cellDates&&(t[1].t="d",t[1].v=K(t[1].v))),n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Zt(t[0])]=t[1]}else switch(o){case 22:t[1].v=t[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(t[3]>s&&(r["!ref"]=Jt(c),l[a]=r,r=n.dense?[]:{},c={s:{r:0,c:0},e:{r:0,c:0}},s=t[3],a="Sheet"+(s+1),u.push(a)),h>0&&t[0].r>=h)break;n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Zt(t[0])]=t[1],c.e.c0?s<>>-i)+(i>-32?a<>>-(i+32))),n}function s(e,t){var n=r(e),a=e.read_shift(8,"f");return n[1].v=a,n}var i={0:{n:"BOF",f:Or},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:function(e){var t={s:{c:0,r:0},e:{c:0,r:0}};return t.s.c=e.read_shift(2),t.s.r=e.read_shift(2),t.e.c=e.read_shift(2),t.e.r=e.read_shift(2),65535==t.s.c&&(t.s.c=t.e.c=t.s.r=t.e.r=0),t}},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(2,"i"),a}},14:{n:"NUMBER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(8,"f"),a}},15:{n:"LABEL",f:n},16:{n:"FORMULA",f:function(e,n,r){var a=e.l+n,s=t(e,0,r);if(s[1].v=e.read_shift(8,"f"),r.qpro)e.l=a;else{var i=e.read_shift(2);e.l+=i}return s}},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:n},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},255:{n:"",f:Mt}},o={0:{n:"BOF"},1:{n:"EOF"},3:{n:"??"},4:{n:"??"},5:{n:"??"},6:{n:"??"},7:{n:"??"},9:{n:"??"},10:{n:"??"},11:{n:"??"},12:{n:"??"},14:{n:"??"},15:{n:"??"},16:{n:"??"},17:{n:"??"},18:{n:"??"},19:{n:"??"},21:{n:"??"},22:{n:"LABEL16",f:function(e,t){var n=r(e);return n[1].t="s",n[1].v=e.read_shift(t-4,"cstr"),n}},23:{n:"NUMBER17",f:a},24:{n:"NUMBER18",f:function(e,t){var n=r(e);n[1].v=e.read_shift(2);var a=n[1].v>>1;if(1&n[1].v)switch(7&a){case 1:a=500*(a>>3);break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(7&a)}return n[1].v=a,n}},25:{n:"FORMULA19",f:function(e,t){var n=a(e);return e.l+=t-14,n}},26:{n:"??"},27:{n:"??"},28:{n:"??"},29:{n:"??"},30:{n:"??"},31:{n:"??"},33:{n:"??"},37:{n:"NUMBER25",f:function(e,t){var n=r(e),a=e.read_shift(4);return n[1].v=a>>6,n}},39:{n:"NUMBER27",f:s},40:{n:"FORMULA28",f:function(e,t){var n=s(e);return e.l+=t-10,n}},255:{n:"",f:Mt}};return{to_workbook:function(t,n){switch(n.type){case"base64":return e(_(g.decode(t)),n);case"binary":return e(_(t),n);case"buffer":case"array":return e(t,n)}throw"Unsupported type "+n.type}}}(),Ra=function(){var e=Ve("t"),t=Ve("rPr");function n(n){var r=n.match(e);if(!r)return{t:"s",v:""};var a={t:"s",v:Se(r[1])},s=n.match(t);return s&&(a.s=function(e){var t={},n=e.match(ye),r=0,a=!1;if(n)for(;r!=n.length;++r){var s=we(n[r]);switch(s[0].replace(/\w*:/g,"")){case"":case"":t.shadow=1;break;case"":break;case"":case"":t.outline=1;break;case"":break;case"":case"":t.strike=1;break;case"":break;case"":case"":t.u=1;break;case"":break;case"":case"":t.b=1;break;case"":break;case"":case"":t.i=1;break;case"":break;case"":case"":break;case"":a=!1;break;default:if(47!==s[0].charCodeAt(1)&&!a)throw new Error("Unrecognized rich format "+s[0])}}return t}(s[1])),a}var r=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/;return function(e){return e.replace(r,"").split(a).map(n).filter((function(e){return e.v}))}}(),Oa=function(){var e=/(\r\n|\n)/g;function t(t){var n=[[],t.v,[]];return t.v?(t.s&&function(e,t,n){var r=[];e.u&&r.push("text-decoration: underline;"),e.uval&&r.push("text-underline-style:"+e.uval+";"),e.sz&&r.push("font-size:"+e.sz+"pt;"),e.outline&&r.push("text-effect: outline;"),e.shadow&&r.push("text-shadow: auto;"),t.push(''),e.b&&(t.push(""),n.push("")),e.i&&(t.push(""),n.push("")),e.strike&&(t.push(""),n.push(""));var a=e.valign||"";"superscript"==a||"super"==a?a="sup":"subscript"==a&&(a="sub"),""!=a&&(t.push("<"+a+">"),n.push("")),n.push("")}(t.s,n[0],n[2]),n[0].join("")+n[1].replace(e,"
")+n[2].join("")):""}return function(e){return e.map(t).join("")}}(),Ba=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ma=/<(?:\w+:)?r>/,$a=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Pa(e,t){var n=!t||t.cellHTML,r={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(r.t=Se(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Be(e),n&&(r.h=Fe(r.t))):e.match(Ma)&&(r.r=Be(e),r.t=Se(Be((e.replace($a,"").match(Ba)||[]).join("").replace(ye,""))),n&&(r.h=Oa(Ra(r.r)))),r):{t:""}}var La=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,za=/<(?:\w+:)?(?:si|sstItem)>/g,Wa=/<\/(?:\w+:)?(?:si|sstItem)>/;Gn.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Ua=/^\s|\s$|[\t\n\r]/;function Va(e,t){if(!t.bookSST)return"";var n=[me];n[n.length]=Je("sst",null,{xmlns:nt.main[0],count:e.Count,uniqueCount:e.Unique});for(var r=0;r!=e.length;++r)if(null!=e[r]){var a=e[r],s="";a.r?s+=a.r:(s+=""),s+="",n[n.length]=s}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var ja=function(e,t){var n=!1;return null==t&&(n=!0,t=$t(15+4*e.t.length)),t.write_shift(1,0),on(e.t,t),n?t.slice(0,t.l):t};function Ha(e){var t=Lt();zt(t,"BrtBeginSst",function(e,t){return t||(t=$t(8)),t.write_shift(4,e.Count),t.write_shift(4,e.Unique),t}(e));for(var n=0;n=4&&(e.l+=t-4),n}function qa(e){for(var t=e.read_shift(4),n=e.l+t-4,r={},a=e.read_shift(4),s=[];a-- >0;)s.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(r.name=e.read_shift(0,"lpp4"),r.comps=s,e.l!=n)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+n);return r}function Ka(e,t){var n=e.l+t,r={};r.Flags=63&e.read_shift(4),e.l+=4,r.AlgID=e.read_shift(4);var a=!1;switch(r.AlgID){case 26126:case 26127:case 26128:a=36==r.Flags;break;case 26625:a=4==r.Flags;break;case 0:a=16==r.Flags||4==r.Flags||36==r.Flags;break;default:throw"Unrecognized encryption algorithm: "+r.AlgID}if(!a)throw new Error("Encryption Flags/AlgID mismatch");return r.AlgIDHash=e.read_shift(4),r.KeySize=e.read_shift(4),r.ProviderType=e.read_shift(4),e.l+=8,r.CSPName=e.read_shift(n-e.l>>1,"utf16le"),e.l=n,r}function Za(e,t){var n={},r=e.l+t;return e.l+=4,n.Salt=e.slice(e.l,e.l+16),e.l+=16,n.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),n.VerifierHash=e.slice(e.l,r),e.l=r,n}function Ya(e){if(36!=(63&e.read_shift(4)))throw new Error("EncryptionInfo mismatch");var t=e.read_shift(4);return{t:"Std",h:Ka(e,t),v:Za(e,e.length-e.l)}}function Ja(){throw new Error("File is password-protected: ECMA-376 Extensible")}function Qa(e){var t=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var n=e.read_shift(e.length-e.l,"utf8"),r={};return n.replace(ye,(function(e){var n=we(e);switch(xe(n[0])){case"":break;case"":case"":break;case"":break;case"=0;--n)r=((0==(16384&r)?0:1)|r<<1&32767)^t[n];return 52811^r}var ts,ns,rs,as,ss=(ts=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],ns=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],rs=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],as=function(e,t){return 255&((n=e^t)/2|128*n);var n},function(e){for(var t,n,r,a=Ga(e),s=function(e){for(var t=ns[e.length-1],n=104,r=e.length-1;r>=0;--r)for(var a=e[r],s=0;7!=s;++s)64&a&&(t^=rs[n]),a*=2,--n;return t}(a),i=a.length,o=w(16),l=0;16!=l;++l)o[l]=0;for(1==(1&i)&&(t=s>>8,o[i]=as(ts[0],t),--i,t=255&s,n=a[a.length-1],o[i]=as(n,t));i>0;)t=s>>8,o[--i]=as(a[i],t),t=255&s,o[--i]=as(a[i],t);for(i=15,r=15-a.length;r>0;)t=s>>8,o[i]=as(ts[r],t),--r,t=255&s,o[--i]=as(a[i],t),--i,--r;return o});var is=function(){function e(e,n){switch(n.type){case"base64":return t(g.decode(e),n);case"binary":return t(e,n);case"buffer":return t(e.toString("binary"),n);case"array":return t(ee(e),n)}throw new Error("Unrecognized type "+n.type)}function t(e,t){var n=(t||{}).dense?[]:{};if(!e.match(/\\trowd/))throw new Error("RTF missing table");return n["!ref"]=Jt({s:{c:0,r:0},e:{c:0,r:0}}),n}return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,from_sheet:function(e){for(var t,n=["{\\rtf1\\ansi"],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){n.push("\\trowd\\trautofit1");for(var i=r.s.c;i<=r.e.c;++i)n.push("\\cellx"+(i+1));for(n.push("\\pard\\intbl"),i=r.s.c;i<=r.e.c;++i){var o=Zt({r:s,c:i});(t=a?(e[s]||[])[i]:e[o])&&(null!=t.v||t.f&&!t.F)&&(n.push(" "+(t.w||(en(t),t.w))),n.push("\\cell"))}n.push("\\pard\\intbl\\row")}return n.join("")+"}"}}}();function os(e){for(var t=0,n=1;3!=t;++t)n=256*n+(e[t]>255?255:e[t]<0?0:e[t]);return n.toString(16).toUpperCase().slice(1)}function ls(e,t){if(0===t)return e;var n=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,a=Math.max(t,n,r),s=Math.min(t,n,r),i=a-s;if(0===i)return[0,0,t];var o,l=0,u=a+s;switch(o=i/(u>1?2-u:u),a){case t:l=((n-r)/i+6)%6;break;case n:l=(r-t)/i+2;break;case r:l=(t-n)/i+4}return[l/6,o,u/2]}(function(e){var t=e.slice("#"===e[0]?1:0).slice(0,6);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}(e));return n[2]=t<0?n[2]*(1+t):1-(1-n[2])*(1-t),os(function(e){var t,n=e[0],r=e[1],a=e[2],s=2*r*(a<.5?a:1-a),i=a-s/2,o=[i,i,i],l=6*n;if(0!==r)switch(0|l){case 0:case 6:t=s*l,o[0]+=s,o[1]+=t;break;case 1:t=s*(2-l),o[0]+=t,o[1]+=s;break;case 2:t=s*(l-2),o[1]+=s,o[2]+=t;break;case 3:t=s*(4-l),o[1]+=t,o[2]+=s;break;case 4:t=s*(l-4),o[2]+=s,o[0]+=t;break;case 5:t=s*(6-l),o[2]+=t,o[0]+=s}for(var u=0;3!=u;++u)o[u]=Math.round(255*o[u]);return o}(n))}var us=6;function cs(e){return Math.floor((e+Math.round(128/us)/256)*us)}function hs(e){return Math.floor((e-5)/us*100+.5)/100}function fs(e){return Math.round((e*us+5)/us*256)/256}function ds(e){return fs(hs(cs(e)))}function ps(e){var t=Math.abs(e-ds(e)),n=us;if(t>.005)for(us=1;us<15;++us)Math.abs(e-ds(e))<=t&&(t=Math.abs(e-ds(e)),n=us);us=n}function ms(e){e.width?(e.wpx=cs(e.width),e.wch=hs(e.wpx),e.MDW=us):e.wpx?(e.wch=hs(e.wpx),e.width=fs(e.wch),e.MDW=us):"number"==typeof e.wch&&(e.width=fs(e.wch),e.wpx=cs(e.width),e.MDW=us),e.customWidth&&delete e.customWidth}function gs(e){return 96*e/96}function ys(e){return 96*e/96}var bs,vs,ws,xs,_s,ks={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"},Es=["numFmtId","fillId","fontId","borderId","xfId"],Cs=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"],Ss=(bs=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,vs=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,ws=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,xs=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,_s=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/,function(e,t,n){var r,a={};return e?((r=(e=e.replace(//gm,"").replace(//gm,"")).match(bs))&&function(e,t,n){t.NumberFmt=[];for(var r=z(A._table),a=0;a":case"":case"":break;case"0){if(l>392){for(l=392;l>60&&null!=t.NumberFmt[l];--l);t.NumberFmt[l]=o}A.load(o,l)}break;case"":break;default:if(n.WTF)throw new Error("unrecognized "+i[0]+" in numFmts")}}}(r,a,n),(r=e.match(xs))&&function(e,t,n,r){t.Fonts=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var i=we(e);switch(xe(i[0])){case"":case"":break;case"":break;case"":case"":t.Fonts.push(a),a={};break;case"":case"":break;case"":a.bold=1;break;case"":a.italic=1;break;case"":a.underline=1;break;case"":a.strike=1;break;case"":a.outline=1;break;case"":a.shadow=1;break;case"":a.condense=1;break;case"":a.extend=1;break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+i[0]+" in fonts")}}))}(r,a,t,n),(r=e.match(ws))&&function(e,t,n,r){t.Fills=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(xe(n[0])){case"":case"":break;case"":case"":a={},t.Fills.push(a);break;case"":case"":break;case"":t.Fills.push(a),a={};break;case"":n.patternType&&(a.patternType=n.patternType);break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in fills")}}))}(r,a,0,n),(r=e.match(_s))&&function(e,t,n,r){t.Borders=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(xe(n[0])){case"":case"":break;case"":case"":a={},n.diagonalUp&&(a.diagonalUp=Oe(n.diagonalUp)),n.diagonalDown&&(a.diagonalDown=Oe(n.diagonalDown)),t.Borders.push(a);break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in borders")}}))}(r,a,0,n),(r=e.match(vs))&&function(e,t,n){var r;t.CellXf=[];var a=!1;(e[0].match(ye)||[]).forEach((function(e){var s=we(e),i=0;switch(xe(s[0])){case"":case"":case"":break;case"":for(delete(r=s)[0],i=0;i392)for(i=392;i>60;--i)if(t.NumberFmt[r.numFmtId]==t.NumberFmt[i]){r.numFmtId=i;break}t.CellXf.push(r);break;case"":break;case"":var o={};s.vertical&&(o.vertical=s.vertical),s.horizontal&&(o.horizontal=s.horizontal),null!=s.textRotation&&(o.textRotation=s.textRotation),s.indent&&(o.indent=s.indent),s.wrapText&&(o.wrapText=Oe(s.wrapText)),r.alignment=o;break;case"":case"":case"":break;case"":a=!1;break;case"":case"":break;case"":a=!1;break;default:if(n&&n.WTF&&!a)throw new Error("unrecognized "+s[0]+" in cellXfs")}}))}(r,a,n),a):a}),Ns=Je("styleSheet",null,{xmlns:nt.main[0],"xmlns:vt":nt.vt});function Is(e,t){var n,r=[me,Ns];return e.SSF&&null!=(n=function(e){var t=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=e[r]&&(t[t.length]=Je("numFmt",null,{numFmtId:r,formatCode:Ae(e[r])}))})),1===t.length?"":(t[t.length]="",t[0]=Je("numFmts",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(e.SSF))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',(n=function(e){var t=[];return t[t.length]=Je("cellXfs",null),e.forEach((function(e){t[t.length]=Je("xf",null,e)})),t[t.length]="",2===t.length?"":(t[0]=Je("cellXfs",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(t.cellXfs))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function As(e,t,n){n||(n=$t(6+4*t.length)),n.write_shift(2,e),on(t,n);var r=n.length>n.l?n.slice(0,n.l):n;return null==n.l&&(n.l=n.length),r}Gn.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";var Ds=U(["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"]),Ts=Mt;function Fs(e,t){t||(t=$t(84));var n=Ds[e.patternType];null==n&&(n=40),t.write_shift(4,n);var r=0;if(40!=n)for(Sn({auto:1},t),Sn({auto:1},t);r<12;++r)t.write_shift(4,0);else{for(;r<4;++r)t.write_shift(4,0);for(;r<12;++r)t.write_shift(4,0)}return t.length>t.l?t.slice(0,t.l):t}function Rs(e,t,n){return n||(n=$t(16)),n.write_shift(2,t||0),n.write_shift(2,e.numFmtId||0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n}function Os(e,t){return t||(t=$t(10)),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(4,0),t.write_shift(4,0),t}var Bs=Mt;function Ms(e,t){var n=Lt();return zt(n,"BrtBeginStyleSheet"),function(e,t){if(t){var n=0;[[5,8],[23,26],[41,44],[50,392]].forEach((function(e){for(var r=e[0];r<=e[1];++r)null!=t[r]&&++n})),0!=n&&(zt(e,"BrtBeginFmts",an(n)),[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=t[r]&&zt(e,"BrtFmt",As(r,t[r]))})),zt(e,"BrtEndFmts"))}}(n,e.SSF),function(e){zt(e,"BrtBeginFonts",an(1)),zt(e,"BrtFont",function(e,t){t||(t=$t(153)),t.write_shift(2,20*e.sz),function(e,t){t||(t=$t(2));var n=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);t.write_shift(1,n),t.write_shift(1,0)}(e,t),t.write_shift(2,e.bold?700:400);var n=0;"superscript"==e.vertAlign?n=1:"subscript"==e.vertAlign&&(n=2),t.write_shift(2,n),t.write_shift(1,e.underline||0),t.write_shift(1,e.family||0),t.write_shift(1,e.charset||0),t.write_shift(1,0),Sn(e.color,t);var r=0;return"major"==e.scheme&&(r=1),"minor"==e.scheme&&(r=2),t.write_shift(1,r),on(e.name,t),t.length>t.l?t.slice(0,t.l):t}({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),zt(e,"BrtEndFonts")}(n),function(e){zt(e,"BrtBeginFills",an(2)),zt(e,"BrtFill",Fs({patternType:"none"})),zt(e,"BrtFill",Fs({patternType:"gray125"})),zt(e,"BrtEndFills")}(n),function(e){zt(e,"BrtBeginBorders",an(1)),zt(e,"BrtBorder",function(e,t){return t||(t=$t(51)),t.write_shift(1,0),Os(0,t),Os(0,t),Os(0,t),Os(0,t),Os(0,t),t.length>t.l?t.slice(0,t.l):t}()),zt(e,"BrtEndBorders")}(n),function(e){zt(e,"BrtBeginCellStyleXFs",an(1)),zt(e,"BrtXF",Rs({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),zt(e,"BrtEndCellStyleXFs")}(n),function(e,t){zt(e,"BrtBeginCellXFs",an(t.length)),t.forEach((function(t){zt(e,"BrtXF",Rs(t,0))})),zt(e,"BrtEndCellXFs")}(n,t.cellXfs),function(e){zt(e,"BrtBeginStyles",an(1)),zt(e,"BrtStyle",function(e,t){return t||(t=$t(52)),t.write_shift(4,e.xfId),t.write_shift(2,1),t.write_shift(1,+e.builtinId),t.write_shift(1,0),gn(e.name||"",t),t.length>t.l?t.slice(0,t.l):t}({xfId:0,builtinId:0,name:"Normal"})),zt(e,"BrtEndStyles")}(n),function(e){zt(e,"BrtBeginDXFs",an(0)),zt(e,"BrtEndDXFs")}(n),function(e){zt(e,"BrtBeginTableStyles",function(e,t,n){var r=$t(2052);return r.write_shift(4,0),gn("TableStyleMedium9",r),gn("PivotStyleMedium4",r),r.length>r.l?r.slice(0,r.l):r}()),zt(e,"BrtEndTableStyles")}(n),zt(n,"BrtEndStyleSheet"),n.end()}Gn.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";var $s=["","","","","","","","","","","",""];function Ps(e,t,n){t.themeElements.clrScheme=[];var r={};(e[0].match(ye)||[]).forEach((function(e){var a=we(e);switch(a[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":"/"===a[0].charAt(1)?(t.themeElements.clrScheme[$s.indexOf(a[0])]=r,r={}):r.name=a[0].slice(3,a[0].length-1);break;default:if(n&&n.WTF)throw new Error("Unrecognized "+a[0]+" in clrScheme")}}))}function Ls(){}function zs(){}var Ws=/]*)>[\s\S]*<\/a:clrScheme>/,Us=/]*)>[\s\S]*<\/a:fontScheme>/,Vs=/]*)>[\s\S]*<\/a:fmtScheme>/,js=/]*)>[\s\S]*<\/a:themeElements>/;function Hs(e,t){if(!e||0===e.length)return Hs(Gs());var n,r={};if(!(n=e.match(js)))throw new Error("themeElements not found in theme");return function(e,t,n){var r;t.themeElements={},[["clrScheme",Ws,Ps],["fontScheme",Us,Ls],["fmtScheme",Vs,zs]].forEach((function(a){if(!(r=e.match(a[1])))throw new Error(a[0]+" not found in themeElements");a[2](r,t,n)}))}(n[0],r,t),r.raw=e,r}function Gs(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var n=[me];return n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n.join("")}function Xs(e){var t=e.read_shift(2),n=e.read_shift(2)-4,r=[t];switch(t){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:r[1]=function(e){var t={};switch(t.xclrType=e.read_shift(2),t.nTintShade=e.read_shift(2),t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=function(e,t){return Mt(e,4)}(e);break;case 2:t.xclrValue=Gr(e);break;case 3:t.xclrValue=function(e){return e.read_shift(4)}(e);break;case 4:e.l+=4}return e.l+=8,t}(e);break;case 6:r[1]=function(e,t){return Mt(e,t)}(e,n);break;case 14:case 15:r[1]=e.read_shift(1===n?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+n)}return r}Gn.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Gn.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";var qs=1024;function Ks(e,t){for(var n=[21600,21600],r=["m0,0l0",n[1],n[0],n[1],n[0],"0xe"].join(","),a=[Je("xml",null,{"xmlns:v":"urn:schemas-microsoft-com:vml","xmlns:o":rt,"xmlns:x":at,"xmlns:mv":"http://macVmlSchemaUri"}).replace(/\/>/,">"),Je("o:shapelayout",Je("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Je("v:shapetype",[Je("v:stroke",null,{joinstyle:"miter"}),Je("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:n.join(","),path:r})];qs<1e3*e;)qs+=1e3;return t.forEach((function(e){var t=Kt(e[0]),n={color2:"#BEFF82",type:"gradient"};"gradient"==n.type&&(n.angle="-180");var r="gradient"==n.type?Je("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}):null,s=Je("v:fill",r,n);++qs,a=a.concat(["",s,Je("v:shadow",null,{on:"t",obscured:"t"}),Je("v:path",null,{"o:connecttype":"none"}),'
','',"","",Ze("x:Anchor",[t.c+1,0,t.r+1,0,t.c+3,20,t.r+5,20].join(",")),Ze("x:AutoFill","False"),Ze("x:Row",String(t.r)),Ze("x:Column",String(t.c)),e[1].hidden?"":"","",""])})),a.push(""),a.join("")}Gn.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";var Zs=Je("comments",null,{xmlns:nt.main[0]});function Ys(e){var t=[me,Zs],n=[];return t.push(""),e.forEach((function(e){e[1].forEach((function(e){var r=Ae(e.a);n.indexOf(r)>-1||(n.push(r),t.push(""+r+""))}))})),t.push(""),t.push(""),e.forEach((function(e){e[1].forEach((function(r){t.push(''),t.push(Ze("t",null==r.t?"":Ae(r.t))),t.push("")}))})),t.push(""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Js=sn;function Qs(e){var t=Lt(),n=[];return zt(t,"BrtBeginComments"),zt(t,"BrtBeginCommentAuthors"),e.forEach((function(e){e[1].forEach((function(e){n.indexOf(e.a)>-1||(n.push(e.a.slice(0,54)),zt(t,"BrtCommentAuthor",function(e){return on(e.slice(0,54))}(e.a)))}))})),zt(t,"BrtEndCommentAuthors"),zt(t,"BrtBeginCommentList"),e.forEach((function(e){e[1].forEach((function(r){r.iauthor=n.indexOf(r.a);var a={s:Kt(e[0]),e:Kt(e[0])};zt(t,"BrtBeginComment",function(e,t){return null==t&&(t=$t(36)),t.write_shift(4,e[1].iauthor),kn(e[0],t),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t}([a,r])),r.t&&r.t.length>0&&zt(t,"BrtCommentText",function(e,t){var n=!1;return null==t&&(n=!0,t=$t(23+4*e.t.length)),t.write_shift(1,1),on(e.t,t),t.write_shift(4,1),function(e,t){t||(t=$t(4)),t.write_shift(2,e.ich||0),t.write_shift(2,e.ifnt||0)}({ich:0,ifnt:0},t),n?t.slice(0,t.l):t}(r)),zt(t,"BrtEndComment"),delete r.iauthor}))})),zt(t,"BrtEndCommentList"),zt(t,"BrtEndComments"),t.end()}var ei=["xlsb","xlsm","xlam","biff8","xla"];Gn.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",Gn.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";var ti=function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function n(e,n,r,a){var s=!1,i=!1;0==r.length?i=!0:"["==r.charAt(0)&&(i=!0,r=r.slice(1,-1)),0==a.length?s=!0:"["==a.charAt(0)&&(s=!0,a=a.slice(1,-1));var o=r.length>0?0|parseInt(r,10):0,l=a.length>0?0|parseInt(a,10):0;return s?l+=t.c:--l,i?o+=t.r:--o,n+(s?"":"$")+qt(l)+(i?"":"$")+Gt(o)}return function(r,a){return t=a,r.replace(e,n)}}(),ni=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,ri=function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){var o=Xt(a)-(r?0:t.c),l=Ht(i)-(s?0:t.r);return n+"R"+(0==l?"":s?l+1:"["+l+"]")+"C"+(0==o?"":r?o+1:"["+o+"]")}))};function ai(e,t,n){var r=Yt(t).s,a=Kt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:qt(Xt(a)+t.c))+("$"==s?s+i:Gt(Ht(i)+t.r))}))}(e,{r:a.r-r.r,c:a.c-r.c})}function si(e){return e.replace(/_xlfn\./g,"")}function ii(e){e.l+=1}function oi(e,t){var n=e.read_shift(1==t?1:2);return[16383&n,n>>14&1,n>>15&1]}function li(e,t,n){var r=2;if(n){if(n.biff>=2&&n.biff<=5)return ui(e);12==n.biff&&(r=4)}var a=e.read_shift(r),s=e.read_shift(r),i=oi(e,2),o=oi(e,2);return{s:{r:a,c:i[0],cRel:i[1],rRel:i[2]},e:{r:s,c:o[0],cRel:o[1],rRel:o[2]}}}function ui(e){var t=oi(e,2),n=oi(e,2),r=e.read_shift(1),a=e.read_shift(1);return{s:{r:t[0],c:r,cRel:t[1],rRel:t[2]},e:{r:n[0],c:a,cRel:n[1],rRel:n[2]}}}function ci(e,t,n){if(n&&n.biff>=2&&n.biff<=5)return function(e){var t=oi(e,2),n=e.read_shift(1);return{r:t[0],c:n,cRel:t[1],rRel:t[2]}}(e);var r=e.read_shift(n&&12==n.biff?4:2),a=oi(e,2);return{r,c:a[0],cRel:a[1],rRel:a[2]}}function hi(e){var t=e.read_shift(2),n=e.read_shift(2);return{r:t,c:255&n,fQuoted:!!(16384&n),cRel:n>>15,rRel:n>>15}}function fi(e){return[e.read_shift(1),e.read_shift(1)]}function di(e,t){var n=[e.read_shift(1)];if(12==t)switch(n[0]){case 2:n[0]=4;break;case 4:n[0]=16;break;case 0:n[0]=1;break;case 1:n[0]=2}switch(n[0]){case 4:n[1]=Fr(e,1)?"TRUE":"FALSE",12!=t&&(e.l+=7);break;case 37:case 16:n[1]=Ln[e[e.l]],e.l+=12==t?4:8;break;case 0:e.l+=8;break;case 1:n[1]=En(e);break;case 2:n[1]=Ur(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error("Bad SerAr: "+n[0])}return n}function pi(e,t,n){for(var r=e.read_shift(12==n.biff?4:2),a=[],s=0;s!=r;++s)a.push((12==n.biff?_n:Jr)(e,8));return a}function mi(e,t,n){var r=0,a=0;12==n.biff?(r=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),r=1+e.read_shift(2)),n.biff>=2&&n.biff<8&&(--r,0==--a&&(a=256));for(var s=0,i=[];s!=r&&(i[s]=[]);++s)for(var o=0;o!=a;++o)i[s][o]=di(e,n.biff);return i}function gi(e,t,n){return e.l+=2,[hi(e)]}function yi(e){return e.l+=6,[]}var bi=gi,vi=yi,wi=yi,xi=gi;function _i(e){return e.l+=2,[Or(e),1&e.read_shift(2)]}var ki=gi,Ei=_i,Ci=yi,Si=gi,Ni=gi,Ii=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"],Ai={1:{n:"PtgExp",f:function(e,t,n){return e.l++,n&&12==n.biff?[e.read_shift(4,"i"),0]:[e.read_shift(2),e.read_shift(n&&2==n.biff?1:2)]}},2:{n:"PtgTbl",f:Mt},3:{n:"PtgAdd",f:ii},4:{n:"PtgSub",f:ii},5:{n:"PtgMul",f:ii},6:{n:"PtgDiv",f:ii},7:{n:"PtgPower",f:ii},8:{n:"PtgConcat",f:ii},9:{n:"PtgLt",f:ii},10:{n:"PtgLe",f:ii},11:{n:"PtgEq",f:ii},12:{n:"PtgGe",f:ii},13:{n:"PtgGt",f:ii},14:{n:"PtgNe",f:ii},15:{n:"PtgIsect",f:ii},16:{n:"PtgUnion",f:ii},17:{n:"PtgRange",f:ii},18:{n:"PtgUplus",f:ii},19:{n:"PtgUminus",f:ii},20:{n:"PtgPercent",f:ii},21:{n:"PtgParen",f:ii},22:{n:"PtgMissArg",f:ii},23:{n:"PtgStr",f:function(e,t,n){return e.l++,$r(e,0,n)}},26:{n:"PtgSheet",f:function(e,t,n){return e.l+=5,e.l+=2,e.l+=2==n.biff?1:4,["PTGSHEET"]}},27:{n:"PtgEndSheet",f:function(e,t,n){return e.l+=2==n.biff?4:5,["PTGENDSHEET"]}},28:{n:"PtgErr",f:function(e){return e.l++,Ln[e.read_shift(1)]}},29:{n:"PtgBool",f:function(e){return e.l++,0!==e.read_shift(1)}},30:{n:"PtgInt",f:function(e){return e.l++,e.read_shift(2)}},31:{n:"PtgNum",f:function(e){return e.l++,En(e)}},32:{n:"PtgArray",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=2==n.biff?6:12==n.biff?14:7,[r]}},33:{n:"PtgFunc",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(n&&n.biff<=3?1:2);return[Yi[a],Zi[a],r]}},34:{n:"PtgFuncVar",f:function(e,t,n){var r=e[e.l++],a=e.read_shift(1),s=n&&n.biff<=3?[88==r?-1:0,e.read_shift(1)]:function(e){return[e[e.l+1]>>7,32767&e.read_shift(2)]}(e);return[a,(0===s[0]?Zi:Ki)[s[1]]]}},35:{n:"PtgName",f:function(e,t,n){var r=e.read_shift(1)>>>5&3,a=!n||n.biff>=8?4:2,s=e.read_shift(a);switch(n.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12}return[r,0,s]}},36:{n:"PtgRef",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,ci(e,0,n)]}},37:{n:"PtgArea",f:function(e,t,n){return[(96&e[e.l++])>>5,li(e,n.biff>=2&&n.biff,n)]}},38:{n:"PtgMemArea",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=n&&2==n.biff?3:4,[r,e.read_shift(n&&2==n.biff?1:2)]}},39:{n:"PtgMemErr",f:Mt},40:{n:"PtgMemNoMem",f:Mt},41:{n:"PtgMemFunc",f:function(e,t,n){return[e.read_shift(1)>>>5&3,e.read_shift(n&&2==n.biff?1:2)]}},42:{n:"PtgRefErr",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=4,n.biff<8&&e.l--,12==n.biff&&(e.l+=2),[r]}},43:{n:"PtgAreaErr",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=n&&n.biff>8?12:n.biff<8?6:8,[r]}},44:{n:"PtgRefN",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,function(e,t,n){var r=n&&n.biff?n.biff:8;if(r>=2&&r<=5)return function(e){var t=e.read_shift(2),n=e.read_shift(1),r=(32768&t)>>15,a=(16384&t)>>14;return t&=16383,1==r&&t>=8192&&(t-=16384),1==a&&n>=128&&(n-=256),{r:t,c:n,cRel:a,rRel:r}}(e);var a=e.read_shift(r>=12?4:2),s=e.read_shift(2),i=(16384&s)>>14,o=(32768&s)>>15;if(s&=16383,1==o)for(;a>524287;)a-=1048576;if(1==i)for(;s>8191;)s-=16384;return{r:a,c:s,cRel:i,rRel:o}}(e,0,n)]}},45:{n:"PtgAreaN",f:function(e,t,n){return[(96&e[e.l++])>>5,function(e,t,n){if(n.biff<8)return ui(e);var r=e.read_shift(12==n.biff?4:2),a=e.read_shift(12==n.biff?4:2),s=oi(e,2),i=oi(e,2);return{s:{r,c:s[0],cRel:s[1],rRel:s[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}(e,0,n)]}},46:{n:"PtgMemAreaN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},47:{n:"PtgMemNoMemN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},57:{n:"PtgNameX",f:function(e,t,n){return 5==n.biff?function(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2,"i");e.l+=8;var r=e.read_shift(2);return e.l+=12,[t,n,r]}(e):[e.read_shift(1)>>>5&3,e.read_shift(2),e.read_shift(4)]}},58:{n:"PtgRef3d",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(2);return n&&5==n.biff&&(e.l+=12),[r,a,ci(e,0,n)]}},59:{n:"PtgArea3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2,"i");if(n)switch(n.biff){case 5:e.l+=12}return[r,a,li(e,0,n)]}},60:{n:"PtgRefErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=4;if(n)switch(n.biff){case 5:s=15;break;case 12:s=6}return e.l+=s,[r,a]}},61:{n:"PtgAreaErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=8;if(n)switch(n.biff){case 5:e.l+=12,s=6;break;case 12:s=12}return e.l+=s,[r,a]}},255:{}},Di={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};!function(){for(var e in Di)Ai[e]=Ai[Di[e]]}();var Ti={1:{n:"PtgElfLel",f:_i},2:{n:"PtgElfRw",f:Si},3:{n:"PtgElfCol",f:bi},6:{n:"PtgElfRwV",f:Ni},7:{n:"PtgElfColV",f:xi},10:{n:"PtgElfRadical",f:ki},11:{n:"PtgElfRadicalS",f:Ci},13:{n:"PtgElfColS",f:vi},15:{n:"PtgElfColSV",f:wi},16:{n:"PtgElfRadicalLel",f:Ei},25:{n:"PtgList",f:function(e){e.l+=2;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a=e.read_shift(2),s=e.read_shift(2);return{ixti:t,coltype:3&n,rt:Ii[n>>2&31],idx:r,c:a,C:s}}},29:{n:"PtgSxName",f:function(e){return e.l+=2,[e.read_shift(4)]}},255:{}},Fi={0:{n:"PtgAttrNoop",f:function(e){return e.l+=4,[0,0]}},1:{n:"PtgAttrSemi",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=n&&2==n.biff?3:4,[r]}},2:{n:"PtgAttrIf",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},4:{n:"PtgAttrChoose",f:function(e,t,n){e.l+=2;for(var r=e.read_shift(n&&2==n.biff?1:2),a=[],s=0;s<=r;++s)a.push(e.read_shift(n&&2==n.biff?1:2));return a}},8:{n:"PtgAttrGoto",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},16:{n:"PtgAttrSum",f:function(e,t,n){e.l+=n&&2==n.biff?3:4}},32:{n:"PtgAttrBaxcel",f:function(e){var t=1&e[e.l+1];return e.l+=4,[t,1]}},64:{n:"PtgAttrSpace",f:function(e){return e.read_shift(2),fi(e)}},65:{n:"PtgAttrSpaceSemi",f:function(e){return e.read_shift(2),fi(e)}},128:{n:"PtgAttrIfError",f:function(e){var t=255&e[e.l+1]?1:0;return e.l+=2,[t,e.read_shift(2)]}},255:{}};function Ri(e,t,n,r){if(r.biff<8)return Mt(e,t);for(var a=e.l+t,s=[],i=0;i!==n.length;++i)switch(n[i][0]){case"PtgArray":n[i][1]=mi(e,0,r),s.push(n[i][1]);break;case"PtgMemArea":n[i][2]=pi(e,n[i][1],r),s.push(n[i][2]);break;case"PtgExp":r&&12==r.biff&&(n[i][1][1]=e.read_shift(4),s.push(n[i][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+n[i][0]}return 0!=(t=a-e.l)&&s.push(Mt(e,t)),s}function Oi(e,t,n){for(var r,a,s=e.l+t,i=[];s!=e.l;)t=s-e.l,a=e[e.l],r=Ai[a],24!==a&&25!==a||(r=(24===a?Ti:Fi)[e[e.l+1]]),r&&r.f?i.push([r.n,r.f(e,t,n)]):Mt(e,t);return i}function Bi(e){for(var t=[],n=0;n=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"},$i=new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/);function Pi(e,t,n){if(!e)return"SH33TJSERR0";if(n.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return"SH33TJSERR6";var r=e.XTI[t];if(n.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),0==t?"":e.XTI[t-1];if(!r)return"SH33TJSERR1";var a="";if(n.biff>8)switch(e[r[0]][0]){case 357:return a=-1==r[1]?"#REF":e.SheetNames[r[1]],r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 358:return null!=n.SID?e.SheetNames[n.SID]:"SH33TJSSAME"+e[r[0]][0];case 355:default:return"SH33TJSSRC"+e[r[0]][0]}switch(e[r[0]][0][0]){case 1025:return a=-1==r[1]?"#REF":e.SheetNames[r[1]]||"SH33TJSERR3",r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 14849:return e[r[0]].slice(1).map((function(e){return e.Name})).join(";;");default:return e[r[0]][0][3]?(a=-1==r[1]?"#REF":e[r[0]][0][3][r[1]]||"SH33TJSERR4",r[1]==r[2]?a:a+":"+e[r[0]][0][3][r[2]]):"SH33TJSERR2"}}function Li(e,t,n){return function(e,t){if(!(e||t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return $i.test(e)?"'"+e+"'":e}(Pi(e,t,n),n)}function zi(e,t,n,r,a){var s,i,o,l,u=a&&a.biff||8,c={s:{c:0,r:0},e:{c:0,r:0}},h=[],f=0,d=0,p="";if(!e[0]||!e[0][0])return"";for(var m=-1,g="",y=0,b=e[0].length;y=0){switch(e[0][m][1][0]){case 0:g=ne(" ",e[0][m][1][1]);break;case 1:g=ne("\r",e[0][m][1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}i+=g,m=-1}h.push(i+Mi[v[0]]+s);break;case"PtgIsect":s=h.pop(),i=h.pop(),h.push(i+" "+s);break;case"PtgUnion":s=h.pop(),i=h.pop(),h.push(i+","+s);break;case"PtgRange":s=h.pop(),i=h.pop(),h.push(i+":"+s);break;case"PtgAttrChoose":case"PtgAttrGoto":case"PtgAttrIf":case"PtgAttrIfError":break;case"PtgRef":o=Wt(v[1][1],c,a),h.push(Vt(o,u));break;case"PtgRefN":o=n?Wt(v[1][1],n,a):v[1][1],h.push(Vt(o,u));break;case"PtgRef3d":f=v[1][1],o=Wt(v[1][2],c,a),p=Li(r,f,a),h.push(p+"!"+Vt(o,u));break;case"PtgFunc":case"PtgFuncVar":var w=v[1][0],x=v[1][1];w||(w=0);var _=0==(w&=127)?[]:h.slice(-w);h.length-=w,"User"===x&&(x=_.shift()),h.push(x+"("+_.join(",")+")");break;case"PtgBool":h.push(v[1]?"TRUE":"FALSE");break;case"PtgInt":h.push(v[1]);break;case"PtgNum":h.push(String(v[1]));break;case"PtgStr":h.push('"'+v[1].replace(/"/g,'""')+'"');break;case"PtgErr":h.push(v[1]);break;case"PtgAreaN":l=Ut(v[1][1],n?{s:n}:c,a),h.push(jt(l,a));break;case"PtgArea":l=Ut(v[1][1],c,a),h.push(jt(l,a));break;case"PtgArea3d":f=v[1][1],l=v[1][2],p=Li(r,f,a),h.push(p+"!"+jt(l,a));break;case"PtgAttrSum":h.push("SUM("+h.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":d=v[1][2];var k=(r.names||[])[d-1]||(r[0]||[])[d],E=k?k.Name:"SH33TJSNAME"+String(d);E in Ji&&(E=Ji[E]),h.push(E);break;case"PtgNameX":var C,S=v[1][1];if(d=v[1][2],!(a.biff<=5)){var N="";if(14849==((r[S]||[])[0]||[])[0]||(1025==((r[S]||[])[0]||[])[0]?r[S][d]&&r[S][d].itab>0&&(N=r.SheetNames[r[S][d].itab-1]+"!"):N=r.SheetNames[d-1]+"!"),r[S]&&r[S][d])N+=r[S][d].Name;else if(r[0]&&r[0][d])N+=r[0][d].Name;else{var I=Pi(r,S,a).split(";;");I[d-1]?N=I[d-1]:N+="SH33TJSERRX"}h.push(N);break}S<0&&(S=-S),r[S]&&(C=r[S][d]),C||(C={Name:"SH33TJSERRY"}),h.push(C.Name);break;case"PtgParen":var A="(",D=")";if(m>=0){switch(g="",e[0][m][1][0]){case 2:A=ne(" ",e[0][m][1][1])+A;break;case 3:A=ne("\r",e[0][m][1][1])+A;break;case 4:D=ne(" ",e[0][m][1][1])+D;break;case 5:D=ne("\r",e[0][m][1][1])+D;break;default:if(a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}m=-1}h.push(A+h.pop()+D);break;case"PtgRefErr":case"PtgRefErr3d":h.push("#REF!");break;case"PtgExp":o={c:v[1][1],r:v[1][0]};var T={c:n.c,r:n.r};if(r.sharedf[Zt(o)]){var F=r.sharedf[Zt(o)];h.push(zi(F,0,T,r,a))}else{var R=!1;for(s=0;s!=r.arrayf.length;++s)if(i=r.arrayf[s],!(o.ci[0].e.c||o.ri[0].e.r)){h.push(zi(i[1],0,T,r,a)),R=!0;break}R||h.push(v[1])}break;case"PtgArray":h.push("{"+Bi(v[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":m=y;break;case"PtgTbl":case"PtgMemErr":break;case"PtgMissArg":h.push("");break;case"PtgAreaErr":case"PtgAreaErr3d":h.push("#REF!");break;case"PtgList":h.push("Table"+v[1].idx+"[#"+v[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":case"PtgMemFunc":case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":default:throw new Error("Unrecognized Formula Token: "+String(v))}if(3!=a.biff&&m>=0&&-1==["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"].indexOf(e[0][y][0])){var O=!0;switch((v=e[0][m])[1][0]){case 4:O=!1;case 0:g=ne(" ",v[1][1]);break;case 5:O=!1;case 1:g=ne("\r",v[1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+v[1][0])}h.push((O?g:"")+h.pop()+(O?"":g)),m=-1}}if(h.length>1&&a.WTF)throw new Error("bad formula stack");return h[0]}function Wi(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Ri(e,t-i-s,o,n)),e.l=a,[o,r]}function Ui(e,t,n){var r,a=e.l+t,s=e.read_shift(2),i=Oi(e,s,n);return 65535==s?[[],Mt(e,t-2)]:(t!==s+2&&(r=Ri(e,a-s-2,i,n)),[i,r])}function Vi(e,t,n){var r=e.l+t,a=qr(e);2==n.biff&&++e.l;var s=function(e){var t;if(65535!==St(e,e.l+6))return[En(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return t=1===e[e.l+2],e.l+=8,[t,"b"];case 2:return t=e[e.l+2],e.l+=8,[t,"e"];case 3:return e.l+=8,["","s"]}return[]}(e),i=e.read_shift(1);2!=n.biff&&(e.read_shift(1),n.biff>=5&&e.read_shift(4));var o=function(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Ri(e,t-i-s,o,n)),e.l=a,[o,r]}(e,r-e.l,n);return{cell:a,val:s[0],formula:o,shared:i>>3&1,tt:s[1]}}function ji(e,t,n){var r=e.read_shift(4),a=Oi(e,r,n),s=e.read_shift(4);return[a,s>0?Ri(e,s,a,n):null]}var Hi=ji,Gi=ji,Xi=ji,qi=ji,Ki={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},Zi={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Yi={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0},Ji={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONCAT":"CONCAT","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORECAST.ETS":"FORECAST.ETS","_xlfn.FORECAST.ETS.CONFINT":"FORECAST.ETS.CONFINT","_xlfn.FORECAST.ETS.SEASONALITY":"FORECAST.ETS.SEASONALITY","_xlfn.FORECAST.ETS.STAT":"FORECAST.ETS.STAT","_xlfn.FORECAST.LINEAR":"FORECAST.LINEAR","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFERROR":"IFERROR","_xlfn.IFNA":"IFNA","_xlfn.IFS":"IFS","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MAXIFS":"MAXIFS","_xlfn.MINIFS":"MINIFS","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.SWITCH":"SWITCH","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.TEXTJOIN":"TEXTJOIN","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Qi(e){return"of:"==e.slice(0,3)&&(e=e.slice(3)),61==e.charCodeAt(0)&&61==(e=e.slice(1)).charCodeAt(0)&&(e=e.slice(1)),(e=(e=(e=e.replace(/COM\.MICROSOFT\./g,"")).replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,(function(e,t){return t.replace(/\./g,"")}))).replace(/\[.(#[A-Z]*[?!])\]/g,"$1")).replace(/[;~]/g,",").replace(/\|/g,";")}function eo(e){var t=e.split(":");return[t[0].split(".")[0],t[0].split(".")[1]+(t.length>1?":"+(t[1].split(".")[1]||t[1].split(".")[0]):"")]}var to={},no={};Gn.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];var ro="undefined"!=typeof Map;function ao(e,t,n){var r=0,a=e.length;if(n){if(ro?n.has(t):Object.prototype.hasOwnProperty.call(n,t))for(var s=ro?n.get(t):n[t];r-1?(n.width=fs(r),n.customWidth=1):null!=t.width&&(n.width=t.width),t.hidden&&(n.hidden=!0),n}function io(e,t){if(e){var n=[.7,.7,.75,.75,.3,.3];"xlml"==t&&(n=[1,1,1,1,.5,.5]),null==e.left&&(e.left=n[0]),null==e.right&&(e.right=n[1]),null==e.top&&(e.top=n[2]),null==e.bottom&&(e.bottom=n[3]),null==e.header&&(e.header=n[4]),null==e.footer&&(e.footer=n[5])}}function oo(e,t,n){var r=n.revssf[null!=t.z?t.z:"General"],a=60,s=e.length;if(null==r&&n.ssf)for(;a<392;++a)if(null==n.ssf[a]){A.load(t.z,a),n.ssf[a]=t.z,n.revssf[t.z]=r=a;break}for(a=0;a!=s;++a)if(e[a].numFmtId===r)return a;return e[s]={numFmtId:r,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function lo(e,t,n,r,a,s){try{r.cellNF&&(e.z=A._table[t])}catch(e){if(r.WTF)throw e}if("z"!==e.t){if("d"===e.t&&"string"==typeof e.v&&(e.v=Q(e.v)),!r||!1!==r.cellText)try{if(null==A._table[t]&&A.load(R[t]||"General",t),"e"===e.t)e.w=e.w||Ln[e.v];else if(0===t)if("n"===e.t)(0|e.v)===e.v?e.w=A._general_int(e.v):e.w=A._general_num(e.v);else if("d"===e.t){var i=H(e.v);e.w=(0|i)===i?A._general_int(i):A._general_num(i)}else{if(void 0===e.v)return"";e.w=A._general(e.v,no)}else"d"===e.t?e.w=A.format(t,H(e.v),no):e.w=A.format(t,e.v,no)}catch(e){if(r.WTF)throw e}if(r.cellStyles&&null!=n)try{e.s=s.Fills[n],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=ls(a.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),r.WTF&&(e.s.fgColor.raw_rgb=a.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=ls(a.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),r.WTF&&(e.s.bgColor.raw_rgb=a.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(e){if(r.WTF&&s.Fills)throw e}}}function uo(e,t,n){if(e&&e["!ref"]){var r=Qt(e["!ref"]);if(r.e.c/g,ho=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,fo=/<(?:\w:)?hyperlink [^>]*>/gm,po=/"(\w*:\w*)"/,mo=/<(?:\w:)?col\b[^>]*[\/]?>/g,go=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,yo=/<(?:\w:)?pageMargins[^>]*\/>/g,bo=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,vo=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function wo(e,t,n,r){var a=we(e);n.Sheets[r]||(n.Sheets[r]={}),a.codeName&&(n.Sheets[r].CodeName=Se(Be(a.codeName)))}var xo=["objects","scenarios","selectLockedCells","selectUnlockedCells"],_o=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"],ko=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;function Eo(e,t,n,r){if(void 0===e.v&&"string"!=typeof e.f||"z"===e.t)return"";var a="",s=e.t,i=e.v;if("z"!==e.t)switch(e.t){case"b":a=e.v?"1":"0";break;case"n":a=""+e.v;break;case"e":a=Ln[e.v];break;case"d":r&&r.cellDates?a=Q(e.v,-1).toISOString():((e=te(e)).t="n",a=""+(e.v=H(Q(e.v)))),void 0===e.z&&(e.z=A._table[14]);break;default:a=e.v}var o=Ze("v",Ae(a)),l={r:t},u=oo(r.cellXfs,e,r);switch(0!==u&&(l.s=u),e.t){case"n":break;case"d":l.t="d";break;case"b":l.t="b";break;case"e":l.t="e";break;case"z":break;default:if(null==e.v){delete e.t;break}if(r&&r.bookSST){o=Ze("v",""+ao(r.Strings,e.v,r.revStrings)),l.t="s";break}l.t="str"}if(e.t!=s&&(e.t=s,e.v=i),"string"==typeof e.f&&e.f){var c=e.F&&e.F.slice(0,t.length)==t?{t:"array",ref:e.F}:null;o=Je("f",Ae(e.f),c)+(null!=e.v?o:"")}return e.l&&n["!links"].push([t,e.l]),e.c&&n["!comments"].push([t,e.c]),Je("c",o,l)}var Co,So,No,Io,Ao,Do,To,Fo=(Co=/<(?:\w+:)?c[ \/>]/,So=/<\/(?:\w+:)?row>/,No=/r=["']([^"']*)["']/,Io=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,Ao=/ref=["']([^"']*)["']/,Do=Ve("v"),To=Ve("f"),function(e,t,n,r,a,s){for(var i,o,l,u,c,h=0,f="",d=[],p=[],m=0,g=0,y=0,b="",v=0,w=0,x=0,_=0,k=Array.isArray(s.CellXf),E=[],C=[],S=Array.isArray(t),N=[],I={},D=!1,T=!!n.sheetStubs,F=e.split(So),R=0,O=F.length;R!=O;++R){var B=(f=F[R].trim()).length;if(0!==B){for(h=0;hv-1&&(r.s.r=v-1),r.e.r":"")+f,null!=p&&2===p.length){for(m=0,b=p[1],g=0;g!=b.length&&!((y=b.charCodeAt(g)-64)<1||y>26);++g)m=26*m+y;w=--m}else++w;for(g=0;g!=f.length&&62!==f.charCodeAt(g);++g);if(++g,(o=we(f.slice(0,g),!0)).r||(o.r=Zt({r:v-1,c:w})),i={t:""},null!=(p=(b=f.slice(g)).match(Do))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Be(p[1])).replace(/\r\n/g,"\n"),n.xlfn||(i.f=si(i.f)),p[0].indexOf('t="array"')>-1)i.F=(b.match(Ao)||[])[1],i.F.indexOf(":")>-1&&E.push([Qt(i.F),i.F]);else if(p[0].indexOf('t="shared"')>-1){u=we(p[0]);var $=Se(Be(p[1]));n.xlfn||($=si($)),C[parseInt(u.si,10)]=[u,$,o.r]}}else(p=b.match(/]*\/>/))&&C[(u=we(p[0])).si]&&(i.f=ai(C[u.si][1],C[u.si][2],o.r));var P=Kt(o.r);for(g=0;g=E[g][0].s.r&&P.r<=E[g][0].e.r&&P.c>=E[g][0].s.c&&P.c<=E[g][0].e.c&&(i.F=E[g][1])}if(null==o.t&&void 0===i.v)if(i.f||i.F)i.v=0,i.t="n";else{if(!T)continue;i.t="z"}else i.t=o.t||"n";switch(r.s.c>w&&(r.s.c=w),r.e.c0&&(t["!rows"]=N)}),Ro=Je("worksheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function Oo(e,t,n,r){var a,s=[me,Ro],i=n.SheetNames[e],o="",l=n.Sheets[i];null==l&&(l={});var u=l["!ref"]||"A1",c=Qt(u);if(c.e.c>16383||c.e.r>1048575){if(t.WTF)throw new Error("Range "+u+" exceeds format limit A1:XFD1048576");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575),u=Jt(c)}r||(r={}),l["!comments"]=[];var h=[];!function(e,t,n,r,a){var s=!1,i={},o=null;if("xlsx"!==r.bookType&&t.vbaraw){var l=t.SheetNames[n];try{t.Workbook&&(l=t.Workbook.Sheets[n].CodeName||l)}catch(e){}s=!0,i.codeName=Me(Ae(l))}if(e&&e["!outline"]){var u={summaryBelow:1,summaryRight:1};e["!outline"].above&&(u.summaryBelow=0),e["!outline"].left&&(u.summaryRight=0),o=(o||"")+Je("outlinePr",null,u)}(s||o)&&(a[a.length]=Je("sheetPr",o,i))}(l,n,e,t,s),s[s.length]=Je("dimension",null,{ref:u}),s[s.length]=function(e,t,n,r){var a={workbookViewId:"0"};return(((r||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=r.Workbook.Views[0].RTL?"1":"0"),Je("sheetViews",Je("sheetView",null,a),{})}(0,0,0,n),t.sheetFormat&&(s[s.length]=Je("sheetFormatPr",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||"16",baseColWidth:t.sheetFormat.baseColWidth||"10",outlineLevelRow:t.sheetFormat.outlineLevelRow||"7"})),null!=l["!cols"]&&l["!cols"].length>0&&(s[s.length]=function(e,t){for(var n,r=[""],a=0;a!=t.length;++a)(n=t[a])&&(r[r.length]=Je("col",null,so(a,n)));return r[r.length]="",r.join("")}(0,l["!cols"])),s[a=s.length]="",l["!links"]=[],null!=l["!ref"]&&(o=function(e,t,n,r){var a,s,i=[],o=[],l=Qt(e["!ref"]),u="",c="",h=[],f=0,d=0,p=e["!rows"],m=Array.isArray(e),g={r:c},y=-1;for(d=l.s.c;d<=l.e.c;++d)h[d]=qt(d);for(f=l.s.r;f<=l.e.r;++f){for(o=[],c=Gt(f),d=l.s.c;d<=l.e.c;++d){a=h[d]+c;var b=m?(e[f]||[])[d]:e[a];void 0!==b&&null!=(u=Eo(b,a,e,t))&&o.push(u)}(o.length>0||p&&p[f])&&(g={r:c},p&&p[f]&&((s=p[f]).hidden&&(g.hidden=1),y=-1,s.hpx?y=gs(s.hpx):s.hpt&&(y=s.hpt),y>-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level)),i[i.length]=Je("row",o.join(""),g))}if(p)for(;f-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level),i[i.length]=Je("row","",g));return i.join("")}(l,t)).length>0&&(s[s.length]=o),s.length>a+1&&(s[s.length]="",s[a]=s[a].replace("/>",">")),null!=l["!protect"]&&(s[s.length]=function(e){var t={sheet:1};return xo.forEach((function(n){null!=e[n]&&e[n]&&(t[n]="1")})),_o.forEach((function(n){null==e[n]||e[n]||(t[n]="0")})),e.password&&(t.password=es(e.password).toString(16).toUpperCase()),Je("sheetProtection",null,t)}(l["!protect"])),null!=l["!autofilter"]&&(s[s.length]=function(e,t,n,r){var a="string"==typeof e.ref?e.ref:Jt(e.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var s=n.Workbook.Names,i=Yt(a);i.s.r==i.e.r&&(i.e.r=Yt(t["!ref"]).e.r,a=Jt(i));for(var o=0;o0&&(s[s.length]=function(e){if(0===e.length)return"";for(var t='',n=0;n!=e.length;++n)t+='';return t+""}(l["!merges"]));var f,d,p=-1,m=-1;return l["!links"].length>0&&(s[s.length]="",l["!links"].forEach((function(e){e[1].Target&&(f={ref:e[0]},"#"!=e[1].Target.charAt(0)&&(m=Jn(r,-1,Ae(e[1].Target).replace(/#.*$/,""),Gn.HLINK),f["r:id"]="rId"+m),(p=e[1].Target.indexOf("#"))>-1&&(f.location=Ae(e[1].Target.slice(p+1))),e[1].Tooltip&&(f.tooltip=Ae(e[1].Tooltip)),s[s.length]=Je("hyperlink",null,f))})),s[s.length]=""),delete l["!links"],null!=l["!margins"]&&(s[s.length]=(io(d=l["!margins"]),Je("pageMargins",null,d))),t&&!t.ignoreEC&&null!=t.ignoreEC||(s[s.length]=Ze("ignoredErrors",Je("ignoredError",null,{numberStoredAsText:1,sqref:u}))),h.length>0&&(m=Jn(r,-1,"../drawings/drawing"+(e+1)+".xml",Gn.DRAW),s[s.length]=Je("drawing",null,{"r:id":"rId"+m}),l["!drawing"]=h),l["!comments"].length>0&&(m=Jn(r,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Gn.VML),s[s.length]=Je("legacyDrawing",null,{"r:id":"rId"+m}),l["!legacy"]=m),s.length>1&&(s[s.length]="",s[1]=s[1].replace("/>",">")),s.join("")}function Bo(e,t,n,r){var a=function(e,t,n){var r=$t(145),a=(n["!rows"]||[])[e]||{};r.write_shift(4,e),r.write_shift(4,0);var s=320;a.hpx?s=20*gs(a.hpx):a.hpt&&(s=20*a.hpt),r.write_shift(2,s),r.write_shift(1,0);var i=0;a.level&&(i|=a.level),a.hidden&&(i|=16),(a.hpx||a.hpt)&&(i|=32),r.write_shift(1,i),r.write_shift(1,0);var o=0,l=r.l;r.l+=4;for(var u={r:e,c:0},c=0;c<16;++c)if(!(t.s.c>c+1<<10||t.e.cr.l?r.slice(0,r.l):r}(r,n,t);(a.length>17||(t["!rows"]||[])[r])&&zt(e,"BrtRowHdr",a)}var Mo=_n,$o=kn;var Po=_n,Lo=kn,zo=["left","right","top","bottom","header","footer"];function Wo(e,t,n,r,a,s){if(void 0!==t.v){var i="";switch(t.t){case"b":i=t.v?"1":"0";break;case"d":(t=te(t)).z=t.z||A._table[14],t.v=H(Q(t.v)),t.t="n";break;case"n":case"e":i=""+t.v;break;default:i=t.v}var o={r:n,c:r};switch(o.s=oo(a.cellXfs,t,a),t.l&&s["!links"].push([Zt(o),t.l]),t.c&&s["!comments"].push([Zt(o),t.c]),t.t){case"s":case"str":return void(a.bookSST?(i=ao(a.Strings,t.v,a.revStrings),o.t="s",o.v=i,zt(e,"BrtCellIsst",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),n.write_shift(4,t.v),n}(0,o))):(o.t="str",zt(e,"BrtCellSt",function(e,t,n){return null==n&&(n=$t(12+4*e.v.length)),fn(t,n),on(e.v,n),n.length>n.l?n.slice(0,n.l):n}(t,o))));case"n":return void(t.v==(0|t.v)&&t.v>-1e3&&t.v<1e3?zt(e,"BrtCellRk",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),function(e,t){null==t&&(t=$t(4));var n=0,r=0,a=100*e;if(e==(0|e)&&e>=-(1<<29)&&e<1<<29?r=1:a==(0|a)&&a>=-(1<<29)&&a<1<<29&&(r=1,n=1),!r)throw new Error("unsupported RkNumber "+e);t.write_shift(-4,((n?a:e)<<2)+(n+2))}(e.v,n),n}(t,o)):zt(e,"BrtCellReal",function(e,t,n){return null==n&&(n=$t(16)),fn(t,n),Cn(e.v,n),n}(t,o)));case"b":return o.t="b",void zt(e,"BrtCellBool",function(e,t,n){return null==n&&(n=$t(9)),fn(t,n),n.write_shift(1,e.v?1:0),n}(t,o));case"e":o.t="e"}zt(e,"BrtCellBlank",function(e,t,n){return null==n&&(n=$t(8)),fn(t,n)}(0,o))}}function Uo(e,t,n,r){var a=Lt(),s=n.SheetNames[e],i=n.Sheets[s]||{},o=s;try{n&&n.Workbook&&(o=n.Workbook.Sheets[e].CodeName||o)}catch(e){}var l=Qt(i["!ref"]||"A1");if(l.e.c>16383||l.e.r>1048575){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");l.e.c=Math.min(l.e.c,16383),l.e.r=Math.min(l.e.c,1048575)}return i["!links"]=[],i["!comments"]=[],zt(a,"BrtBeginSheet"),n.vbaraw&&zt(a,"BrtWsProp",function(e,t){null==t&&(t=$t(84+4*e.length));for(var n=0;n<3;++n)t.write_shift(1,0);return Sn({auto:1},t),t.write_shift(-4,-1),t.write_shift(-4,-1),pn(e,t),t.slice(0,t.l)}(o)),zt(a,"BrtWsDim",$o(l)),function(e,t,n){zt(e,"BrtBeginWsViews"),zt(e,"BrtBeginWsView",function(e,t,n){null==n&&(n=$t(30));var r=924;return(((t||{}).Views||[])[0]||{}).RTL&&(r|=32),n.write_shift(2,r),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(2,0),n.write_shift(2,100),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(4,0),n}(0,n)),zt(e,"BrtEndWsView"),zt(e,"BrtEndWsViews")}(a,0,n.Workbook),function(e,t){t&&t["!cols"]&&(zt(e,"BrtBeginColInfos"),t["!cols"].forEach((function(t,n){t&&zt(e,"BrtColInfo",function(e,t,n){null==n&&(n=$t(18));var r=so(e,t);n.write_shift(-4,e),n.write_shift(-4,e),n.write_shift(4,256*(r.width||10)),n.write_shift(4,0);var a=0;return t.hidden&&(a|=1),"number"==typeof r.width&&(a|=2),t.level&&(a|=t.level<<8),n.write_shift(2,a),n}(n,t))})),zt(e,"BrtEndColInfos"))}(a,i),function(e,t,n,r){var a,s=Qt(t["!ref"]||"A1"),i="",o=[];zt(e,"BrtBeginSheetData");var l=Array.isArray(t),u=s.e.r;t["!rows"]&&(u=Math.max(s.e.r,t["!rows"].length-1));for(var c=s.s.r;c<=u;++c)if(i=Gt(c),Bo(e,t,s,c),c<=s.e.r)for(var h=s.s.c;h<=s.e.c;++h){c===s.s.r&&(o[h]=qt(h)),a=o[h]+i;var f=l?(t[c]||[])[h]:t[a];f&&Wo(e,f,c,h,r,t)}zt(e,"BrtEndSheetData")}(a,i,0,t),function(e,t){t["!protect"]&&zt(e,"BrtSheetProtection",function(e,t){return null==t&&(t=$t(66)),t.write_shift(2,e.password?es(e.password):0),t.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach((function(n){n[1]?t.write_shift(4,null==e[n[0]]||e[n[0]]?0:1):t.write_shift(4,null!=e[n[0]]&&e[n[0]]?0:1)})),t}(t["!protect"]))}(a,i),function(e,t,n,r){if(t["!autofilter"]){var a=t["!autofilter"],s="string"==typeof a.ref?a.ref:Jt(a.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var i=n.Workbook.Names,o=Yt(s);o.s.r==o.e.r&&(o.e.r=Yt(t["!ref"]).e.r,s=Jt(o));for(var l=0;l0){var a=Jn(r,-1,"../drawings/vmlDrawing"+(n+1)+".vml",Gn.VML);zt(e,"BrtLegacyDrawing",vn("rId"+a)),t["!legacy"]=a}}(a,i,e,r),zt(a,"BrtEndSheet"),a.end()}Gn.CHART="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",Gn.CHARTEX="http://schemas.microsoft.com/office/2014/relationships/chartEx",Gn.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",Je("chartsheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});var Vo=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],jo=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],Ho=[],Go=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function Xo(e,t){for(var n=0;n!=e.length;++n)for(var r=e[n],a=0;a!=t.length;++a){var s=t[a];if(null==r[s[0]])r[s[0]]=s[1];else switch(s[2]){case"bool":"string"==typeof r[s[0]]&&(r[s[0]]=Oe(r[s[0]]));break;case"int":"string"==typeof r[s[0]]&&(r[s[0]]=parseInt(r[s[0]],10))}}}function qo(e,t){for(var n=0;n!=t.length;++n){var r=t[n];if(null==e[r[0]])e[r[0]]=r[1];else switch(r[2]){case"bool":"string"==typeof e[r[0]]&&(e[r[0]]=Oe(e[r[0]]));break;case"int":"string"==typeof e[r[0]]&&(e[r[0]]=parseInt(e[r[0]],10))}}}function Ko(e){qo(e.WBProps,Vo),qo(e.CalcPr,Go),Xo(e.WBView,jo),Xo(e.Sheets,Ho),no.date1904=Oe(e.WBProps.date1904)}var Zo="][*?/\\".split("");function Yo(e,t){if(e.length>31){if(t)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var n=!0;return Zo.forEach((function(r){if(-1!=e.indexOf(r)){if(!t)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");n=!1}})),n}var Jo=/<\w+:workbook/,Qo=Je("workbook",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function el(e){var t=[me];t[t.length]=Qo;var n=e.Workbook&&(e.Workbook.Names||[]).length>0,r={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(Vo.forEach((function(t){null!=e.Workbook.WBProps[t[0]]&&e.Workbook.WBProps[t[0]]!=t[1]&&(r[t[0]]=e.Workbook.WBProps[t[0]])})),e.Workbook.WBProps.CodeName&&(r.codeName=e.Workbook.WBProps.CodeName,delete r.CodeName)),t[t.length]=Je("workbookPr",null,r);var a=e.Workbook&&e.Workbook.Sheets||[],s=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]="",s=0;s!=e.SheetNames.length&&a[s]&&a[s].Hidden;++s);s==e.SheetNames.length&&(s=0),t[t.length]='',t[t.length]=""}for(t[t.length]="",s=0;s!=e.SheetNames.length;++s){var i={name:Ae(e.SheetNames[s].slice(0,31))};if(i.sheetId=""+(s+1),i["r:id"]="rId"+(s+1),a[s])switch(a[s].Hidden){case 1:i.state="hidden";break;case 2:i.state="veryHidden"}t[t.length]=Je("sheet",null,i)}return t[t.length]="",n&&(t[t.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach((function(e){var n={name:e.Name};e.Comment&&(n.comment=e.Comment),null!=e.Sheet&&(n.localSheetId=""+e.Sheet),e.Hidden&&(n.hidden="1"),e.Ref&&(t[t.length]=Je("definedName",Ae(e.Ref),n))})),t[t.length]=""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function tl(e,t){return t||(t=$t(127)),t.write_shift(4,e.Hidden),t.write_shift(4,e.iTabID),vn(e.strRelID,t),on(e.name.slice(0,31),t),t.length>t.l?t.slice(0,t.l):t}function nl(e,n){var r=Lt();return zt(r,"BrtBeginBook"),zt(r,"BrtFileVersion",function(e,n){n||(n=$t(127));for(var r=0;4!=r;++r)n.write_shift(4,0);return on("SheetJS",n),on(t.version,n),on(t.version,n),on("7262",n),n.length=n.l,n.length>n.l?n.slice(0,n.l):n}()),zt(r,"BrtWbProp",function(e,t){t||(t=$t(72));var n=0;return e&&e.filterPrivacy&&(n|=8),t.write_shift(4,n),t.write_shift(4,0),pn(e&&e.CodeName||"ThisWorkbook",t),t.slice(0,t.l)}(e.Workbook&&e.Workbook.WBProps||null)),function(e,t){if(t.Workbook&&t.Workbook.Sheets){for(var n=t.Workbook.Sheets,r=0,a=-1,s=-1;ra||(zt(e,"BrtBeginBookViews"),zt(e,"BrtBookView",function(e,t){return t||(t=$t(29)),t.write_shift(-4,0),t.write_shift(-4,460),t.write_shift(4,28800),t.write_shift(4,17600),t.write_shift(4,500),t.write_shift(4,e),t.write_shift(4,e),t.write_shift(1,120),t.length>t.l?t.slice(0,t.l):t}(a)),zt(e,"BrtEndBookViews"))}}(r,e),function(e,t){zt(e,"BrtBeginBundleShs");for(var n=0;n!=t.SheetNames.length;++n)zt(e,"BrtBundleSh",tl({Hidden:t.Workbook&&t.Workbook.Sheets&&t.Workbook.Sheets[n]&&t.Workbook.Sheets[n].Hidden||0,iTabID:n+1,strRelID:"rId"+(n+1),name:t.SheetNames[n]}));zt(e,"BrtEndBundleShs")}(r,e),zt(r,"BrtEndBook"),r.end()}function rl(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a,s,i){if(!e)return e;var o=t||{};r||(r={"!id":{}});var l,u,c,h,f,d,p,m,g,y,b=o.dense?[]:{},v={s:{r:2e6,c:2e6},e:{r:0,c:0}},w=[],x=!1,_=!1,k=[];o.biff=12,o["!row"]=0;var E=0,C=!1,S=[],N={},I=o.supbooks||a.supbooks||[[]];if(I.sharedf=N,I.arrayf=S,I.SheetNames=a.SheetNames||a.Sheets.map((function(e){return e.name})),!o.supbooks&&(o.supbooks=I,a.Names))for(var D=0;D=O[0].s.r&&u.r<=O[0].e.r&&d>=O[0].s.c&&d<=O[0].e.c&&(c.F=Jt(O[0]),C=!0)}!C&&e.length>3&&(c.f=e[3])}if(v.s.r>u.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.ru.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.r=e.s;)T[e.e--]={width:e.w/256,hidden:!!(1&e.flags),level:e.level},R||(R=!0,ps(e.w/256)),ms(T[e.e+1]);break;case 161:b["!autofilter"]={ref:Jt(e)};break;case 476:b["!margins"]=e;break;case 147:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 137:a.Views||(a.Views=[{}]),a.Views[0]||(a.Views[0]={}),e.RTL&&(a.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:case 151:break;case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 49:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 152:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:x=!0;break;case 36:x=!1;break;case 37:w.push(t),x=!0;break;case 38:w.pop(),x=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!x||o.WTF)throw new Error("Unexpected record "+D+" "+t)}}),o),delete o.supbooks,delete o["!row"],!b["!ref"]&&(v.s.r<2e6||l&&(l.e.r>0||l.e.c>0||l.s.r>0||l.s.c>0))&&(b["!ref"]=Jt(l||v)),o.sheetRows&&b["!ref"]){var O=Qt(b["!ref"]);o.sheetRows<=+O.e.r&&(O.e.r=o.sheetRows-1,O.e.r>v.e.r&&(O.e.r=v.e.r),O.e.rv.e.c&&(O.e.c=v.e.c),O.e.c0&&(b["!merges"]=k),T.length>0&&(b["!cols"]=T),F.length>0&&(b["!rows"]=F),b}(e,r,n,a,s,i,o):function(e,t,n,r,a,s,i){if(!e)return e;r||(r={"!id":{}});var o=t.dense?[]:{},l={s:{r:2e6,c:2e6},e:{r:0,c:0}},u="",c="",h=e.match(ho);h?(u=e.slice(0,h.index),c=e.slice(h.index+h[0].length)):u=c=e;var f=u.match(bo);f&&wo(f[0],0,a,n);var d=(u.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(d>0){var p=u.slice(d,d+50).match(po);p&&function(e,t){var n=Qt(t);n.s.r<=n.e.r&&n.s.c<=n.e.c&&n.s.r>=0&&n.s.c>=0&&(e["!ref"]=Jt(n))}(o,p[1])}var m=u.match(vo);m&&m[1]&&function(e,t){t.Views||(t.Views=[{}]),(e.match(ko)||[]).forEach((function(e,n){var r=we(e);t.Views[n]||(t.Views[n]={}),Oe(r.rightToLeft)&&(t.Views[n].RTL=!0)}))}(m[1],a);var g=[];if(t.cellStyles){var y=u.match(mo);y&&function(e,t){for(var n=!1,r=0;r!=t.length;++r){var a=we(t[r],!0);a.hidden&&(a.hidden=Oe(a.hidden));var s=parseInt(a.min,10)-1,i=parseInt(a.max,10)-1;for(delete a.min,delete a.max,a.width=+a.width,!n&&a.width&&(n=!0,ps(a.width)),ms(a);s<=i;)e[s++]=te(a)}}(g,y)}h&&Fo(h[1],o,t,l,s,i);var b=c.match(go);b&&(o["!autofilter"]=function(e){return{ref:(e.match(/ref="([^"]*)"/)||[])[1]}}(b[0]));var v=[],w=c.match(co);if(w)for(d=0;d!=w.length;++d)v[d]=Qt(w[d].slice(w[d].indexOf('"')+1));var x=c.match(fo);x&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Be(t[a]),!0);if(!s.ref)return;var i=((n||{})["!id"]||[])[s.id];i?(s.Target=i.Target,s.location&&(s.Target+="#"+s.location)):(s.Target="#"+s.location,i={Target:s.Target,TargetMode:"Internal"}),s.Rel=i,s.tooltip&&(s.Tooltip=s.tooltip,delete s.tooltip);for(var o=Qt(s.ref),l=o.s.r;l<=o.e.r;++l)for(var u=o.s.c;u<=o.e.c;++u){var c=Zt({c:u,r:l});r?(e[l]||(e[l]=[]),e[l][u]||(e[l][u]={t:"z",v:void 0}),e[l][u].l=s):(e[c]||(e[c]={t:"z",v:void 0}),e[c].l=s)}}}(o,x,r);var _=c.match(yo);if(_&&(o["!margins"]=function(e){var t={};return["left","right","top","bottom","header","footer"].forEach((function(n){e[n]&&(t[n]=parseFloat(e[n]))})),t}(we(_[0]))),!o["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r&&(o["!ref"]=Jt(l)),t.sheetRows>0&&o["!ref"]){var k=Qt(o["!ref"]);t.sheetRows<=+k.e.r&&(k.e.r=t.sheetRows-1,k.e.r>l.e.r&&(k.e.r=l.e.r),k.e.rl.e.c&&(k.e.c=l.e.c),k.e.c0&&(o["!cols"]=g),v.length>0&&(o["!merges"]=v),o}(e,r,n,a,s,i,o)}function al(e,t,n){return(".bin"===t.slice(-4)?nl:el)(e,n)}function sl(e,t,n,r,a){return(".bin"===t.slice(-4)?Uo:Oo)(e,n,r,a)}function il(e,t,n){return(".bin"===t.slice(-4)?Ha:Va)(e,n)}function ol(e,t,n){return(".bin"===t.slice(-4)?Qs:Ys)(e,n)}var ll=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,ul=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function cl(e,t){var n=e.split(/\s+/),r=[];if(t||(r[0]=n[0]),1===n.length)return r;var a,s,i,o=e.match(ll);if(o)for(i=0;i!=o.length;++i)-1===(s=(a=o[i].match(ul))[1].indexOf(":"))?r[a[1]]=a[2].slice(1,a[2].length-1):r["xmlns:"===a[1].slice(0,6)?"xmlns"+a[1].slice(6):a[1].slice(s+1)]=a[2].slice(1,a[2].length-1);return r}function hl(e){var t={};if(1===e.split(/\s+/).length)return t;var n,r,a,s=e.match(ll);if(s)for(a=0;a!=s.length;++a)-1===(r=(n=s[a].match(ul))[1].indexOf(":"))?t[n[1]]=n[2].slice(1,n[2].length-1):t["xmlns:"===n[1].slice(0,6)?"xmlns"+n[1].slice(6):n[1].slice(r+1)]=n[2].slice(1,n[2].length-1);return t}function fl(e,t,n,r){var a=r;switch((n[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":a=Oe(r);break;case"i2":case"int":a=parseInt(r,10);break;case"r4":case"float":a=parseFloat(r);break;case"date":case"dateTime.tz":a=Q(r);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+n[0])}e[Se(t)]=a}function dl(e,t,n){if(n.cellStyles&&t.Interior){var r=t.Interior;r.Pattern&&(r.patternType=ks[r.Pattern]||r.Pattern)}e[t.ID]=t}function pl(e,t,n,r,a,s,i,o,l,u){var c="General",h=r.StyleID,f={};u=u||{};var d=[],p=0;for(void 0===h&&o&&(h=o.StyleID),void 0===h&&i&&(h=i.StyleID);void 0!==s[h]&&(s[h].nf&&(c=s[h].nf),s[h].Interior&&d.push(s[h].Interior),s[h].Parent);)h=s[h].Parent;switch(n.Type){case"Boolean":r.t="b",r.v=Oe(e);break;case"String":r.t="s",r.r=Re(Se(e)),r.v=e.indexOf("<")>-1?Se(t||e).replace(/<.*?>/g,""):r.r;break;case"DateTime":"Z"!=e.slice(-1)&&(e+="Z"),r.v=(Q(e)-new Date(Date.UTC(1899,11,30)))/864e5,r.v!=r.v?r.v=Se(e):r.v<60&&(r.v=r.v-1),c&&"General"!=c||(c="yyyy-mm-dd");case"Number":void 0===r.v&&(r.v=+e),r.t||(r.t="n");break;case"Error":r.t="e",r.v=zn[e],!1!==u.cellText&&(r.w=e);break;default:""==e&&""==t?r.t="z":(r.t="s",r.v=Re(t||e))}if(function(e,t,n){if("z"!==e.t){if(!n||!1!==n.cellText)try{"e"===e.t?e.w=e.w||Ln[e.v]:"General"===t?"n"===e.t?(0|e.v)===e.v?e.w=A._general_int(e.v):e.w=A._general_num(e.v):e.w=A._general(e.v):e.w=(r=t||"General",a=e.v,"General"===(s=F[r]||Se(r))?A._general(a):A.format(s,a))}catch(e){if(n.WTF)throw e}var r,a,s;try{var i=F[t]||t||"General";if(n.cellNF&&(e.z=i),n.cellDates&&"n"==e.t&&A.is_date(i)){var o=A.parse_date_code(e.v);o&&(e.t="d",e.v=new Date(o.y,o.m-1,o.d,o.H,o.M,o.S,o.u))}}catch(e){if(n.WTF)throw e}}}(r,c,u),!1!==u.cellFormula)if(r.Formula){var m=Se(r.Formula);61==m.charCodeAt(0)&&(m=m.slice(1)),r.f=ti(m,a),delete r.Formula,"RC"==r.ArrayRange?r.F=ti("RC:RC",a):r.ArrayRange&&(r.F=ti(r.ArrayRange,a),l.push([Qt(r.F),r.F]))}else for(p=0;p=l[p][0].s.r&&a.r<=l[p][0].e.r&&a.c>=l[p][0].s.c&&a.c<=l[p][0].e.c&&(r.F=l[p][1]);u.cellStyles&&(d.forEach((function(e){!f.patternType&&e.patternType&&(f.patternType=e.patternType)})),r.s=f),void 0!==r.StyleID&&(r.ixfe=r.StyleID)}function ml(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),e.v=e.w=e.ixfe=void 0}function gl(e){if(y&&Buffer.isBuffer(e))return e.toString("utf8");if("string"==typeof e)return e;if("undefined"!=typeof Uint8Array&&e instanceof Uint8Array)return Be(E(C(e)));throw new Error("Bad input format: expected Buffer or string")}var yl=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/gm;function bl(e,t){var n=t||{};D(A);var r=f(gl(e));"binary"!=n.type&&"array"!=n.type&&"base64"!=n.type||(r="undefined"!=typeof cptable?cptable.utils.decode(65001,h(r)):Be(r));var a,s=r.slice(0,1024).toLowerCase(),i=!1;if(-1==s.indexOf("=0&&(i=!0)})),i)return Ul.to_workbook(r,n);var o,l,u=[],c={},d=[],p=n.dense?[]:{},m="",g={},y={},b=cl(''),v=0,w=0,x=0,_={s:{r:2e6,c:2e6},e:{r:0,c:0}},k={},E={},C="",S=0,N=[],I={},T={},R=0,O=[],B=[],M={},$=[],P=!1,L=[],z=[],W={},U=0,V=0,j={Sheets:[],WBProps:{date1904:!1}},H={};yl.lastIndex=0,r=r.replace(//gm,"");for(var G="";a=yl.exec(r);)switch(a[3]=(G=a[3]).toLowerCase()){case"data":if("data"==G){if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break}if(u[u.length-1][1])break;"/"===a[1]?pl(r.slice(v,a.index),C,b,"comment"==u[u.length-1][0]?M:g,{c:w,r:x},k,$[w],y,L,n):(C="",b=cl(a[0]),v=a.index+a[0].length);break;case"cell":if("/"===a[1])if(B.length>0&&(g.c=B),(!n.sheetRows||n.sheetRows>x)&&void 0!==g.v&&(n.dense?(p[x]||(p[x]=[]),p[x][w]=g):p[qt(w)+Gt(x)]=g),g.HRef&&(g.l={Target:g.HRef},g.HRefScreenTip&&(g.l.Tooltip=g.HRefScreenTip),delete g.HRef,delete g.HRefScreenTip),(g.MergeAcross||g.MergeDown)&&(U=w+(0|parseInt(g.MergeAcross,10)),V=x+(0|parseInt(g.MergeDown,10)),N.push({s:{c:w,r:x},e:{c:U,r:V}})),n.sheetStubs)if(g.MergeAcross||g.MergeDown){for(var X=w;X<=U;++X)for(var q=x;q<=V;++q)(X>w||q>x)&&(n.dense?(p[q]||(p[q]=[]),p[q][X]={t:"z"}):p[qt(X)+Gt(q)]={t:"z"});w=U+1}else++w;else g.MergeAcross?w=U+1:++w;else(g=hl(a[0])).Index&&(w=+g.Index-1),w<_.s.c&&(_.s.c=w),w>_.e.c&&(_.e.c=w),"/>"===a[0].slice(-2)&&++w,B=[];break;case"row":"/"===a[1]||"/>"===a[0].slice(-2)?(x<_.s.r&&(_.s.r=x),x>_.e.r&&(_.e.r=x),"/>"===a[0].slice(-2)&&(y=cl(a[0])).Index&&(x=+y.Index-1),w=0,++x):((y=cl(a[0])).Index&&(x=+y.Index-1),W={},("0"==y.AutoFitHeight||y.Height)&&(W.hpx=parseInt(y.Height,10),W.hpt=gs(W.hpx),z[x]=W),"1"==y.Hidden&&(W.hidden=!0,z[x]=W));break;case"worksheet":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));d.push(m),_.s.r<=_.e.r&&_.s.c<=_.e.c&&(p["!ref"]=Jt(_),n.sheetRows&&n.sheetRows<=_.e.r&&(p["!fullref"]=p["!ref"],_.e.r=n.sheetRows-1,p["!ref"]=Jt(_))),N.length&&(p["!merges"]=N),$.length>0&&(p["!cols"]=$),z.length>0&&(p["!rows"]=z),c[m]=p}else _={s:{r:2e6,c:2e6},e:{r:0,c:0}},x=w=0,u.push([a[3],!1]),o=cl(a[0]),m=Se(o.Name),p=n.dense?[]:{},N=[],L=[],z=[],H={name:m,Hidden:0},j.Sheets.push(H);break;case"table":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else{if("/>"==a[0].slice(-2))break;cl(a[0]),u.push([a[3],!1]),$=[],P=!1}break;case"style":"/"===a[1]?dl(k,E,n):E=cl(a[0]);break;case"numberformat":E.nf=Se(cl(a[0]).Format||"General"),F[E.nf]&&(E.nf=F[E.nf]);for(var K=0;392!=K&&A._table[K]!=E.nf;++K);if(392==K)for(K=57;392!=K;++K)if(null==A._table[K]){A.load(E.nf,K);break}break;case"column":if("table"!==u[u.length-1][0])break;if((l=cl(a[0])).Hidden&&(l.hidden=!0,delete l.Hidden),l.Width&&(l.wpx=parseInt(l.Width,10)),!P&&l.wpx>10){P=!0,us=6;for(var Z=0;Z<$.length;++Z)$[Z]&&ms($[Z])}P&&ms(l),$[l.Index-1||$.length]=l;for(var Y=0;Y<+l.Span;++Y)$[$.length]=te(l);break;case"namedrange":if("/"===a[1])break;j.Names||(j.Names=[]);var J=we(a[0]),Q={Name:J.Name,Ref:ti(J.RefersTo.slice(1),{r:0,c:0})};j.Sheets.length>0&&(Q.Sheet=j.Sheets.length-1),j.Names.push(Q);break;case"namedcell":case"b":case"i":case"u":case"s":case"em":case"h2":case"h3":case"sub":case"sup":case"span":case"alignment":case"borders":case"border":break;case"font":if("/>"===a[0].slice(-2))break;"/"===a[1]?C+=r.slice(S,a.index):S=a.index+a[0].length;break;case"interior":if(!n.cellStyles)break;E.Interior=cl(a[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if("/>"===a[0].slice(-2))break;"/"===a[1]?pr(I,G,r.slice(R,a.index)):R=a.index+a[0].length;break;case"paragraphs":break;case"styles":case"workbook":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else u.push([a[3],!1]);break;case"comment":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));ml(M),B.push(M)}else u.push([a[3],!1]),M={a:(o=cl(a[0])).Author};break;case"autofilter":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else if("/"!==a[0].charAt(a[0].length-2)){var ee=cl(a[0]);p["!autofilter"]={ref:ti(ee.Range).replace(/\$/g,"")},u.push([a[3],!0])}break;case"name":break;case"datavalidation":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;default:if(0==u.length&&"document"==a[3])return Kl(r,n);if(0==u.length&&"uof"==a[3])return Kl(r,n);var ne=!0;switch(u[u.length-1][0]){case"officedocumentsettings":switch(a[3]){case"allowpng":case"removepersonalinformation":case"downloadcomponents":case"locationofcomponents":case"colors":case"color":case"index":case"rgb":case"targetscreensize":case"readonlyrecommended":break;default:ne=!1}break;case"componentoptions":switch(a[3]){case"toolbar":case"hideofficelogo":case"spreadsheetautofit":case"label":case"caption":case"maxheight":case"maxwidth":case"nextsheetnumber":break;default:ne=!1}break;case"excelworkbook":switch(a[3]){case"date1904":j.WBProps.date1904=!0;break;case"windowheight":case"windowwidth":case"windowtopx":case"windowtopy":case"tabratio":case"protectstructure":case"protectwindow":case"protectwindows":case"activesheet":case"displayinknotes":case"firstvisiblesheet":case"supbook":case"sheetname":case"sheetindex":case"sheetindexfirst":case"sheetindexlast":case"dll":case"acceptlabelsinformulas":case"donotsavelinkvalues":case"iteration":case"maxiterations":case"maxchange":case"path":case"xct":case"count":case"selectedsheets":case"calculation":case"uncalced":case"startupprompt":case"crn":case"externname":case"formula":case"colfirst":case"collast":case"wantadvise":case"boolean":case"error":case"text":case"ole":case"noautorecover":case"publishobjects":case"donotcalculatebeforesave":case"number":case"refmoder1c1":case"embedsavesmarttags":break;default:ne=!1}break;case"workbookoptions":switch(a[3]){case"owcversion":case"height":case"width":break;default:ne=!1}break;case"worksheetoptions":switch(a[3]){case"visible":if("/>"===a[0].slice(-2));else if("/"===a[1])switch(r.slice(R,a.index)){case"SheetHidden":H.Hidden=1;break;case"SheetVeryHidden":H.Hidden=2}else R=a.index+a[0].length;break;case"header":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].header=we(a[0]).Margin;break;case"footer":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].footer=we(a[0]).Margin;break;case"pagemargins":var re=we(a[0]);p["!margins"]||io(p["!margins"]={},"xlml"),re.Top&&(p["!margins"].top=re.Top),re.Left&&(p["!margins"].left=re.Left),re.Right&&(p["!margins"].right=re.Right),re.Bottom&&(p["!margins"].bottom=re.Bottom);break;case"displayrighttoleft":j.Views||(j.Views=[]),j.Views[0]||(j.Views[0]={}),j.Views[0].RTL=!0;break;case"freezepanes":case"frozennosplit":break;case"splithorizontal":case"splitvertical":case"donotdisplaygridlines":case"activerow":case"activecol":case"toprowbottompane":case"leftcolumnrightpane":case"unsynced":case"print":case"panes":case"scale":case"pane":case"number":case"layout":case"pagesetup":case"selected":case"protectobjects":case"enableselection":case"protectscenarios":case"validprinterinfo":case"horizontalresolution":case"verticalresolution":case"numberofcopies":case"activepane":case"toprowvisible":case"leftcolumnvisible":case"fittopage":case"rangeselection":case"papersizeindex":case"pagelayoutzoom":case"pagebreakzoom":case"filteron":case"fitwidth":case"fitheight":case"commentslayout":case"zoom":case"lefttoright":case"gridlines":case"allowsort":case"allowfilter":case"allowinsertrows":case"allowdeleterows":case"allowinsertcols":case"allowdeletecols":case"allowinserthyperlinks":case"allowformatcells":case"allowsizecols":case"allowsizerows":case"nosummaryrowsbelowdetail":case"tabcolorindex":case"donotdisplayheadings":case"showpagelayoutzoom":case"nosummarycolumnsrightdetail":case"blackandwhite":case"donotdisplayzeros":case"displaypagebreak":case"rowcolheadings":case"donotdisplayoutline":case"noorientation":case"allowusepivottables":case"zeroheight":case"viewablerange":case"selection":case"protectcontents":break;default:ne=!1}break;case"pivottable":case"pivotcache":switch(a[3]){case"immediateitemsondrop":case"showpagemultipleitemlabel":case"compactrowindent":case"location":case"pivotfield":case"orientation":case"layoutform":case"layoutsubtotallocation":case"layoutcompactrow":case"position":case"pivotitem":case"datatype":case"datafield":case"sourcename":case"parentfield":case"ptlineitems":case"ptlineitem":case"countofsameitems":case"item":case"itemtype":case"ptsource":case"cacheindex":case"consolidationreference":case"filename":case"reference":case"nocolumngrand":case"norowgrand":case"blanklineafteritems":case"hidden":case"subtotal":case"basefield":case"mapchilditems":case"function":case"refreshonfileopen":case"printsettitles":case"mergelabels":case"defaultversion":case"refreshname":case"refreshdate":case"refreshdatecopy":case"versionlastrefresh":case"versionlastupdate":case"versionupdateablemin":case"versionrefreshablemin":case"calculation":break;default:ne=!1}break;case"pagebreaks":switch(a[3]){case"colbreaks":case"colbreak":case"rowbreaks":case"rowbreak":case"colstart":case"colend":case"rowend":break;default:ne=!1}break;case"autofilter":switch(a[3]){case"autofiltercolumn":case"autofiltercondition":case"autofilterand":case"autofilteror":break;default:ne=!1}break;case"querytable":switch(a[3]){case"id":case"autoformatfont":case"autoformatpattern":case"querysource":case"querytype":case"enableredirections":case"refreshedinxl9":case"urlstring":case"htmltables":case"connection":case"commandtext":case"refreshinfo":case"notitles":case"nextid":case"columninfo":case"overwritecells":case"donotpromptforfile":case"textwizardsettings":case"source":case"number":case"decimal":case"thousandseparator":case"trailingminusnumbers":case"formatsettings":case"fieldtype":case"delimiters":case"tab":case"comma":case"autoformatname":case"versionlastedit":case"versionlastrefresh":break;default:ne=!1}break;case"datavalidation":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":case"cellrangelist":break;default:ne=!1}break;case"sorting":case"conditionalformatting":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"cellrangelist":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":break;default:ne=!1}break;case"mapinfo":case"schema":case"data":switch(a[3]){case"map":case"entry":case"range":case"xpath":case"field":case"xsdtype":case"filteron":case"aggregate":case"elementtype":case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":case"row":break;default:ne=!1}break;case"smarttags":break;default:ne=!1}if(ne)break;if(a[3].match(/!\[CDATA/))break;if(!u[u.length-1][1])throw"Unrecognized tag: "+a[3]+"|"+u.join("|");if("customdocumentproperties"===u[u.length-1][0]){if("/>"===a[0].slice(-2))break;"/"===a[1]?fl(T,G,O,r.slice(R,a.index)):(O=a,R=a.index+a[0].length);break}if(n.WTF)throw"Unrecognized tag: "+a[3]+"|"+u.join("|")}var ae={};return n.bookSheets||n.bookProps||(ae.Sheets=c),ae.SheetNames=d,ae.Workbook=j,ae.SSF=A.get_table(),ae.Props=I,ae.Custprops=T,ae}function vl(e,t){switch(cu(t=t||{}),t.type||"base64"){case"base64":return bl(g.decode(e),t);case"binary":case"buffer":case"file":return bl(e,t);case"array":return bl(E(e),t)}}function wl(e){return Je("NamedRange",null,{"ss:Name":e.Name,"ss:RefersTo":"="+ri(e.Ref,{r:0,c:0})})}function xl(e,t,n,r,a,s,i){if(!e||null==e.v&&null==e.f)return"";var o={};if(e.f&&(o["ss:Formula"]="="+Ae(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=Kt(e.F.slice(t.length+1));o["ss:ArrayRange"]="RC:R"+(l.r==i.r?"":"["+(l.r-i.r)+"]")+"C"+(l.c==i.c?"":"["+(l.c-i.c)+"]")}if(e.l&&e.l.Target&&(o["ss:HRef"]=Ae(e.l.Target),e.l.Tooltip&&(o["x:HRefScreenTip"]=Ae(e.l.Tooltip))),n["!merges"])for(var u=n["!merges"],c=0;c!=u.length;++c)u[c].s.c==i.c&&u[c].s.r==i.r&&(u[c].e.c>u[c].s.c&&(o["ss:MergeAcross"]=u[c].e.c-u[c].s.c),u[c].e.r>u[c].s.r&&(o["ss:MergeDown"]=u[c].e.r-u[c].s.r));var h="",f="";switch(e.t){case"z":if(!r.sheetStubs)return"";break;case"n":h="Number",f=String(e.v);break;case"b":h="Boolean",f=e.v?"1":"0";break;case"e":h="Error",f=Ln[e.v];break;case"d":h="DateTime",f=new Date(e.v).toISOString(),null==e.z&&(e.z=e.z||A._table[14]);break;case"s":h="String",f=((e.v||"")+"").replace(Ne,(function(e){return Ce[e]})).replace(Te,(function(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}))}var d=oo(r.cellXfs,e,r);o["ss:StyleID"]="s"+(21+d),o["ss:Index"]=i.c+1;var p=null!=e.v?f:"",m="z"==e.t?"":''+p+"";return(e.c||[]).length>0&&(m+=e.c.map((function(e){var t=Je("ss:Data",(e.t||"").replace(/(\r\n|[\r\n])/g," "),{xmlns:"http://www.w3.org/TR/REC-html40"});return Je("Comment",t,{"ss:Author":e.a})})).join("")),Je("Cell",m,o)}function _l(e,t){var n='"}function kl(e,t,n){var r=[],a=n.SheetNames[e],s=n.Sheets[a],i=s?function(e,t,n,r){if(!e)return"";if(!((r||{}).Workbook||{}).Names)return"";for(var a=r.Workbook.Names,s=[],i=0;i0&&r.push(""+i+""),(i=s?function(e,t,n,r){if(!e["!ref"])return"";var a=Qt(e["!ref"]),s=e["!merges"]||[],i=0,o=[];e["!cols"]&&e["!cols"].forEach((function(e,t){ms(e);var n=!!e.width,r=so(t,e),a={"ss:Index":t+1};n&&(a["ss:Width"]=cs(r.width)),e.hidden&&(a["ss:Hidden"]="1"),o.push(Je("Column",null,a))}));for(var l=Array.isArray(e),u=a.s.r;u<=a.e.r;++u){for(var c=[_l(u,(e["!rows"]||[])[u])],h=a.s.c;h<=a.e.c;++h){var f=!1;for(i=0;i!=s.length;++i)if(!(s[i].s.c>h||s[i].s.r>u||s[i].e.c"),c.length>2&&o.push(c.join(""))}return o.join("")}(s,t):"").length>0&&r.push(""+i+"
"),r.push(function(e,t,n,r){if(!e)return"";var a=[];if(e["!margins"]&&(a.push(""),e["!margins"].header&&a.push(Je("Header",null,{"x:Margin":e["!margins"].header})),e["!margins"].footer&&a.push(Je("Footer",null,{"x:Margin":e["!margins"].footer})),a.push(Je("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"})),a.push("")),r&&r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[n])if(r.Workbook.Sheets[n].Hidden)a.push(Je("Visible",1==r.Workbook.Sheets[n].Hidden?"SheetHidden":"SheetVeryHidden",{}));else{for(var s=0;s")}return((((r||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(""),e["!protect"]&&(a.push(Ze("ProtectContents","True")),e["!protect"].objects&&a.push(Ze("ProtectObjects","True")),e["!protect"].scenarios&&a.push(Ze("ProtectScenarios","True")),null==e["!protect"].selectLockedCells||e["!protect"].selectLockedCells?null==e["!protect"].selectUnlockedCells||e["!protect"].selectUnlockedCells||a.push(Ze("EnableSelection","UnlockedCells")):a.push(Ze("EnableSelection","NoSelection")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach((function(t){e["!protect"][t[0]]&&a.push("<"+t[1]+"/>")}))),0==a.length?"":Je("WorksheetOptions",a.join(""),{xmlns:at})}(s,0,e,n)),r.join("")}function El(e,t){t||(t={}),e.SSF||(e.SSF=A.get_table()),e.SSF&&(D(A),A.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF,t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}));var n=[];n.push(function(e,t){var n=[];return e.Props&&n.push(function(e,t){var n=[];return z(fr).map((function(e){for(var t=0;t'+a.join("")+""}(e.Props,e.Custprops)),n.join("")}(e,t)),n.push(""),n.push(""),n.push("");for(var r=0;r'];return t.cellXfs.forEach((function(e,t){var r=[];r.push(Je("NumberFormat",null,{"ss:Format":Ae(A._table[e.numFmtId])}));var a={"ss:ID":"s"+(21+t)};n.push(Je("Style",r.join(""),a))})),Je("Styles",n.join(""))}(0,t),n[3]=function(e){if(!((e||{}).Workbook||{}).Names)return"";for(var t=e.Workbook.Names,n=[],r=0;r40||(n.l-=4,t.Reserved1=n.read_shift(0,"lpstr-ansi"),n.length-n.l<=4||1907505652!==(r=n.read_shift(4))||(t.UnicodeClipboardFormat=function(e){return Nn(e,2)}(n),0==(r=n.read_shift(4))||r>40||(n.l-=4,t.Reserved2=n.read_shift(0,"lpwstr"))))}(n),t.bookProps&&!t.bookSheets)a={};else{var i=y?"buffer":"array";if(r&&r.content)a=function(e,t){var n,r,a,s,i,o,l,c,h={opts:{}},f={},d=t.dense?[]:{},p={},m={},g=null,y=[],b="",v={},w="",x={},_=[],k=!0,E=[],C=[],S={Sheets:[],WBProps:{date1904:!1},Views:[{}]},N={},I=function(e){return e<8?Pn[e]:e<64&&C[e-8]||Pn[e]},D=function(e,t,r){if(!(W>1)&&(r.sheetRows&&e.r>=r.sheetRows&&(k=!1),k)){if(r.cellStyles&&t.XF&&t.XF.data&&function(e,t,n){var r,a=t.XF.data;a&&a.patternType&&n&&n.cellStyles&&(t.s={},t.s.patternType=a.patternType,(r=os(I(a.icvFore)))&&(t.s.fgColor={rgb:r}),(r=os(I(a.icvBack)))&&(t.s.bgColor={rgb:r}))}(0,t,r),delete t.ixfe,delete t.XF,n=e,w=Zt(e),m&&m.s&&m.e||(m={s:{r:0,c:0},e:{r:0,c:0}}),e.rm.e.r&&(m.e.r=e.r+1),e.c+1>m.e.c&&(m.e.c=e.c+1),r.cellFormula&&t.f)for(var a=0;a<_.length;++a)if(!(_[a][0].s.c>e.c||_[a][0].s.r>e.r||_[a][0].e.c>8)!==X)throw new Error("rt mismatch: "+Z+"!="+X);12==K.r&&(e.l+=10,q-=10)}var Y={};Y="EOF"===K.n?K.f(e,q,T):Cl(K,e,q,T);var J=K.n;if(0==W&&"BOF"!=J)continue;switch(J){case"Date1904":h.opts.Date1904=S.WBProps.date1904=Y;break;case"WriteProtect":h.opts.WriteProtect=!0;break;case"FilePass":if(T.enc||(e.l=0),T.enc=Y,!t.password)throw new Error("File is password-protected");if(null==Y.valid)throw new Error("Encryption scheme unsupported");if(!Y.valid)throw new Error("Password is incorrect");break;case"WriteAccess":T.lastuser=Y;break;case"FileSharing":break;case"CodePage":var Q=Number(Y);switch(Q){case 21010:Q=1200;break;case 32768:Q=1e4;break;case 32769:Q=1252}u(T.codepage=Q),H=!0;break;case"RRTabId":T.rrtabid=Y;break;case"WinProtect":T.winlocked=Y;break;case"Template":case"BookBool":case"UsesELFs":case"MTRSettings":break;case"RefreshAll":case"CalcCount":case"CalcDelta":case"CalcIter":case"CalcMode":case"CalcPrecision":case"CalcSaveRecalc":h.opts[J]=Y;break;case"CalcRefMode":T.CalcRefMode=Y;break;case"Uncalced":break;case"ForceFullCalculation":h.opts.FullCalc=Y;break;case"WsBool":Y.fDialog&&(d["!type"]="dialog");break;case"XF":E.push(Y);break;case"ExtSST":case"BookExt":case"RichTextStream":case"BkHim":break;case"SupBook":$.push([Y]),$[$.length-1].XTI=[];break;case"ExternName":$[$.length-1].push(Y);break;case"Index":break;case"Lbl":P={Name:Y.Name,Ref:zi(Y.rgce,0,null,$,T)},Y.itab>0&&(P.Sheet=Y.itab-1),$.names.push(P),$[0]||($[0]=[],$[0].XTI=[]),$[$.length-1].push(Y),"_xlnm._FilterDatabase"==Y.Name&&Y.itab>0&&Y.rgce&&Y.rgce[0]&&Y.rgce[0][0]&&"PtgArea3d"==Y.rgce[0][0][0]&&(j[Y.itab-1]={ref:Jt(Y.rgce[0][0][1][2])});break;case"ExternCount":T.ExternCount=Y;break;case"ExternSheet":0==$.length&&($[0]=[],$[0].XTI=[]),$[$.length-1].XTI=$[$.length-1].XTI.concat(Y),$.XTI=$.XTI.concat(Y);break;case"NameCmt":if(T.biff<8)break;null!=P&&(P.Comment=Y[1]);break;case"Protect":d["!protect"]=Y;break;case"Password":0!==Y&&T.WTF&&console.error("Password verifier: "+Y);break;case"Prot4Rev":case"Prot4RevPass":break;case"BoundSheet8":p[Y.pos]=Y,T.snames.push(Y.name);break;case"EOF":if(--W)break;if(m.e){if(m.e.r>0&&m.e.c>0){if(m.e.r--,m.e.c--,d["!ref"]=Jt(m),t.sheetRows&&t.sheetRows<=m.e.r){var ee=m.e.r;m.e.r=t.sheetRows-1,d["!fullref"]=d["!ref"],d["!ref"]=Jt(m),m.e.r=ee}m.e.r++,m.e.c++}F.length>0&&(d["!merges"]=F),R.length>0&&(d["!objects"]=R),O.length>0&&(d["!cols"]=O),B.length>0&&(d["!rows"]=B),S.Sheets.push(N)}""===b?v=d:f[b]=d,d=t.dense?[]:{};break;case"BOF":if(8===T.biff&&(T.biff={9:2,521:3,1033:4}[X]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[Y.BIFFVer]||8),8==T.biff&&0==Y.BIFFVer&&16==Y.dt&&(T.biff=2),W++)break;if(k=!0,d=t.dense?[]:{},T.biff<8&&!H&&(H=!0,u(T.codepage=t.codepage||1252)),T.biff<5){""===b&&(b="Sheet1"),m={s:{r:0,c:0},e:{r:0,c:0}};var te={pos:e.l-q,name:b};p[te.pos]=te,T.snames.push(b)}else b=(p[G]||{name:""}).name;32==Y.dt&&(d["!type"]="chart"),64==Y.dt&&(d["!type"]="macro"),F=[],R=[],T.arrayf=_=[],O=[],B=[],M=!1,N={Hidden:(p[G]||{hs:0}).hs,name:b};break;case"Number":case"BIFF2NUM":case"BIFF2INT":"chart"==d["!type"]&&(t.dense?(d[Y.r]||[])[Y.c]:d[Zt({c:Y.c,r:Y.r})])&&++Y.c,o={ixfe:Y.ixfe,XF:E[Y.ixfe]||{},v:Y.val,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t);break;case"BoolErr":o={ixfe:Y.ixfe,XF:E[Y.ixfe],v:Y.val,t:Y.t},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t);break;case"RK":o={ixfe:Y.ixfe,XF:E[Y.ixfe],v:Y.rknum,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t);break;case"MulRk":for(var ne=Y.c;ne<=Y.C;++ne){var re=Y.rkrec[ne-Y.c][0];o={ixfe:re,XF:E[re],v:Y.rkrec[ne-Y.c][1],t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:ne,r:Y.r},o,t)}break;case"Formula":if("String"==Y.val){g=Y;break}if((o=Nl(Y.val,Y.cell.ixfe,Y.tt)).XF=E[o.ixfe],t.cellFormula){var ae=Y.formula;if(ae&&ae[0]&&ae[0][0]&&"PtgExp"==ae[0][0][0]){var se=ae[0][0][1][0],ie=ae[0][0][1][1],oe=Zt({r:se,c:ie});x[oe]?o.f=""+zi(Y.formula,0,Y.cell,$,T):o.F=((t.dense?(d[se]||[])[ie]:d[oe])||{}).F}else o.f=""+zi(Y.formula,0,Y.cell,$,T)}U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D(Y.cell,o,t),g=Y;break;case"String":if(!g)throw new Error("String record expects Formula");g.val=Y,(o=Nl(Y,g.cell.ixfe,"s")).XF=E[o.ixfe],t.cellFormula&&(o.f=""+zi(g.formula,0,g.cell,$,T)),U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D(g.cell,o,t),g=null;break;case"Array":_.push(Y);var le=Zt(Y[0].s);if(r=t.dense?(d[Y[0].s.r]||[])[Y[0].s.c]:d[le],t.cellFormula&&r){if(!g)break;if(!le||!r)break;r.f=""+zi(Y[1],0,Y[0],$,T),r.F=Jt(Y[0])}break;case"ShrFmla":if(!k)break;if(!t.cellFormula)break;if(w){if(!g)break;x[Zt(g.cell)]=Y[0],((r=t.dense?(d[g.cell.r]||[])[g.cell.c]:d[Zt(g.cell)])||{}).f=""+zi(Y[0],0,n,$,T)}break;case"LabelSst":o=Nl(y[Y.isst].t,Y.ixfe,"s"),y[Y.isst].h&&(o.h=y[Y.isst].h),o.XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t);break;case"Blank":t.sheetStubs&&(o={ixfe:Y.ixfe,XF:E[Y.ixfe],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t));break;case"MulBlank":if(t.sheetStubs)for(var ue=Y.c;ue<=Y.C;++ue){var ce=Y.ixfe[ue-Y.c];o={ixfe:ce,XF:E[ce],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:ue,r:Y.r},o,t)}break;case"RString":case"Label":case"BIFF2STR":(o=Nl(Y.val,Y.ixfe,"s")).XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:Y.c,r:Y.r},o,t);break;case"Dimensions":1===W&&(m=Y);break;case"SST":y=Y;break;case"Format":if(4==T.biff){V[U++]=Y[1];for(var he=0;he=163&&A.load(Y[1],U+163)}else A.load(Y[1],Y[0]);break;case"BIFF2FORMAT":V[U++]=Y;for(var fe=0;fe=163&&A.load(Y,U+163);break;case"MergeCells":F=F.concat(Y);break;case"Obj":R[Y.cmo[0]]=T.lastobj=Y;break;case"TxO":T.lastobj.TxO=Y;break;case"ImData":T.lastobj.ImData=Y;break;case"HLink":for(i=Y[0].s.r;i<=Y[0].e.r;++i)for(s=Y[0].s.c;s<=Y[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Zt({c:s,r:i})])&&(r.l=Y[1]);break;case"HLinkTooltip":for(i=Y[0].s.r;i<=Y[0].e.r;++i)for(s=Y[0].s.c;s<=Y[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Zt({c:s,r:i})])&&r.l&&(r.l.Tooltip=Y[1]);break;case"Note":if(T.biff<=5&&T.biff>=2)break;r=t.dense?(d[Y[0].r]||[])[Y[0].c]:d[Zt(Y[0])];var de=R[Y[2]];r||(t.dense?(d[Y[0].r]||(d[Y[0].r]=[]),r=d[Y[0].r][Y[0].c]={t:"z"}):r=d[Zt(Y[0])]={t:"z"},m.e.r=Math.max(m.e.r,Y[0].r),m.s.r=Math.min(m.s.r,Y[0].r),m.e.c=Math.max(m.e.c,Y[0].c),m.s.c=Math.min(m.s.c,Y[0].c)),r.c||(r.c=[]),a={a:Y[1],t:de.TxO.t},r.c.push(a);break;default:switch(K.n){case"ClrtClient":break;case"XFExt":E[Y.ixfe],Y.ext.forEach((function(e){e[0]}));break;case"DefColWidth":break;case"DefaultRowHeight":Y[1];break;case"ColInfo":if(!T.cellStyles)break;for(;Y.e>=Y.s;)O[Y.e--]={width:Y.w/256},M||(M=!0,ps(Y.w/256)),ms(O[Y.e+1]);break;case"Row":var pe={};null!=Y.level&&(B[Y.r]=pe,pe.level=Y.level),Y.hidden&&(B[Y.r]=pe,pe.hidden=!0),Y.hpt&&(B[Y.r]=pe,pe.hpt=Y.hpt,pe.hpx=ys(Y.hpt));break;case"LeftMargin":case"RightMargin":case"TopMargin":case"BottomMargin":d["!margins"]||io(d["!margins"]={}),d["!margins"][J.slice(0,-6).toLowerCase()]=Y;break;case"Setup":d["!margins"]||io(d["!margins"]={}),d["!margins"].header=Y.header,d["!margins"].footer=Y.footer;break;case"Window2":Y.RTL&&(S.Views[0].RTL=!0);break;case"Header":case"Footer":case"HCenter":case"VCenter":case"Pls":case"GCW":case"LHRecord":case"DBCell":case"EntExU2":case"SxView":case"Sxvd":case"SXVI":case"SXVDEx":case"SxIvd":case"SXString":case"Sync":case"Addin":case"SXDI":case"SXLI":case"SXEx":case"QsiSXTag":case"Selection":case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Country":l=Y;break;case"RecalcId":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":case"Font":case"XFCRC":case"Style":case"StyleExt":break;case"Palette":C=Y;break;case"Theme":c=Y;break;case"ScenarioProtect":case"ObjProtect":case"CondFmt12":case"Table":case"TableStyles":case"TableStyle":case"TableStyleElement":case"SXStreamID":case"SXVS":case"DConRef":case"SXAddl":case"DConBin":case"DConName":case"SXPI":case"SxFormat":case"SxSelect":case"SxRule":case"SxFilt":case"SxItm":case"SxDXF":case"ScenMan":case"DCon":case"CellWatch":case"PrintRowCol":case"PrintGrid":case"PrintSize":case"XCT":case"CRN":case"Scl":case"SheetExt":case"SheetExtOptional":case"ObNoMacros":case"ObProj":break;case"CodeName":b?N.CodeName=Y||N.name:S.WBProps.CodeName=Y||"ThisWorkbook";break;case"GUIDTypeLib":case"WOpt":case"PhoneticInfo":case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":case"DConn":case"DbOrParamQry":case"DBQueryExt":case"OleDbConn":case"ExtString":case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":case"Excel9File":case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":break;case"Window1":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(K.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":case"Surf":case"AxisParent":case"Pos":case"ValueRange":case"SXViewEx9":case"SXViewLink":case"PivotChartBits":case"SBaseRef":case"TextPropsStream":case"LnExt":case"MkrExt":case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":case"TxtQry":case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":case"AutoFilter12":case"DropDownObjIds":case"Sort":case"SortData":case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"WebPub":case"AutoWebPub":break;case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":break;case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;default:switch(K.n){case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;case"BIFF2FONTCLR":case"BIFF2FMTCNT":case"BIFF2FONTXTRA":break;case"BIFF2XF":case"BIFF3XF":case"BIFF4XF":break;case"BIFF4FMTCNT":case"BIFF2ROW":case"BIFF2WINDOW2":break;case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;case"LHNGraph":case"FnGroupName":case"AddMenu":case"LPr":break;case"ListObj":case"ListField":case"RRSort":case"BigName":break;case"ToolbarHdr":case"ToolbarEnd":case"DDEObjName":case"FRTArchId$":break;default:if(t.WTF)throw"Unrecognized Record "+K.n}}}}}else e.l+=q}return h.SheetNames=z(p).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return p[e].name})),t.bookSheets||(h.Sheets=f),h.Sheets&&j.forEach((function(e,t){h.Sheets[h.SheetNames[t]]["!autofilter"]=e})),h.Preamble=v,h.Strings=y,h.SSF=A.get_table(),T.enc&&(h.Encryption=T.enc),c&&(h.Themes=c),h.Metadata={},void 0!==l&&(h.Metadata.Country=l),$.names.length>0&&(S.Names=$.names),h.Workbook=S,h}(r.content,t);else if((s=M.find(e,"PerfectOffice_MAIN"))&&s.content)a=Fa.to_workbook(s.content,(t.type=i,t));else{if(!(s=M.find(e,"NativeContent_MAIN"))||!s.content)throw new Error("Cannot find Workbook stream");a=Fa.to_workbook(s.content,(t.type=i,t))}t.bookVBA&&e.FullPaths&&M.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=M.utils.cfb_new({root:"R"});return e.FullPaths.forEach((function(n,r){if("/"!==n.slice(-1)&&n.match(/_VBA_PROJECT_CUR/)){var a=n.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");M.utils.cfb_add(t,a,e.FileIndex[r].content)}})),M.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=M.find(e,"!DocumentSummaryInformation");if(r&&r.size>0)try{var a=Ar(r,Dn,Al);for(var s in a)t[s]=a[s]}catch(e){if(n.WTF)throw e}var i=M.find(e,"!SummaryInformation");if(i&&i.size>0)try{var o=Ar(i,Tn,Il);for(var l in o)null==t[l]&&(t[l]=o[l])}catch(e){if(n.WTF)throw e}t.HeadingPairs&&t.TitlesOfParts&&(lr(t.HeadingPairs,t.TitlesOfParts,t,n),delete t.HeadingPairs,delete t.TitlesOfParts)}(e,o,t),a.Props=a.Custprops=o,t.bookFiles&&(a.cfb=e),a}var Tl={0:{n:"BrtRowHdr",f:function(e,t){var n={},r=e.l+t;n.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var s=e.read_shift(1);return e.l=r,7&s&&(n.level=7&s),16&s&&(n.hidden=!0),32&s&&(n.hpt=a/20),n}},1:{n:"BrtCellBlank",f:function(e){return[hn(e)]}},2:{n:"BrtCellRk",f:function(e){return[hn(e),wn(e),"n"]}},3:{n:"BrtCellError",f:function(e){return[hn(e),e.read_shift(1),"e"]}},4:{n:"BrtCellBool",f:function(e){return[hn(e),e.read_shift(1),"b"]}},5:{n:"BrtCellReal",f:function(e){return[hn(e),En(e),"n"]}},6:{n:"BrtCellSt",f:function(e){return[hn(e),sn(e),"str"]}},7:{n:"BrtCellIsst",f:function(e){return[hn(e),e.read_shift(4),"s"]}},8:{n:"BrtFmlaString",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,sn(e),"str"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},9:{n:"BrtFmlaNum",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,En(e),"n"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},10:{n:"BrtFmlaBool",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"b"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},11:{n:"BrtFmlaError",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"e"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},16:{n:"BrtFRTArchID$",f:function(e,t){var n={};return e.read_shift(4),n.ArchID=e.read_shift(4),e.l+=t-8,n}},19:{n:"BrtSSTItem",f:un},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:function(e,t,n){var r=e.l+t;e.l+=4,e.l+=1;var a=e.read_shift(4),s=yn(e),i=Xi(e,0,n),o=mn(e);e.l=r;var l={Name:s,Ptg:i};return a<268435455&&(l.Sheet=a),o&&(l.Comment=o),l}},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:function(e,t,n){var r={};r.sz=e.read_shift(2)/20;var a=function(e){var t=e.read_shift(1);return e.l++,{fBold:1&t,fItalic:2&t,fUnderline:4&t,fStrikeout:8&t,fOutline:16&t,fShadow:32&t,fCondense:64&t,fExtend:128&t}}(e);switch(a.fItalic&&(r.italic=1),a.fCondense&&(r.condense=1),a.fExtend&&(r.extend=1),a.fShadow&&(r.shadow=1),a.fOutline&&(r.outline=1),a.fStrikeout&&(r.strike=1),700===e.read_shift(2)&&(r.bold=1),e.read_shift(2)){case 1:r.vertAlign="superscript";break;case 2:r.vertAlign="subscript"}var s=e.read_shift(1);0!=s&&(r.underline=s);var i=e.read_shift(1);i>0&&(r.family=i);var o=e.read_shift(1);switch(o>0&&(r.charset=o),e.l++,r.color=function(e){var t={},n=e.read_shift(1)>>>1,r=e.read_shift(1),a=e.read_shift(2,"i"),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(1);switch(e.l++,n){case 0:t.auto=1;break;case 1:t.index=r;var l=Pn[r];l&&(t.rgb=os(l));break;case 2:t.rgb=os([s,i,o]);break;case 3:t.theme=r}return 0!=a&&(t.tint=a>0?a/32767:a/32768),t}(e),e.read_shift(1)){case 1:r.scheme="major";break;case 2:r.scheme="minor"}return r.name=sn(e),r}},44:{n:"BrtFmt",f:function(e,t){return[e.read_shift(2),sn(e)]}},45:{n:"BrtFill",f:Ts},46:{n:"BrtBorder",f:Bs},47:{n:"BrtXF",f:function(e,t){var n=e.l+t,r=e.read_shift(2),a=e.read_shift(2);return e.l=n,{ixfe:r,numFmtId:a}}},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:ka},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:function(e){var t={};t.i=e.read_shift(4);var n={};n.r=e.read_shift(4),n.c=e.read_shift(4),t.r=Zt(n);var r=e.read_shift(1);return 2&r&&(t.l="1"),8&r&&(t.a="1"),t}},64:{n:"BrtDVal",f:function(){}},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Mt,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView",f:function(e){var t=e.read_shift(2);return e.l+=28,{RTL:32&t}}},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:function(e,t){var n={};return e.l+=19,n.name=dn(e,t-19),n}},148:{n:"BrtWsDim",f:Mo,p:16},151:{n:"BrtPane",f:function(){}},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:function(e,t){var n={},r=e.read_shift(4);n.defaultThemeVersion=e.read_shift(4);var a=t>8?sn(e):"";return a.length>0&&(n.CodeName=a),n.autoCompressPictures=!!(65536&r),n.backupFile=!!(64&r),n.checkCompatibility=!!(4096&r),n.date1904=!!(1&r),n.filterPrivacy=!!(8&r),n.hidePivotFieldList=!!(1024&r),n.promptedSolutions=!!(16&r),n.publishItems=!!(2048&r),n.refreshAllConnections=!!(262144&r),n.saveExternalLinkValues=!!(128&r),n.showBorderUnselectedTables=!!(4&r),n.showInkAnnotation=!!(32&r),n.showObjects=["all","placeholders","none"][r>>13&3],n.showPivotChartFilter=!!(32768&r),n.updateLinks=["userSet","never","always"][r>>8&3],n}},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:function(e,t){var n={};return n.Hidden=e.read_shift(4),n.iTabID=e.read_shift(4),n.strRelID=bn(e,t-8),n.name=sn(e),n}},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:function(e){return[e.read_shift(4),e.read_shift(4)]}},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:_n},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Po},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:bn},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:ba},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:function(e,t,n){var r=e.l+t,a=xn(e),s=e.read_shift(1),i=[a];if(i[2]=s,n.cellFormula){var o=Hi(e,r-e.l,n);i[1]=o}else e.l=r;return i}},427:{n:"BrtShrFmla",f:function(e,t,n){var r=e.l+t,a=[_n(e,16)];if(n.cellFormula){var s=qi(e,r-e.l,n);a[1]=s,e.l=r}else e.l=r;return a}},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:function(e){var t={};return zo.forEach((function(n){t[n]=En(e)})),t}},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:function(){}},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:function(e,t){var n=e.l+t,r=_n(e,16),a=mn(e),s=sn(e),i=sn(e),o=sn(e);e.l=n;var l={rfx:r,relId:a,loc:s,display:o};return i&&(l.Tooltip=i),l}},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:bn},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:Js},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:function(e){var t={};t.iauthor=e.read_shift(4);var n=_n(e,16);return t.rfx=n.s,t.ref=Zt(n.s),e.l+=16,t}},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:cn},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp",f:function(e,t){return e.l+=10,{name:sn(e)}}},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},681:{n:"BrtDValList"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14",f:function(){}},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSXView14"},1063:{n:"BrtEndSXView14"},1064:{n:"BrtBeginSXView16"},1065:{n:"BrtEndSXView16"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},2137:{n:"BrtBeginModelTimeGroupings"},2138:{n:"BrtEndModelTimeGroupings"},2139:{n:"BrtBeginModelTimeGrouping"},2140:{n:"BrtEndModelTimeGrouping"},2141:{n:"BrtModelTimeGroupingCalcCol"},3072:{n:"BrtUid"},3073:{n:"BrtRevisionPtr"},5095:{n:"BrtBeginCalcFeatures"},5096:{n:"BrtEndCalcFeatures"},5097:{n:"BrtCalcFeature"},65535:{n:""}},Fl=W(Tl,"n"),Rl={3:{n:"BIFF2NUM",f:function(e){var t=qr(e);++e.l;var n=En(e);return t.t="n",t.val=n,t}},4:{n:"BIFF2STR",f:function(e,t,n){var r=qr(e);++e.l;var a=Ur(e,0,n);return r.t="str",r.val=a,r}},6:{n:"Formula",f:Vi},9:{n:"BOF",f:sa},10:{n:"EOF",f:Tr},12:{n:"CalcCount",f:Or},13:{n:"CalcMode",f:Or},14:{n:"CalcPrecision",f:Fr},15:{n:"CalcRefMode",f:Fr},16:{n:"CalcDelta",f:En},17:{n:"CalcIter",f:Fr},18:{n:"Protect",f:Fr},19:{n:"Password",f:Or},20:{n:"Header",f:pa},21:{n:"Footer",f:pa},23:{n:"ExternSheet",f:ba},24:{n:"Lbl",f:ya},25:{n:"WinProtect",f:Fr},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:function(e,t,n){return function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2),i=e.read_shift(2),o=Ur(e,0,n);return n.biff<8&&e.read_shift(1),[{r,c:a},o,i,s]}}(e,0,n)}},29:{n:"Selection"},34:{n:"Date1904",f:Fr},35:{n:"ExternName",f:ma},36:{n:"COLWIDTH"},38:{n:"LeftMargin",f:En},39:{n:"RightMargin",f:En},40:{n:"TopMargin",f:En},41:{n:"BottomMargin",f:En},42:{n:"PrintRowCol",f:Fr},43:{n:"PrintGrid",f:Fr},47:{n:"FilePass",f:function(e,t,n){var r={Type:n.biff>=8?e.read_shift(2):0};return r.Type?function(e,t,n){var r=n||{};r.Info=e.read_shift(2),e.l-=2,1===r.Info?r.Data=function(e){var t={},n=t.EncryptionVersionInfo=Xa(e,4);if(1!=n.Major||1!=n.Minor)throw"unrecognized version code "+n.Major+" : "+n.Minor;return t.Salt=e.read_shift(16),t.EncryptedVerifier=e.read_shift(16),t.EncryptedVerifierHash=e.read_shift(16),t}(e):r.Data=function(e,t){var n={},r=n.EncryptionVersionInfo=Xa(e,4);if(t-=4,2!=r.Minor)throw new Error("unrecognized minor version code: "+r.Minor);if(r.Major>4||r.Major<2)throw new Error("unrecognized major version code: "+r.Major);n.Flags=e.read_shift(4),t-=4;var a=e.read_shift(4);return t-=4,n.EncryptionHeader=Ka(e,a),t-=a,n.EncryptionVerifier=Za(e,t),n}(e,t)}(e,t-2,r):function(e,t,n,r){var a,s,i,o={key:Or(e),verificationBytes:Or(e)};n.password&&(o.verifier=es(n.password)),r.valid=o.verificationBytes===o.verifier,r.valid&&(r.insitu=(a=n.password,s=0,i=ss(a),function(e){var t=function(e,t,n,r,a){var s,i;for(a||(a=t),r||(r=ss("")),s=0;s!=t.length;++s)i=t[s],i=255&((i^=r[n])>>5|i<<3),a[s]=i,++n;return[a,n,r]}(0,e,s,i);return s=t[1],t[0]}))}(e,n.biff,n,r),r}},49:{n:"Font",f:function(e,t,n){var r={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(n&&n.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10}return r.name=$r(e,0,n),r}},51:{n:"PrintSize",f:Or},60:{n:"Continue"},61:{n:"Window1",f:function(e){return{Pos:[e.read_shift(2),e.read_shift(2)],Dim:[e.read_shift(2),e.read_shift(2)],Flags:e.read_shift(2),CurTab:e.read_shift(2),FirstTab:e.read_shift(2),Selected:e.read_shift(2),TabRatio:e.read_shift(2)}}},64:{n:"Backup",f:Fr},65:{n:"Pane",f:function(){}},66:{n:"CodePage",f:Or},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:Or},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:function(e,t,n){if(n.enc)return e.l+=t,"";var r=e.l,a=Ur(e,0,n);return e.read_shift(t+r-e.l),a}},93:{n:"Obj",f:function(e,t,n){if(n&&n.biff<8)return function(e,t,n){e.l+=4;var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6,t-=36;var i=[];return i.push((wa[r]||Mt)(e,t,n)),{cmo:[a,r,s],ft:i}}(e,t,n);var r=na(e);return{cmo:r,ft:function(e,t){for(var n=e.l+t,r=[];e.l7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}},129:{n:"WsBool",f:function(e,t,n){return{fDialog:16&(n&&8==n.biff||2==t?e.read_shift(2):(e.l+=t,0))}}},130:{n:"GridSet",f:Or},131:{n:"HCenter",f:Fr},132:{n:"VCenter",f:Fr},133:{n:"BoundSheet8",f:function(e,t,n){var r=e.read_shift(4),a=3&e.read_shift(1),s=e.read_shift(1);switch(s){case 0:s="Worksheet";break;case 1:s="Macrosheet";break;case 2:s="Chartsheet";break;case 6:s="VBAModule"}var i=$r(e,0,n);return 0===i.length&&(i="Sheet1"),{pos:r,hs:a,dt:s,name:i}}},134:{n:"WriteProtect"},140:{n:"Country",f:function(e){var t,n=[0,0];return t=e.read_shift(2),n[0]=Mn[t]||t,t=e.read_shift(2),n[1]=Mn[t]||t,n}},141:{n:"HideObj",f:Or},144:{n:"Sort"},146:{n:"Palette",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(Xr(e));return n}},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:Or},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:Ca},161:{n:"Setup",f:function(e,t){var n={};return t<32||(e.l+=16,n.header=En(e),n.footer=En(e),e.l+=2),n}},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:function(e,t){for(var n=e.l+t-2,r=e.read_shift(2),a=e.read_shift(2),s=[];e.l>2&1,r.data=function(e,t,n,r){var a={},s=e.read_shift(4),i=e.read_shift(4),o=e.read_shift(4),l=e.read_shift(2);return a.patternType=$n[o>>26],r.cellStyles?(a.alc=7&s,a.fWrap=s>>3&1,a.alcV=s>>4&7,a.fJustLast=s>>7&1,a.trot=s>>8&255,a.cIndent=s>>16&15,a.fShrinkToFit=s>>20&1,a.iReadOrder=s>>22&2,a.fAtrNum=s>>26&1,a.fAtrFnt=s>>27&1,a.fAtrAlc=s>>28&1,a.fAtrBdr=s>>29&1,a.fAtrPat=s>>30&1,a.fAtrProt=s>>31&1,a.dgLeft=15&i,a.dgRight=i>>4&15,a.dgTop=i>>8&15,a.dgBottom=i>>12&15,a.icvLeft=i>>16&127,a.icvRight=i>>23&127,a.grbitDiag=i>>30&3,a.icvTop=127&o,a.icvBottom=o>>7&127,a.icvDiag=o>>14&127,a.dgDiag=o>>21&15,a.icvFore=127&l,a.icvBack=l>>7&127,a.fsxButton=l>>14&1,a):a}(e,0,r.fStyle,n),r}},225:{n:"InterfaceHdr",f:function(e,t){return 0===t||e.read_shift(2),1200}},226:{n:"InterfaceEnd",f:Tr},227:{n:"SXVS"},229:{n:"MergeCells",f:function(e,t){for(var n=[],r=e.read_shift(2);r--;)n.push(Jr(e));return n}},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:function(e,t){for(var n=e.l+t,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0;i!=a&&e.l255)throw new Error("Unexpected SupBook type: "+s);for(var i=zr(e,s),o=[];r>e.l;)o.push(Wr(e));return[s,a,i,o]}},431:{n:"Prot4Rev",f:Fr},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:function(e,t,n){var r=e.l,a="";try{e.l+=4;var s=(n.lastobj||{cmo:[0,0]}).cmo[1];-1==[0,5,7,11,12,14].indexOf(s)?e.l+=6:function(e){var t=e.read_shift(1);e.l++;var n=e.read_shift(2);e.l+=2}(e);var i=e.read_shift(2);e.read_shift(2),Or(e);var o=e.read_shift(2);e.l+=o;for(var l=1;l=(u?i:2*i))break}if(a.length!==i&&a.length!==2*i)throw new Error("cchText: "+i+" != "+a.length);return e.l=r+t,{t:a}}catch(n){return e.l=r+t,{t:a}}}},439:{n:"RefreshAll",f:Fr},440:{n:"HLink",f:function(e,t){var n=Jr(e);return e.l+=16,[n,function(e,t){var n=e.l+t,r=e.read_shift(4);if(2!==r)throw new Error("Unrecognized streamVersion: "+r);var a=e.read_shift(2);e.l+=2;var s,i,o,l,u,c,h="";16&a&&(s=jr(e,e.l)),128&a&&(i=jr(e,e.l)),257==(257&a)&&(o=jr(e,e.l)),1==(257&a)&&(l=function(e,t){var n=e.read_shift(16);switch(n){case"e0c9ea79f9bace118c8200aa004ba90b":return function(e){var t=e.read_shift(4),n=e.l,r=!1;t>24&&(e.l+=t-24,"795881f43b1d7f48af2c825dc4852763"===e.read_shift(16)&&(r=!0),e.l=n);var a=e.read_shift((r?t-24:t)>>1,"utf16le").replace(N,"");return r&&(e.l+=24),a}(e);case"0303000000000000c000000000000046":return function(e){e.l+=2;var t=e.read_shift(0,"lpstr-ansi");if(e.l+=2,57005!=e.read_shift(2))throw new Error("Bad FileMoniker");if(0===e.read_shift(4))return t.replace(/\\/g,"/");var n=e.read_shift(4);if(3!=e.read_shift(2))throw new Error("Bad FileMoniker");return e.read_shift(n>>1,"utf16le").replace(N,"")}(e);default:throw new Error("Unsupported Moniker "+n)}}(e,e.l)),8&a&&(h=jr(e,e.l)),32&a&&(u=e.read_shift(16)),64&a&&(c=mr(e)),e.l=n;var f=i||o||l||"";f&&h&&(f+="#"+h),f||(f="#"+h);var d={Target:f};return u&&(d.guid=u),c&&(d.time=c),s&&(d.Tooltip=s),d}(e,t-24)]}},441:{n:"Lel"},442:{n:"CodeName",f:Wr},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:Or},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:Tr},449:{n:"RecalcId",f:function(e){return e.read_shift(2),e.read_shift(4)},r:2},450:{n:"EntExU2",f:Tr},512:{n:"Dimensions",f:ha},513:{n:"Blank",f:Ea},515:{n:"Number",f:function(e){var t=qr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=qr(e);2==n.biff&&e.l++;var a=Wr(e,e.l,n);return r.val=a,r}},517:{n:"BoolErr",f:da},518:{n:"Formula",f:Vi},519:{n:"String",f:Sa},520:{n:"Row",f:function(e){var t={};t.r=e.read_shift(2),t.c=e.read_shift(2),t.cnt=e.read_shift(2)-t.c;var n=e.read_shift(2);e.l+=4;var r=e.read_shift(1);return e.l+=3,7&r&&(t.level=7&r),32&r&&(t.hidden=!0),64&r&&(t.hpt=n/20),t}},523:{n:"Index"},545:{n:"Array",f:va},549:{n:"DefaultRowHeight",f:la},566:{n:"Table"},574:{n:"Window2",f:function(e,t,n){return n&&n.biff>=2&&n.biff<5?{}:{RTL:64&e.read_shift(2)}}},638:{n:"RK",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=Yr(e);return{r:t,c:n,ixfe:r[0],rknum:r[1]}}},659:{n:"Style"},1030:{n:"Formula",f:Vi},1048:{n:"BigName"},1054:{n:"Format",f:function(e,t,n){return[e.read_shift(2),Ur(e,0,n)]}},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:function(e,t,n){var r=ea(e);e.l++;var a=e.read_shift(1);return[Ui(e,t-=8,n),a,r]}},2048:{n:"HLinkTooltip",f:function(e,t){e.read_shift(2);var n=Jr(e),r=e.read_shift((t-10)/2,"dbcs-cont");return[n,r=r.replace(N,"")]}},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:sa},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:Tr},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:function(e){e.l+=2;var t={cxfs:0,crc:0};return t.cxfs=e.read_shift(2),t.crc=e.read_shift(4),t},r:12},2173:{n:"XFExt",f:function(e,t){e.l,e.l+=2;var n=e.read_shift(2);e.l+=2;for(var r=e.read_shift(2),a=[];r-- >0;)a.push(Xs(e,e.l));return{ixfe:n,ext:a}},r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:Fr,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt"},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2);return[zr(e,r,n),zr(e,a,n)]}e.l+=t},r:12},2197:{n:"SortData"},2198:{n:"Theme",f:function(e,t,n){var r=e.l+t;if(124226!==e.read_shift(4))if(n.cellStyles&&se){var a,s=e.slice(e.l);e.l=r;try{a=new se(s)}catch(e){return}var i=he(a,"theme/theme/theme1.xml",!0);if(i)return Hs(i,n)}else e.l=r},r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:function(e){return[0!==e.read_shift(4),0!==e.read_shift(4),e.read_shift(4)]},r:12},2203:{n:"CompressPictures",f:Tr},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:function(e){var t=function(e){var t=e.read_shift(2),n=e.read_shift(2);return e.l+=8,{type:t,flags:n}}(e);if(2211!=t.type)throw new Error("Invalid Future Record "+t.type);return 0!==e.read_shift(4)}},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:Or},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:function(e,t,n){var r={area:!1};if(5!=n.biff)return e.l+=t,r;var a=e.read_shift(1);return e.l+=3,16&a&&(r.area=!0),r}},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(Xr(e));return n}},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:ha},2:{n:"BIFF2INT",f:function(e){var t=qr(e);++e.l;var n=e.read_shift(2);return t.t="n",t.val=n,t}},5:{n:"BoolErr",f:da},7:{n:"String",f:function(e){var t=e.read_shift(1);return 0===t?(e.l++,""):e.read_shift(t,"sbcs-cont")}},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:Or},30:{n:"BIFF2FORMAT",f:ca},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:va},37:{n:"DefaultRowHeight",f:la},50:{n:"BIFF2FONTXTRA",f:function(e,t){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=t-13}},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a={fmt:t,env:n,len:r,data:e.slice(e.l,e.l+r)};return e.l+=r,a}},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:function(e,t,n){var r=e.l+t,a=qr(e),s=e.read_shift(2),i=zr(e,s,n);return e.l=r,a.t="str",a.val=i,a}},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:sa},536:{n:"Lbl",f:ya},547:{n:"ExternName",f:ma},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:sa},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}},Ol=W(Rl,"n");function Bl(e,t,n,r){var a=+t||+Ol[t];if(!isNaN(a)){var s=r||(n||[]).length||0,i=e.next(4);i.write_shift(2,a),i.write_shift(2,s),s>0&&Et(n)&&e.push(n)}}function Ml(e,t,n){return e||(e=$t(7)),e.write_shift(2,t),e.write_shift(2,n),e.write_shift(2,0),e.write_shift(1,0),e}function $l(e,t,n,r){if(null!=t.v)switch(t.t){case"d":case"n":var a="d"==t.t?H(Q(t.v)):t.v;return void(a==(0|a)&&a>=0&&a<65536?Bl(e,2,(s=n,i=r,o=a,l=$t(9),Ml(l,s,i),l.write_shift(2,o),l)):Bl(e,3,function(e,t,n){var r=$t(15);return Ml(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Bl(e,5,function(e,t,n,r){var a=$t(9);return Ml(a,e,t),"e"==r?(a.write_shift(1,n),a.write_shift(1,1)):(a.write_shift(1,n?1:0),a.write_shift(1,0)),a}(n,r,t.v,t.t));case"s":case"str":return void Bl(e,4,function(e,t,n){var r=$t(8+2*n.length);return Ml(r,e,t),r.write_shift(1,n.length),r.write_shift(n.length,n,"sbcs"),r.l255||d.e.r>=p){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:IV16384");d.e.c=Math.min(d.e.c,255),d.e.r=Math.min(d.e.c,p-1)}Bl(a,2057,ia(0,16,t)),Bl(a,"CalcMode",Br(1)),Bl(a,"CalcCount",Br(100)),Bl(a,"CalcRefMode",Rr(!0)),Bl(a,"CalcIter",Rr(!1)),Bl(a,"CalcDelta",Cn(.001)),Bl(a,"CalcSaveRecalc",Rr(!0)),Bl(a,"PrintRowCol",Rr(!1)),Bl(a,"PrintGrid",Rr(!1)),Bl(a,"GridSet",Br(1)),Bl(a,"Guts",function(e){var t=$t(8);return t.write_shift(4,0),t.write_shift(2,e[0]?e[0]+1:0),t.write_shift(2,e[1]?e[1]+1:0),t}([0,0])),Bl(a,"HCenter",Rr(!1)),Bl(a,"VCenter",Rr(!1)),Bl(a,512,function(e,t){var n=8!=t.biff&&t.biff?2:4,r=$t(2*n+6);return r.write_shift(n,e.s.r),r.write_shift(n,e.e.r+1),r.write_shift(2,e.s.c),r.write_shift(2,e.e.c+1),r.write_shift(2,0),r}(d,t)),c&&(i["!links"]=[]);for(var m=d.s.r;m<=d.e.r;++m){h=Gt(m);for(var g=d.s.c;g<=d.e.c;++g){m===d.s.r&&(f[g]=qt(g)),r=f[g]+h;var y=u?(i[m]||[])[g]:i[r];y&&(Pl(a,y,m,g,t),c&&y.l&&i["!links"].push([r,y.l]))}}var b=l.CodeName||l.name||s;return c&&Bl(a,"Window2",function(e){var t=$t(18),n=1718;return e&&e.RTL&&(n|=64),t.write_shift(2,n),t.write_shift(4,0),t.write_shift(4,64),t.write_shift(4,0),t.write_shift(4,0),t}((o.Views||[])[0])),c&&(i["!merges"]||[]).length&&Bl(a,"MergeCells",function(e){var t=$t(2+8*e.length);t.write_shift(2,e.length);for(var n=0;n255||i.e.r>16383){if(r.WTF)throw new Error("Range "+(t["!ref"]||"A1")+" exceeds format limit A1:IV16384");i.e.c=Math.min(i.e.c,255),i.e.r=Math.min(i.e.c,16383),a=Jt(i)}for(var u=i.s.r;u<=i.e.r;++u){o=Gt(u);for(var c=i.s.c;c<=i.e.c;++c){u===i.s.r&&(l[c]=qt(c)),a=l[c]+o;var h=s?(t[u]||[])[c]:t[a];h&&$l(e,h,u,c)}}}(r,e.Sheets[e.SheetNames[a]],0,n),Bl(r,10),r.end()}(e,t)}throw new Error("invalid type "+n.bookType+" for BIFF")}var Ul=function(){function e(e,t){var n=t||{},r=n.dense?[]:{},a=(e=e.replace(//g,"")).match(/");var s=e.match(/<\/table/i),i=a.index,o=s&&s.index||e.length,l=function(e,t,n){if(ie||"string"==typeof t)return e.split(t);for(var r=e.split(t),a=[r[0]],s=1;s"),a.push(r[s]);return a}(e.slice(i,o),/(:?]*>)/i),u=-1,c=0,h=0,f=0,d={s:{r:1e7,c:1e7},e:{r:0,c:0}},p=[];for(i=0;i/i);for(o=0;o"))>-1;)v=v.slice(w+1);for(var x=0;x")));f=k.colspan?+k.colspan:1,((h=+k.rowspan)>1||f>1)&&p.push({s:{r:u,c},e:{r:u+(h||1)-1,c:c+f-1}});var E=k.t||"";if(v.length){if(v=je(v),d.s.r>u&&(d.s.r=u),d.e.rc&&(d.s.c=c),d.e.cn||a[u].s.c>i||a[u].e.r1&&(d.rowspan=o),l>1&&(d.colspan=l),d.t=h&&h.t||"z",r.editable&&(f=''+f+""),d.id=(r.id||"sjs")+"-"+c,"z"!=d.t&&(d.v=h.v,null!=h.z&&(d.z=h.z)),s.push(Je("td",f,d))}}return""+s.join("")+""}function n(e,t,n){return[].join("")+""}var r='SheetJS Table Export',a="";return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,_row:t,BEGIN:r,END:a,_preamble:n,from_sheet:function(e,s){var i=s||{},o=null!=i.header?i.header:r,l=null!=i.footer?i.footer:a,u=[o],c=Yt(e["!ref"]);i.dense=Array.isArray(e),u.push(n(0,0,i));for(var h=c.s.r;h<=c.e.r;++h)u.push(t(e,c,h,i));return u.push("
"+l),u.join("")}}}();function Vl(e,t,n){var r=n||{},a=0,s=0;if(null!=r.origin)if("number"==typeof r.origin)a=r.origin;else{var i="string"==typeof r.origin?Kt(r.origin):r.origin;a=i.r,s=i.c}var o=t.getElementsByTagName("tr"),l=Math.min(r.sheetRows||1e7,o.length),u={s:{r:0,c:0},e:{r:a,c:s}};if(e["!ref"]){var c=Yt(e["!ref"]);u.s.r=Math.min(u.s.r,c.s.r),u.s.c=Math.min(u.s.c,c.s.c),u.e.r=Math.max(u.e.r,c.e.r),u.e.c=Math.max(u.e.c,c.e.c),-1==a&&(u.e.r=a=c.e.r+1)}var h=[],f=0,d=e["!rows"]||(e["!rows"]=[]),p=0,m=0,g=0,y=0,b=0,v=0;for(e["!cols"]||(e["!cols"]=[]);p1||v>1)&&h.push({s:{r:m+a,c:y+s},e:{r:m+a+(b||1)-1,c:y+s+(v||1)-1}});var S={t:"s",v:k},N=_.getAttribute("t")||"";null!=k&&(0==k.length?S.t=N||"z":r.raw||0==k.trim().length||"s"==N||("TRUE"===k?S={t:"b",v:!0}:"FALSE"===k?S={t:"b",v:!1}:isNaN(re(k))?isNaN(ae(k).getDate())||(S={t:"d",v:Q(k)},r.cellDates||(S={t:"n",v:H(S.v)}),S.z=r.dateNF||A._table[14]):S={t:"n",v:re(k)})),void 0===S.z&&null!=E&&(S.z=E),r.dense?(e[m+a]||(e[m+a]=[]),e[m+a][y+s]=S):e[Zt({c:y+s,r:m+a})]=S,u.e.c=l&&(e["!fullref"]=Jt((u.e.r=o.length-p+m-1+a,u))),e}function jl(e,t){return Vl((t||{}).dense?[]:{},e,t)}function Hl(e){var t="",n=function(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null}(e);return n&&(t=n(e).getPropertyValue("display")),t||(t=e.style.display),"none"===t}var Gl,Xl=(Gl={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']},function(e,t){var n,r,a,s,i,o,l,u=t||{},c=gl(e),h=[],f={name:""},d="",p=0,m={},g=[],y=u.dense?[]:{},b={value:""},v="",w=0,x=[],_=-1,k=-1,E={s:{r:1e6,c:1e7},e:{r:0,c:0}},C=0,S={},N=[],I={},A=[],D=1,T=1,F=[],R={Names:[]},O={},B=["",""],M=[],$={},P="",L=0,z=!1,W=!1,U=0;for(yl.lastIndex=0,c=c.replace(//gm,"").replace(//gm,"");i=yl.exec(c);)switch(i[3]=i[3].replace(/_.*$/,"")){case"table":case"工作表":"/"===i[1]?(E.e.c>=E.s.c&&E.e.r>=E.s.r?y["!ref"]=Jt(E):y["!ref"]="A1:A1",u.sheetRows>0&&u.sheetRows<=E.e.r&&(y["!fullref"]=y["!ref"],E.e.r=u.sheetRows-1,y["!ref"]=Jt(E)),N.length&&(y["!merges"]=N),A.length&&(y["!rows"]=A),a.name=a["名称"]||a.name,"undefined"!=typeof JSON&&JSON.stringify(a),g.push(a.name),m[a.name]=y,W=!1):"/"!==i[0].charAt(i[0].length-2)&&(a=we(i[0],!1),_=k=-1,E.s.r=E.s.c=1e7,E.e.r=E.e.c=0,y=u.dense?[]:{},N=[],A=[],W=!0);break;case"table-row-group":"/"===i[1]?--C:++C;break;case"table-row":case"行":if("/"===i[1]){_+=D,D=1;break}if((s=we(i[0],!1))["行号"]?_=s["行号"]-1:-1==_&&(_=0),(D=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(A[_+U]={level:C});k=-1;break;case"covered-table-cell":"/"!==i[1]&&++k,u.sheetStubs&&(u.dense?(y[_]||(y[_]=[]),y[_][k]={t:"z"}):y[Zt({r:_,c:k})]={t:"z"}),v="",x=[];break;case"table-cell":case"数据":if("/"===i[0].charAt(i[0].length-2))++k,b=we(i[0],!1),T=parseInt(b["number-columns-repeated"]||"1",10),o={t:"z",v:null},b.formula&&0!=u.cellFormula&&(o.f=Qi(Se(b.formula))),"string"==(b["数据类型"]||b["value-type"])&&(o.t="s",o.v=Se(b["string-value"]||""),u.dense?(y[_]||(y[_]=[]),y[_][k]=o):y[Zt({r:_,c:k})]=o),k+=T-1;else if("/"!==i[1]){T=1;var V=D?_+D-1:_;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),M=[],$={},o={t:(b=we(i[0],!1))["数据类型"]||b["value-type"],v:null},u.cellFormula)if(b.formula&&(b.formula=Se(b.formula)),b["number-matrix-columns-spanned"]&&b["number-matrix-rows-spanned"]&&(I={s:{r:_,c:k},e:{r:_+(parseInt(b["number-matrix-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-matrix-columns-spanned"],10)||0)-1}},o.F=Jt(I),F.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=F[U][0].s.r&&_<=F[U][0].e.r&&k>=F[U][0].s.c&&k<=F[U][0].e.c&&(o.F=F[U][1]);switch((b["number-columns-spanned"]||b["number-rows-spanned"])&&(I={s:{r:_,c:k},e:{r:_+(parseInt(b["number-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-columns-spanned"],10)||0)-1}},N.push(I)),b["number-columns-repeated"]&&(T=parseInt(b["number-columns-repeated"],10)),o.t){case"boolean":o.t="b",o.v=Oe(b["boolean-value"]);break;case"float":case"percentage":case"currency":o.t="n",o.v=parseFloat(b.value);break;case"date":o.t="d",o.v=Q(b["date-value"]),u.cellDates||(o.t="n",o.v=H(o.v)),o.z="m/d/yy";break;case"time":o.t="n",o.v=Z(b["time-value"])/86400;break;case"number":o.t="n",o.v=parseFloat(b["数据数值"]);break;default:if("string"!==o.t&&"text"!==o.t&&o.t)throw new Error("Unsupported value type "+o.t);o.t="s",null!=b["string-value"]&&(v=Se(b["string-value"]),x=[])}}else{if(z=!1,"s"===o.t&&(o.v=v||"",x.length&&(o.R=x),z=0==w),O.Target&&(o.l=O),M.length>0&&(o.c=M,M=[]),v&&!1!==u.cellText&&(o.w=v),z&&(o.t="z",delete o.v),(!z||u.sheetStubs)&&!(u.sheetRows&&u.sheetRows<=_))for(var j=0;j0;)y[_+j][k+T]=te(o);else for(y[Zt({r:_+j,c:k})]=o;--T>0;)y[Zt({r:_+j,c:k+T})]=te(o);E.e.c<=k&&(E.e.c=k)}k+=(T=parseInt(b["number-columns-repeated"]||"1",10))-1,T=0,o={},v="",x=[]}O={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!0]);break;case"annotation":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n;$.t=v,x.length&&($.R=x),$.a=P,M.push($)}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);P="",L=0,v="",w=0,x=[];break;case"creator":"/"===i[1]?P=c.slice(L,i.index):L=i.index+i[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);v="",w=0,x=[];break;case"scientific-number":case"currency-symbol":case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if("/"===i[1]){if(S[f.name]=d,(n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&(d="",f=we(i[0],!1),h.push([i[3],!0]));break;case"script":case"libraries":case"automatic-styles":break;case"default-style":case"page-layout":case"style":case"map":case"font-face":case"paragraph-properties":case"table-properties":case"table-column-properties":case"table-row-properties":case"table-cell-properties":break;case"number":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"boolean-style":case"boolean":case"text-style":break;case"text":if("/>"===i[0].slice(-2))break;if("/"===i[1])switch(h[h.length-1][0]){case"number-style":case"date-style":case"time-style":d+=c.slice(p,i.index)}else p=i.index+i[0].length;break;case"named-range":B=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:B[0]+"!"+B[1]};W&&(G.Sheet=g.length),R.Names.push(G);break;case"text-content":case"text-properties":case"embedded-text":break;case"body":case"电子表格":case"forms":case"table-column":case"table-header-rows":case"table-rows":case"table-column-group":case"table-header-columns":case"table-columns":case"null-date":case"graphic-properties":case"calculation-settings":case"named-expressions":case"label-range":case"label-ranges":case"named-expression":case"sort":case"sort-by":case"sort-groups":case"tab":case"line-break":case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(h[h.length-1][0])>-1)break;if("/"!==i[1]||b&&b["string-value"])we(i[0],!1),w=i.index+i[0].length;else{var X=(l=void 0,l=c.slice(w,i.index).replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,(function(e,t){return Array(parseInt(t,10)+1).join(" ")})).replace(/]*\/>/g,"\t").replace(//g,"\n"),[Se(l.replace(/<[^>]*>/g,""))]);v=(v.length>0?v+"\n":"")+X[0]}break;case"s":break;case"database-range":if("/"===i[1])break;try{m[(B=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:B[1]}}catch(e){}break;case"date":case"object":break;case"title":case"标题":case"desc":case"binary-data":case"table-source":case"scenario":case"iteration":case"content-validations":case"content-validation":case"help-message":case"error-message":case"database-ranges":case"filter":case"filter-and":case"filter-or":case"filter-condition":case"list-level-style-bullet":case"list-level-style-number":case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":case"config-item":case"page-number":case"page-count":case"time":case"cell-range-source":case"detective":case"operation":case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":case"properties":case"property":break;case"a":if("/"!==i[1]){if(!(O=we(i[0],!1)).href)break;O.Target=O.href,delete O.href,"#"==O.Target.charAt(0)&&O.Target.indexOf(".")>-1&&(B=eo(O.Target.slice(1)),O.Target="#"+B[0]+"!"+B[1])}break;case"table-protection":case"data-pilot-grand-total":case"office-document-common-attrs":break;default:switch(i[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(u.WTF)throw new Error(i)}}var q={Sheets:m,SheetNames:g,Workbook:R};return u.bookSheets&&delete q.Sheets,q});function ql(e,t){t=t||{};var n=!!le(e,"objectdata");n&&function(e,t){for(var n,r,a=gl(e);n=yl.exec(a);)switch(n[3]){case"manifest":break;case"file-entry":if("/"==(r=we(n[0],!1)).path&&"application/vnd.oasis.opendocument.spreadsheet"!==r.type)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(t&&t.WTF)throw n}}(ce(e,"META-INF/manifest.xml"),t);var r=he(e,"content.xml");if(!r)throw new Error("Missing content.xml in "+(n?"ODS":"UOF")+" file");var a=Xl(n?r:Be(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function Kl(e,t){return Xl(e,t)}var Zl=function(){var e="";return function(){return me+e}}(),Yl=function(){var e=" \n",t=function(t,n,r){var a=[];a.push(' \n');var s=0,i=0,o=Yt(t["!ref"]),l=t["!merges"]||[],u=0,c=Array.isArray(t);for(s=0;s\n");for(;s<=o.e.r;++s){for(a.push(" \n"),i=0;ii||l[u].s.r>s||l[u].e.c\n");else{var p=Zt({r:s,c:i}),m=c?(t[s]||[])[i]:t[p];if(m&&m.f&&(f["table:formula"]=Ae(("of:="+m.f.replace(ni,"$1[.$2$3$4$5]").replace(/\]:\[/g,":")).replace(/;/g,"|").replace(/,/g,";")),m.F&&m.F.slice(0,p.length)==p)){var g=Yt(m.F);f["table:number-matrix-columns-spanned"]=g.e.c-g.s.c+1,f["table:number-matrix-rows-spanned"]=g.e.r-g.s.r+1}if(m){switch(m.t){case"b":d=m.v?"TRUE":"FALSE",f["office:value-type"]="boolean",f["office:boolean-value"]=m.v?"true":"false";break;case"n":d=m.w||String(m.v||0),f["office:value-type"]="float",f["office:value"]=m.v||0;break;case"s":case"str":d=null==m.v?"":m.v,f["office:value-type"]="string";break;case"d":d=m.w||Q(m.v).toISOString(),f["office:value-type"]="date",f["office:date-value"]=Q(m.v).toISOString(),f["table:style-name"]="ce1";break;default:a.push(e);continue}var y=Ae(d).replace(/ +/g,(function(e){return''})).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"");if(m.l&&m.l.Target){var b=m.l.Target;y=Je("text:a",y,{"xlink:href":b="#"==b.charAt(0)?"#"+b.slice(1).replace(/\./,"!"):b})}a.push(" "+Je("table:table-cell",Je("text:p",y,{}),f)+"\n")}else a.push(e)}}a.push(" \n")}return a.push(" \n"),a.join("")};return function(e,n){var r=[me],a=Ye({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),s=Ye({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});"fods"==n.bookType?r.push("\n"):r.push("\n"),function(e){e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" /\n"),e.push(' \n'),e.push(" /\n"),e.push(" \n"),e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" \n"),e.push(' \n'),e.push(" \n")}(r),r.push(" \n"),r.push(" \n");for(var i=0;i!=e.SheetNames.length;++i)r.push(t(e.Sheets[e.SheetNames[i]],e,i));return r.push(" \n"),r.push(" \n"),"fods"==n.bookType?r.push(""):r.push(""),r.join("")}}();function Jl(e,t){if("fods"==t.bookType)return Yl(e,t);var n=de(),r="",a=[],s=[];return fe(n,r="mimetype","application/vnd.oasis.opendocument.spreadsheet"),fe(n,r="content.xml",Yl(e,t)),a.push([r,"text/xml"]),s.push([r,"ContentFile"]),fe(n,r="styles.xml",Zl(e,t)),a.push([r,"text/xml"]),s.push([r,"StylesFile"]),fe(n,r="meta.xml",tr()),a.push([r,"text/xml"]),s.push([r,"MetadataFile"]),fe(n,r="manifest.rdf",function(e){var t=[me];t.push('\n');for(var n=0;n!=e.length;++n)t.push(Qn(e[n][0],e[n][1])),t.push(("",[' \n',' \n'," \n"].join("")));return t.push(Qn("","Document","pkg")),t.push(""),t.join("")}(s)),a.push([r,"application/rdf+xml"]),fe(n,r="META-INF/manifest.xml",function(e){var t=[me];t.push('\n'),t.push(' \n');for(var n=0;n\n');return t.push(""),t.join("")}(a)),n}function Ql(e){return function(t,n){var r=function(e,t){if(!t)return 0;var n=e.SheetNames.indexOf(t);if(-1==n)throw new Error("Sheet not found: "+t);return n}(t,n.sheet);return e.from_sheet(t.Sheets[t.SheetNames[r]],n,t)}}var eu=Ql(Ul),tu=Ql({from_sheet:Fu}),nu=Ql(void 0!==Ia?Ia:{}),ru=Ql(void 0!==Aa?Aa:{}),au=Ql(void 0!==Ta?Ta:{}),su=Ql(void 0!==is?is:{}),iu=Ql({from_sheet:Ru}),ou=Ql(void 0!==Na?Na:{}),lu=Ql(void 0!==Da?Da:{});function uu(e){return function(t){for(var n=0;n!=e.length;++n){var r=e[n];void 0===t[r[0]]&&(t[r[0]]=r[1]),"n"===r[2]&&(t[r[0]]=Number(t[r[0]]))}}}var cu=function(e){uu([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)},hu=uu([["cellDates",!1],["bookSST",!1],["bookType","xlsx"],["compression",!1],["WTF",!1]]);function fu(e,t,n,r,a,s,i,o,l,u,c,h){try{s[r]=qn(he(e,n,!0),t);var f,d=ce(e,t);switch(o){case"sheet":f=rl(d,t,a,l,s[r],u,c,h);break;case"chart":if(!(f=function(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},i=[],o=!1;return Pt(e,(function(e,r,l){switch(l){case 550:s["!rel"]=e;break;case 651:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:i.push(r);break;case 38:i.pop();break;default:if((r||"").indexOf("Begin")>0)i.push(r);else if((r||"").indexOf("End")>0)i.pop();else if(!o||t.WTF)throw new Error("Unexpected record "+l+" "+r)}}),t),r["!id"][s["!rel"]]&&(s["!drawel"]=r["!id"][s["!rel"]]),s}(e,r,n,a,s):function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s,i={"!type":"chart","!drawel":null,"!rel":""},o=e.match(bo);return o&&wo(o[0],0,a,n),(s=e.match(/drawing r:id="(.*?)"/))&&(i["!rel"]=s[1]),r["!id"][i["!rel"]]&&(i["!drawel"]=r["!id"][i["!rel"]]),i}(e,0,n,a,s)}(d,t,a,l,s[r],u))||!f["!drawel"])break;var p=pe(f["!drawel"].Target,t),m=Xn(p),g=pe(function(e,t){if(!e)return"??";var n=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return t["!id"][n].Target}(he(e,p,!0),qn(he(e,m,!0),p)),p),y=Xn(g);f=function(e,t,n,r,a,s){var i=s||{"!type":"chart"};if(!e)return s;var o=0,l=0,u="A",c={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach((function(e){var t=function(e){var t,n=[],r=e.match(/^/);(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach((function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);t&&(n[+t[1]]=r?+t[2]:t[2])}));var a=Se((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/(.*?)<\/c:f>/gm)||[]).forEach((function(e){t=e.replace(/<.*?>/g,"")})),[n,a,t]}(e);c.s.r=c.s.c=0,c.e.c=o,u=qt(o),t[0].forEach((function(e,n){i[u+Gt(n)]={t:"n",v:e,z:t[1]},l=n})),c.e.r0&&(i["!ref"]=Jt(c)),i}(he(e,g,!0),0,0,qn(he(e,y,!0),g),0,f);break;case"macro":v=t,s[r],v.slice(-4),f={"!type":"macro"};break;case"dialog":f=function(e,t,n,r,a,s,i,o){return t.slice(-4),{"!type":"dialog"}}(0,t,0,0,s[r]);break;default:throw new Error("Unrecognized sheet type "+o)}i[r]=f;var b=[];s&&s[r]&&z(s[r]).forEach((function(n){if(s[r][n].Type==Gn.CMNT){var a=pe(s[r][n].Target,t);if(!(b=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=[],a={},s=!1;return Pt(e,(function(e,i,o){switch(o){case 632:r.push(e);break;case 635:a=e;break;case 637:a.t=e.t,a.h=e.h,a.r=e.r;break;case 636:if(a.author=r[a.iauthor],delete a.iauthor,t.sheetRows&&a.rfx&&t.sheetRows<=a.rfx.r)break;a.t||(a.t=""),delete a.rfx,n.push(a);break;case 3072:break;case 35:s=!0;break;case 36:s=!1;break;case 37:case 38:break;default:if((i||"").indexOf("Begin")>0);else if((i||"").indexOf("End")>0);else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+i)}})),n}(e,n):function(e,t){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var n=[],r=[],a=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);a&&a[1]&&a[1].split(/<\/\w*:?author>/).forEach((function(e){if(""!==e&&""!==e.trim()){var t=e.match(/<(?:\w+:)?author[^>]*>(.*)/);t&&n.push(t[1])}}));var s=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return s&&s[1]&&s[1].split(/<\/\w*:?comment>/).forEach((function(e){if(""!==e&&""!==e.trim()){var a=e.match(/<(?:\w+:)?comment[^>]*>/);if(a){var s=we(a[0]),i={author:s.authorId&&n[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid},o=Kt(s.ref);if(!(t.sheetRows&&t.sheetRows<=o.r)){var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),u=!!l&&!!l[1]&&Pa(l[1])||{r:"",t:"",h:""};i.r=u.r,""==u.r&&(u.t=u.h=""),i.t=u.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),t.cellHTML&&(i.h=u.h),r.push(i)}}}})),r}(e,n)}(ce(e,a,!0),a,l))||!b.length)return;!function(e,t){var n,r=Array.isArray(e);t.forEach((function(t){var a=Kt(t.ref);if(r?(e[a.r]||(e[a.r]=[]),n=e[a.r][a.c]):n=e[t.ref],!n){n={t:"z"},r?e[a.r][a.c]=n:e[t.ref]=n;var s=Qt(e["!ref"]||"BDWGO1000001:A1");s.s.r>a.r&&(s.s.r=a.r),s.e.ra.c&&(s.s.c=a.c),s.e.c0?t.calcchains[0]:"",t.sst=t.strs.length>0?t.strs[0]:"",t.style=t.styles.length>0?t.styles[0]:"",t.defaults=n,delete t.calcchains,t}(he(e,"[Content_Types].xml")),i=!1;if(0===s.workbooks.length&&ce(e,r="xl/workbook.xml",!0)&&s.workbooks.push(r),0===s.workbooks.length){if(!ce(e,r="xl/workbook.bin",!0))throw new Error("Could not find workbook");s.workbooks.push(r),i=!0}"bin"==s.workbooks[0].slice(-3)&&(i=!0);var o={},l={};if(!t.bookSheets&&!t.bookProps){if(to=[],s.sst)try{to=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=!1;return Pt(e,(function(e,a,s){switch(s){case 159:n.Count=e[0],n.Unique=e[1];break;case 19:n.push(e);break;case 160:return!0;case 35:r=!0;break;case 36:r=!1;break;default:if(a.indexOf("Begin")>0||a.indexOf("End"),!r||t.WTF)throw new Error("Unexpected record "+s+" "+a)}})),n}(e,n):function(e,t){var n=[],r="";if(!e)return n;var a=e.match(La);if(a){r=a[2].replace(za,"").split(Wa);for(var s=0;s!=r.length;++s){var i=Pa(r[s].trim(),t);null!=i&&(n[n.length]=i)}a=we(a[1]),n.Count=a.count,n.Unique=a.uniqueCount}return n}(e,n)}(ce(e,du(s.sst)),s.sst,t)}catch(e){if(t.WTF)throw e}t.cellStyles&&s.themes.length&&(o=function(e,t,n){return Hs(e,n)}(he(e,s.themes[0].replace(/^\//,""),!0)||"",s.themes[0],t)),s.style&&(l=function(e,t,n,r){return".bin"===t.slice(-4)?function(e,t,n){var r={NumberFmt:[]};for(var a in A._table)r.NumberFmt[a]=A._table[a];r.CellXf=[],r.Fonts=[];var s=[],i=!1;return Pt(e,(function(e,a,o){switch(o){case 44:r.NumberFmt[e[0]]=e[1],A.load(e[1],e[0]);break;case 43:r.Fonts.push(e),null!=e.color.theme&&t&&t.themeElements&&t.themeElements.clrScheme&&(e.color.rgb=ls(t.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0));break;case 1025:case 45:case 46:break;case 47:"BrtBeginCellXFs"==s[s.length-1]&&r.CellXf.push(e);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:i=!0;break;case 36:i=!1;break;case 37:s.push(a),i=!0;break;case 38:s.pop(),i=!1;break;default:if((a||"").indexOf("Begin")>0)s.push(a);else if((a||"").indexOf("End")>0)s.pop();else if(!i||n.WTF&&"BrtACBegin"!=s[s.length-1])throw new Error("Unexpected record "+o+" "+a)}})),r}(e,n,r):Ss(e,n,r)}(ce(e,du(s.style)),s.style,o,t))}s.links.map((function(n){try{return qn(he(e,Xn(du(n))),n),function(e,t,n,r){if(".bin"===n.slice(-4))return function(e,t,n,r){if(!e)return e;var a=r||{},s=!1;Pt(e,(function(e,t,n){switch(n){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:s=!0;break;case 36:s=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!s||a.WTF)throw new Error("Unexpected record "+n.toString(16)+" "+t)}}),a)}(e,0,0,r)}(ce(e,du(n)),0,n,t)}catch(e){}}));var u=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},r=[],a=!1;t||(t={}),t.biff=12;var s=[],i=[[]];return i.SheetNames=[],i.XTI=[],Pt(e,(function(e,o,l){switch(l){case 156:i.SheetNames.push(e.name),n.Sheets.push(e);break;case 153:n.WBProps=e;break;case 39:null!=e.Sheet&&(t.SID=e.Sheet),e.Ref=zi(e.Ptg,0,null,i,t),delete t.SID,delete e.Ptg,s.push(e);break;case 1036:break;case 357:case 358:case 355:case 667:i[0].length?i.push([l,e]):i[0]=[l,e],i[i.length-1].XTI=[];break;case 362:0===i.length&&(i[0]=[],i[0].XTI=[]),i[i.length-1].XTI=i[i.length-1].XTI.concat(e),i.XTI=i.XTI.concat(e);break;case 361:break;case 3072:case 3073:case 2071:case 534:case 677:case 158:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:r.push(o),a=!0;break;case 36:r.pop(),a=!1;break;case 37:r.push(o),a=!0;break;case 38:r.pop(),a=!1;break;case 16:break;default:if((o||"").indexOf("Begin")>0);else if((o||"").indexOf("End")>0);else if(!a||t.WTF&&"BrtACBegin"!=r[r.length-1]&&"BrtFRTBegin"!=r[r.length-1])throw new Error("Unexpected record "+l+" "+o)}}),t),Ko(n),n.Names=s,n.supbooks=i,n}(e,n):function(e,t){if(!e)throw new Error("Could not find file");var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},r=!1,a="xmlns",s={},i=0;if(e.replace(ye,(function(o,l){var u=we(o);switch(xe(u[0])){case"":break;case"":case"":case"":break;case"":Vo.forEach((function(e){if(null!=u[e[0]])switch(e[2]){case"bool":n.WBProps[e[0]]=Oe(u[e[0]]);break;case"int":n.WBProps[e[0]]=parseInt(u[e[0]],10);break;default:n.WBProps[e[0]]=u[e[0]]}})),u.codeName&&(n.WBProps.CodeName=Be(u.codeName));break;case"":case"":break;case"":case"":break;case"":delete u[0],n.WBView.push(u);break;case"":break;case"":case"":break;case"":break;case"":case"":case"":case"":break;case"":case"":r=!1;break;case"":s.Ref=Se(Be(e.slice(i,l))),n.Names.push(s);break;case"":break;case"":delete u[0],n.CalcPr=u;break;case"":case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":case"":case"":case"":break;case"":r=!1;break;case"":r=!0;break;case"":r=!1;break;case"]*>([\\s\\S]*?)"));s&&s.length>0&&(r[n[1]]=s[1])}})),r.HeadingPairs&&r.TitlesOfParts&&lr(r.HeadingPairs,r.TitlesOfParts,t,n)}(h,c,t));var f={};t.bookSheets&&!t.bookProps||0!==s.custprops.length&&(h=he(e,du(s.custprops[0]),!0))&&(f=function(e,t){var n={},r="",a=e.match(cr);if(a)for(var s=0;s!=a.length;++s){var i=a[s],o=we(i);switch(o[0]){case"":r=null;break;default:if(0===i.indexOf(""),u=l[0].slice(4),c=l[1];switch(u){case"lpstr":case"bstr":case"lpwstr":n[r]=Se(c);break;case"bool":n[r]=Oe(c);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":n[r]=parseInt(c,10);break;case"r4":case"r8":case"decimal":n[r]=parseFloat(c);break;case"filetime":case"date":n[r]=Q(c);break;case"cy":case"error":n[r]=Se(c);break;default:if("/"==u.slice(-1))break;t.WTF&&"undefined"!=typeof console&&console.warn("Unexpected",i,u,l)}}else if("0&&(n=c.SheetNames),t.bookProps&&(d.Props=c,d.Custprops=f),t.bookSheets&&void 0!==n&&(d.SheetNames=n),t.bookSheets?d.SheetNames:t.bookProps))return d;n={};var p,m={};t.bookDeps&&s.calcchain&&(p=ce(e,du(s.calcchain)),m=".bin"===s.calcchain.slice(-4)?function(e,t,n){var r=[];return Pt(e,(function(e,t,n){switch(n){case 63:r.push(e);break;default:if((t||"").indexOf("Begin")>0);else if(!((t||"").indexOf("End")>0))throw new Error("Unexpected record "+n+" "+t)}})),r}(p):function(e){var t=[];if(!e)return t;var n=1;return(e.match(ye)||[]).forEach((function(e){var r=we(e);switch(r[0]){case"":case"":break;case"-1?"sheet":Gn.CS&&n==Gn.CS?"chart":Gn.DS&&n==Gn.DS?"dialog":Gn.MS&&n==Gn.MS?"macro":n&&n.length?n:"sheet")];var n}))}catch(e){return null}return e&&0!==e.length?e:null}(C,u.Sheets));var S=ce(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(b=0;b!=c.Worksheets;++b){var N="sheet";if(C&&C[b]?(g="xl/"+C[b][1].replace(/[\/]?xl\//,""),le(e,g)||(g=C[b][1]),le(e,g)||(g=E.replace(/_rels\/.*$/,"")+C[b][1]),N=C[b][2]):g=(g="xl/worksheets/sheet"+(b+1-S)+"."+_).replace(/sheet0\./,"sheet."),y=g.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),t&&null!=t.sheets)switch(typeof t.sheets){case"number":if(b!=t.sheets)continue e;break;case"string":if(c.SheetNames[b].toLowerCase()!=t.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(t.sheets)){for(var I=!1,T=0;T!=t.sheets.length;++T)"number"==typeof t.sheets[T]&&t.sheets[T]==b&&(I=1),"string"==typeof t.sheets[T]&&t.sheets[T].toLowerCase()==c.SheetNames[b].toLowerCase()&&(I=1);if(!I)continue e}}fu(e,g,y,c.SheetNames[b],b,v,n,N,t,u,o,l)}return d={Directory:s,Workbook:u,Props:c,Custprops:f,Deps:m,Sheets:n,SheetNames:c.SheetNames,Strings:to,Styles:l,Themes:o,SSF:A.get_table()},t&&t.bookFiles&&(d.keys=a,d.files=e.files),t&&t.bookVBA&&(s.vba.length>0?d.vbaraw=ce(e,du(s.vba[0]),!0):s.defaults&&"application/vnd.ms-office.vbaProject"===s.defaults.bin&&(d.vbaraw=ce(e,"xl/vbaProject.bin",!0))),d}function mu(e,t){var n=t||{},r="Workbook",a=M.find(e,r);try{if(r="/!DataSpaces/Version",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(function(e){var t={};t.id=e.read_shift(0,"lpp4"),t.R=Xa(e,4),t.U=Xa(e,4),t.W=Xa(e,4)}(a.content),r="/!DataSpaces/DataSpaceMap",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var s=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(qa(e));return t}(a.content);if(1!==s.length||1!==s[0].comps.length||0!==s[0].comps[0].t||"StrongEncryptionDataSpace"!==s[0].name||"EncryptedPackage"!==s[0].comps[0].v)throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var i=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(e.read_shift(0,"lpp4"));return t}(a.content);if(1!=i.length||"StrongEncryptionTransform"!=i[0])throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);!function(e){var t=function(e){var t={};return e.read_shift(4),e.l+=4,t.id=e.read_shift(0,"lpp4"),t.name=e.read_shift(0,"lpp4"),t.R=Xa(e,4),t.U=Xa(e,4),t.W=Xa(e,4),t}(e);if(t.ename=e.read_shift(0,"8lpp4"),t.blksz=e.read_shift(4),t.cmode=e.read_shift(4),4!=e.read_shift(4))throw new Error("Bad !Primary record")}(a.content)}catch(e){}if(r="/EncryptionInfo",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var o=function(e){var t=Xa(e);switch(t.Minor){case 2:return[t.Minor,Ya(e)];case 3:return[t.Minor,Ja()];case 4:return[t.Minor,Qa(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}(a.content);if(r="/EncryptedPackage",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(4==o[0]&&"undefined"!=typeof decrypt_agile)return decrypt_agile(o[1],a.content,n.password||"",n);if(2==o[0]&&"undefined"!=typeof decrypt_std76)return decrypt_std76(o[1],a.content,n.password||"",n);throw new Error("File is password-protected")}function gu(e,t){if(qs=1024,"ods"==t.bookType)return Jl(e,t);e&&!e.SSF&&(e.SSF=A.get_table()),e&&e.SSF&&(D(A),A.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ro?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var n="xlsb"==t.bookType?"bin":"xml",r=ei.indexOf(t.bookType)>-1,a={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""};hu(t=t||{});var s=de(),i="",o=0;if(t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),fe(s,i="docProps/core.xml",function(e,t){var n=t||{},r=[me,sr],a={};if(!e&&!n.Props)return r.join("");e&&(null!=e.CreatedDate&&ir("dcterms:created","string"==typeof e.CreatedDate?e.CreatedDate:Qe(e.CreatedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a),null!=e.ModifiedDate&&ir("dcterms:modified","string"==typeof e.ModifiedDate?e.ModifiedDate:Qe(e.ModifiedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a));for(var s=0;s!=nr.length;++s){var i=nr[s],o=n.Props&&null!=n.Props[i[1]]?n.Props[i[1]]:e?e[i[1]]:null;!0===o?o="1":!1===o?o="0":"number"==typeof o&&(o=String(o)),null!=o&&ir(i[0],o,null,r,a)}return r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(e.Props,t)),a.coreprops.push(i),Jn(t.rels,2,i,Gn.CORE_PROPS),i="docProps/app.xml",e.Props&&e.Props.SheetNames);else if(e.Workbook&&e.Workbook.Sheets){for(var l=[],u=0;uWorksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"})),t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map((function(e){return""+Ae(e)+""})).join(""),{size:e.Worksheets,baseType:"lpstr"})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Props)),a.extprops.push(i),Jn(t.rels,3,i,Gn.EXT_PROPS),e.Custprops!==e.Props&&z(e.Custprops||{}).length>0&&(fe(s,i="docProps/custom.xml",function(e){var t=[me,hr];if(!e)return t.join("");var n=1;return z(e).forEach((function(r){++n,t[t.length]=Je("property",function(e,t){switch(typeof e){case"string":var n=Je("vt:lpwstr",Ae(e));return n.replace(/"/g,"_x0022_");case"number":return Je((0|e)==e?"vt:i4":"vt:r8",Ae(String(e)));case"boolean":return Je("vt:bool",e?"true":"false")}if(e instanceof Date)return Je("vt:filetime",Qe(e));throw new Error("Unable to serialize "+e)}(e[r]),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:n,name:Ae(r)})})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Custprops)),a.custprops.push(i),Jn(t.rels,4,i,Gn.CUST_PROPS)),o=1;o<=e.SheetNames.length;++o){var c={"!id":{}},h=e.Sheets[e.SheetNames[o-1]];switch((h||{})["!type"]||"sheet"){case"chart":default:fe(s,i="xl/worksheets/sheet"+o+"."+n,sl(o-1,i,t,e,c)),a.sheets.push(i),Jn(t.wbrels,-1,"worksheets/sheet"+o+"."+n,Gn.WS[0])}if(h){var f=h["!comments"],d=!1;if(f&&f.length>0){var p="xl/comments"+o+"."+n;fe(s,p,ol(f,p,t)),a.comments.push(p),Jn(c,-1,"../comments"+o+"."+n,Gn.CMNT),d=!0}h["!legacy"]&&d&&fe(s,"xl/drawings/vmlDrawing"+o+".vml",Ks(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,Xn(i),Zn(c))}return null!=t.Strings&&t.Strings.length>0&&(fe(s,i="xl/sharedStrings."+n,il(t.Strings,i,t)),a.strs.push(i),Jn(t.wbrels,-1,"sharedStrings."+n,Gn.SST)),fe(s,i="xl/workbook."+n,al(e,i,t)),a.workbooks.push(i),Jn(t.rels,1,i,Gn.WB),fe(s,i="xl/theme/theme1.xml",Gs(e.Themes,t)),a.themes.push(i),Jn(t.wbrels,-1,"theme/theme1.xml",Gn.THEME),fe(s,i="xl/styles."+n,function(e,t,n){return(".bin"===t.slice(-4)?Ms:Is)(e,n)}(e,i,t)),a.styles.push(i),Jn(t.wbrels,-1,"styles."+n,Gn.STY),e.vbaraw&&r&&(fe(s,i="xl/vbaProject.bin",e.vbaraw),a.vba.push(i),Jn(t.wbrels,-1,"vbaProject.bin",Gn.VBA)),fe(s,"[Content_Types].xml",function(e,t){var n,r=[];r[r.length]=me,r[r.length]=jn,r=r.concat(Hn);var a=function(a){e[a]&&e[a].length>0&&(n=e[a][0],r[r.length]=Je("Override",null,{PartName:("/"==n[0]?"":"/")+n,ContentType:Un[a][t.bookType||"xlsx"]}))},s=function(n){(e[n]||[]).forEach((function(e){r[r.length]=Je("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Un[n][t.bookType||"xlsx"]})}))},i=function(t){(e[t]||[]).forEach((function(e){r[r.length]=Je("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Vn[t][0]})}))};return a("workbooks"),s("sheets"),s("charts"),i("themes"),["strs","styles"].forEach(a),["coreprops","extprops","custprops"].forEach(i),i("vba"),i("comments"),i("drawings"),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(a,t)),fe(s,"_rels/.rels",Zn(t.rels)),fe(s,"xl/_rels/workbook."+n+".rels",Zn(t.wbrels)),delete t.revssf,delete t.ssf,s}function yu(e,t){var n="";switch((t||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":n=g.decode(e.slice(0,12));break;case"binary":n=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(t&&t.type||"undefined"))}return[n.charCodeAt(0),n.charCodeAt(1),n.charCodeAt(2),n.charCodeAt(3),n.charCodeAt(4),n.charCodeAt(5),n.charCodeAt(6),n.charCodeAt(7)]}function bu(e,t){var n=0;e:for(;n=2&&0===n[3])return Fa.to_workbook(r,s);break;case 3:case 131:case 139:case 140:return Na.to_workbook(r,s);case 123:if(92===n[1]&&114===n[2]&&116===n[3])return is.to_workbook(r,s);break;case 10:case 13:case 32:return function(e,t){var n="",r=yu(e,t);switch(t.type){case"base64":n=g.decode(e);break;case"binary":n=e;break;case"buffer":n=e.toString("binary");break;case"array":n=ee(e);break;default:throw new Error("Unrecognized type "+t.type)}return 239==r[0]&&187==r[1]&&191==r[2]&&(n=Be(n)),bu(n,t)}(r,s)}return Na.versions.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31?Na.to_workbook(r,s):vu(e,r,s,a)}function xu(e,t){var n=t||{};return n.type="file",wu(e,n)}function _u(e,t){switch(t.type){case"base64":case"binary":break;case"buffer":case"array":t.type="";break;case"file":return L(t.file,M.write(e,{type:y?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");default:throw new Error("Unrecognized type "+t.type)}return M.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Me(r));case"binary":return Me(r);case"string":return e;case"file":return L(t.file,r,"utf8");case"buffer":return y?b(r,"utf8"):ku(r,{type:"binary"}).split("").map((function(e){return e.charCodeAt(0)}))}throw new Error("Unrecognized type "+t.type)}function Eu(e,t){switch(t.type){case"string":case"base64":case"binary":for(var n="",r=0;r22)throw new Error("Bad Code Name: Worksheet"+i)}}));for(var s=0;s-1||null!=s[i][1]&&o.push(s[i]);a.length&&M.utils.cfb_add(t,"/SummaryInformation",Dr(a,Il,Bn,Tn)),(r.length||o.length)&&M.utils.cfb_add(t,"/DocumentSummaryInformation",Dr(r,Al,On,Dn,o.length?o:null,"05d5cdd59c2e1b10939708002b2cf9ae"))}(e,r),8==n.biff&&e.vbaraw&&function(e,t){t.FullPaths.forEach((function(n,r){if(0!=r){var a=n.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");"/"!==a.slice(-1)&&M.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,M.read(e.vbaraw,{type:"string"==typeof e.vbaraw?"binary":"buffer"})),r}(e,n),n)}(e,n);case"xlsx":case"xlsm":case"xlam":case"xlsb":case"ods":return function(e,t){var n=t||{},r=gu(e,n),a={};if(n.compression&&(a.compression="DEFLATE"),n.password)a.type=y?"nodebuffer":"string";else switch(n.type){case"base64":a.type="base64";break;case"binary":a.type="string";break;case"string":throw new Error("'string' output type invalid for '"+n.bookType+"' files");case"buffer":case"file":a.type=y?"nodebuffer":"string";break;default:throw new Error("Unrecognized type "+n.type)}var s=r.FullPaths?M.write(r,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[a.type]||a.type}):r.generate(a);return n.password&&"undefined"!=typeof encrypt_agile?_u(encrypt_agile(s,n.password),n):"file"===n.type?L(n.file,s):"string"==n.type?Be(s):s}(e,n);default:throw new Error("Unrecognized bookType |"+n.bookType+"|")}}function Su(e){if(!e.bookType){var t=e.file.slice(e.file.lastIndexOf(".")).toLowerCase();t.match(/^\.[a-z]+$/)&&(e.bookType=t.slice(1)),e.bookType={xls:"biff8",htm:"html",slk:"sylk",socialcalc:"eth",Sh33tJS:"WTF"}[e.bookType]||e.bookType}}function Nu(e,t,n){var r=n||{};return r.type="file",r.file=t,Su(r),Cu(e,r)}function Iu(e,t,n,r,a,s,i,o){var l=Gt(n),u=o.defval,c=o.raw||!Object.prototype.hasOwnProperty.call(o,"raw"),h=!0,f=1===a?[]:{};if(1!==a)if(Object.defineProperty)try{Object.defineProperty(f,"__rowNum__",{value:n,enumerable:!1})}catch(e){f.__rowNum__=n}else f.__rowNum__=n;if(!i||e[n])for(var d=t.s.c;d<=t.e.c;++d){var p=i?e[n][d]:e[r[d]+l];if(void 0!==p&&void 0!==p.t){var m=p.v;switch(p.t){case"z":if(null==m)break;continue;case"e":m=void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+p.t)}if(null!=s[d]){if(null==m)if(void 0!==u)f[s[d]]=u;else{if(!c||null!==m)continue;f[s[d]]=null}else f[s[d]]=c||o.rawNumbers&&"n"==p.t?m:en(p,m,o);null!=m&&(h=!1)}}else{if(void 0===u)continue;null!=s[d]&&(f[s[d]]=u)}}return{row:f,isempty:h}}function Au(e,t){if(null==e||null==e["!ref"])return[];var n={t:"n",v:0},r=0,a=1,s=[],i=0,o="",l={s:{r:0,c:0},e:{r:0,c:0}},u=t||{},c=null!=u.range?u.range:e["!ref"];switch(1===u.header?r=1:"A"===u.header?r=2:Array.isArray(u.header)?r=3:null==u.header&&(r=0),typeof c){case"string":l=Qt(c);break;case"number":(l=Qt(e["!ref"])).s.r=c;break;default:l=c}r>0&&(a=0);var h=Gt(l.s.r),f=[],d=[],p=0,m=0,g=Array.isArray(e),y=l.s.r,b=0,v=0;for(g&&!e[y]&&(e[y]=[]),b=l.s.c;b<=l.e.c;++b)switch(f[b]=qt(b),n=g?e[y][b]:e[f[b]+h],r){case 1:s[b]=b-l.s.c;break;case 2:s[b]=f[b];break;case 3:s[b]=u.header[b-l.s.c];break;default:for(null==n&&(n={w:"__EMPTY",t:"s"}),o=i=en(n,null,u),m=0,v=0;v=0&&(c='"'+c.replace(Du,'""')+'"'));u.push(c)}return!1===o.blankrows&&l?null:u.join(i)}function Fu(e,t){var n=[],r=null==t?{}:t;if(null==e||null==e["!ref"])return"";var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=qt(p));for(var m=a.s.r;m<=a.e.r;++m)(d[m]||{}).hidden||null!=(c=Tu(e,a,m,h,i,l,s,r))&&(r.strip&&(c=c.replace(u,"")),n.push(c+o));return delete r.dense,n.join("")}function Ru(e,t){t||(t={}),t.FS="\t",t.RS="\n";var n=Fu(e,t);if("undefined"==typeof cptable||"string"==t.type)return n;var r=cptable.utils.encode(1200,n,"str");return String.fromCharCode(255)+String.fromCharCode(254)+r}function Ou(e){var t,n="",r="";if(null==e||null==e["!ref"])return[];var a,s=Qt(e["!ref"]),i="",o=[],l=[],u=Array.isArray(e);for(a=s.s.c;a<=s.e.c;++a)o[a]=qt(a);for(var c=s.s.r;c<=s.e.r;++c)for(i=Gt(c),a=s.s.c;a<=s.e.c;++a)if(n=o[a]+i,r="",void 0!==(t=u?(e[c]||[])[a]:e[n])){if(null!=t.F){if(n=t.F,!t.f)continue;r=t.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=t.f)r=t.f;else{if("z"==t.t)continue;if("n"==t.t&&null!=t.v)r=""+t.v;else if("b"==t.t)r=t.v?"TRUE":"FALSE";else if(void 0!==t.w)r="'"+t.w;else{if(void 0===t.v)continue;r="s"==t.t?"'"+t.v:""+t.v}}l[l.length]=n+"="+r}return l}function Bu(e,t,n){var r,a=n||{},s=+!a.skipHeader,i=e||{},o=0,l=0;if(i&&null!=a.origin)if("number"==typeof a.origin)o=a.origin;else{var u="string"==typeof a.origin?Kt(a.origin):a.origin;o=u.r,l=u.c}var c={s:{c:0,r:0},e:{c:l,r:o+t.length-1+s}};if(i["!ref"]){var h=Qt(i["!ref"]);c.e.c=Math.max(c.e.c,h.e.c),c.e.r=Math.max(c.e.r,h.e.r),-1==o&&(o=h.e.r+1,c.e.r=o+t.length-1+s)}else-1==o&&(o=0,c.e.r=t.length-1+s);var f=a.header||[],d=0;t.forEach((function(e,t){z(e).forEach((function(n){-1==(d=f.indexOf(n))&&(f[d=f.length]=n);var u=e[n],c="z",h="",p=Zt({c:l+d,r:o+t+s});r=$u.sheet_get_cell(i,p),!u||"object"!=typeof u||u instanceof Date?("number"==typeof u?c="n":"boolean"==typeof u?c="b":"string"==typeof u?c="s":u instanceof Date&&(c="d",a.cellDates||(c="n",u=H(u)),h=a.dateNF||A._table[14]),r?(r.t=c,r.v=u,delete r.w,delete r.R,h&&(r.z=h)):i[p]=r={t:c,v:u},h&&(r.z=h)):i[p]=u}))})),c.e.c=Math.max(c.e.c,l+f.length-1);var p=Gt(o);if(s)for(d=0;d=65535)throw new Error("Too many worksheets");if(Yo(n),e.SheetNames.indexOf(n)>=0)throw new Error("Worksheet with name |"+n+"| already exists!");e.SheetNames.push(n),e.Sheets[n]=t},e.book_set_sheet_visibility=function(e,n,r){t(e,"Workbook",{}),t(e.Workbook,"Sheets",[]);var a=function(e,t){if("number"==typeof t){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}if("string"==typeof t){var n=e.SheetNames.indexOf(t);if(n>-1)return n;throw new Error("Cannot find sheet name |"+t+"|")}throw new Error("Cannot find sheet |"+t+"|")}(e,n);switch(t(e.Workbook.Sheets,a,{}),r){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+r)}e.Workbook.Sheets[a].Hidden=r},[["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]].forEach((function(t){e.consts[t[0]]=t[1]})),e.cell_set_number_format=function(e,t){return e.z=t,e},e.cell_set_hyperlink=function(e,t,n){return t?(e.l={Target:t},n&&(e.l.Tooltip=n)):delete e.l,e},e.cell_set_internal_link=function(t,n,r){return e.cell_set_hyperlink(t,"#"+n,r)},e.cell_add_comment=function(e,t,n){e.c||(e.c=[]),e.c.push({t,a:n||"SheetJS"})},e.sheet_set_array_formula=function(e,t,r){for(var a="string"!=typeof t?t:Qt(t),s="string"==typeof t?t:Jt(t),i=a.s.r;i<=a.e.r;++i)for(var o=a.s.c;o<=a.e.c;++o){var l=n(e,i,o);l.t="n",l.F=s,delete l.v,i==a.s.r&&o==a.s.c&&(l.f=r)}return e}}($u),y&&(Mu=n(791).Readable,t.stream={to_json:function(e,t){var n=Mu({objectMode:!0});if(null==e||null==e["!ref"])return n.push(null),n;var r={t:"n",v:0},a=0,s=1,i=[],o=0,l="",u={s:{r:0,c:0},e:{r:0,c:0}},c=t||{},h=null!=c.range?c.range:e["!ref"];switch(1===c.header?a=1:"A"===c.header?a=2:Array.isArray(c.header)&&(a=3),typeof h){case"string":u=Qt(h);break;case"number":(u=Qt(e["!ref"])).s.r=h;break;default:u=h}a>0&&(s=0);var f=Gt(u.s.r),d=[],p=0,m=Array.isArray(e),g=u.s.r,y=0,b=0;for(m&&!e[g]&&(e[g]=[]),y=u.s.c;y<=u.e.c;++y)switch(d[y]=qt(y),r=m?e[g][y]:e[d[y]+f],a){case 1:i[y]=y-u.s.c;break;case 2:i[y]=d[y];break;case 3:i[y]=c.header[y-u.s.c];break;default:for(null==r&&(r={w:"__EMPTY",t:"s"}),l=o=en(r,null,c),p=0,b=0;bu.e.r)return n.push(null);for(;g<=u.e.r;){var t=Iu(e,u,g,d,a,i,m,c);if(++g,!1===t.isempty||(1===a?!1!==c.blankrows:c.blankrows)){n.push(t.row);break}}},n},to_html:function(e,t){var n=Mu(),r=t||{},a=null!=r.header?r.header:Ul.BEGIN,s=null!=r.footer?r.footer:Ul.END;n.push(a);var i=Yt(e["!ref"]);r.dense=Array.isArray(e),n.push(Ul._preamble(e,i,r));var o=i.s.r,l=!1;return n._read=function(){if(o>i.e.r)return l||(l=!0,n.push(""+s)),n.push(null);for(;o<=i.e.r;){n.push(Ul._row(e,i,o,r)),++o;break}},n},to_csv:function(e,t){var n=Mu(),r=null==t?{}:t;if(null==e||null==e["!ref"])return n.push(null),n;var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=qt(p));var m=a.s.r,g=!1;return n._read=function(){if(!g)return g=!0,n.push("\ufeff");for(;m<=a.e.r;)if(++m,!(d[m-1]||{}).hidden&&null!=(c=Tu(e,a,m-1,h,i,l,s,r))){r.strip&&(c=c.replace(u,"")),n.push(c+o);break}return m>a.e.r?n.push(null):void 0},n}}),t.parse_xlscfb=Dl,t.parse_zip=pu,t.read=wu,t.readFile=xu,t.readFileSync=xu,t.write=Cu,t.writeFile=Nu,t.writeFileSync=Nu,t.writeFileAsync=function(e,t,n,r){var a=n||{};a.type="file",a.file=e,Su(a),a.type="buffer";var s=r;return s instanceof Function||(s=n),B.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=A,void 0!==M&&(t.CFB=M)}(t)},3906:()=>{},2993:()=>{},8352:()=>{},791:()=>{},4589:()=>{},1758:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(2476)})(); +var dfd;dfd=(()=>{var __webpack_modules__={7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,s,i){try{var o=e[s](i),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,s){var i=e.apply(n,r);function o(e){t(i,a,s,o,l,"next",e)}function l(e){t(i,a,s,o,l,"throw",e)}o(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},3913:e=>{function t(e,t){for(var n=0;n{var r=n(8331);function a(t,n,s){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=a=Reflect.get:e.exports=a=function(e,t,n){var a=r(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(n):s.value}},a(t,n,s||t)}e.exports=a},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw s}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),s=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||s(e,t)||i()}},8331:(e,t,n)=>{var r=n(9754);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},319:(e,t,n)=>{var r=n(3646),a=n(6860),s=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||s(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},7757:(e,t,n)=>{e.exports=n(5666)},2563:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>je,Acos:()=>He,Acosh:()=>Ge,AdadeltaOptimizer:()=>Fo,AdagradOptimizer:()=>Bo,AdamOptimizer:()=>Po,AdamaxOptimizer:()=>jo,Add:()=>qe,AddN:()=>Xe,All:()=>Ke,Any:()=>Ye,ArgMax:()=>Je,ArgMin:()=>Ze,Asin:()=>Qe,Asinh:()=>et,Atan:()=>tt,Atan2:()=>rt,Atanh:()=>nt,AvgPool:()=>at,AvgPool3D:()=>it,AvgPool3DGrad:()=>ot,AvgPoolGrad:()=>st,BatchMatMul:()=>lt,BatchToSpaceND:()=>ut,Bincount:()=>ct,BroadcastTo:()=>ht,Callback:()=>fx,CallbackList:()=>my,Cast:()=>ft,Ceil:()=>dt,ClipByValue:()=>pt,Complex:()=>mt,ComplexAbs:()=>gt,Concat:()=>yt,Conv2D:()=>bt,Conv2DBackpropFilter:()=>vt,Conv2DBackpropInput:()=>wt,Conv3D:()=>_t,Conv3DBackpropFilterV2:()=>xt,Conv3DBackpropInputV2:()=>kt,Cos:()=>Et,Cosh:()=>Ct,CropAndResize:()=>Nt,Cumsum:()=>St,CustomCallback:()=>by,DataStorage:()=>V,DenseBincount:()=>It,DepthToSpace:()=>Dt,DepthwiseConv2dNative:()=>At,DepthwiseConv2dNativeBackpropFilter:()=>Tt,DepthwiseConv2dNativeBackpropInput:()=>Rt,Diag:()=>Ft,Dilation2D:()=>Ot,Dilation2DBackpropFilter:()=>Mt,Dilation2DBackpropInput:()=>Bt,ENV:()=>We,EarlyStopping:()=>mx,Elu:()=>Pt,EluGrad:()=>Lt,Environment:()=>Pe,Equal:()=>Wt,Erf:()=>zt,Exp:()=>Ut,ExpandDims:()=>Vt,Expm1:()=>jt,FFT:()=>Ht,Fill:()=>Gt,FlipLeftRight:()=>qt,Floor:()=>Xt,FloorDiv:()=>Kt,FromPixels:()=>Br,FusedBatchNorm:()=>Yt,FusedConv2D:()=>Pr,FusedDepthwiseConv2D:()=>Lr,GatherNd:()=>Zt,GatherV2:()=>Jt,GraphModel:()=>Sk,Greater:()=>Qt,GreaterEqual:()=>en,History:()=>yy,IFFT:()=>nn,Identity:()=>tn,Imag:()=>rn,InputSpec:()=>ny,IsFinite:()=>an,IsInf:()=>sn,IsNan:()=>on,KernelBackend:()=>j,LRN:()=>bn,LRNGrad:()=>vn,LayerVariable:()=>Qg,LayersModel:()=>kb,LeakyRelu:()=>ln,Less:()=>un,LessEqual:()=>cn,LinSpace:()=>hn,Log:()=>fn,Log1p:()=>dn,LogSoftmax:()=>yn,LogicalAnd:()=>pn,LogicalNot:()=>mn,LogicalOr:()=>gn,Max:()=>wn,MaxPool:()=>xn,MaxPool3D:()=>En,MaxPool3DGrad:()=>Cn,MaxPoolGrad:()=>kn,MaxPoolWithArgmax:()=>Sn,Maximum:()=>_n,Mean:()=>Nn,Min:()=>In,Minimum:()=>Dn,MirrorPad:()=>An,Mod:()=>Tn,MomentumOptimizer:()=>Go,Multinomial:()=>Rn,Multiply:()=>Fn,Neg:()=>On,NonMaxSuppressionV3:()=>Mn,NonMaxSuppressionV4:()=>$n,NonMaxSuppressionV5:()=>Pn,NotEqual:()=>Bn,OP_SCOPE_SUFFIX:()=>Va,OneHot:()=>zn,OnesLike:()=>Ln,Optimizer:()=>Ro,Pack:()=>Wn,PadV2:()=>Un,Pool:()=>Vn,Pow:()=>jn,Prelu:()=>Hn,Prod:()=>Gn,RMSPropOptimizer:()=>qo,RNN:()=>Nv,Range:()=>qn,Rank:()=>ya,Real:()=>Xn,RealDiv:()=>$t,Reciprocal:()=>Kn,Reduction:()=>Nf,Relu:()=>Yn,Relu6:()=>nr,Reshape:()=>Jn,ResizeBilinear:()=>er,ResizeBilinearGrad:()=>tr,ResizeNearestNeighbor:()=>Zn,ResizeNearestNeighborGrad:()=>Qn,Reverse:()=>rr,RotateWithOffset:()=>Mr,Round:()=>ar,Rsqrt:()=>sr,SGDOptimizer:()=>Ho,ScatterNd:()=>ir,Select:()=>or,Selu:()=>lr,Sequential:()=>Sb,Sigmoid:()=>dr,Sign:()=>fr,Sin:()=>cr,Sinh:()=>hr,Slice:()=>ur,Softmax:()=>vr,Softplus:()=>pr,SpaceToBatchND:()=>yr,SparseToDense:()=>kr,SplitV:()=>br,Sqrt:()=>mr,Square:()=>_r,SquaredDifference:()=>wr,Step:()=>Or,StridedSlice:()=>Er,Sub:()=>xr,Sum:()=>gr,SymbolicTensor:()=>ry,Tan:()=>Cr,Tanh:()=>Sr,Tensor:()=>ma,TensorBuffer:()=>ha,Tile:()=>Nr,TopK:()=>Ir,Transpose:()=>Dr,Unique:()=>Ar,Unpack:()=>Tr,UnsortedSegmentSum:()=>Rr,Variable:()=>ga,ZerosLike:()=>Fr,_FusedMatMul:()=>$r,abs:()=>Lo,acos:()=>Xo,acosh:()=>Ko,add:()=>yo,addN:()=>Yo,addStrict:()=>Ch,all:()=>Jo,any:()=>Zo,argMax:()=>Qo,argMin:()=>el,asin:()=>tl,asinh:()=>nl,atan:()=>rl,atan2:()=>al,atanh:()=>sl,avgPool:()=>wl,avgPool3d:()=>_l,backend:()=>mo,backend_util:()=>g,basicLSTMCell:()=>Sl,batchNorm:()=>Il,batchNorm2d:()=>Dl,batchNorm3d:()=>Al,batchNorm4d:()=>Tl,batchToSpaceND:()=>Nl,bincount:()=>Rl,booleanMaskAsync:()=>bh,broadcastTo:()=>Fl,browser:()=>l,buffer:()=>Ls,callbacks:()=>gx,cast:()=>zs,ceil:()=>Ol,clipByValue:()=>Bl,clone:()=>Ws,complex:()=>Ha,concat:()=>xl,concat1d:()=>Ml,concat2d:()=>$l,concat3d:()=>Pl,concat4d:()=>Ll,constraints:()=>b,conv1d:()=>Wl,conv2d:()=>zl,conv2dTranspose:()=>Vl,conv3d:()=>jl,conv3dTranspose:()=>Gl,copyRegisteredKernels:()=>Kr,cos:()=>ql,cosh:()=>Xl,cosineWindow:()=>Uh,cumsum:()=>Kl,customGrad:()=>Do,data:()=>W,denseBincount:()=>Yl,deprecationWarn:()=>Zi,depthToSpace:()=>Jl,depthwiseConv2d:()=>Zl,deregisterOp:()=>xx,device_util:()=>s,diag:()=>Ql,dilation2d:()=>eu,disableDeprecationWarnings:()=>Ji,dispose:()=>ao,disposeVariables:()=>Qi,div:()=>vo,divNoNan:()=>ru,divStrict:()=>Sh,dot:()=>au,dropout:()=>zh,elu:()=>su,enableDebugMode:()=>Yi,enableProdMode:()=>Ki,enclosingPowerOfTwo:()=>Wh,engine:()=>eo,env:()=>Le,equal:()=>tu,equalStrict:()=>vh,erf:()=>iu,exp:()=>ou,expandDims:()=>lu,expm1:()=>uu,eye:()=>hu,fft:()=>Xc,fill:()=>Oo,findBackend:()=>ho,findBackendFactory:()=>fo,floor:()=>fu,floorDiv:()=>bo,fused:()=>p,gather:()=>du,gatherND:()=>Lh,gather_util:()=>u,getBackend:()=>uo,getGradient:()=>Vr,getKernel:()=>Ur,getKernelsForBackend:()=>jr,grad:()=>Eo,grads:()=>Co,greater:()=>pu,greaterEqual:()=>mu,greaterEqualStrict:()=>wh,greaterStrict:()=>_h,ifft:()=>Kc,imag:()=>gu,image:()=>Lf,inTopKAsync:()=>Vh,initializers:()=>v,input:()=>Ab,io:()=>i,irfft:()=>Yc,isFinite:()=>yu,isInf:()=>bu,isNaN:()=>vu,keep:()=>so,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>wu,less:()=>_u,lessEqual:()=>xu,lessEqualStrict:()=>xh,lessStrict:()=>kh,linalg:()=>zf,linspace:()=>ku,loadGraphModel:()=>Nk,loadLayersModel:()=>Db,localResponseNormalization:()=>Eu,log:()=>Cu,log1p:()=>Su,logSigmoid:()=>Du,logSoftmax:()=>Ru,logSumExp:()=>Wu,logicalAnd:()=>Uu,logicalNot:()=>Vu,logicalOr:()=>ju,logicalXor:()=>Hu,losses:()=>Wf,matMul:()=>ii,math:()=>o,max:()=>Au,maxPool:()=>Gu,maxPool3d:()=>qu,maxPoolWithArgmax:()=>Xu,maximum:()=>Vo,maximumStrict:()=>Nh,mean:()=>Ku,memory:()=>to,metrics:()=>_,min:()=>Yu,minimum:()=>Ju,minimumStrict:()=>Ih,mirrorPad:()=>Zu,mod:()=>Qu,modStrict:()=>Dh,model:()=>Nb,models:()=>x,moments:()=>ec,movingAverage:()=>Mh,mul:()=>wo,mulStrict:()=>Ah,multiRNNCell:()=>tc,multinomial:()=>nc,neg:()=>Nu,nextFrame:()=>Hf,norm:()=>Bh,notEqual:()=>rc,notEqualStrict:()=>Eh,oneHot:()=>oi,ones:()=>sc,onesLike:()=>ic,op:()=>ja,outerProduct:()=>oc,pad:()=>lc,pad1d:()=>uc,pad2d:()=>cc,pad3d:()=>hc,pad4d:()=>fc,pool:()=>pc,pow:()=>Mo,powStrict:()=>Th,prelu:()=>mc,print:()=>Us,prod:()=>gc,profile:()=>no,rand:()=>yc,randomGamma:()=>xc,randomNormal:()=>kc,randomUniform:()=>Ec,range:()=>Cc,ready:()=>lo,real:()=>Sc,reciprocal:()=>Nc,registerBackend:()=>po,registerCallbackConstructor:()=>Tb,registerGradient:()=>Gr,registerKernel:()=>Hr,registerOp:()=>wx,regularizers:()=>k,relu:()=>Ic,relu6:()=>Dc,removeBackend:()=>co,reshape:()=>vl,reverse:()=>Ac,reverse1d:()=>Tc,reverse2d:()=>Rc,reverse3d:()=>Fc,reverse4d:()=>Oc,rfft:()=>Zc,round:()=>Bc,rsqrt:()=>Mc,scalar:()=>To,scatterND:()=>$h,scatter_util:()=>c,selu:()=>$c,separableConv2d:()=>Pc,sequential:()=>Ib,serialization:()=>f,setBackend:()=>oo,setPlatform:()=>go,setdiff1dAsync:()=>Lc,sigmoid:()=>kl,sign:()=>zc,signal:()=>Pf,sin:()=>Wc,sinh:()=>Uc,slice:()=>El,slice1d:()=>Vc,slice2d:()=>jc,slice3d:()=>Hc,slice4d:()=>Gc,slice_util:()=>h,softmax:()=>qc,softplus:()=>Iu,spaceToBatchND:()=>dc,sparseToDense:()=>Ph,spectral:()=>$f,split:()=>Jc,sqrt:()=>_o,square:()=>xo,squaredDifference:()=>Qc,squaredDifferenceStrict:()=>Rh,squeeze:()=>eh,stack:()=>th,step:()=>nh,stridedSlice:()=>rh,sub:()=>$o,subStrict:()=>Fh,sum:()=>Tu,sumOutType:()=>Ea,tan:()=>ah,tanh:()=>Cl,tensor:()=>qa,tensor1d:()=>sh,tensor2d:()=>ih,tensor3d:()=>ci,tensor4d:()=>oh,tensor5d:()=>lh,tensor6d:()=>uh,tensor_util:()=>a,test_util:()=>d,tidy:()=>ro,tile:()=>cu,time:()=>io,topk:()=>ch,train:()=>Vf,transpose:()=>li,truncatedNormal:()=>hh,unique:()=>fh,unregisterGradient:()=>Xr,unregisterKernel:()=>qr,unsortedSegmentSum:()=>dh,unstack:()=>ph,upcastType:()=>ka,util:()=>r,valueAndGrad:()=>So,valueAndGrads:()=>No,variable:()=>mh,variableGrads:()=>Io,version:()=>wP,version_converter:()=>Ik,version_core:()=>Xi,version_layers:()=>Zy,where:()=>nu,whereAsync:()=>yh,zeros:()=>ac,zerosLike:()=>ko});var r={};n.r(r),n.d(r,{arraysEqual:()=>ae,assert:()=>Z,assertNonNegativeIntegerDimensions:()=>Oe,assertNonNull:()=>ee,assertShapesMatch:()=>Q,bytesFromStringArray:()=>_e,bytesPerElement:()=>we,checkConversionForErrors:()=>ge,clamp:()=>q,computeStrides:()=>Ie,createScalarValue:()=>sa,createShuffledIndices:()=>le,decodeString:()=>ca,distSquared:()=>J,encodeString:()=>ua,fetch:()=>la,flatten:()=>te,getArrayFromDType:()=>me,getTypedArrayFromDType:()=>pe,hasEncodingLoss:()=>be,indexToLoc:()=>Me,inferDtype:()=>Ce,inferFromImplicitShape:()=>he,isBoolean:()=>ke,isFunction:()=>Se,isInt:()=>se,isNumber:()=>Ee,isPromise:()=>$e,isScalarShape:()=>re,isString:()=>xe,isTypedArray:()=>ve,isValidDtype:()=>ye,locToIndex:()=>Be,makeOnesTypedArray:()=>Te,makeZerosNestedTypedArray:()=>Fe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ne,nearestLargerEven:()=>X,now:()=>oa,parseAxisParam:()=>fe,randUniform:()=>Y,repeatedTry:()=>ce,rightPad:()=>ue,shuffle:()=>G,sizeFromShape:()=>ne,sizeToSquarishShape:()=>oe,squeezeShape:()=>de,sum:()=>K,tanh:()=>ie,toNestedArray:()=>Ae,toTypedArray:()=>ia});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Sa,getTensorsInContainer:()=>Ia,isTensorInList:()=>Na,makeTypesMatch:()=>Ca});var s={};n.r(s),n.d(s,{isBrowser:()=>Ma,isMobile:()=>Ba});var i={};n.r(i),n.d(i,{browserFiles:()=>Gs,browserHTTPRequest:()=>ti,concatenateArrayBuffers:()=>es,copyModel:()=>Bs,decodeWeights:()=>Ya,encodeWeights:()=>Ka,fromMemory:()=>ai,getLoadHandlers:()=>ls,getModelArtifactsInfoForJSON:()=>ns,getSaveHandlers:()=>os,http:()=>ei,isHTTPScheme:()=>Zs,listModels:()=>Fs,loadWeights:()=>Ks,moveModel:()=>Ms,registerLoadRouter:()=>is,registerSaveRouter:()=>ss,removeModel:()=>Os,weightsLoaderFactory:()=>Ys,withSaveHandler:()=>si});var o={};n.r(o),n.d(o,{confusionMatrix:()=>ui});var l={};n.r(l),n.d(l,{fromPixels:()=>di,toPixels:()=>fi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>pi});var c={};n.r(c),n.d(c,{calculateShapes:()=>yi,validateInput:()=>gi,validateUpdateShape:()=>mi});var h={};n.r(h),n.d(h,{assertParamsValid:()=>bi,computeFlatOffset:()=>Ti,computeOutShape:()=>wi,getNormalizedAxes:()=>Ei,isSliceContinous:()=>Ai,maskToAxes:()=>vi,parseSliceParams:()=>Ri,sliceInfo:()=>Fi,startForAxis:()=>Ii,startIndicesWithElidedDims:()=>Ci,stopForAxis:()=>Di,stopIndicesWithElidedDims:()=>Si,stridesForAxis:()=>Ni,stridesWithElidedDims:()=>_i});var f={};n.r(f),n.d(f,{Serializable:()=>Oi,SerializationMap:()=>Bi,registerClass:()=>Mi});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>$i,encodeStrings:()=>qi,expectArrayBuffersEqual:()=>Gi,expectArraysClose:()=>Pi,expectArraysEqual:()=>Ui,expectNumbersClose:()=>Vi,expectPromiseToFail:()=>Wi,expectValuesInRange:()=>Hi,testEpsilon:()=>Li});var p={};n.r(p),n.d(p,{conv2d:()=>Kh,depthwiseConv2d:()=>Zh,matMul:()=>Qh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>kd,computeOutShape:()=>xd,segOpComputeOptimalWindowSize:()=>_d});var g={};n.r(g),n.d(g,{ERF_A1:()=>sd,ERF_A2:()=>id,ERF_A3:()=>od,ERF_A4:()=>ld,ERF_A5:()=>ud,ERF_P:()=>ad,PARALLELIZE_THRESHOLD:()=>Xf,SELU_SCALE:()=>rd,SELU_SCALEALPHA:()=>nd,applyActivation:()=>qh,assertAndGetBroadcastShape:()=>Uo,assertAxesAreInnerMostDims:()=>$u,assertParamsConsistent:()=>Gf,assignToTypedArray:()=>yd,axesAreInnerMostDims:()=>Fu,calculateShapes:()=>yi,castTensor:()=>Ed,combineLocations:()=>Ou,complexWithEvenIndex:()=>pd,complexWithOddIndex:()=>md,computeConv2DInfo:()=>ul,computeConv3DInfo:()=>cl,computeDefaultPad:()=>hl,computeDilation2DInfo:()=>il,computeOptimalWindowSize:()=>Kf,computeOutAndReduceShapes:()=>Bu,computeOutShape:()=>qf,computePool2DInfo:()=>ol,computePool3DInfo:()=>ll,convertConv2DDataFormat:()=>bl,eitherStridesOrDilationsAreOne:()=>yl,expandShapeToKeepDim:()=>Mu,exponent:()=>vd,exponents:()=>bd,fromStringArrayToUint8:()=>Nd,fromUint8ToStringArray:()=>Sd,getAxesPermutation:()=>Pu,getBroadcastDims:()=>zo,getComplexWithIndex:()=>gd,getFusedBiasGradient:()=>Gh,getFusedDyActivation:()=>Hh,getImageCenter:()=>Yf,getInnerMostAxes:()=>zu,getPermuted:()=>Zf,getReductionAxes:()=>Wo,getReshaped:()=>Jf,getReshapedPermuted:()=>Qf,getSliceBeginCoords:()=>ed,getSliceSize:()=>td,getUndoAxesPermutation:()=>Lu,log:()=>hd,mergeRealAndImagArrays:()=>fd,prepareAndValidate:()=>pi,prepareSplitSize:()=>wd,reshapeTensor:()=>Cd,segment_util:()=>m,shouldFuse:()=>Xh,slice_util:()=>h,splitRealAndImagArrays:()=>dd,tupleValuesAreOne:()=>gl,upcastType:()=>ka,validateInput:()=>gi,validateUpdateShape:()=>mi,warn:()=>cd});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>ff,nonMaxSuppressionV4Impl:()=>df,nonMaxSuppressionV5Impl:()=>pf,whereImpl:()=>gh});var b={};n.r(b),n.d(b,{maxNorm:()=>_m,minMaxNorm:()=>Em,nonNeg:()=>km,unitNorm:()=>xm});var v={};n.r(v),n.d(v,{constant:()=>Tg,glorotNormal:()=>Pg,glorotUniform:()=>$g,heNormal:()=>Lg,heUniform:()=>zg,identity:()=>Bg,leCunNormal:()=>Wg,leCunUniform:()=>Ug,ones:()=>Ag,orthogonal:()=>Vg,randomNormal:()=>Fg,randomUniform:()=>Rg,truncatedNormal:()=>Og,varianceScaling:()=>Mg,zeros:()=>Dg});var w={};n.r(w),n.d(w,{Layer:()=>oy,RNN:()=>Nv,RNNCell:()=>Iv,activation:()=>qw,add:()=>n_,alphaDropout:()=>G_,average:()=>r_,averagePooling1d:()=>f_,averagePooling2d:()=>m_,averagePooling3d:()=>b_,avgPool1d:()=>d_,avgPool2d:()=>g_,avgPool3d:()=>v_,avgPooling1d:()=>p_,avgPooling2d:()=>y_,avgPooling3d:()=>w_,batchNormalization:()=>u_,bidirectional:()=>P_,concatenate:()=>a_,conv1d:()=>Lw,conv2d:()=>zw,conv2dTranspose:()=>Ww,conv3d:()=>Uw,convLstm2d:()=>O_,convLstm2dCell:()=>B_,cropping2D:()=>jw,dense:()=>Xw,depthwiseConv2d:()=>Gw,dot:()=>l_,dropout:()=>Kw,elu:()=>Fw,embedding:()=>t_,flatten:()=>Jw,gaussianDropout:()=>H_,gaussianNoise:()=>j_,globalAveragePooling1d:()=>__,globalAveragePooling2d:()=>x_,globalMaxPool1d:()=>z_,globalMaxPool2d:()=>W_,globalMaxPooling1d:()=>k_,globalMaxPooling2d:()=>E_,gru:()=>I_,gruCell:()=>D_,input:()=>Ab,inputLayer:()=>Rw,layerNormalization:()=>c_,leakyReLU:()=>Bw,lstm:()=>A_,lstmCell:()=>T_,masking:()=>q_,maxPool1d:()=>U_,maxPool2d:()=>V_,maxPooling1d:()=>C_,maxPooling2d:()=>S_,maxPooling3d:()=>N_,maximum:()=>s_,minimum:()=>i_,multiply:()=>o_,permute:()=>e_,prelu:()=>Mw,reLU:()=>Ow,repeatVector:()=>Zw,reshape:()=>Qw,rnn:()=>M_,separableConv2d:()=>Vw,simpleRNN:()=>R_,simpleRNNCell:()=>F_,softmax:()=>$w,spatialDropout1d:()=>Yw,stackedRNNCells:()=>$_,thresholdedReLU:()=>Pw,timeDistributed:()=>L_,upSampling2d:()=>Hw,zeroPadding2d:()=>h_});var _={};n.r(_),n.d(_,{MAPE:()=>ax,MSE:()=>ox,binaryAccuracy:()=>X_,binaryCrossentropy:()=>K_,categoricalAccuracy:()=>J_,categoricalCrossentropy:()=>Z_,cosineProximity:()=>tx,mape:()=>sx,meanAbsoluteError:()=>nx,meanAbsolutePercentageError:()=>rx,meanSquaredError:()=>ix,mse:()=>lx,precision:()=>Q_,recall:()=>ex,sparseCategoricalAccuracy:()=>Y_});var x={};n.r(x),n.d(x,{modelFromJSON:()=>Cb});var k={};n.r(k),n.d(k,{l1:()=>cx,l1l2:()=>ux,l2:()=>hx});var E={};n.r(E),n.d(E,{json:()=>Ax});var C={};n.r(C),n.d(C,{json:()=>Tx});var S={};n.r(S),n.d(S,{json:()=>Rx});var N={};n.r(N),n.d(N,{json:()=>Fx});var I={};n.r(I),n.d(I,{json:()=>Ox});var D={};n.r(D),n.d(D,{json:()=>Bx});var A={};n.r(A),n.d(A,{json:()=>Mx});var T={};n.r(T),n.d(T,{json:()=>$x});var R={};n.r(R),n.d(R,{json:()=>Px});var F={};n.r(F),n.d(F,{json:()=>Lx});var O={};n.r(O),n.d(O,{json:()=>zx});var B={};n.r(B),n.d(B,{json:()=>Wx});var M={};n.r(M),n.d(M,{json:()=>Ux});var $={};n.r($),n.d($,{json:()=>Vx});var P={};n.r(P),n.d(P,{json:()=>jx});var L={};n.r(L),n.d(L,{json:()=>Hx});var z={};n.r(z),n.d(z,{json:()=>Gx});var W={};n.r(W),n.d(W,{CSVDataset:()=>gE,Dataset:()=>aE,FileDataSource:()=>IE,TextLineDataset:()=>uE,URLDataSource:()=>DE,array:()=>iE,csv:()=>AE,func:()=>TE,generator:()=>RE,microphone:()=>OE,version_data:()=>BE,webcam:()=>FE,zip:()=>oE});var U={};n.r(U),n.d(U,{addImpl:()=>hC,bincountImpl:()=>rS,bincountReduceImpl:()=>aS,ceilImpl:()=>oS,concatImpl:()=>dS,expImpl:()=>QS,expm1Impl:()=>aN,floorImpl:()=>CN,gatherV2Impl:()=>ON,greaterImpl:()=>MN,lessImpl:()=>KN,linSpaceImpl:()=>tI,logImpl:()=>rI,maxImpl:()=>bI,maximumImpl:()=>_I,minimumImpl:()=>FI,multiplyImpl:()=>oN,negImpl:()=>VI,notEqualImpl:()=>JI,prodImpl:()=>cD,rangeImpl:()=>fD,rsqrtImpl:()=>ED,simpleAbsImpl:()=>wC,sliceImpl:()=>QC,squaredDifferenceImpl:()=>JD,stridedSliceImpl:()=>nA,subImpl:()=>pN,tileImpl:()=>oA,topKImpl:()=>lA,transposeImpl:()=>NC,uniqueImpl:()=>uA});class V{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class j{decComplexRef(e){}time(e){return H("time")}read(e){return H("read")}readSync(e){return H("readSync")}numDataIds(){return H("numDataIds")}disposeData(e){return H("disposeData")}write(e,t,n){return H("write")}move(e,t,n,r){return H("move")}memory(){return H("memory")}floatPrecision(){return H("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}batchMatMul(e,t,n,r){return H("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:n,transposeB:r,bias:a,activation:s,preluActivationWeights:i}){return H("fusedBatchMatMul")}slice(e,t,n){return H("slice")}stridedSlice(e,t,n,r){return H("stridedSlice")}unstack(e,t){return H("unstack")}reverse(e,t){return H("reverse")}concat(e,t){return H("concat")}neg(e){return H("neg")}add(e,t){return H("add")}addN(e){return H("addN")}subtract(e,t){return H("subtract")}multiply(e,t){return H("multiply")}realDivide(e,t){return H("realDivide")}floorDiv(e,t){return H("floorDiv")}sum(e,t){return H("sum")}prod(e,t){return H("prod")}unsortedSegmentSum(e,t,n){return H("unsortedSegmentSum")}argMin(e,t){return H("argMin")}argMax(e,t){return H("argMax")}equal(e,t){return H("equal")}notEqual(e,t){return H("notEqual")}less(e,t){return H("less")}lessEqual(e,t){return H("lessEqual")}greater(e,t){return H("greater")}greaterEqual(e,t){return H("greaterEqual")}logicalNot(e){return H("logicalNot")}logicalAnd(e,t){return H("logicalAnd")}logicalOr(e,t){return H("logicalOr")}where(e){return H("where")}select(e,t,n){return H("select")}topk(e,t,n){return H("topk")}min(e,t){return H("min")}minimum(e,t){return H("minimum")}mod(e,t){return H("mod")}max(e,t){return H("max")}maximum(e,t){return H("maximum")}all(e,t){return H("all")}any(e,t){return H("any")}squaredDifference(e,t){return H("squaredDifference")}ceil(e){return H("ceil")}floor(e){return H("floor")}round(e){return H("round")}sign(e){return H("sign")}isNaN(e){return H("isNaN")}isInf(e){return H("isInf")}isFinite(e){return H("isFinite")}pow(e,t){return H("pow")}exp(e){return H("exp")}expm1(e){return H("expm1")}softmax(e,t){return H("softmax")}log(e){return H("log")}log1p(e){return H("log1p")}sqrt(e){return H("sqrt")}rsqrt(e){return H("rsqrt")}square(e){return H("square")}reciprocal(e){return H("reciprocal")}relu(e){return H("relu")}relu6(e){return H("relu6")}prelu(e,t){return H("prelu")}elu(e){return H("elu")}eluDer(e,t){return H("eluDer")}selu(e){return H("selu")}int(e){return H("int")}clip(e,t,n){return H("clip")}abs(e){return H("abs")}complexAbs(e){return H("complexAbs")}sigmoid(e){return H("sigmoid")}softplus(e){return H("softplus")}sin(e){return H("sin")}cos(e){return H("cos")}tan(e){return H("tan")}asin(e){return H("asin")}acos(e){return H("acos")}atan(e){return H("atan")}atan2(e,t){return H("atan2")}sinh(e){return H("sinh")}cosh(e){return H("cosh")}tanh(e){return H("tanh")}asinh(e){return H("asinh")}acosh(e){return H("acosh")}atanh(e){return H("atanh")}erf(e){return H("erf")}step(e,t){return H("step")}fusedConv2d({input:e,filter:t,convInfo:n,bias:r,activation:a,preluActivationWeights:s}){return H("fusedConv2d")}conv2d(e,t,n){return H("conv2d")}conv2dDerInput(e,t,n){return H("conv2dDerInput")}conv2dDerFilter(e,t,n){return H("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:n,bias:r,activation:a,preluActivationWeights:s}){return H("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,n){return H("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,n){return H("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,n){return H("depthwiseConv2DDerFilter")}conv3d(e,t,n){return H("conv3d")}conv3dDerInput(e,t,n){return H("conv3dDerInput")}conv3dDerFilter(e,t,n){return H("conv3dDerFilter")}maxPool(e,t){return H("maxPool")}maxPoolBackprop(e,t,n,r){return H("maxPoolBackprop")}avgPool(e,t){return H("avgPool")}avgPoolBackprop(e,t,n){return H("avgPoolBackprop")}avgPool3d(e,t){return H("avgPool3d")}avgPool3dBackprop(e,t,n){return H("avgPool3dBackprop")}maxPool3d(e,t){return H("maxPool3d")}maxPool3dBackprop(e,t,n,r){return H("maxPool3dBackprop")}reshape(e,t){return H("reshape")}cast(e,t){return H("cast")}tile(e,t){return H("tile")}pad(e,t,n){return H("pad")}transpose(e,t){return H("transpose")}gather(e,t,n,r=0){return H("gather")}gatherND(e,t){return H("gatherND")}scatterND(e,t,n){return H("scatterND")}batchToSpaceND(e,t,n){return H("batchToSpaceND")}spaceToBatchND(e,t,n){return H("spaceToBatchND")}resizeBilinear(e,t,n,r,a){return H("resizeBilinear")}resizeBilinearBackprop(e,t,n){return H("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,n,r,a){return H("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,n){return H("resizeNearestNeighborBackprop")}batchNorm(e,t,n,r,a,s){return H("batchNorm")}localResponseNormalization4D(e,t,n,r,a){return H("localResponseNormalization4D")}LRNGrad(e,t,n,r,a,s,i){return H("LRNGrad")}multinomial(e,t,n,r){return H("multinomial")}oneHot(e,t,n,r){return H("oneHot")}cumsum(e,t,n,r){return H("cumsum")}nonMaxSuppression(e,t,n,r,a){return H("nonMaxSuppression")}fft(e){return H("fft")}ifft(e){return H("ifft")}complex(e,t){return H("complex")}real(e){return H("real")}imag(e){return H("imag")}cropAndResize(e,t,n,r,a,s){return H("cropAndResize")}depthToSpace(e,t,n){return H("depthToSpace")}split(e,t,n){return H("split")}sparseToDense(e,t,n,r){return H("sparseToDense")}diag(e){return H("diag")}fill(e,t,n){return H("fill")}onesLike(e){return H("onesLike")}zerosLike(e){return H("zerosLike")}linspace(e,t,n){return H("linspace")}dispose(){return H("dispose")}}function H(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function G(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function q(e,t,n){return Math.max(e,Math.min(t,n))}function X(e){return e%2==0?e:e+1}function K(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}function ee(e){Z(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function te(e,t=[],n=!1){if(null==t&&(t=[]),Array.isArray(e)||ve(e)&&!n)for(let r=0;r0),n){return new Promise(((r,a)=>{let s=0;const i=()=>{if(e())return void r();s++;const o=t(s);null!=n&&s>=n?a():setTimeout(i,o)};i()}))}function he(e,t){let n=1,r=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==r)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${t}`);r=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===r){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===n)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);const a=e.slice();return a[r]=t/n,a}function fe(e,t){const n=t.length;return Z((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Z(e.every((e=>se(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function de(e,t){const n=[],r=[],a=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||a?null:fe(t,e).sort();let i=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),r.push(t)),s[i]<=t&&i++}1!==e[t]&&(n.push(e[t]),r.push(t))}return{newShape:n,keptDims:r}}function pe(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);n=new Uint8Array(t)}return n}function me(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);n=new Array(t)}return n}function ge(e,t){for(let n=0;nt+=e.length)),t}function xe(e){return"string"==typeof e||e instanceof String}function ke(e){return"boolean"==typeof e}function Ee(e){return"number"==typeof e}function Ce(e){return Array.isArray(e)?Ce(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Ee(e)?"float32":xe(e)?"string":ke(e)?"bool":"float32"}function Se(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Ne(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function De(e,t,n){const r=new Array;if(1===t.length){const a=t[0];for(let t=0;te*t));for(let t=0;te*t));if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return De(0,e,t)}function Te(e,t){const n=Re(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return Ae(e,new Float32Array(n));if("int32"===t)return Ae(e,new Int32Array(n));if("bool"===t)return Ae(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Oe(e){e.forEach((t=>{Z(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function Be(e,t,n){if(0===t)return 0;if(1===t)return e[0];let r=e[e.length-1];for(let t=0;t(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}(this.global.location.search);"tfjsflags"in e&&e.tfjsflags.split(",").forEach((e=>{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,n)}))}}function Le(){return We}let ze,We=null;function Ue(){if(null==ze){let e;if("undefined"!=typeof window)e=window;else if(void 0!==n.g)e=n.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}ze=e}return ze}function Ve(e,t){const n=function(){const e=Ue();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const je="Abs",He="Acos",Ge="Acosh",qe="Add",Xe="AddN",Ke="All",Ye="Any",Je="ArgMax",Ze="ArgMin",Qe="Asin",et="Asinh",tt="Atan",nt="Atanh",rt="Atan2",at="AvgPool",st="AvgPoolGrad",it="AvgPool3D",ot="AvgPool3DGrad",lt="BatchMatMul",ut="BatchToSpaceND",ct="Bincount",ht="BroadcastTo",ft="Cast",dt="Ceil",pt="ClipByValue",mt="Complex",gt="ComplexAbs",yt="Concat",bt="Conv2D",vt="Conv2DBackpropFilter",wt="Conv2DBackpropInput",_t="Conv3D",xt="Conv3DBackpropFilterV2",kt="Conv3DBackpropInputV2",Et="Cos",Ct="Cosh",St="Cumsum",Nt="CropAndResize",It="DenseBincount",Dt="DepthToSpace",At="DepthwiseConv2dNative",Tt="DepthwiseConv2dNativeBackpropFilter",Rt="DepthwiseConv2dNativeBackpropInput",Ft="Diag",Ot="Dilation2D",Bt="Dilation2DBackpropInput",Mt="Dilation2DBackpropFilter",$t="RealDiv",Pt="Elu",Lt="EluGrad",zt="Erf",Wt="Equal",Ut="Exp",Vt="ExpandDims",jt="Expm1",Ht="FFT",Gt="Fill",qt="FlipLeftRight",Xt="Floor",Kt="FloorDiv",Yt="FusedBatchNorm",Jt="GatherV2",Zt="GatherNd",Qt="Greater",en="GreaterEqual",tn="Identity",nn="IFFT",rn="Imag",an="IsFinite",sn="IsInf",on="IsNan",ln="LeakyRelu",un="Less",cn="LessEqual",hn="LinSpace",fn="Log",dn="Log1p",pn="LogicalAnd",mn="LogicalNot",gn="LogicalOr",yn="LogSoftmax",bn="LRN",vn="LRNGrad",wn="Max",_n="Maximum",xn="MaxPool",kn="MaxPoolGrad",En="MaxPool3D",Cn="MaxPool3DGrad",Sn="MaxPoolWithArgmax",Nn="Mean",In="Min",Dn="Minimum",An="MirrorPad",Tn="Mod",Rn="Multinomial",Fn="Multiply",On="Neg",Bn="NotEqual",Mn="NonMaxSuppressionV3",$n="NonMaxSuppressionV4",Pn="NonMaxSuppressionV5",Ln="OnesLike",zn="OneHot",Wn="Pack",Un="PadV2",Vn="Pool",jn="Pow",Hn="Prelu",Gn="Prod",qn="Range",Xn="Real",Kn="Reciprocal",Yn="Relu",Jn="Reshape",Zn="ResizeNearestNeighbor",Qn="ResizeNearestNeighborGrad",er="ResizeBilinear",tr="ResizeBilinearGrad",nr="Relu6",rr="Reverse",ar="Round",sr="Rsqrt",ir="ScatterNd",or="Select",lr="Selu",ur="Slice",cr="Sin",hr="Sinh",fr="Sign",dr="Sigmoid",pr="Softplus",mr="Sqrt",gr="Sum",yr="SpaceToBatchND",br="SplitV",vr="Softmax",wr="SquaredDifference",_r="Square",xr="Sub",kr="SparseToDense",Er="StridedSlice",Cr="Tan",Sr="Tanh",Nr="Tile",Ir="TopK",Dr="Transpose",Ar="Unique",Tr="Unpack",Rr="UnsortedSegmentSum",Fr="ZerosLike",Or="Step",Br="FromPixels",Mr="RotateWithOffset",$r="_FusedMatMul",Pr="FusedConv2D",Lr="FusedDepthwiseConv2D",zr=Ve("kernelRegistry",(()=>new Map)),Wr=Ve("gradRegistry",(()=>new Map));function Ur(e,t){const n=Yr(e,t);return zr.get(n)}function Vr(e){return Wr.get(e)}function jr(e){const t=zr.entries(),n=[];for(;;){const{done:r,value:a}=t.next();if(r)break;const[s,i]=a,[o]=s.split("_");o===e&&n.push(i)}return n}function Hr(e){const{kernelName:t,backendName:n}=e,r=Yr(t,n);zr.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),zr.set(r,e)}function Gr(e){const{kernelName:t}=e;Wr.has(t)&&Le().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Wr.set(t,e)}function qr(e,t){const n=Yr(e,t);if(!zr.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);zr.delete(n)}function Xr(e){if(!Wr.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Wr.delete(e)}function Kr(e,t){jr(e).forEach((e=>{Hr(Object.assign({},e,{backendName:t}))}))}function Yr(e,t){return`${t}_${e}`}class Jr{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new Qr)}profileKernel(e,t,n){let r;const a=this.backendTimer.time((()=>{r=n()}));if(Le().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{Zr(t,n.dtype,e)}))}return{kernelName:e,outputs:r,inputs:t,timeMs:a.then((e=>e.kernelMs)),extraInfo:a.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:a,extraInfo:s}=e;n.forEach((e=>{Promise.all([e.data(),r,s]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],a,n[2])}))}))}}function Zr(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?r:""} `}}console.log(`%c${o}\t%c${i}\t%c${l}D ${c}\t%c${u}\t%c${h}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function ea(e,t,n,r){const a=Ie(t),s=function(e,t,n,r){const a=ne(t),s=r[r.length-1],i=new Array(s).fill(0),o=t.length,l="complex64"===n?aa(e):e;if(o>1)for(let e=0;e
" "+e)).join("\n")),l.join("\n")}function ta(e,t,n){let r;return r=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:xe(e)?`'${e}'`:"bool"===n?na(e):parseFloat(e.toFixed(7)).toString(),ue(r,t)}function na(e){return 0===e?"false":"true"}function ra(e,t,n,r,a,s=!0){const i="complex64"===n?2:1,o=t[0],l=t.length;if(0===l)return"complex64"===n?[ta(aa(e)[0],0,n)]:"bool"===n?[na(e[0])]:[e[0].toString()];if(1===l){if(o>20){const t=3*i;let r=Array.from(e.slice(0,t)),s=Array.from(e.slice((o-3)*i,o*i));return"complex64"===n&&(r=aa(r),s=aa(s)),["["+r.map(((e,t)=>ta(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>ta(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?aa(e):Array.from(e)).map(((e,t)=>ta(e,a[t],n))).join(", ")+"]"]}const u=t.slice(1),c=r.slice(1),h=r[0]*i,f=[];if(o>20){for(let t=0;t<3;t++){const r=t*h,s=r+h;f.push(...ra(e.slice(r,s),u,n,c,a,!1))}f.push("...");for(let t=o-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||me(t,this.size),this.strides=Ie(e)}set(e,...t){0===t.length&&(t=[0]),Z(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;tca(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=fa().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await fa().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(fa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return da.print(this,e)}clone(){return this.throwIfDisposed(),da.clone(this)}toString(e=!1){return ea(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),da.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),fa().makeVariable(this,e,t,n)}}Object.defineProperty(ma,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed});class ga extends ma{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!ae(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);fa().disposeTensor(this),this.dataId=e.dataId,fa().incRef(this,null)}dispose(){fa().disposeVariable(this),this.isDisposedInternal=!0}}var ya,ba,va,wa,_a;Object.defineProperty(ga,Symbol.hasInstance,{value:e=>e instanceof ma&&null!=e.assign&&e.assign instanceof Function}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(ya||(ya={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(ba||(ba={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(va||(va={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(wa||(wa={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(_a||(_a={}));const xa={float32:wa,int32:ba,bool:va,complex64:_a};function ka(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xa[e][t]}function Ea(e){return ka(e,"int32")}function Ca(e,t){if(e.dtype===t.dtype)return[e,t];const n=ka(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Sa(e,t){Z(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Na(e,t){return t.some((t=>t.id===e.id))}function Ia(e){const t=[];return Da(e,t,new Set),t}function Da(e,t,n){if(null==e)return;if(e instanceof ma)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const a=e;for(const e in a){const r=a[e];n.has(r)||(n.add(r),Da(r,t,n))}}class Aa{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Ta{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Aa}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){jr(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof j||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,r=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(r)),(()=>this.endScope(n)),(()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Ta.nextTensorId++}nextVariableId(){return Ta.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t="float32",n={x:e},r={dtype:t};return Fa.runKernelFunc((n=>n.cast(e,t)),n,null,ft,r)}})),[],{}),t}runKernel(e,t,n,r,a){return this.runKernelFunc(null,t,null,e,n,r,a)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const r=this.backend.numDataIds();let a=0;n.forEach((e=>{a+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-a-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e,t,n,r,a,s,i){let o,l=[];const u=this.isTapeOn();null==r&&(r=null!=this.state.activeScope?this.state.activeScope.name:"");const c=this.state.numBytes,h=this.state.numTensors;let f;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const d=Ur(r,this.backendName);let p,m;if(null!=d)f=()=>{const e=this.backend.numDataIds();p=d.kernelFunc({inputs:t,attrs:a,backend:this.backend});const n=Array.isArray(p)?p:[p];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,e,n);const o=n.map((e=>{if(null!=e.rank)return e;const{dataId:t,shape:n,dtype:r}=e;return this.makeTensorFromDataId(t,n,r)}));if(u){let e=this.getTensorsForGradient(r,t,o);if(null==e){null==i&&(i=[]);const t=o.filter(((e,t)=>i[t]));e=(s||[]).slice().concat(t)}l=this.saveTensorsForBackwardMode(e)}return o};else{if(null==e)throw new Error(`Error running ${r}: Neither modular kernel nor forward func passed`);const t=e=>{u&&(l=e.map((e=>this.keep(this.clone(e)))))};f=()=>{const n=this.backend.numDataIds();p=this.tidy((()=>e(this.backend,t)));const a=Array.isArray(p)?p:[p];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,n,a),a}}return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(m=this.profiler.profileKernel(r,t,(()=>f())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(m),o=m.outputs):o=f()})),u&&this.addTapeNode(r,t,o,n,l,a),this.state.profiling&&this.state.activeProfile.kernels.push({name:r,bytesAdded:this.state.numBytes-c,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-h,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map((e=>null!=t[e]?t[e].shape:null)),outputShapes:o.map((e=>e.shape)),kernelTimeMs:m.timeMs,extraInfo:m.extraInfo}),Array.isArray(p)?o:o[0]}saveTensorsForBackwardMode(e){return e.map((e=>this.keep(this.clone(e))))}getTensorsForGradient(e,t,n){const r=Vr(e);if(null!=r){const e=r.inputsToSave||[],a=r.outputsToSave||[];let s;r.saveAllInputs?(Z(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const i=n.filter(((e,t)=>a[t]));return s.concat(i)}return null}makeTensor(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;let a=e;"string"===n&&xe(e[0])&&(a=e.map((e=>ua(e))));const s=r.write(a,t,n),i=new ma(t,n,s,this.nextTensorId());if(this.incRef(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=_e(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new ma(t,n=n||"float32",e,this.nextTensorId());return this.incRef(a,r),a}makeVariable(e,t=!0,n,r){n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.cast(r));const a=new ga(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[a.name])throw new Error(`Variable with name ${a.name} was already registered`);return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a}incRef(e,t){const n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*we(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof ga||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,"string"===e.dtype&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?("complex64"!==e.dtype&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):(t.backend.decComplexRef(e.dataId),this.state.tensorInfo.get(e.dataId).refCount--)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,r,a,s){const i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:a},o=Vr(e);null!=o&&(r=o.gradFunc),null!=r&&(i.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],r=Re(e.size,e.dtype);return this.makeTensor(r,e.shape,e.dtype)}return e})),r(e.length>1?e:e[0],a,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Ia(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==r.id||this.track(e)}))}gradients(e,t,n,r=!1){if(Z(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const a=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Z(a instanceof ma,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,n){const r={},a={};for(let e=0;er[e.id]=!0)),o=!0,a[s.id]=!0;break}if(o)break}}const s={};s[n.id]=!0;const i={};for(let t=e.length-1;t>=0;t--){const n=e[t],r=n.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[a.id]=null==n?function(e){const t=Te(ne(e),"float32");return Fa.makeTensor(t,e,"float32")}(a.shape):n,function(e,t,n,r){for(let a=t.length-1;a>=0;a--){const s=t[a],i=[];if(s.outputs.forEach((t=>{const n=e[t.id];null!=n?i.push(n):i.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const o=s.gradient(i);for(const t in s.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const a=n((()=>o[t]()));if("float32"!==a.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${a.dtype}'`);const i=s.inputs[t];if(!ae(a.shape,i.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${a.shape}', which does not match the shape of the input '${i.shape}'`);if(null==e[i.id])e[i.id]=a;else{const t=e[i.id];e[i.id]=r(t,a),t.dispose()}}}}(e,s,(e=>this.tidy(e)),Oa);const r=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:a,grads:r}}))}customGrad(e){return Z(Se(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Z(t.every((e=>e instanceof ma)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const r={};return t.forEach(((e,t)=>{r[t]=e})),this.runKernelFunc(((r,a)=>(n=e(...t,a),Z(n.value instanceof ma,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Z(Se(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value)),r,((e,r)=>{const a=n.gradFunc(e,r),s=Array.isArray(a)?a:[a];Z(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Z(s.every((e=>e instanceof ma)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const i={};return s.forEach(((e,t)=>{i[t]=()=>e})),i}))}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){const t=oa(),n=await this.backend.time(e);return n.wallMs=oa()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Aa;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function Ra(){const e=Ue();if(null==e._tfengine){const t=new Pe(e);e._tfengine=new Ta(t)}var t;return t=e._tfengine.ENV,We=t,fa=()=>e._tfengine,e._tfengine}Ta.nextTensorId=0,Ta.nextVariableId=0;const Fa=Ra();function Oa(e,t){const n={a:e,b:t};return Fa.runKernel(qe,n)}function Ba(){if("undefined"!=typeof navigator&&null!=navigator){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function Ma(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const $a=Le();function Pa(e,t){let n=e;if(ve(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||ve(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&Le().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&La(e,r,[]),r}function La(e,t,n){if(n=n||[],!Array.isArray(e)&&!ve(e))return void Z(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Z(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Z(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const r=t.slice(1);for(let t=0;t=0&&(a=r),za(r,a,t,n),null==e||!ve(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const r=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${r}'`)}const s=Pa(e,a);ve(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?ia(e,a):te(e,[],!0);return Fa.makeTensor(i,s,a)}function Ua(e,t,n,r="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,a)=>Wa(e,`${t}[${a}]`,n,r)))}$a.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),$a.registerFlag("IS_BROWSER",(()=>Ma())),$a.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),$a.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),$a.registerFlag("PROD",(()=>!1)),$a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>$a.getBool("DEBUG"))),$a.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),$a.registerFlag("IS_TEST",(()=>!1)),$a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0));const Va="__op";function ja(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0];const r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=Va;const a=(...e)=>{Fa.startScope(n);try{const t=r(...e);return $e(t)&&console.error("Cannot return a Promise inside of tidy."),Fa.endScope(t),t}catch(e){throw Fa.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const Ha=ja({complex_:function(e,t){const n=Wa(e,"real","complex"),r=Wa(t,"imag","complex");Q(n.shape,r.shape,`real and imag shapes, ${n.shape} and ${r.shape}, must match in call to tf.complex().`);const a={real:n,imag:r};return Fa.runKernel(mt,a)}});function Ga(e,t,n,r){if(null==r&&(r=Ce(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!ve(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){Oe(t);const e=ne(t),r=ne(n);Z(e===r,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${r}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return ve(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?ia(e,r):te(e,[],!0),Fa.makeTensor(e,t,r)}function qa(e,t,n){return Ga(e,t,Pa(e,n),n)}const Xa={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function Ka(e,t){const n=[],r=[],a=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+4*t.length,r=new Uint8Array(n);let a=0;for(let e=0;e{if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const r=new Uint8Array(t);let a=0;return n.forEach((e=>{r.set(new Uint8Array(e.buffer),a),a+=e.byteLength})),r.buffer}const Za="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Qa(e){return Za?Buffer.byteLength(e):new Blob([e]).size}function es(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const n=new Uint8Array(t);let r=0;return e.forEach((e=>{n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function ts(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function ns(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:Qa(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Qa(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function rs(){const e=function(){const e=e=>{let t=e<<13,n=0;for(;0==(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return r=>{const a=new ArrayBuffer(4*r.length),s=new Uint32Array(a);for(let a=0;a>10]+(1023&i)]+t[i>>10];s[a]=o}return new Float32Array(a)}}class as{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==as.instance&&(as.instance=new as),as.instance}static registerSaveRouter(e){as.getInstance().saveRouters.push(e)}static registerLoadRouter(e){as.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return as.getHandlers(e,"save")}static getLoadHandlers(e,t){return as.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?as.getInstance().loadRouters:as.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const ss=e=>as.registerSaveRouter(e),is=e=>as.registerLoadRouter(e),os=e=>as.getSaveHandlers(e),ls=(e,t)=>as.getLoadHandlers(e,t),us="tensorflowjs",cs="models_store",hs="model_info_store";function fs(){if(!Le().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function ds(e){const t=e.result;t.createObjectStore(cs,{keyPath:"modelPath"}),t.createObjectStore(hs,{keyPath:"modelPath"})}class ps{constructor(e){if(this.indexedDB=fs(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const r=this.indexedDB.open(us,1);r.onupgradeneeded=()=>ds(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(cs,"readonly"),r=t.objectStore(cs).get(this.modelPath);r.onsuccess=()=>{if(null==r.result)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(r.result.modelArtifacts)},r.onerror=e=>(a.close(),n(r.error)),t.oncomplete=()=>a.close()}else{const r=ns(t),s=a.transaction(hs,"readwrite");let i=s.objectStore(hs);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(cs,"readwrite");const o=l.objectStore(cs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(hs);const t=i.delete(this.modelPath);t.onsuccess=()=>(a.close(),n(o.error)),t.onerror=e=>(a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}}},r.onerror=e=>n(r.error)}))}}ps.URL_SCHEME="indexeddb://";const ms=e=>{return Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ps.URL_SCHEME)?(t=e.slice(ps.URL_SCHEME.length),new ps(t)):null;var t};as.registerSaveRouter(ms),as.registerLoadRouter(ms);class gs{constructor(){this.indexedDB=fs()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(us,1);n.onupgradeneeded=()=>ds(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(hs,"readonly"),s=a.objectStore(hs).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(r.close(),t(s.error)),a.oncomplete=()=>r.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(ps.URL_SCHEME)?t.slice(ps.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(us,1);r.onupgradeneeded=()=>ds(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(hs,"readwrite"),i=s.objectStore(hs),o=i.get(e);let l;o.onsuccess=()=>{if(null==o.result)return a.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const r=i.delete(e),s=()=>{l=a.transaction(cs,"readwrite");const r=l.objectStore(cs).delete(e);r.onsuccess=()=>t(o.result.modelArtifactsInfo),r.onerror=e=>n(o.error)};r.onsuccess=s,r.onerror=e=>(s(),a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}},r.onerror=e=>n(r.error)}))}}const ys="/",bs="tensorflowjs_models",vs="info",ws="model_topology",_s="weight_specs",xs="weight_data",ks="model_metadata";function Es(e){return{info:[bs,e,vs].join(ys),topology:[bs,e,ws].join(ys),weightSpecs:[bs,e,_s].join(ys),weightData:[bs,e,xs].join(ys),modelMetadata:[bs,e,ks].join(ys)}}function Cs(e){const t=e.split(ys);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(ys)}class Ss{constructor(e){if(!Le().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=Es(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=ns(e);try{this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(Za)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ss.URL_SCHEME)?(t=e.slice(Ss.URL_SCHEME.length),new Ss(t)):null;var t};as.registerSaveRouter(Ns),as.registerLoadRouter(Ns);class Is{constructor(){Z(Le().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Z("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=bs+ys,n=ys+vs;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith(Ds)&&(e=e.slice(0,e.indexOf(Ds))),Z(e.length>0,(()=>"scheme must not be an empty string."));const n=As.getInstance();Z(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Ts(e){if(-1===e.indexOf(Ds))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${As.getSchemes().join(",")}`);return{scheme:e.split(Ds)[0],path:e.split(Ds)[1]}}async function Rs(e,t,n=!1){Z(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=as.getLoadHandlers(e);Z(r.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Z(r.length<2,(()=>`Copying failed because more than one (${r.length}) load handlers for source URL ${e}.`));const a=r[0],s=as.getSaveHandlers(t);Z(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Z(s.length<2,(()=>`Copying failed because more than one (${r.length}) save handlers for destination URL ${t}.`));const i=s[0],o=Ts(e).scheme,l=Ts(e).path,u=o===Ts(e).scheme,c=await a.load();n&&u&&await As.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await As.getManager(o).removeModel(l),h.modelArtifactsInfo}async function Fs(){const e=As.getSchemes(),t={};for(const n of e){const e=await As.getManager(n).listModels();for(const r in e)t[n+Ds+r]=e[r]}return t}async function Os(e){const t=Ts(e);return As.getManager(t.scheme).removeModel(t.path)}async function Bs(e,t){return Rs(e,t,!1)}async function Ms(e,t){return Rs(e,t,!0)}class $s{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}}if(Le().get("IS_BROWSER")){Le().setPlatform("browser",new $s);try{As.registerManager(Ss.URL_SCHEME,new Is)}catch(e){}try{As.registerManager(ps.URL_SCHEME,new gs)}catch(e){}}let Ps;function Ls(e,t="float32",n){return t=t||"float32",Oe(e),new ha(e,t,n)}Le().get("IS_NODE")&&Le().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=Le().global.fetch?Le().global.fetch(e,t):(null==Ps&&(Ps=n(8352)),Ps(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}});const zs=ja({cast_:function(e,t){const n=Wa(e,"x","cast");if(!ye(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");const r={x:n},a={dtype:t};return Fa.runKernel(ft,r,a)}}),Ws=ja({clone_:function(e){const t={x:Wa(e,"x","clone","string_or_numeric")};return Fa.runKernel(tn,t)}});function Us(e,t=!1){console.log(e.toString(t))}function Vs(e){return new Promise((e=>setTimeout(e))).then(e)}Ra(),da={buffer:Ls,cast:zs,clone:Ws,print:Us};class js{constructor(e){if(!Le().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(js.URL_SCHEME)&&(e=e.slice(js.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelTopologyFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer);const a=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),s=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=a,await Vs((()=>s.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Vs((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:ns(e)}}}}js.URL_SCHEME="downloads://";class Hs{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise(((n,r)=>{const a=new FileReader;a.onload=a=>{const s=JSON.parse(a.target.result),i=s.modelTopology;if(null==i)return void r(new Error(`modelTopology field is missing from file ${e.name}`));0===t.length&&n({modelTopology:i});const o=s.weightsManifest;if(null==o)return void r(new Error(`weightManifest field is missing from file ${e.name}`));let l;try{l=this.checkManifestAndWeightFiles(o,t)}catch(e){return void r(e)}const u=[],c=[],h=[];o.forEach((e=>{e.paths.forEach((e=>{c.push(e),h.push(null)})),u.push(...e.weights)})),o.forEach((e=>{e.paths.forEach((e=>{const t=new FileReader;t.onload=t=>{const r=t.target.result,a=c.indexOf(e);if(h[a]=r,-1===h.indexOf(null)){const e={modelTopology:i,weightSpecs:u,weightData:es(h),format:s.format,generatedBy:s.generatedBy,convertedBy:s.convertedBy};null!=s.signature&&(e.signature=s.signature),null!=s.userDefinedMetadata&&(e.userDefinedMetadata=s.userDefinedMetadata),null!=s.modelInitializer&&(e.modelInitializer=s.modelInitializer),n(e)}},t.onerror=t=>r(`Failed to weights data from file of path '${e}'.`),t.readAsArrayBuffer(l[e])}))}))},a.onerror=t=>r(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(e)}))}checkManifestAndWeightFiles(e,t){const n=[],r=t.map((e=>ts(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=ts(e);if(-1!==n.indexOf(s))throw new Error(`Duplicate file basename found in weights manifest: '${s}'`);if(n.push(s),-1===r.indexOf(s))throw new Error(`Weight file with basename '${s}' is not provided.`);a[e]=t[r.indexOf(s)]}));if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return a}}function Gs(e){return new Hs(e)}function qs(e,t,n,r){!function(e){Z(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Z(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Z(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Z(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,r=null==r?1:r);let a=0;return Promise.all(e.map((s=>(s.then((s=>{const i=n+ ++a/e.length*(r-n);return t(i),s})),s))))}async function Xs(e,t){null==t&&(t={});const n=null==t.fetchFunc?Le().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await qs(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await qs(a,t.onProgress,.5,1)}async function Ks(e,t="",n,r){return Ys((e=>Xs(e,{requestInit:r})))(e,t,n)}function Ys(e){return async(t,n="",r)=>{const a=t.map((()=>!1)),s={},i=null!=r?r.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=Xa[l]*ne(e.shape),c=()=>{a[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=r?r.forEach(((t,n)=>{t===e.name&&(c(),i[n]=!0)})):c(),o.push(e.name),n+=u}))})),!i.every((e=>e))){const e=r.filter(((e,t)=>!i[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=a.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let f=0;return l.forEach((e=>{const n=t[e].paths.length;let r=0;for(let e=0;e{const t=Ya(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}as.registerSaveRouter((e=>Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(js.URL_SCHEME)?function(e="model"){return new js(e)}(e.slice(js.URL_SCHEME.length)):null));class Js{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Z("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=Le().platform.fetch,Z(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Z(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const a=await this.fetch(this.path,t);if(a.ok)return{modelArtifactsInfo:ns(e),responses:[a]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${a.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,r=t.weightsManifest,a=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(null==n&&null==r)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;if(null!=r){const e=await this.loadWeights(r);[u,c]=e}const h={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:a,convertedBy:s,format:i};null!=o&&(h.signature=o),null!=l&&(h.userDefinedMetadata=l);const f=t.modelInitializer;return f&&(h.modelInitializer=f),h}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=function(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),a=this.weightPathPrefix||n,s=[];for(const t of e)s.push(...t.weights);const i=[],o=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?o.push(this.weightUrlConverter(e)):i.push(a+e+r);return this.weightUrlConverter&&i.push(...await Promise.all(o)),[s,es(await Xs(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function Zs(e){return null!=e.match(Js.URL_SCHEME_REGEX)}Js.URL_SCHEME_REGEX=/^https?:\/\//;const Qs=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>Zs(e))):Zs(e),n)return ei(e,t)}return null};function ei(e,t){return new Js(e,t)}function ti(e,t){return ei(e,t)}as.registerSaveRouter(Qs),as.registerLoadRouter(Qs);class ni{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class ri{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function ai(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new ni(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ni({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ni({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function si(e){return new ri(e)}const ii=ja({matMul_:function(e,t,n=!1,r=!1){let a=Wa(e,"a","matMul"),s=Wa(t,"b","matMul");[a,s]=Ca(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return Fa.runKernel(lt,i,o)}}),oi=ja({oneHot_:function(e,t,n=1,r=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const a={indices:Wa(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return Fa.runKernel(zn,a,s)}}),li=ja({transpose_:function(e,t){const n=Wa(e,"x","transpose");if(null==t&&(t=n.shape.map(((e,t)=>t)).reverse()),Z(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`)),t.forEach((e=>{Z(e>=0&&e"All entries in 'perm' must be between 0 and "+(n.rank-1)+` but got ${t}`))})),n.rank<=1)return n.clone();const r={x:n},a={perm:t};return Fa.runKernel(Dr,r,a)}}),ui=ja({confusionMatrix_:function(e,t,n){const r=Wa(e,"labels","confusionMatrix"),a=Wa(t,"predictions","confusionMatrix");Z(null==n||n>0&&Number.isInteger(n),(()=>`If provided, numClasses must be a positive integer, but got ${n}`)),Z(1===r.rank,(()=>`Expected the rank of labels to be 1, but got ${r.rank}`)),Z(1===a.rank,(()=>`Expected the rank of predictions to be 1, but got ${a.rank}`)),Z(r.shape[0]===a.shape[0],(()=>`Mismatch in the number of examples: ${r.shape[0]} vs. ${a.shape[0]}. Labels and predictions should have the same number of elements.`)),Z(n>0&&Number.isInteger(n),(()=>`numClasses is required to be a positive integer, but got ${n}`));const s=oi(zs(r,"int32"),n),i=oi(zs(a,"int32"),n),o=li(s),l=ii(o,i);return zs(l,"int32")}});function ci(e,t,n){if(ee(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Pa(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}let hi;async function fi(e,t){let n=Wa(e,"img","toPixels");if(!(e instanceof ma)){const e=n;n=zs(e,"int32"),e.dispose()}if(2!==n.rank&&3!==n.rank)throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${n.rank}.`);const[r,a]=n.shape.slice(0,2),s=2===n.rank?1:n.shape[2];if(s>4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==n.dtype&&"int32"!==n.dtype)throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const i=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(a*r*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${a}.`)}else if("int32"===n.dtype&&(a<0||a>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${a}.`);1===s?(t[0]=a*o,t[1]=a*o,t[2]=a*o):t[r]=a*o}const r=4*e;l[r+0]=Math.round(t[0]),l[r+1]=Math.round(t[1]),l[r+2]=Math.round(t[2]),l[r+3]=Math.round(t[3])}if(null!=t){t.width=a,t.height=r;const e=t.getContext("2d"),n=new ImageData(l,a,r);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const di=ja({fromPixels_:function(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,r=!1,a=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)a=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)i=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);o=!0}if(a){const t=2;if(a&&e.readyState element.")}if(null!=Ur(Br,Fa.backendName)){const n={pixels:e},r={numChannels:t};return Fa.runKernel(Br,n,r)}const[l,u]=a?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(i?c=e.getContext("2d").getImageData(0,0,l,u).data:r||n?c=e.data:(s||a||o)&&(null==hi&&(hi=document.createElement("canvas").getContext("2d")),hi.canvas.width=l,hi.canvas.height=u,hi.drawImage(e,0,0,l,u),c=hi.getImageData(0,0,l,u).data),4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;nn)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[r-1]} vs. ${n}`);if(0===ne(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const a=t.shape,s=a[a.length-1];let i=1;for(let e=0;ee/u)),1].slice(0,s);return[l,i,u,c]}function mi(e,t,n){const r=t.rank>1?t.shape[t.rank-1]:1,a=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${r}, and batchDim: ${a}.`;if(n.rank1?t.shape[r-1]:1,s=n.length;let i=1;for(let e=a;e`Error in slice${r}D: Length of begin ${t} must match the rank of the array (${r}).`)),Z(r===n.length,(()=>`Error in slice${r}D: Length of size ${n} must match the rank of the array (${r}).`));for(let a=0;a`Error in slice${r}D: begin[${a}] + size[${a}] (${t[a]+n[a]}) would overflow input.shape[${a}] (${e.shape[a]})`))}function vi(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function wi(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Ci(i,l,u,r,e),h=Si(o,l,u,a,e),f=_i(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=xi(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=xi(t,n,a);let o=r[i];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=q(0,i,l-1),i}function Di(e,t,n,r,a,s){let i=t[a];const o=n[a]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=o>0?q(0,i,l):q(-1,i,l-1),i}function Ai(e,t,n){let r=n.length;for(let e=0;e1){r=e;break}for(let a=r+1;a0||n[a]!==e[a])return!1;return!0}function Ti(e,t){let n=e.length>0?e[e.length-1]:1;for(let r=0;r{Z(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==n?new Array(a).fill(-1):"number"==typeof n?[n,...new Array(a-1).fill(-1)]:n.lengtht>=0?t:(Z(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-r[n]))),[r,s]}function Fi(e,t,n,r,a,s,i,o,l){let u=t.slice(),c=n.slice(),h=r;null==r&&(h=new Array(u.length));const f=vi(i);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(0!==i&&0!==o)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(0!==i&&0!==l)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const d=e.length-u.length,p=vi(o),m=e.slice();p.forEach((e=>{u[e]=0,c[e]=1,m.splice(e,0,1)}));const{begin:g,end:y,strides:b}=Ei(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=vi(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=wi(u,c,h),_=w.filter(((e,t)=>-1===v.indexOf(t)));return{nonStrided:h.every((e=>1===e)),$begin:u,$end:c,$strides:h,size:w,newShape:m,outShape:_}}class Oi{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Bi{constructor(){this.classNameMap={}}static getMap(){return null==Bi.instance&&(Bi.instance=new Bi),Bi.instance}static register(e){Bi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Mi(e){Z(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Z("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Z(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),Bi.register(e)}const $i=.1;function Pi(e,t,n){return null==n&&(n=Li()),zi(e,t,((e,t)=>ji(e,t,n)))}function Li(){return 32===Fa.backend.floatPrecision()?.001:$i}function zi(e,t,n){let r=!0;if((ve(e)||ve(t))&&(r=!1),ve(e)&&ve(t)&&(r=!0),r){const n=e.constructor.name,r=t.constructor.name;if(n!==r)throw new Error(`Arrays are of different type. Actual: ${n}. Expected: ${r}`)}if(Array.isArray(e)&&Array.isArray(t)){const n=Pa(e),r=Pa(t);if(!ae(n,r))throw new Error(`Arrays have different shapes. Actual: [${n}]. Expected: [${r}]`)}const a=ve(e)?e:te(e),s=ve(t)?t:te(t);if(a.length!==s.length)throw new Error(`Arrays have different lengths actual: ${a.length} vs expected: ${s.length}.\nActual: ${a}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t()))}function Ui(e,t){const n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return xe(e)||xe(e[0])||xe(t)||xe(t[0])?zi(e,n,((e,t)=>e==t)):zi(e,t,((e,t)=>ji(e,t,0)))}function Vi(e,t,n){if(null==n&&(n=Li()),!ji(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function ji(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function Hi(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function Gi(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function qi(e){for(let t=0;te.dispose()))}function so(e){return Fa.keep(e)}function io(e){return Fa.time(e)}function oo(e){return Fa.setBackend(e)}function lo(){return Fa.ready()}function uo(){return Fa.backendName}function co(e){Fa.removeBackend(e)}function ho(e){return Fa.findBackend(e)}function fo(e){return Fa.findBackendFactory(e)}function po(e,t,n=1){return Fa.registerBackend(e,t,n)}function mo(){return Fa.backend}function go(e,t){Le().setPlatform(e,t)}pa=Zi;const yo=ja({add_:function(e,t){let n=Wa(e,"a","add"),r=Wa(t,"b","add");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(qe,a)}}),bo=ja({floorDiv_:function(e,t){let n=Wa(e,"a","floorDiv"),r=Wa(t,"b","floorDiv");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Kt,a)}}),vo=ja({div_:function(e,t){let n=Wa(e,"a","div"),r=Wa(t,"b","div");if([n,r]=Ca(n,r),"int32"===n.dtype&&"int32"===r.dtype)return bo(n,r);const a={a:n,b:r};return Fa.runKernel($t,a,{})}}),wo=ja({mul_:function(e,t){let n=Wa(e,"a","mul"),r=Wa(t,"b","mul");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Fn,a)}}),_o=ja({sqrt_:function(e){const t={x:Wa(e,"x","sqrt")};return Fa.runKernel(mr,t)}}),xo=ja({square_:function(e){const t=Wa(e,"x","square");return Fa.runKernel("Square",{x:t},{})}}),ko=ja({zerosLike_:function(e){const t={x:Wa(e,"x","zerosLike")};return Fa.runKernel(Fr,t)}});function Eo(e){return Z(Se(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=Wa(t,"x","tf.grad","string_or_numeric"),a=null!=n?Wa(n,"dy","tf.grad"):null;return Fa.tidy((()=>{const{value:t,grads:n}=Fa.gradients((()=>e(r)),[r],a);return null!=a&&Q(t.shape,a.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Ao(n),n[0]}))}}function Co(e){return Z(Se(e),(()=>"The f passed in grads(f) must be a function")),(t,n)=>{Z(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=Ua(t,"args","tf.grads","string_or_numeric"),a=null!=n?Wa(n,"dy","tf.grads"):null;return Fa.tidy((()=>{const{value:t,grads:n}=Fa.gradients((()=>e(...r)),r,a);return null!=a&&Q(t.shape,a.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ao(n),n}))}}function So(e){return Z(Se(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Z(t instanceof ma,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Z(null==n||n instanceof ma,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=Fa.gradients((()=>e(t)),[t],n);return Ao(r),{grad:r[0],value:a}}}function No(e){return Z(Se(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,n)=>{Z(Array.isArray(t)&&t.every((e=>e instanceof ma)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Z(null==n||n instanceof ma,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=Fa.gradients((()=>e(...t)),t,n);return null!=n&&Q(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ao(r.grads),r}}function Io(e,t){Z(Se(e),(()=>"The f passed in variableGrads(f) must be a function")),Z(null==t||Array.isArray(t)&&t.every((e=>e instanceof ga)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in Fa.registeredVariables)t.push(Fa.registeredVariables[e])}const r=n?t.filter((e=>!e.trainable)):null,a=t.length;Z((t=t.filter((e=>e.trainable))).length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${a} variables is trainable.`));const{value:s,grads:i}=Fa.gradients(e,t,null,!0);Z(i.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Z(0===s.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${s.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=i[t]&&(o[e.name]=i[t])})),null!=r&&r.forEach((e=>o[e.name]=null)),{value:s,grads:o}}function Do(e){return Fa.customGrad(e)}function Ao(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}function To(e,t){if((ve(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&ve(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Ga(e,[],[],t)}class Ro extends Oi{minimize(e,t=!1,n){const{value:r,grads:a}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:a[e.name]})));this.applyGradients(e)}else this.applyGradients(a);return ao(a),t?r:(r.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Io(e,t)}dispose(){null!=this.iterations_&&ao(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:To(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Ro,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Fo extends Ro{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:ro((()=>ko(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:ro((()=>ko(r).variable(!1)))});const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable,i=this.accumulatedUpdates[n].variable;ro((()=>{const e=yo(wo(s,this.rho),wo(xo(a),1-this.rho)),t=wo(vo(_o(yo(i,this.epsilon)),_o(yo(s,this.epsilon))),a),n=yo(wo(i,this.rho),wo(xo(t),1-this.rho));s.assign(e),i.assign(n);const o=yo(wo(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(ao(this.accumulatedGrads.map((e=>e.variable))),ao(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function Oo(e,t,n){const r={shape:e,value:t,dtype:n};return Fa.runKernel(Gt,{},r)}Fo.className="Adadelta",Mi(Fo);class Bo extends Ro{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:ro((()=>Oo(r.shape,this.initialAccumulatorValue).variable(e)))}}const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable;ro((()=>{const e=yo(s,xo(a));s.assign(e);const t=yo(wo(vo(a,_o(yo(e,Fa.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&ao(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Bo.className="Adagrad",Mi(Bo);const Mo=ja({pow_:function(e,t){let n=Wa(e,"base","pow"),r=Wa(t,"exp","pow");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(jn,a)}}),$o=ja({sub_:function(e,t){let n=Wa(e,"a","sub"),r=Wa(t,"b","sub");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(xr,a)}});class Po extends Ro{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],ro((()=>{this.accBeta1=To(t).variable(),this.accBeta2=To(n).variable()})),null==r&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);ro((()=>{const n=$o(1,this.accBeta1),r=$o(1,this.accBeta2);t.forEach(((t,a)=>{const s=Fa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:ro((()=>ko(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:ro((()=>ko(s).variable(!1)))});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedSecondMoment[a].variable,u=yo(wo(o,this.beta1),wo(i,1-this.beta1)),c=yo(wo(l,this.beta2),wo(xo(i),1-this.beta2)),h=vo(u,n),f=vo(c,r);o.assign(u),l.assign(c);const d=yo(wo(vo(h,yo(_o(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(wo(this.accBeta1,this.beta1)),this.accBeta2.assign(wo(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&ao(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&ao(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),ro((()=>{this.accBeta1.assign(Mo(this.beta1,this.iterations_+1)),this.accBeta2.assign(Mo(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}Po.className="Adam",Mi(Po);const Lo=ja({abs_:function(e){const t=Wa(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return Fa.runKernel(gt,e)}{const e={x:t};return Fa.runKernel(je,e)}}});function zo(e,t){const n=e.length,r=[];for(let a=0;a1&&1===i&&r.unshift(s)}return r}function Wo(e,t){const n=[];for(let r=0;r1)&&n.unshift(s)}return n}function Uo(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=To(0).variable(),this.accBeta1=To(t).variable()})),null==r&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);ro((()=>{const n=$o(1,this.accBeta1),r=vo(-this.learningRate,yo(wo(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=Fa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:ko(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:ko(s).variable(!1)});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedWeightedInfNorm[a].variable,u=yo(wo(o,this.beta1),wo(i,1-this.beta1)),c=wo(l,this.beta2),h=Lo(i),f=Vo(c,h);o.assign(u),l.assign(f);const d=yo(wo(vo(r,n),vo(u,yo(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(yo(this.iteration,1)),this.accBeta1.assign(wo(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&ao(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&ao(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}jo.className="Adamax",Mi(jo);class Ho extends Ro{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const a=Fa.registeredVariables[t];ro((()=>{const e=yo(wo(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=so(To(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}Ho.className="SGD",Mi(Ho);class Go extends Ho{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=To(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:ro((()=>ko(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&ro((()=>{let e;const t=yo(wo(this.m,a),s);e=this.useNesterov?yo(wo(this.c,yo(s,wo(t,this.m))),r):yo(wo(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&ao(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}Go.className="Momentum",Mi(Go);class qo extends Ro{constructor(e,t=.9,n=0,r=null,a=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=r,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=a,null==r&&(this.epsilon=Fa.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:ro((()=>ko(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:ro((()=>ko(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:ro((()=>ko(r).variable(a)))});const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;ro((()=>{const e=yo(wo(i,this.decay),wo(xo(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=yo(wo(t,this.decay),wo(s,1-this.decay)),l=vo(wo(s,this.learningRate),_o($o(e,yo(xo(a),this.epsilon)))),u=yo(wo(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=$o(r,u);r.assign(c)}else{const e=yo(wo(i,this.decay),wo(xo(s),1-this.decay)),t=yo(wo(o,this.momentum),vo(wo(s,this.learningRate),_o(yo(e,this.epsilon))));i.assign(e),o.assign(t);const n=$o(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&ao(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&ao(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&ao(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}qo.className="RMSProp",Mi(qo);const Xo=ja({acos_:function(e){const t={x:Wa(e,"x","acos")};return Fa.runKernel(He,t)}}),Ko=ja({acosh_:function(e){const t={x:Wa(e,"x","acosh")};return Fa.runKernel(Ge,t)}}),Yo=ja({addN_:function(e){Z(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Z(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>Wa(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!ae(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const r=t;return Fa.runKernel(Xe,r)}}),Jo=ja({all_:function(e,t=null,n=!1){const r={x:Wa(e,"x","all","bool")},a={axis:t,keepDims:n};return Fa.runKernel(Ke,r,a)}}),Zo=ja({any_:function(e,t=null,n=!1){const r={x:Wa(e,"x","any","bool")},a={axis:t,keepDims:n};return Fa.runKernel(Ye,r,a)}}),Qo=ja({argMax_:function(e,t=0){const n={x:Wa(e,"x","argMax")},r={axis:t};return Fa.runKernel(Je,n,r)}}),el=ja({argMin_:function(e,t=0){const n={x:Wa(e,"x","argMin")},r={axis:t};return Fa.runKernel(Ze,n,r)}}),tl=ja({asin_:function(e){const t={x:Wa(e,"x","asin")};return Fa.runKernel(Qe,t)}}),nl=ja({asinh_:function(e){const t={x:Wa(e,"x","asinh")};return Fa.runKernel(et,t)}}),rl=ja({atan_:function(e){const t={x:Wa(e,"x","atan")};return Fa.runKernel(tt,t)}}),al=ja({atan2_:function(e,t){let n=Wa(e,"a","atan2"),r=Wa(t,"b","atan2");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(rt,a)}}),sl=ja({atanh_:function(e){const t={x:Wa(e,"x","atanh")};return Fa.runKernel(nt,t)}});function il(e,t,n,r,a="NHWC",s){return ul(e,[...t,e[3]],n,s,r,null,null,bl(a))}function ol(e,t,n,r,a,s,i="channelsLast"){const[o,l]=fl(t);let u;if("channelsLast"===i)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);u=[o,l,e[1],e[1]]}return ul(e,u,n,r,a,s,!1,i)}function ll(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=dl(t);let c,h;if("NDHWC"===i)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==i)throw new Error(`Unknown dataFormat ${i}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return cl(e,c,n,r,a,!1,h,s)}function ul(e,t,n,r,a,s,i=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[f,d,,p]=t,[m,g]=fl(n),[y,b]=fl(r),v=pl(f,y),w=pl(d,b),{padInfo:_,outHeight:x,outWidth:k}=function(e,t,n,r,a,s,i,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const a=function(e,t,n,r,a){null==r&&(r=hl(e,t,n));const s=e[1];return[ml((e[0]-t+2*r)/n+1,a),ml((s-t+2*r)/n+1,a)]}([t,n],s,r,e,o);c=a[0],h=a[1]}else if("same"===e){c=Math.ceil(t/r),h=Math.ceil(n/a);const e=Math.max(0,(c-1)*r+s-t),o=Math.max(0,(h-1)*a+i-n),l=Math.floor(e/2),f=e-l,d=Math.floor(o/2);u={top:l,bottom:f,left:d,right:o-d,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/r),h=Math.ceil((n-i+1)/a);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const f="channelsLast"===l?e[1][0]:e[2][0],d="channelsLast"===l?e[1][1]:e[2][1],p="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:f,bottom:d,left:p,right:m,type:0===f&&0===d&&0===p&&0===m?"VALID":"EXPLICIT"},c=ml((t-s+f+d)/r+1,o),h=ml((n-i+p+m)/a+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(a,u,c,m,g,v,w,s,o),E=i?p*h:p;let C;return"channelsFirst"===o?C=[l,E,x,k]:"channelsLast"===o&&(C=[l,x,k,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:x,outWidth:k,outChannels:E,padInfo:_,strideHeight:m,strideWidth:g,filterHeight:f,filterWidth:d,effectiveFilterHeight:v,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:C,filterShape:t}}function cl(e,t,n,r,a,s=!1,i="channelsLast",o){let[l,u,c,h,f]=[-1,-1,-1,-1,-1];if("channelsLast"===i)[l,u,c,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[l,f,u,c,h]=e}const[d,p,m,,g]=t,[y,b,v]=dl(n),[w,_,x]=dl(r),k=pl(d,w),E=pl(p,_),C=pl(m,x),{padInfo:S,outDepth:N,outHeight:I,outWidth:D}=function(e,t,n,r,a,s,i,o,l,u,c){let h,f,d,p;if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,n,r,a,s){null==a&&(a=hl(e,t,r));const i=e[1],o=e[2];return[ml((e[0]-t+2*a)/r+1,s),ml((i-t+2*a)/r+1,s),ml((o-t+2*a)/r+1,s),1]}([t,n,r,1],o,0,a,e,c);f=s[0],d=s[1],p=s[2]}else if("same"===e){f=Math.ceil(t/a),d=Math.ceil(n/s),p=Math.ceil(r/i);const e=(f-1)*a+o-t,c=(d-1)*s+l-n,m=(p-1)*i+u-r,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),v=c-b,w=Math.floor(m/2);h={top:b,bottom:v,left:w,right:m-w,front:g,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},f=Math.ceil((t-o+1)/a),d=Math.ceil((n-l+1)/s),p=Math.ceil((r-u+1)/i)}return{padInfo:h,outDepth:f,outHeight:d,outWidth:p}}(a,u,c,h,y,b,v,k,E,C,o),A=s?g*f:g;let T;return"channelsFirst"===i?T=[l,A,N,I,D]:"channelsLast"===i&&(T=[l,N,I,D,A]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:h,inChannels:f,outDepth:N,outHeight:I,outWidth:D,outChannels:A,padInfo:S,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:d,filterHeight:p,filterWidth:m,effectiveFilterDepth:k,effectiveFilterHeight:E,effectiveFilterWidth:C,dilationDepth:w,dilationHeight:_,dilationWidth:x,inShape:e,outShape:T,filterShape:t}}function hl(e,t,n,r=1){const a=pl(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function fl(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function dl(e){return"number"==typeof e?[e,e,e]:e}function pl(e,t){return t<=1?e:e+(e-1)*(t-1)}function ml(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function gl(e){const[t,n,r]=fl(e);return 1===t&&1===n&&1===r}function yl(e,t){return gl(e)||gl(t)}function bl(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const vl=ja({reshape_:function(e,t){const n={x:Wa(e,"x","reshape","string_or_numeric")},r={shape:t};return Fa.runKernel(Jn,n,r)}}),wl=ja({avgPool_:function(e,t,n,r,a){const s=Wa(e,"x","avgPool","float32");Z(yl(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let i=s,o=!1;3===s.rank&&(o=!0,i=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Z(4===i.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`)),null!=a&&Z(se(r),(()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a};let c=Fa.runKernel(at,l,u);return c=zs(c,s.dtype),o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),_l=ja({avgPool3d_:function(e,t,n,r,a,s="NDHWC",i){null==i?i=[1,1,1]:Zi("dilations is deprecated, this field will be gone in v3.0.0.");const o=Wa(e,"x","avgPool3d","float32");let l=o,u=!1;4===o.rank&&(u=!0,l=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Z(5===l.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`)),Z("NDHWC"===s,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),Z(yl(n,i),(()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),null!=a&&Z(se(r),(()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const c={x:l},h={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s,dilations:i};let f=Fa.runKernel(it,c,h);return f=zs(f,l.dtype),u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),xl=ja({concat_:function(e,t=0){Z(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ua(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return Ws(n[0]);const r=n,a={axis:t};return Fa.runKernel(yt,r,a)}}),kl=ja({sigmoid_:function(e){const t={x:Wa(e,"x","sigmoid")};return Fa.runKernel(dr,t)}}),El=ja({slice_:function(e,t,n){const r=Wa(e,"x","slice","string_or_numeric");if(0===r.rank)throw new Error("Slicing scalar is not possible");const a={x:r},s={begin:t,size:n};return Fa.runKernel(ur,a,s)}}),Cl=ja({tanh_:function(e){const t={x:Wa(e,"x","tanh")};return Fa.runKernel(Sr,t)}}),Sl=ja({basicLSTMCell_:function(e,t,n,r,a,s){const i=Wa(e,"forgetBias","basicLSTMCell"),o=Wa(t,"lstmKernel","basicLSTMCell"),l=Wa(n,"lstmBias","basicLSTMCell"),u=Wa(r,"data","basicLSTMCell"),c=Wa(a,"c","basicLSTMCell"),h=Wa(s,"h","basicLSTMCell"),f=xl([u,h],1),d=ii(f,o),p=yo(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=El(p,[0,0],y),v=El(p,[0,g],y),w=El(p,[0,2*g],y),_=El(p,[0,3*g],y),x=yo(wo(kl(b),Cl(v)),wo(c,kl(yo(i,w))));return[x,wo(Cl(x),kl(_))]}}),Nl=ja({batchToSpaceND_:function(e,t,n){const r=Wa(e,"x","batchToSpaceND"),a=t.reduce(((e,t)=>e*t));Z(r.rank>=1+t.length,(()=>`input rank is ${r.rank} but should be > than blockShape.length ${t.length}`)),Z(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Z(r.shape[0]%a==0,(()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${a}`));const s={x:r},i={blockShape:t,crops:n};return Fa.runKernel(ut,s,i)}}),Il=ja({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?vl(e,[1,1,1,e.size]):2===e.rank?vl(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?vl(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(i),scale:u,offset:c,mean:o,variance:l},f={varianceEpsilon:s},d=Fa.runKernel(Yt,h,f);return vl(d,i.shape)}}),Dl=ja({batchNorm2d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(2===i.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`)),Z(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Z(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Al=ja({batchNorm3d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(3===i.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`)),Z(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Z(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Tl=ja({batchNorm4d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(4===i.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`)),Z(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Z(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Rl=ja({bincount_:function(e,t,n){const r=Wa(e,"x","bincount"),a=Wa(t,"weights","bincount");Z("int32"===r.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${r.dtype}`)),Z(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Z(a.size===r.size||0===a.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${r.shape}, weights shape: ${a.shape}.`));const s={x:r,weights:a},i={size:n};return Fa.runKernel(ct,s,i)}}),Fl=ja({broadcastTo_:function(e,t){let n=Wa(e,"broadcastTo","x");const r=n.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(a[e]===t[e])s[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${t}].`);if(0===s.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return Ws(n);const i={x:n},o={reps:s};return Fa.runKernel(Nr,i,o)}}),Ol=ja({ceil_:function(e){const t={x:Wa(e,"x","ceil")};return Fa.runKernel(dt,t)}}),Bl=ja({clipByValue_:function(e,t,n){const r=Wa(e,"x","clipByValue");Z(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`));const a={x:r},s={clipValueMin:t,clipValueMax:n};return Fa.runKernel(pt,a,s)}}),Ml=ja({concat1d_:function(e){return xl(e,0)}}),$l=ja({concat2d_:function(e,t){return xl(e,t)}}),Pl=ja({concat3d_:function(e,t){return xl(e,t)}}),Ll=ja({concat4d_:function(e,t){return xl(e,t)}}),zl=ja({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Wa(e,"x","conv2d"),l=Wa(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Z(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Z(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),null!=i&&Z(se(r),(()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h="NHWC"===a?u.shape[3]:u.shape[1];Z(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Z(yl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`));const f={x:u,filter:l},d={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},p=Fa.runKernel(bt,f,d);return c?vl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Wl=ja({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=Wa(e,"x","conv1d"),l=Wa(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1]])),Z(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Z(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),null!=i&&Z(se(r),(()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Z(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Z(yl(n,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`)),Z("NWC"===a,(()=>`Error in conv1d: got dataFormat of ${a} but only NWC is currently supported.`));const h=vl(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=vl(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=zl(f,h,[1,n],r,"NHWC",[1,s],i);return vl(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Ul=ja({conv2DBackpropInput_:function(e,t,n,r,a,s="NHWC",i){Z(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Z(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Z(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Z(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===s?o[3]:o[1],h="NHWC"===s?l.shape[3]:l.shape[1];Z(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Z(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),null!=i&&Z(se(a),(()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const f={dy:l,filter:n},d={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,inputShape:o},p=Fa.runKernel(wt,f,d);return u?vl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Vl=ja({conv2dTranspose_:function(e,t,n,r,a,s){const i=Wa(e,"x","conv2dTranspose"),o=Wa(t,"filter","conv2dTranspose");return Ul(n,i,o,r,a,"NHWC",s)}}),jl=ja({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=Wa(e,"x","conv3d"),o=Wa(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=vl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Z(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Z(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Z(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Z(yl(n,s),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Z("NDHWC"===a,(()=>`Error in conv3d: got dataFormat of ${a} but only NDHWC is currently supported.`));const c={x:l,filter:o},h={strides:n,pad:r,dataFormat:a,dilations:s},f=Fa.runKernel(_t,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Hl=ja({conv3DBackpropInput_:function(e,t,n,r,a){Z(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let s=e,i=t,o=!1;4===t.rank&&(o=!0,i=vl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);const l=s[4],u=i.shape[4];Z(5===s.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`)),Z(5===i.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`)),Z(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Z(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Z(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:i,filter:n},h={pad:a,strides:r,inputShape:s},f=Fa.runKernel(kt,c,h);return o?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Gl=ja({conv3dTranspose_:function(e,t,n,r,a){const s=Wa(e,"x","conv3dTranspose"),i=Wa(t,"filter","conv3dTranspose");return Hl(n,s,i,r,a)}}),ql=ja({cos_:function(e){const t={x:Wa(e,"x","cos")};return Fa.runKernel(Et,t)}}),Xl=ja({cosh_:function(e){const t={x:Wa(e,"x","cosh")};return Fa.runKernel(Ct,t)}}),Kl=ja({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:Wa(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return Fa.runKernel(St,a,s)}}),Yl=ja({denseBincount_:function(e,t,n,r=!1){const a=Wa(e,"x","denseBincount"),s=Wa(t,"weights","denseBincount");Z("int32"===a.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${a.dtype}`)),Z(a.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${a.rank}.`)),Z(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Z(s.size===a.size||0===s.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${a.shape}, weights shape: ${s.shape}.`));const i={x:a,weights:s},o={size:n,binaryOutput:r};return Fa.runKernel(It,i,o)}}),Jl=ja({depthToSpace_:function(e,t,n="NHWC"){const r=Wa(e,"x","depthToSpace"),a="NHWC"===n?r.shape[1]:r.shape[2],s="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];Z(a*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${a} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Z(s*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Z(i%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${r.shape}`));const o={x:r},l={blockSize:t,dataFormat:n};return Fa.runKernel(Dt,o,l)}}),Zl=ja({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Wa(e,"x","depthwiseConv2d"),l=Wa(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Z(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Z(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`)),Z(u.shape[3]===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`)),null!=i&&Z(se(r),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h={x:u,filter:l},f={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},d=Fa.runKernel(At,h,f);return c?vl(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),Ql=ja({diag_:function(e){const t={x:Wa(e,"x","diag")};return Fa.runKernel(Ft,t)}}),eu=ja({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=Wa(e,"x","dilation2d"),o=Wa(t,"filter","dilation2d");Z(3===i.rank||4===i.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`)),Z(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Z("NHWC"===s,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`));let l=i,u=!1;3===i.rank&&(l=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);const c={x:l,filter:o},h={strides:n,pad:r,dilations:a},f=Fa.runKernel(Ot,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),tu=ja({equal_:function(e,t){let n=Wa(e,"a","equal"),r=Wa(t,"b","equal");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Wt,a)}}),nu=ja({where_:function(e,t,n){const r=Wa(t,"a","where"),a=Wa(n,"b","where"),s=Wa(e,"condition","where","bool"),i=Uo(r.shape,a.shape),o=Fl(r,i),l=Fl(a,i);1===s.rank&&Z(s.shape[0]===r.shape[0],(()=>"The first dimension of `a` must match the size of `condition`.")),1!==s.rank&&Q(s.shape,l.shape,"Error in where: ");const u={condition:s,t:o,e:l};return Fa.runKernel(or,u)}}),ru=ja({divNoNan_:function(e,t){let n=Wa(e,"a","div"),r=Wa(t,"b","div");[n,r]=Ca(n,r);const a=vo(n,r),s=ko(a),i=tu(r,s);return nu(i,s,a)}}),au=ja({dot_:function(e,t){const n=Wa(e,"t1","dot"),r=Wa(t,"t2","dot");Z(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${r.rank}.`));const a=1===n.rank?n.size:n.shape[1],s=1===r.rank?r.size:r.shape[0];if(Z(a===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${a} and ${s}.`)),1===n.rank&&1===r.rank){const e=vl(n,[1,-1]),t=vl(r,[-1,1]),a=ii(e,t);return vl(a,[])}if(1===n.rank&&2===r.rank){const e=vl(n,[1,-1]),t=vl(r,[r.shape[0],r.shape[1]]),a=ii(e,t);return vl(a,[a.size])}if(2===n.rank&&1===r.rank){const e=vl(r,[-1,1]),t=ii(n,e);return vl(t,[t.size])}{const e=vl(r,[r.shape[0],r.shape[1]]);return ii(n,e)}}}),su=ja({elu_:function(e){const t={x:Wa(e,"x","elu")};return Fa.runKernel(Pt,t)}}),iu=ja({erf_:function(e){let t=Wa(e,"x","erf");Z("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=zs(t,"float32"));const n={x:t};return Fa.runKernel(zt,n)}}),ou=ja({exp_:function(e){const t={x:Wa(e,"x","exp")};return Fa.runKernel(Ut,t)}}),lu=ja({expandDims_:function(e,t=0){const n=Wa(e,"x","expandDims","string_or_numeric");Z(t<=n.rank,(()=>"Axis must be <= rank of the tensor"));const r={input:n},a={dim:t};return Fa.runKernel(Vt,r,a)}}),uu=ja({expm1_:function(e){const t={x:Wa(e,"x","expm1")};return Fa.runKernel(jt,t)}}),cu=ja({tile_:function(e,t){const n=Wa(e,"x","tile","string_or_numeric");Z(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const r={x:n},a={reps:t};return Fa.runKernel(Nr,r,a)}}),hu=ja({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Ls([e,t],r),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`)),Z(se(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let i=s,o=!1;3===s.rank&&(o=!0,i=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const l={x:i},u={depthRadius:t,bias:n,alpha:r,beta:a},c=Fa.runKernel(bn,l,u);return o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Cu=ja({log_:function(e){const t={x:Wa(e,"x","log")};return Fa.runKernel(fn,t)}}),Su=ja({log1p_:function(e){const t={x:Wa(e,"x","log1p")};return Fa.runKernel(dn,t)}}),Nu=ja({neg_:function(e){const t={x:Wa(e,"x","neg")};return Fa.runKernel(On,t)}}),Iu=ja({softplus_:function(e){const t={x:Wa(e,"x","softplus")};return Fa.runKernel(pr,t)}}),Du=ja({logSigmoid_:function(e){const t=Wa(e,"x","logSigmoid");return Do((e=>({value:Nu(Iu(Nu(e))),gradFunc:t=>wo(t,kl(Nu(e)))})))(t)}}),Au=ja({max_:function(e,t=null,n=!1){const r={x:Wa(e,"x","max")},a={reductionIndices:t,keepDims:n};return Fa.runKernel(wn,r,a)}}),Tu=ja({sum_:function(e,t=null,n=!1){let r=Wa(e,"x","sum");"bool"===r.dtype&&(r=zs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Fa.runKernel(gr,a,s)}}),Ru=ja({logSoftmax_:function(e,t=-1){const n=Wa(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Do(((e,n)=>{const r=Au(e,t,!0),a=$o(e,r),s=$o(zs(a,"float32"),Cu(Tu(ou(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=ou(r);return $o(e,wo(Tu(e,t,!0),a))}}}))(n)}});function Fu(e,t){for(let n=0;ne[t]))]}function Mu(e,t){return Ou(e,t.map((e=>1)),t)}function $u(e,t,n){Z(Fu(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function Pu(e,t){if(Fu(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Lu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function zu(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Z(yl(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),null!=a&&Z(se(r),(()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=Fa.runKernel(xn,l,u);return o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),qu=ja({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC",i){null==i?i=[1,1,1]:Zi("dilations is deprecated, this field will be gone in v3.0.0.");const o=Wa(e,"x","maxPool3d");let l=o,u=!1;4===o.rank&&(u=!0,l=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Z(5===l.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`)),Z("NDHWC"===s,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),Z(yl(n,i),(()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),null!=a&&Z(se(r),(()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const c={x:l},h={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s,dilations:i},f=Fa.runKernel(En,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Xu=ja({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:Wa(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=Fa.runKernel(Sn,s,i);return{result:o[0],indexes:o[1]}}}),Ku=ja({mean_:function(e,t=null,n=!1){const r={x:Wa(e,"x","mean")},a={axis:t,keepDims:n};return Fa.runKernel(Nn,r,a)}}),Yu=ja({min_:function(e,t=null,n=!1){const r={x:Wa(e,"x","min")},a={axis:t,keepDims:n};return Fa.runKernel(In,r,a)}}),Ju=ja({minimum_:function(e,t){let n=Wa(e,"a","minimum"),r=Wa(t,"b","minimum");[n,r]=Ca(n,r),"bool"===n.dtype&&(n=zs(n,"int32"),r=zs(r,"int32")),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Dn,a)}}),Zu=ja({mirrorPad_:function(e,t,n){Z("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=Wa(e,"x","mirrorPad");if(0===r.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Z(t.length===r.rank,(()=>`Padding doesn't match input. Must be ${r.rank}. Got ${t.length}.`));const a="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Z(t[e][0]>=0&&t[e][0]<=r.shape[e]-a&&t[e][1]>=0&&t[e][1]<=r.shape[e]-a,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${r.shape[e]-a} or less than 0 for input of shape ${r.shape}`));const s={paddings:t,mode:n},i={x:r};return Fa.runKernel(An,i,s)}}),Qu=ja({mod_:function(e,t){let n=Wa(e,"a","mod"),r=Wa(t,"b","mod");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Tn,a)}}),ec=ja({moments_:function(e,t=null,n=!1){const r=fe(t,(e=Wa(e,"x","moments")).shape),a=Ku(e,r,n);let s=a.shape;n||(s=Mu(a.shape,r));const i=xo($o(zs(e,"float32"),vl(a,s)));return{mean:a,variance:Ku(i,r,n)}}}),tc=ja({multiRNNCell_:function(e,t,n,r){const a=Wa(t,"data","multiRNNCell"),s=Ua(n,"c","multiRNNCell"),i=Ua(r,"h","multiRNNCell");let o=a;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();const o={logits:1===i?vl(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=Fa.runKernel(Rn,o,l);return 1===i?vl(u,[u.size]):u}}),rc=ja({notEqual_:function(e,t){let n=Wa(e,"a","notEqual"),r=Wa(t,"b","notEqual");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Bn,a)}});function ac(e,t="float32"){if("complex64"===t){const t=ac(e,"float32"),n=ac(e,"float32");return Ha(t,n)}const n=Re(ne(e),t);return Fa.makeTensor(n,e,t)}function sc(e,t="float32"){if("complex64"===t){const t=sc(e,"float32"),n=ac(e,"float32");return Ha(t,n)}const n=Te(ne(e),t);return Fa.makeTensor(n,e,t)}const ic=ja({onesLike_:function(e){const t={x:Wa(e,"x","onesLike")};return Fa.runKernel(Ln,t)}}),oc=ja({outerProduct_:function(e,t){const n=Wa(e,"v1","outerProduct"),r=Wa(t,"v2","outerProduct");Z(1===n.rank&&1===r.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${r.rank}.`));const a=vl(n,[-1,1]),s=vl(r,[1,-1]);return ii(a,s)}}),lc=ja({pad_:function(e,t,n=0){const r=Wa(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const a={paddings:t,constantValue:n},s={x:r};return Fa.runKernel(Un,s,a)}}),uc=ja({pad1d_:function(e,t,n=0){return Z(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),lc(e,[t],n)}}),cc=ja({pad2d_:function(e,t,n=0){return Z(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),hc=ja({pad3d_:function(e,t,n=0){return Z(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),fc=ja({pad4d_:function(e,t,n=0){return Z(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),dc=ja({spaceToBatchND_:function(e,t,n){const r=Wa(e,"x","spaceToBatchND");Z(r.rank>=1+t.length,(()=>`input rank ${r.rank} should be > than [blockShape] ${t.length}`)),Z(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Z(r.shape.reduce(((e,r,a)=>a>0&&a<=t.length?e&&(r+n[a-1][0]+n[a-1][1])%t[a-1]==0:e),!0),(()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const a={x:r},s={blockShape:t,paddings:n};return Fa.runKernel(yr,a,s)}}),pc=ja({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=Wa(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Z(yl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=ol(o.shape,t,s,a,r),c=[u.dilationHeight,u.dilationWidth];let h;h="same"===r?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))).map((e=>e-1)),r=n.map((e=>Math.floor(e/2))),a=n.map(((e,t)=>e-r[t]));return n.map(((e,t)=>[r[t],a[t]]))}([u.filterHeight,u.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[d,p]=function(e,t,n){const r=n.map((e=>e[0])),a=n.map((e=>e[1])),s=e.concat(r,a),i=t.map(((e,t)=>(e-s[t]%e)%e)),o=a.map(((e,t)=>e+i[t]));return[t.map(((e,t)=>[r[t],o[t]])),t.map(((e,t)=>[0,i[t]]))]}([u.inHeight,u.inWidth],c,h),m=f?r:"valid",g=f?o:dc(o,c,d),y=("avg"===n?()=>wl(g,t,s,m):()=>Gu(g,t,s,m))(),b=f?y:Nl(y,c,p);return l?vl(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),mc=ja({prelu_:function(e,t){const n={x:Wa(e,"x","prelu"),alpha:Wa(t,"alpha","prelu")};return Fa.runKernel(Hn,n)}}),gc=ja({prod_:function(e,t=null,n=!1){let r=Wa(e,"x","prod");"bool"===r.dtype&&(r=zs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Fa.runKernel(Gn,a,s)}}),yc=ja({rand_:function(e,t,n){const r=ne(e);let a=null;if(null==n||"float32"===n)a=new Float32Array(r);else if("int32"===n)a=new Int32Array(r);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);a=new Uint8Array(r)}for(let e=0;e=1||0===s);const i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*r*i,t=this.mean+this.stdDev*a*i,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class wc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=bc.alea(a.toString()),this.randn=new vc(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,r,a,s;for(;;){do{r=this.randn.nextValue(),s=1+this.c*r}while(s<=0);if(s*=s*s,e=r*r,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),a=this.randu(),anull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=bc.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const xc=ja({randomGamma_:function(e,t,n=1,r="float32",a){if(null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error(`Unsupported data type ${r}`);const s=new wc(t,n,r,a),i=Ls(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Ac(t,0)}}),Rc=ja({reverse2d_:function(e,t){const n=Wa(e,"x","reverse");return Z(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Ac(n,t)}}),Fc=ja({reverse3d_:function(e,t){const n=Wa(e,"x","reverse");return Z(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Ac(n,t)}}),Oc=ja({reverse4d_:function(e,t){const n=Wa(e,"x","reverse");return Z(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Ac(n,t)}}),Bc=ja({round_:function(e){const t={x:Wa(e,"x","round")};return Fa.runKernel(ar,t)}}),Mc=ja({rsqrt_:function(e){const t={x:Wa(e,"x","rsqrt")};return Fa.runKernel(sr,t)}}),$c=ja({selu_:function(e){const t={x:Wa(e,"x","selu")};return Fa.runKernel(lr,t)}}),Pc=ja({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=Wa(e,"x","separableConv2d"),l=Wa(t,"depthwiseFilter","separableConv2d"),u=Wa(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Z(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Z(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Z(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Z(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Z(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const f=l.shape[2],d=l.shape[3];Z(u.shape[2]===f*d,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${f*d}, but got ${u.shape[2]}.`));const p=Zl(c,l,r,a,i,s),m=zl(p,u,1,"valid",i);return h?vl(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Lc=async function(e,t){const n=Wa(e,"x","setdiff1d"),r=Wa(t,"y","setdiff1d");Z(n.dtype===r.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${r.dtype}).`)),Z(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Z(1===r.rank,(()=>`y should be 1D tensor, but got y (${r.shape}).`));const a=await n.data(),s=await r.data(),i=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`)),El(r,[t],[n])}}),jc=ja({slice2d_:function(e,t,n){const r=Wa(e,"x","slice2d");return Z(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),Hc=ja({slice3d_:function(e,t,n){const r=Wa(e,"x","slice3d");return Z(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),Gc=ja({slice4d_:function(e,t,n){const r=Wa(e,"x","slice4d");return Z(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),qc=ja({softmax_:function(e,t=-1){const n=Wa(e,"logits","softmax","float32");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);const r={logits:n},a={dim:t};return Fa.runKernel(vr,r,a)}}),Xc=ja({fft_:function(e){Z("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Fa.runKernel(Ht,t)}}),Kc=ja({ifft_:function(e){Z("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Fa.runKernel(nn,t)}}),Yc=ja({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=vl(e,[n,t]);r=Kc(a)}else{const a=[n,2*(t-1)],s=vl(Sc(e),[n,t]),i=vl(gu(e),[n,t]),o=Ac(El(s,[0,1],[n,t-2]),1),l=wo(Ac(El(i,[0,1],[n,t-2]),1),To(-1)),u=xl([s,o],1),c=xl([i,l],1),h=vl(Ha(u,c),[a[0],a[1]]);r=Kc(h)}if(r=Sc(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=vl(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),Jc=ja({split_:function(e,t,n=0){const r={x:Wa(e,"x","split")},a={numOrSizeSplits:t,axis:n};return Fa.runKernel(br,r,a)}}),Zc=ja({rfft_:function(e,t){Z("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const r=e.size/n;let a;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,a=El(e,r,s),n=t}else if(null!=t&&t>n){const r=e.shape.map((e=>e));r[e.shape.length-1]=t-n,a=xl([e,ac(r)],e.shape.length-1),n=t}else a=e;const s=ko(a),i=vl(Ha(a,s),[r,n]),o=Xc(i),l=Math.floor(n/2)+1,u=Sc(o),c=gu(o),h=Jc(u,[l,n-l],u.shape.length-1),f=Jc(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,vl(Ha(h[0],f[0]),d)}}),Qc=ja({squaredDifference_:function(e,t){let n=Wa(e,"a","squaredDifference"),r=Wa(t,"b","squaredDifference");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(wr,a,{})}}),eh=ja({squeeze_:function(e,t){const n=Wa(e,"x","squeeze");return vl(n,de(n.shape,t).newShape)}}),th=ja({stack_:function(e,t=0){const n=Ua(e,"tensors","stack","string_or_numeric");Z(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Z(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const r=n,a={axis:t};return Fa.runKernel(Wn,r,a)}}),nh=ja({step_:function(e,t=0){const n={x:Wa(e,"x","step")},r={alpha:t};return Fa.runKernel(Or,n,r)}}),rh=ja({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:Wa(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return Fa.runKernel(Er,u,c)}}),ah=ja({tan_:function(e){const t={x:Wa(e,"x","tan")};return Fa.runKernel(Cr,t)}});function sh(e,t){ee(e);const n=Pa(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ga(e,null,n,t)}function ih(e,t,n){if(ee(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Pa(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Ga(e,t,r,n)}function oh(e,t,n){if(ee(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Pa(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}function lh(e,t,n){if(ee(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Pa(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}function uh(e,t,n){if(ee(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Pa(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return Ga(e,t=t||r,r,n)}const ch=ja({topk_:function(e,t=1,n=!0){const r=Wa(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const a=r.shape[r.shape.length-1];if(t>a)throw new Error(`'k' passed to topk() must be <= the last dimension (${a}) but got ${t}`);const s={x:r},i={k:t,sorted:n},[o,l]=Fa.runKernel(Ir,s,i);return{values:o,indices:l}}}),hh=ja({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new vc(t,n,r,!0,a),i=Ls(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=Fa.runKernel(Ar,r,a);return{values:s,indices:i}}}),dh=ja({unsortedSegmentSum_:function(e,t,n){const r=Wa(e,"x","unsortedSegmentSum"),a=Wa(t,"segmentIds","unsortedSegmentSum","int32");Z(se(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return Fa.runKernel(Rr,s,i)}}),ph=ja({unstack_:function(e,t=0){const n=Wa(e,"x","unstack","string_or_numeric");Z(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const r={value:n},a={axis:t};return Fa.runKernel(Tr,r,a)}});function mh(e,t=!0,n,r){return Fa.makeVariable(e,t,n,r)}function gh(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),Q(o.slice(s,s+i),a.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=s;e"Shape mismatch in v and x"));const l=To(1),u=$o(l,o);let c=wo($o(i,s),u);if(a){Z(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=Wa(r,"step","movingAverage");c=vo(c,$o(l,Mo(o,e)))}return yo(s,c)}}),$h=ja({scatterND_:function(e,t,n){const r=Wa(e,"indices","scatterND","int32"),a=Wa(t,"updates","scatterND");gi(a,r,n);const s={indices:r,updates:a},i={shape:n};return Fa.runKernel(ir,s,i)}}),Ph=ja({sparseToDense_:function(e,t,n,r=0){const a=Wa(e,"sparseIndices","sparseToDense","int32"),s=Wa(t,"sparseValues","sparseToDense"),i=Wa(r,"defaultValue","sparseToDense",s.dtype);!function(e,t,n,r){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const a=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);const i=t.size;if(0!==t.rank&&(1!==t.rank||i!==a))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${a}]`);if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(a,s,n,i);const o={sparseIndices:a,sparseValues:s,defaultValue:i},l={outputShape:n};return Fa.runKernel(kr,o,l)}}),Lh=ja({gatherND_:function(e,t){const n=Wa(t,"indices","gatherND","int32"),r={params:Wa(e,"x","gatherND"),indices:n};return Fa.runKernel(Zt,r)}}),zh=ja({dropout_:function(e,t,n,r){const a=Wa(e,"x","dropout");if(Z("float32"===a.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${a.dtype} tensor instead.`)),Z(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof ma?a.clone():a;const s=function(e,t){if(null==t)return e.shape.slice();if(ae(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let r=0;r1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${r.rank}`)),Z(r.rank-1===a.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${r.rank} and targets rank ${a.rank}`)),Q(r.shape.slice(0,r.shape.length-1),a.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=r.shape[r.shape.length-1];Z(n>0&&n<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`));const i=await r.data(),o=await a.data(),[l,u]=[i.length/s,s],c=pe("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Z(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Z(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===s?o.shape[3]:o.shape[1],c="NHWC"===s?l.shape[3]:l.shape[1];Z(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Z(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),null!=i&&Z(se(a),(()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const h={x:o,dy:l},f={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,filterShape:n};return Fa.runKernel(vt,h,f)}});function Hh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return wo(e,nh(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Gh(e,t){let n=t;const r=Wo(e.shape,t.shape);return r.length>0&&(n=Tu(n,r)),vl(n,e.shape)}function qh(e,t,n,r){if("linear"===t)return e;if("relu"===t)return Ic(e);if("elu"===t)return su(e);if("relu6"===t)return Dc(e);if("prelu"===t)return mc(e,n);if("leakyrelu"===t)return wu(e,r);throw new Error(`Unknown fused activation ${t}.`)}const Xh=(e,t)=>!(e>0)||"linear"===t,Kh=ja({fusedConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===Xh(Fa.state.gradientDepth,l)){let h=zl(e,t,n,r,a,s,i);return null!=o&&(h=yo(h,o)),qh(h,l,u,c)}const h=Wa(e,"x","conv2d"),f=Wa(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=vl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Z(4===d.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${d.rank}.`)),Z(4===f.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${f.rank}.`)),null!=i&&Z(se(r),(()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Z(d.shape[3]===f.shape[2],(()=>`Error in conv2d: depth of input (${d.shape[3]}) must match input depth for filter ${f.shape[2]}.`)),Z(yl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Z("NHWC"===a,(()=>`Error in conv2d: got dataFormat of ${a} but only NHWC is currently supported.`));const m=ul(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=Wa(o,"bias","fused conv2d"),[g]=Ca(g,h),Uo(m.outShape,g.shape)),null!=u&&(y=Wa(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Hh(e,o,l);Z(gl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Ul(i.shape,c,a,n,r),jh(i,c,a.shape,n,r)];if(null!=u){const e=Gh(u,c);h.push(e)}return h},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Do(((e,t,n)=>{let r=Fa.runKernel(Pr,v,w);return n([t,e,r]),p&&(r=vl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Do(((e,t,n,r)=>{let a=Fa.runKernel(Pr,v,w);return r([t,e,a,n]),p&&(a=vl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Yh=ja({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=vl(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,filterShape:n};return Fa.runKernel(Tt,u,c)}}),Jh=ja({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,inputShape:e},h=Fa.runKernel(Rt,u,c);return l?vl(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),Zh=ja({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===Xh(Fa.state.gradientDepth,l)){let h=Zl(e,t,n,r,a,s,i);return null!=o&&(h=yo(h,o)),qh(h,l,u,c)}const h=Wa(e,"x","depthwiseConv2d"),f=Wa(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=vl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Z(4===d.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`)),Z(4===f.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${f.rank}.`)),Z(d.shape[3]===f.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${f.shape[2]}.`)),null==s&&(s=[1,1]),Z(yl(n,s),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),null!=i&&Z(se(r),(()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${r}.`));const m=ul(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=Wa(o,"bias","fused conv2d"),[g]=Ca(g,h),Uo(m.outShape,g.shape)),null!=u&&(y=Wa(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Z(gl(s),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`));const[a,o,u,c]=t,h=Hh(e,u,l),f=Jh(o.shape,h,a,n,r,s,i),d=Yh(o,h,a.shape,n,r,s,i);return null!=c?[f,d,Gh(g,h)]:[f,d]},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Do(((e,t,n)=>{let r=Fa.runKernel(Lr,v,w);return n([t,e,r]),p&&(r=vl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Do(((e,t,n,r)=>{let a=Fa.runKernel(Lr,v,w);return r([t,e,a,n]),p&&(a=vl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Qh=ja({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Xh(Fa.state.gradientDepth,s)){let l=ii(e,t,n,r);return null!=a&&(l=yo(l,a)),qh(l,s,i,o)}let l=Wa(e,"a","fused matMul"),u=Wa(t,"b","fused matMul");[l,u]=Ca(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=r?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-1]:l.shape[l.rank-2],d=r?u.shape[u.rank-2]:u.shape[u.rank-1],p=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=ne(p),y=ne(m);Z(l.rank>=2&&u.rank>=2&&l.rank===u.rank,(()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`)),Z(ae(p,m),(()=>`Error in fused matMul: outer dimensions (${p}) and (${m}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`)),Z(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${r} must match.`));const b=l.shape.slice(0,-2).concat([f,d]),v=vl(l,n?[g,c,f]:[g,f,c]),w=vl(u,r?[y,d,h]:[y,h,d]);let _,x;null!=a&&(_=Wa(a,"bias","fused matMul"),[_]=Ca(_,l),Uo(b,_.shape)),null!=i&&(x=Wa(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Hh(vl(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=ii(c,o,!1,!1),f=ii(c,i,!0,!1)):n&&!r?(h=ii(o,c,!1,!0),f=ii(i,c,!1,!1)):(h=ii(o,c,!0,!0),f=ii(c,i,!0,!0)):(h=ii(c,o,!1,!0),f=ii(i,c,!0,!1)),null!=a?[h,f,Gh(u,c)]:[h,f]},E={a:v,b:w,bias:_,preluActivationWeights:x},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Do(((e,t,n)=>{const r=Fa.runKernel($r,E,C);return n([e,t,r]),{value:vl(r,b),gradFunc:k}}))(v,w):Do(((e,t,n,r)=>{const a=Fa.runKernel($r,E,C);return r([e,t,a,n]),{value:vl(a,b),gradFunc:k}}))(v,w,_)}}),ef=ja({hammingWindow_:function(e){return Uh(e,.54,.46)}}),tf=ja({hannWindow_:function(e){return Uh(e,.5,.5)}}),nf=ja({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(El(e,s,t)),s+=n;if(r)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`)),Z(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Z(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Z(2===r.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`)),Z(r[0]>=1&&r[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${r}`)),Z("bilinear"===a||"nearest"===a,(()=>`method must be bilinear or nearest, but was ${a}`));const c={image:i,boxes:o,boxInd:l},h={method:a,extrapolationValue:s,cropSize:r};return Fa.runKernel(Nt,c,h)}}),sf=ja({flipLeftRight_:function(e){const t=Wa(e,"image","flipLeftRight","float32");Z(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return Fa.runKernel(qt,n,{})}}),of=ja({rotateWithOffset_:function(e,t,n=0,r=.5){const a=Wa(e,"image","rotateWithOffset","float32");Z(4===a.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${a.rank}.`));const s={image:a},i={radians:t,fillValue:n,center:r};return Fa.runKernel(Mr,s,i)}});function lf(e,t,n,r,a,s){null==r&&(r=.5),null==a&&(a=Number.NEGATIVE_INFINITY),null==s&&(s=0);const i=e.shape[0];return n=Math.min(n,i),Z(0<=r&&r<=1,(()=>`iouThreshold must be in [0, 1], but was '${r}'`)),Z(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Z(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Z(1===t.rank,(()=>"scores must be a 1D tensor")),Z(t.shape[0]===i,(()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`)),Z(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:n,iouThreshold:r,scoreThreshold:a,softNmsSigma:s}}const uf=ja({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Wa(e,"boxes","nonMaxSuppression"),i=Wa(t,"scores","nonMaxSuppression"),o=lf(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return Fa.runKernel(Mn,{boxes:s,scores:i},l)}});function cf(e,t,n){const r=function(e,t,n){return function(e,t,n){let r=0,a=e.length,s=0,i=!1;for(;r>>1);const o=n(t,e[s]);o>0?r=s+1:(a=s,i=!o)}return i?r:-r-1}(e,t,n||hf)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function hf(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(bf);const c=s>0?-.5/s:0,h=[],f=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:s,suppressBeginIndex:i}=t;if(n=i;--n){const i=gf(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*yf(r,c,i),t.score<=a)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(s),f.push(t.score)):t.score>a&&cf(u,t,bf))}const d=h.length,p=n-d;o&&p>0&&(h.push(...new Array(p).fill(0)),f.push(...new Array(p).fill(0)));const m={selectedIndices:h};return i&&(m.selectedScores=f),l&&(m.validOutputs=d),m}function gf(e,t,n){const r=e.subarray(4*t,4*t+4),a=e.subarray(4*n,4*n+4),s=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),o=Math.max(r[0],r[2]),l=Math.max(r[1],r[3]),u=Math.min(a[0],a[2]),c=Math.min(a[1],a[3]),h=Math.max(a[0],a[2]),f=Math.max(a[1],a[3]),d=(o-s)*(l-i),p=(h-u)*(f-c);if(d<=0||p<=0)return 0;const m=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,h),b=Math.min(l,f),v=Math.max(y-m,0)*Math.max(b-g,0);return v/(d+p-v)}function yf(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function bf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const vf=ja({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Wa(e,"boxes","nonMaxSuppression"),o=Wa(t,"scores","nonMaxSuppression"),l=lf(i,o,n,r,a,s),u={boxes:i,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:r=l.iouThreshold,scoreThreshold:a=l.scoreThreshold,softNmsSigma:s=l.softNmsSigma},h=Fa.runKernel(Pn,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),wf=ja({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Wa(e,"boxes","nonMaxSuppression"),o=Wa(t,"scores","nonMaxSuppression"),l=lf(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=Fa.runKernel($n,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),_f=ja({resizeBilinear_:function(e,t,n=!1,r=!1){const a=Wa(e,"images","resizeBilinear");Z(3===a.rank||4===a.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${a.rank}.`)),Z(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Z(!1===r||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=vl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Fa.runKernel(er,o,l);return i?vl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),xf=ja({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=Wa(e,"images","resizeNearestNeighbor");Z(3===a.rank||4===a.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${a.rank}.`)),Z(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Z("float32"===a.dtype||"int32"===a.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Z(!1===r||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=vl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Fa.runKernel(Zn,o,l);return i?vl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),kf=ja({bandPart_:function(e,t,n){Z(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Z(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`));const r=Wa(e,"a","bandPart");Z(r.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`));const a=r.shape,[s,i]=r.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);const o=vl(Cc(0,s,1,"int32"),[-1,1]),l=Cc(0,i,1,"int32"),u=$o(o,l),c=Uu(xu(u,To(+t,"int32")),mu(u,To(-n,"int32"))),h=ac([s,i],r.dtype);return vl(th(ph(vl(r,[-1,s,i])).map((e=>nu(c,e,h)))),a)}}),Ef=ja({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Z(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=Jc(e,e.shape[0],0).map((e=>eh(e,[0])));Z(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],r=e;for(let t=0;t{let e=r[t];if(t>0)for(let r=0;r{Z(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],r=e.shape[1];let a=hu(n),s=Ws(e);const i=ih([[1]],[1,1]);let o=Ws(i);const l=n>=r?r:n;for(let e=0;e{const t=El(s,[e,e],[n-e,1]),l=Bh(t),u=El(s,[e,e],[1,1]),c=nu(pu(u,0),ih([[-1]]),ih([[1]])),h=$o(u,wo(c,l)),f=vo(t,h);o=1===f.shape[0]?Ws(i):xl([i,El(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Nu(vo(ii(c,h),l)),p=El(s,[e,0],[n-e,r]),m=wo(d,o),g=li(o);if(0===e)s=$o(p,ii(m,ii(g,p)));else{const t=$o(p,ii(m,ii(g,p)));s=xl([El(s,[0,0],[e,r]),t],0)}const y=li(m),b=El(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=$o(b,ii(ii(b,o),y));else{const t=$o(b,ii(ii(b,o),y));a=xl([El(a,[0,0],[n,e]),t],1)}return[o,s,a]})),ao([t,l,u])}return!t&&n>r&&(a=El(a,[0,0],[n,r]),s=El(s,[0,0],[r,r])),[a,s]}))}const Sf=ja({qr_:function(e,t=!1){if(Z(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Cf(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=ph(vl(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=Cf(e,t);a.push(n),s.push(r)})),[vl(th(a,0),e.shape),vl(th(s,0),e.shape)]}}});var Nf;!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(Nf||(Nf={}));const If=ja({computeWeightedLoss_:function(e,t,n=Nf.SUM_BY_NONZERO_WEIGHTS){const r=Wa(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=Wa(t,"weights","computeWeightedLoss"));const s=null==a?r:wo(r,a);if(n===Nf.NONE)return s;if(n===Nf.SUM)return Tu(s);if(n===Nf.MEAN){if(null==a)return Ku(s);{const e=r.size/a.size,t=vo(Tu(s),Tu(a));return e>1?vo(t,To(e)):t}}if(n===Nf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return vo(Tu(s),To(r.size));{const e=wo(a,sc(r.shape)),t=zs(Tu(rc(e,To(0))),"float32");return vo(Tu(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),Df=ja({absoluteDifference_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){const a=Wa(e,"labels","absoluteDifference"),s=Wa(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=Wa(n,"weights","absoluteDifference")),Q(a.shape,s.shape,"Error in absoluteDifference: ");const o=Lo($o(a,s));return If(o,i,r)}}),Af=ja({cosineDistance_:function(e,t,n,r,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","cosineDistance"),i=Wa(t,"predictions","cosineDistance");let o=null;null!=r&&(o=Wa(r,"weights","cosineDistance")),Q(s.shape,i.shape,"Error in cosineDistance: ");const l=To(1),u=$o(l,Tu(wo(s,i),n,!0));return If(u,o,a)}}),Tf=ja({hingeLoss_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){let a=Wa(e,"labels","hingeLoss");const s=Wa(t,"predictions","hingeLoss");let i=null;null!=n&&(i=Wa(n,"weights","hingeLoss")),Q(a.shape,s.shape,"Error in hingeLoss: ");const o=To(1);a=$o(wo(To(2),a),o);const l=Ic($o(o,wo(a,s)));return If(l,i,r)}}),Rf=ja({huberLoss_:function(e,t,n,r=1,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","huberLoss"),i=Wa(t,"predictions","huberLoss");let o=null;null!=n&&(o=Wa(n,"weights","huberLoss")),Q(s.shape,i.shape,"Error in huberLoss: ");const l=To(r),u=Lo($o(i,s)),c=Ju(u,l),h=$o(u,c),f=yo(wo(To(.5),xo(c)),wo(l,h));return If(f,o,a)}}),Ff=ja({logLoss_:function(e,t,n,r=1e-7,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","logLoss"),i=Wa(t,"predictions","logLoss");let o=null;null!=n&&(o=Wa(n,"weights","logLoss")),Q(s.shape,i.shape,"Error in logLoss: ");const l=To(1),u=To(r),c=Nu(wo(s,Cu(yo(i,u)))),h=wo($o(l,s),Cu(yo($o(l,i),u))),f=$o(c,h);return If(f,o,a)}}),Of=ja({meanSquaredError_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){const a=Wa(e,"labels","meanSquaredError"),s=Wa(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=Wa(n,"weights","meanSquaredError")),Q(a.shape,s.shape,"Error in meanSquaredError: ");const o=Qc(a,s);return If(o,i,r)}}),Bf=ja({sigmoidCrossEntropy_:function(e,t,n,r=0,a=Nf.SUM_BY_NONZERO_WEIGHTS){let s=Wa(e,"multiClassLabels","sigmoidCrossEntropy");const i=Wa(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=Wa(n,"weights","sigmoidCrossEntropy")),Q(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=To(r),t=To(1),n=To(.5);s=yo(wo(s,$o(t,e)),wo(n,e))}const l=function(e,t){const n=Wa(e,"labels","sigmoidCrossEntropyWithLogits"),r=Wa(t,"logits","sigmoidCrossEntropyWithLogits");Q(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=Ic(r),s=wo(r,n),i=Su(ou(Nu(Lo(r))));return yo($o(a,s),i)}(s,i);return If(l,o,a)}}),Mf=ja({softmaxCrossEntropy_:function(e,t,n,r=0,a=Nf.SUM_BY_NONZERO_WEIGHTS){let s=Wa(e,"onehotLabels","softmaxCrossEntropy");const i=Wa(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=Wa(n,"weights","softmaxCrossEntropy")),Q(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=To(r),t=To(1),n=To(s.shape[1]);s=yo(wo(s,$o(t,e)),vo(e,n))}const l=function(e,t,n=-1){if(-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Do(((e,t,r)=>{const a=Wu(t,[n],!0),s=$o(zs(t,"float32"),a);r([e,s]);const i=Nu(wo(s,e));return{value:Tu(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Mu(e.shape,[n]);return[wo(vl(e,s),$o(zs(r,"float32"),ou(a))),wo(vl(e,s),$o(ou(a),zs(r,"float32")))]}}}))(e,t)}(s,i);return If(l,o,a)}}),$f={fft:Xc,ifft:Kc,rfft:Zc,irfft:Yc},Pf={hammingWindow:ef,hannWindow:tf,frame:nf,stft:rf},Lf={flipLeftRight:sf,resizeNearestNeighbor:xf,resizeBilinear:_f,rotateWithOffset:of,cropAndResize:af,nonMaxSuppression:uf,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Wa(e,"boxes","nonMaxSuppressionAsync"),i=Wa(t,"scores","nonMaxSuppressionAsync"),o=lf(s,i,n,r,a);n=o.maxOutputSize,r=o.iouThreshold,a=o.scoreThreshold;const l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:h}=ff(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),sh(h,"int32")},nonMaxSuppressionWithScore:vf,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Wa(e,"boxes","nonMaxSuppressionAsync"),o=Wa(t,"scores","nonMaxSuppressionAsync"),l=lf(i,o,n,r,a,s);n=l.maxOutputSize,r=l.iouThreshold,a=l.scoreThreshold,s=l.softNmsSigma;const u=await Promise.all([i.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:f,selectedScores:d}=pf(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:sh(f,"int32"),selectedScores:sh(d)}},nonMaxSuppressionPadded:wf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Wa(e,"boxes","nonMaxSuppressionAsync"),o=Wa(t,"scores","nonMaxSuppressionAsync"),l=lf(i,o,n,r,a,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[f,d]=await Promise.all([i.data(),o.data()]),{selectedIndices:p,validOutputs:m}=df(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:sh(p,"int32"),validOutputs:To(m,"int32")}}},zf={bandPart:kf,gramSchmidt:Ef,qr:Sf},Wf={absoluteDifference:Df,computeWeightedLoss:If,cosineDistance:Af,hingeLoss:Tf,huberLoss:Rf,logLoss:Ff,meanSquaredError:Of,sigmoidCrossEntropy:Bf,softmaxCrossEntropy:Mf};class Uf{static sgd(e){return new Ho(e)}static momentum(e,t,n=!1){return new Go(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new qo(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new Po(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Fo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new jo(e,t,n,r,a)}static adagrad(e,t=.1){return new Bo(e,t)}}const Vf={sgd:Uf.sgd,momentum:Uf.momentum,adadelta:Uf.adadelta,adagrad:Uf.adagrad,rmsprop:Uf.rmsprop,adamax:Uf.adamax,adam:Uf.adam},jf="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Hf(){return new Promise((e=>jf((()=>e()))))}function Gf(e,t){const n=e[0].length;e.forEach(((e,t)=>{Z(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Z(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const r=e[0];e.forEach(((e,a)=>{for(let s=0;s`Error in concat${n}D: Shape of tensors[${a}] (${e}) does not match the shape of the rest (${r}) along the non-concatenated axis ${a}.`))}))}function qf(e,t){const n=e[0].slice();for(let r=1;r=2*t+1||r%2==1?a.push(r):n.push(r);r.push(...n),r.push(0),r.push(...a)}return r}function Qf(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n"Number of splits must evenly divide the axis.")),r=new Array(t).fill(e.shape[n]/t);else{Z(t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0)<=1,(()=>"There should be only one negative value in split array."));const a=t.indexOf(-1);if(-1!==a){const r=t.reduce(((e,t)=>t>0?e+t:e));t[a]=e.shape[n]-r}Z(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),r=t}return r}function _d(e,t){let n,r=!1;for(e<=Xf?(n=e,r=!0):n=Ne(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=Ne(e,n+1);return n}function xd(e,t,n){const r=[],a=e.length;for(let s=0;sa))throw new Error(`Expect batchDims in the range of [-${a}, ${a}], but got ${r}`);if(r<0&&(r+=a),r>s)throw new Error(`batchDims (${r}) must be less than rank(x) (\n ${s}).`);if(nca(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Nd(e){return e.map((e=>ua(e)))}const Id={kernelName:je,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,nh(zs(n,"float32"),-1))}}},Dd={kernelName:He,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=xo(zs(n,"float32")),r=_o($o(To(1),t));return Nu(vo(e,r))}}}},Ad={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=_o($o(xo(zs(n,"float32")),1));return vo(e,t)}}}},Td={kernelName:qe,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{let t=e;const r=Wo(n.shape,a);return r.length>0&&(t=Tu(t,r)),vl(t,n.shape)},b:()=>{let t=e;const n=Wo(r.shape,a);return n.length>0&&(t=Tu(t,n)),vl(t,r.shape)}}}},Rd={kernelName:Xe,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},Fd={kernelName:Je,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(n)}}},Od={kernelName:Ze,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(n)}}},Bd={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,_o($o(To(1),xo(zs(n,"float32")))))}}},Md={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=_o(yo(To(1),xo(zs(n,"float32"))));return vo(e,t)}}}},$d={kernelName:rt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=yo(xo(n),xo(r));let s=wo(e,vo(r,t));const i=Wo(n.shape,a);return i.length>0&&(s=Tu(s,i)),vl(s,n.shape)},b:()=>{const t=yo(xo(n),xo(r));let s=Nu(wo(e,vo(n,t)));const i=Wo(r.shape,a);return i.length>0&&(s=Tu(s,i)),vl(s,r.shape)}}}},Pd={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,yo(xo(zs(n,"float32")),1))}}},Ld={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,$o(To(1),xo(zs(n,"float32"))))}}},zd=ja({avgPool3dGrad_:function(e,t,n,r,a=[1,1,1],s,i){const o=Wa(e,"dy","avgPool3dGrad"),l=Wa(t,"input","avgPool3dGrad");let u=o,c=l,h=!1;4===l.rank&&(h=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),c=vl(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),Z(5===u.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`)),Z(5===c.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`)),Z(yl(r,a),(()=>`Error in avgPool3dGrad: Either strides or dilations must be 1. Got strides ${r} and dilations '${a}'`)),null!=i&&Z(se(s),(()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const f={dy:u,input:c},d={filterSize:n,strides:r,dilations:a,pad:s,dimRoundingMode:i},p=Fa.runKernel(ot,f,d);return h?vl(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}}),Wd={kernelName:it,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,dilations:i,pad:o,dimRoundingMode:l}=n,u=null==i?[1,1,1]:i;return{x:()=>zd(e,r,a,s,u,o,l)}}},Ud=ja({avgPoolGrad_:function(e,t,n,r,a){const s=Wa(e,"dy","avgPoolGrad"),i=Wa(t,"input","avgPoolGrad");Z(i.rank===s.rank,(()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`));let o=i,l=s,u=!1;3===i.rank&&(u=!0,o=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Z(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Z(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:r,pad:a},f=Fa.runKernel(st,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Vd={kernelName:at,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>Ud(e,r,a,s,i)}}},jd={kernelName:lt,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>ii(e,a,!1,!1),b:()=>ii(e,r,!0,!1)}:s&&!i?{a:()=>ii(a,e,!1,!0),b:()=>ii(r,e,!1,!1)}:{a:()=>ii(a,e,!0,!0),b:()=>ii(e,r,!0,!0)}:{a:()=>ii(e,a,!1,!0),b:()=>ii(r,e,!0,!1)}}},Hd={kernelName:ut,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>dc(e,r,a)}}},Gd={kernelName:ht,gradFunc:(e,t,n)=>{const r=n,a=r.inputShape,s=r.shape,i=Array.from(s);for(let e=a.length-1;e>=0;e--)if(a[e]===s[e])i[e]=1;else if(1!==a[e])throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${s}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>Tu(e,o,!0)}}},qd={kernelName:ft,gradFunc:e=>({x:()=>e.clone()})},Xd={kernelName:dt,gradFunc:e=>({x:()=>ko(e)})},Kd={kernelName:pt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>nu(Uu(mu(r,a),xu(r,s)),e,ko(e))}}},Yd={kernelName:gt,inputsToSave:["x"],gradFunc:Id.gradFunc},Jd={kernelName:yt,saveAllInputs:!0,gradFunc:(e,t,n)=>{const r=t.map((e=>e.shape)),{axis:a}=n,s=fe(a,t[0].shape)[0],i=r.map((e=>e[s]));return Jc(e,i,s).map((e=>()=>e))}},Zd={kernelName:bt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Z(gl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Ul(r.shape,e,a,i,o,l),filter:()=>jh(r,e,a.shape,i,o,l)}}},Qd={kernelName:wt,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>zl(e,a,s,i,o,1,l),filter:()=>jh(e,r,a.shape,s,i,o,l)}}},ep=ja({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=vl(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=vl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Z(5===s.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`)),Z(5===i.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`)),Z(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Z(s.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`)),Z(i.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:s,dy:i},l={strides:r,pad:a,filterShape:n};return Fa.runKernel(xt,o,l)}}),tp={kernelName:_t,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Z(gl(r),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`));const[i,o]=t;return{x:()=>Hl(i.shape,e,o,a,s),filter:()=>ep(i,e,o.shape,a,s)}}},np={kernelName:Et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Nu(Wc(zs(n,"float32"))),e)}}},rp={kernelName:Ct,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Uc(zs(n,"float32")),e)}}},ap={kernelName:St,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=Pu([a],r.rank);let n=Kl(e,a,s,!i);return null!=t&&(n=li(n,t)),n}}}},sp={kernelName:At,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Z(gl(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Z(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Z(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Z(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Z(yl(a,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'.`)),null!=i&&Z(se(s),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`)),{x:()=>Jh(l.shape,e,u,a,s,r,i),filter:()=>Yh(l,e,u.shape,a,s,r,i)}}},ip={kernelName:Ot,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,s={x:r,filter:a,dy:e},i={x:r,filter:a,dy:e};return{x:()=>Fa.runKernel(Bt,s,n),filter:()=>Fa.runKernel(Mt,i,n)}}},op={kernelName:Pt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>Fa.runKernel(Lt,r)}}},lp={kernelName:zt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=wo(ou(Nu(xo(n))),2/Math.sqrt(Math.PI));return{x:()=>wo(e,r)}}},up={kernelName:Ut,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,n)}}},cp={kernelName:Vt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>vl(e,n.shape)}}},hp={kernelName:jt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,ou(n))}}},fp={kernelName:Xt,gradFunc:e=>({x:()=>ko(e)})},dp={kernelName:Kt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=vo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{let t=wo(e,zs(n,"float32"));const s=Wo(r.shape,a);s.length>0&&(t=vl(Tu(t,s),r.shape));const i=xo(r);return Nu(vo(t,zs(i,"float32")))}}}},pp={kernelName:Yt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?To(1):o,u=Wo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?vl(wo(wo(e,cu(vl(d,[1,1,1,s.shape[0]]),c)),l),a.shape):vl(wo(wo(e,d),l),a.shape),mean:()=>{let e=wo(wo(d,To(-1)),f);return 1===s.rank&&(e=Tu(e,u)),vl(e,s.shape)},variance:()=>{let e=wo(wo(p,h),f);return 1===s.rank&&(e=Tu(e,u)),vl(e,s.shape)},scale:()=>{const t=wo(h,d);let n=wo(e,t);return 1===s.rank&&(n=Tu(n,u)),vl(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=Tu(t,u)),vl(t,s.shape)}}}},mp={kernelName:Jt,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[r,a]=t,{axis:s}=n,i=fe(s,r.shape)[0];return{x:()=>{const t=r.shape,n=a.size,o=t.slice(0,i),l=o.length,u=t.slice(s,t.length).slice(1),c=u.length,h=gp(0,l),f=gp(l+1,l+1+c),d=yp([o,[n],u]),p=vl(e,d),m=vl(a,[n]),g=yp([[l],h,f]),y=li(p,g);let b=dh(y,m,r.shape[i]);const v=Lu(g);return b=li(b,v),b},indices:()=>a}}};function gp(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>ko(n),b:()=>ko(r)}}},vp={kernelName:tn,gradFunc:e=>({x:()=>zs(e,"float32")})},wp={kernelName:an,gradFunc:e=>({x:()=>ko(e)})},_p={kernelName:sn,gradFunc:e=>({x:()=>ko(e)})},xp={kernelName:on,gradFunc:e=>({x:()=>ko(e)})},kp={kernelName:ln,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=pu(r,0);return{x:()=>nu(s,e,wo(e,a))}}},Ep={kernelName:dn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,yo(n,1))}}},Cp={kernelName:fn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,zs(n,"float32"))}}},Sp={kernelName:yn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=ou(r);return $o(e,wo(Tu(e,a,!0),t))}}}},Np=ja({localResponseNormalizationBackprop_:function(e,t,n,r=5,a=1,s=1,i=.5){const o={x:e,y:t,dy:n},l={depthRadius:r,bias:a,alpha:s,beta:i};return Fa.runKernel(vn,o,l)}}),Ip={kernelName:bn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>Np(r,a,e,s,i,o,l)}}};function Dp(e,t,n,r){return t.rankwo(e,zs(tu(n,t),e.dtype))}}const Ap={kernelName:wn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=Dp(e,t[1],s,fe(a,s.shape));return{x:()=>i.x()}}},Tp={kernelName:_n,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>wo(e,zs(mu(n,r),"float32")),b:()=>wo(e,zs(_u(n,r),"float32"))}}},Rp=ja({maxPool3dGrad_:function(e,t,n,r,a,s=[1,1,1],i,o){const l=Wa(e,"dy","maxPool3dGrad"),u=Wa(t,"input","maxPool3dGrad"),c=Wa(n,"output","maxPool3dGrad");let h=l,f=u,d=c,p=!1;4===u.rank&&(p=!0,h=vl(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=vl(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),d=vl(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),Z(5===h.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${h.rank}.`)),Z(5===f.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${f.rank}.`)),Z(5===d.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`)),Z(yl(a,s),(()=>`Error in maxPool3dGrad: Either strides or dilations must be 1. Got strides ${a} and dilations '${s}'`)),null!=o&&Z(se(i),(()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`));const m={dy:h,input:f,output:d},g={filterSize:r,strides:a,dilations:s,pad:i,dimRoundingMode:o},y=Fa.runKernel(Cn,m,g);return p?vl(y,[y.shape[1],y.shape[2],y.shape[3],y.shape[4]]):y}}),Fp={kernelName:En,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,dilations:o,pad:l,dimRoundingMode:u}=n,c=null==o?[1,1,1]:o;return{x:()=>Rp(e,r,a,s,i,c,l,u)}}},Op=ja({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=Wa(e,"dy","maxPoolGrad"),l=Wa(t,"input","maxPoolGrad"),u=Wa(n,"output","maxPoolGrad");Z(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Z(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Z(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),null!=i&&Z(se(s),(()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const c={dy:o,input:l,output:u},h={filterSize:r,strides:a,pad:s,dimRoundingMode:i};return Fa.runKernel(kn,c,h)}}),Bp={kernelName:Un,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>El(e,s,r.shape)}}},Mp={kernelName:yr,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>Nl(e,r,a)}}},$p={kernelName:br,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>xl(e,r)}}},Pp=[Id,Dd,Ad,Td,Rd,Fd,Od,Bd,Md,$d,Pd,Ld,Wd,Vd,jd,Hd,Gd,qd,Xd,Kd,Yd,Jd,Qd,Zd,tp,np,rp,ap,sp,ip,{kernelName:$t,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=vo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{let t=wo(e,zs(n,"float32"));const s=Wo(r.shape,a);s.length>0&&(t=vl(Tu(t,s),r.shape));const i=xo(r);return Nu(vo(t,zs(i,"float32")))}}}},op,lp,up,cp,hp,dp,fp,pp,mp,bp,vp,wp,_p,xp,kp,Ep,Cp,Sp,Ip,Ap,Ap,Tp,Fp,{kernelName:xn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>Op(e,r,a,s,i,o)}}},{kernelName:Nn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=fe(a,r.shape),i=ne(Bu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=vl(e,t);return vo(wo(n,sc(r.shape,"float32")),i)}}}},{kernelName:In,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=Dp(e,i,s,fe(a,s.shape));return{x:()=>o.x()}}},{kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>wo(e,zs(xu(n,r),"float32")),b:()=>wo(e,zs(pu(n,r),"float32"))}}},{kernelName:An,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>El(e,s,r.shape)}}},{kernelName:Tn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=Wo(n.shape,a);return t.length>0?vl(Tu(e,t),n.shape):e},b:()=>{const t=wo(e,Nu(fu(vo(n,r)))),s=Wo(r.shape,a);return s.length>0?vl(Tu(t,s),r.shape):t}}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=wo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{const t=wo(e,zs(n,"float32")),s=Wo(r.shape,a);return s.length>0?vl(Tu(t,s),r.shape):t}}}},{kernelName:On,gradFunc:e=>({x:()=>Nu(e)})},{kernelName:zn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>ac(n.shape,"float32")}}},{kernelName:Ln,gradFunc:e=>({x:()=>ko(e)})},{kernelName:Wn,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return ph(e,r).map((e=>()=>e))}},Bp,Bp,{kernelName:jn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Uo(s.shape,i.shape);return{a:()=>{const t=zs(i,"float32");let n=wo(e,wo(t,Mo(s,$o(t,To(1)))));const r=Wo(s.shape,o);return r.length>0&&(n=Tu(n,r)),vl(n,s.shape)},b:()=>{const t=pu(s,0),n=nu(t,Cu(s),ko(s));let r=wo(e,wo(a,n));const l=Wo(i.shape,o);return l.length>0&&(r=Tu(r,l)),vl(r,i.shape)}}}},{kernelName:Hn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=pu(n,0);return{x:()=>nu(a,e,wo(e,r)),alpha:()=>{let t=nu(a,ko(e),wo(e,n));const s=Wo(r.shape,e.shape);return s.length>0&&(t=Tu(t,s)),vl(t,r.shape)}}}},{kernelName:Kn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,Nu(xo(n)))}}},{kernelName:nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=wo(xu(n,6),nh(n));return{x:()=>wo(e,zs(r,"float32"))}}},{kernelName:Yn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,zs(nh(n),"float32"))}}},{kernelName:Jn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vl(e,n.shape)}}},{kernelName:er,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Fa.runKernel(tr,a,n)}}},{kernelName:Zn,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Fa.runKernel(Qn,a,n)}}},{kernelName:rr,gradFunc:(e,t,n)=>{const{dims:r}=n,a=fe(r,e.shape);return{x:()=>Ac(e,a)}}},{kernelName:ar,gradFunc:e=>({x:()=>ko(e)})},{kernelName:sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Nu(vo(e,wo(Mo(n,1.5),2)))}}},{kernelName:or,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>zs(ko(n),"float32"),t:()=>wo(e,zs(n,e.dtype)),e:()=>wo(e,zs(Vu(n),e.dtype))}}},{kernelName:lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=pu(n,To(0)),r=To(nd),a=To(rd),s=wo(e,a),i=wo(wo(e,r),ou(zs(n,"float32")));return nu(t,s,i)}}}},{kernelName:dr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,wo(n,$o(To(1),n)))}}},{kernelName:fr,gradFunc:e=>({x:()=>ko(e)})},{kernelName:cr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(ql(zs(n,"float32")),e)}}},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Xl(zs(n,"float32")),e)}}},{kernelName:ur,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Ri(r,a,s),u=[];for(let t=0;tlc(e,u)}}},{kernelName:vr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=wo(e,r);return{logits:()=>$o(s,wo(Tu(s,[a],!0),r))}}},{kernelName:pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,kl(n))}}},Mp,Mp,$p,$p,{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,wo(_o(zs(n,"float32")),2))}}},{kernelName:wr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=To(2);return{a:()=>wo(e,wo(a,$o(n,r))),b:()=>wo(e,wo(a,$o(r,n)))}}},{kernelName:_r,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,wo(zs(n,"float32"),2))}}},{kernelName:Or,gradFunc:e=>({x:()=>ko(e)})},{kernelName:xr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{let t=e;const r=Wo(n.shape,a);return r.length>0&&(t=Tu(t,r)),vl(t,n.shape)},b:()=>{let t=e;const n=Wo(r.shape,a);return n.length>0&&(t=Tu(t,n)),vl(Nu(t),r.shape)}}}},{kernelName:gr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,a=r.shape.slice(),{axis:s}=n;fe(s,r.shape).forEach((e=>{a[e]=1}));const i=vl(e,a),o=wo(i,sc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Cr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,xo(ql(n)))}}},{kernelName:Sr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo($o(To(1),xo(n)),e)}}},{kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=ko(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Lu(a);return{x:()=>li(e,s)}}},{kernelName:Tr,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>th(e,a)}}},{kernelName:Rr,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=Vo(t,ko(t)),r=du(e,n);let a=mu(t,To(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>ko(e)})}];for(const e of Pp)Gr(e);let Lp;function zp(){return null==Lp&&(Lp=mo().epsilon()),Lp}ma.prototype.abs=function(){return this.throwIfDisposed(),Lo(this)},ma.prototype.acos=function(){return this.throwIfDisposed(),Xo(this)},ma.prototype.acosh=function(){return this.throwIfDisposed(),Ko(this)},ma.prototype.addStrict=function(e){return this.throwIfDisposed(),Ch(this,e)},ma.prototype.add=function(e){return this.throwIfDisposed(),yo(this,e)},ma.prototype.all=function(e,t){return this.throwIfDisposed(),Jo(this,e,t)},ma.prototype.any=function(e,t){return this.throwIfDisposed(),Zo(this,e,t)},ma.prototype.argMax=function(e){return this.throwIfDisposed(),Qo(this,e)},ma.prototype.argMin=function(e){return this.throwIfDisposed(),el(this,e)},ma.prototype.asScalar=function(){return this.throwIfDisposed(),Z(1===this.size,(()=>"The array must have only 1 element.")),vl(this,[])},ma.prototype.asType=function(e){return this.throwIfDisposed(),zs(this,e)},ma.prototype.as1D=function(){return this.throwIfDisposed(),vl(this,[this.size])},ma.prototype.as2D=function(e,t){return this.throwIfDisposed(),vl(this,[e,t])},ma.prototype.as3D=function(e,t,n){return this.throwIfDisposed(),vl(this,[e,t,n])},ma.prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),vl(this,[e,t,n,r])},ma.prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),vl(this,[e,t,n,r,a])},ma.prototype.asin=function(){return this.throwIfDisposed(),tl(this)},ma.prototype.asinh=function(){return this.throwIfDisposed(),nl(this)},ma.prototype.atan=function(){return this.throwIfDisposed(),rl(this)},ma.prototype.atan2=function(e){return this.throwIfDisposed(),al(this,e)},ma.prototype.atanh=function(){return this.throwIfDisposed(),sl(this)},ma.prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),wl(this,e,t,n,r)},ma.prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Nl(this,e,t)},ma.prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Il(this,e,t,n,r,a)},ma.prototype.broadcastTo=function(e){return this.throwIfDisposed(),Fl(this,e)},ma.prototype.cast=function(e){return this.throwIfDisposed(),zs(this,e)},ma.prototype.ceil=function(){return this.throwIfDisposed(),Ol(this)},ma.prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Bl(this,e,t)},ma.prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof ma&&(e=[e]),xl([this,...e],t)},ma.prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Wl(this,e,t,n,r,a,s)},ma.prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),Vl(this,e,t,n,r,a)},ma.prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),zl(this,e,t,n,r,a,s)},ma.prototype.cos=function(){return this.throwIfDisposed(),ql(this)},ma.prototype.cosh=function(){return this.throwIfDisposed(),Xl(this)},ma.prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Kl(this,e,t,n)},ma.prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Jl(this,e,t)},ma.prototype.depthwiseConv2D=function(e,t,n,r,a,s){return Zi("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),Zl(this,e,t,n,r,a,s)},ma.prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Zl(this,e,t,n,r,a,s)},ma.prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),eu(this,e,t,n,r,a)},ma.prototype.divNoNan=function(e){return this.throwIfDisposed(),ru(this,e)},ma.prototype.divStrict=function(e){return this.throwIfDisposed(),Sh(this,e)},ma.prototype.div=function(e){return this.throwIfDisposed(),vo(this,e)},ma.prototype.dot=function(e){return this.throwIfDisposed(),au(this,e)},ma.prototype.elu=function(){return this.throwIfDisposed(),su(this)},ma.prototype.equalStrict=function(e){return this.throwIfDisposed(),vh(this,e)},ma.prototype.equal=function(e){return this.throwIfDisposed(),tu(this,e)},ma.prototype.erf=function(){return this.throwIfDisposed(),iu(this)},ma.prototype.exp=function(){return this.throwIfDisposed(),ou(this)},ma.prototype.expandDims=function(e){return this.throwIfDisposed(),lu(this,e)},ma.prototype.expm1=function(){return this.throwIfDisposed(),uu(this)},ma.prototype.fft=function(){return this.throwIfDisposed(),Xc(this)},ma.prototype.flatten=function(){return this.throwIfDisposed(),vl(this,[this.size])},ma.prototype.floor=function(){return this.throwIfDisposed(),fu(this)},ma.prototype.floorDiv=function(e){return this.throwIfDisposed(),bo(this,e)},ma.prototype.gather=function(e,t){return this.throwIfDisposed(),du(this,e,t)},ma.prototype.greaterEqualStrict=function(e){return this.throwIfDisposed(),wh(this,e)},ma.prototype.greaterEqual=function(e){return this.throwIfDisposed(),mu(this,e)},ma.prototype.greaterStrict=function(e){return this.throwIfDisposed(),_h(this,e)},ma.prototype.greater=function(e){return this.throwIfDisposed(),pu(this,e)},ma.prototype.ifft=function(){return this.throwIfDisposed(),Kc(this)},ma.prototype.irfft=function(){return this.throwIfDisposed(),Yc(this)},ma.prototype.isFinite=function(){return this.throwIfDisposed(),yu(this)},ma.prototype.isInf=function(){return this.throwIfDisposed(),bu(this)},ma.prototype.isNaN=function(){return this.throwIfDisposed(),vu(this)},ma.prototype.leakyRelu=function(e){return this.throwIfDisposed(),wu(this,e)},ma.prototype.lessEqualStrict=function(e){return this.throwIfDisposed(),xh(this,e)},ma.prototype.lessEqual=function(e){return this.throwIfDisposed(),xu(this,e)},ma.prototype.lessStrict=function(e){return this.throwIfDisposed(),kh(this,e)},ma.prototype.less=function(e){return this.throwIfDisposed(),_u(this,e)},ma.prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Eu(this,e,t,n,r)},ma.prototype.logSigmoid=function(){return this.throwIfDisposed(),Du(this)},ma.prototype.logSoftmax=function(e){return this.throwIfDisposed(),Ru(this,e)},ma.prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Wu(this,e,t)},ma.prototype.log=function(){return this.throwIfDisposed(),Cu(this)},ma.prototype.log1p=function(){return this.throwIfDisposed(),Su(this)},ma.prototype.logicalAnd=function(e){return this.throwIfDisposed(),Uu(this,e)},ma.prototype.logicalNot=function(){return this.throwIfDisposed(),Vu(this)},ma.prototype.logicalOr=function(e){return this.throwIfDisposed(),ju(this,e)},ma.prototype.logicalXor=function(e){return this.throwIfDisposed(),Hu(this,e)},ma.prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ii(this,e,t,n)},ma.prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Gu(this,e,t,n,r)},ma.prototype.max=function(e,t){return this.throwIfDisposed(),Au(this,e,t)},ma.prototype.maximumStrict=function(e){return this.throwIfDisposed(),Nh(this,e)},ma.prototype.maximum=function(e){return this.throwIfDisposed(),Vo(this,e)},ma.prototype.mean=function(e,t){return this.throwIfDisposed(),Ku(this,e,t)},ma.prototype.min=function(e,t){return this.throwIfDisposed(),Yu(this,e,t)},ma.prototype.minimumStrict=function(e){return this.throwIfDisposed(),Ih(this,e)},ma.prototype.minimum=function(e){return this.throwIfDisposed(),Ju(this,e)},ma.prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Zu(this,e,t)},ma.prototype.modStrict=function(e){return this.throwIfDisposed(),Dh(this,e)},ma.prototype.mod=function(e){return this.throwIfDisposed(),Qu(this,e)},ma.prototype.mulStrict=function(e){return this.throwIfDisposed(),Ah(this,e)},ma.prototype.mul=function(e){return this.throwIfDisposed(),wo(this,e)},ma.prototype.neg=function(){return this.throwIfDisposed(),Nu(this)},ma.prototype.norm=function(e,t,n){return this.throwIfDisposed(),Bh(this,e,t,n)},ma.prototype.notEqualStrict=function(e){return this.throwIfDisposed(),Eh(this,e)},ma.prototype.notEqual=function(e){return this.throwIfDisposed(),rc(this,e)},ma.prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),oi(this,e,t,n)},ma.prototype.onesLike=function(){return this.throwIfDisposed(),ic(this)},ma.prototype.pad=function(e,t){return this.throwIfDisposed(),lc(this,e,t)},ma.prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),pc(this,e,t,n,r,a)},ma.prototype.powStrict=function(e){return this.throwIfDisposed(),Th(this,e)},ma.prototype.pow=function(e){return this.throwIfDisposed(),Mo(this,e)},ma.prototype.prelu=function(e){return this.throwIfDisposed(),mc(this,e)},ma.prototype.prod=function(e,t){return this.throwIfDisposed(),gc(this,e,t)},ma.prototype.reciprocal=function(){return this.throwIfDisposed(),Nc(this)},ma.prototype.relu=function(){return this.throwIfDisposed(),Ic(this)},ma.prototype.relu6=function(){return this.throwIfDisposed(),Dc(this)},ma.prototype.reshapeAs=function(e){return this.throwIfDisposed(),vl(this,e.shape)},ma.prototype.reshape=function(e){return this.throwIfDisposed(),vl(this,e)},ma.prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),_f(this,e,t,n)},ma.prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),xf(this,e,t,n)},ma.prototype.reverse=function(e){return this.throwIfDisposed(),Ac(this,e)},ma.prototype.rfft=function(){return this.throwIfDisposed(),Zc(this)},ma.prototype.round=function(){return this.throwIfDisposed(),Bc(this)},ma.prototype.rsqrt=function(){return this.throwIfDisposed(),Mc(this)},ma.prototype.selu=function(){return this.throwIfDisposed(),$c(this)},ma.prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Pc(this,e,t,n,r,a,s)},ma.prototype.sigmoid=function(){return this.throwIfDisposed(),kl(this)},ma.prototype.sign=function(){return this.throwIfDisposed(),zc(this)},ma.prototype.sin=function(){return this.throwIfDisposed(),Wc(this)},ma.prototype.sinh=function(){return this.throwIfDisposed(),Uc(this)},ma.prototype.slice=function(e,t){return this.throwIfDisposed(),El(this,e,t)},ma.prototype.softmax=function(e){return this.throwIfDisposed(),qc(this,e)},ma.prototype.softplus=function(){return this.throwIfDisposed(),Iu(this)},ma.prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),dc(this,e,t)},ma.prototype.split=function(e,t){return this.throwIfDisposed(),Jc(this,e,t)},ma.prototype.sqrt=function(){return this.throwIfDisposed(),_o(this)},ma.prototype.square=function(){return this.throwIfDisposed(),xo(this)},ma.prototype.squaredDifference=function(e){return this.throwIfDisposed(),Qc(this,e)},ma.prototype.squaredDifferenceStrict=function(e){return this.throwIfDisposed(),Rh(this,e)},ma.prototype.squeeze=function(e){return this.throwIfDisposed(),eh(this,e)},ma.prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof ma?[this,e]:[this,...e];return th(n,t)},ma.prototype.step=function(e){return this.throwIfDisposed(),nh(this,e)},ma.prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),rh(this,e,t,n,r,a,s,i,o)},ma.prototype.subStrict=function(e){return this.throwIfDisposed(),Fh(this,e)},ma.prototype.sub=function(e){return this.throwIfDisposed(),$o(this,e)},ma.prototype.sum=function(e,t){return this.throwIfDisposed(),Tu(this,e,t)},ma.prototype.tan=function(){return this.throwIfDisposed(),ah(this)},ma.prototype.tanh=function(){return this.throwIfDisposed(),Cl(this)},ma.prototype.tile=function(e){return this.throwIfDisposed(),cu(this,e)},ma.prototype.toBool=function(){return this.throwIfDisposed(),zs(this,"bool")},ma.prototype.toFloat=function(){return this.throwIfDisposed(),zs(this,"float32")},ma.prototype.toInt=function(){return this.throwIfDisposed(),zs(this,"int32")},ma.prototype.topk=function(e,t){return this.throwIfDisposed(),ch(this,e,t)},ma.prototype.transpose=function(e){return this.throwIfDisposed(),li(this,e)},ma.prototype.unique=function(e){return this.throwIfDisposed(),fh(this,e)},ma.prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),dh(this,e,t)},ma.prototype.unstack=function(e){return this.throwIfDisposed(),ph(this,e)},ma.prototype.where=function(e,t){return this.throwIfDisposed(),nu(e,this,t)},ma.prototype.zerosLike=function(){return this.throwIfDisposed(),ko(this)};class Wp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wp.prototype)}}class Up extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Up.prototype)}}class Vp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Vp.prototype)}}class jp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,jp.prototype)}}class Hp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Hp.prototype)}}function Gp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let Qp={};function em(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function tm(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>tm(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?tm(t):e[n]=t.value)}}}function nm(e,t={},n={},r="object",a=!1){if("string"==typeof e){const a=e;let s;if(a in n)s=n[a];else if(a in Qp)s=Qp[a];else if(s=t[a],null==s)throw new Vp(`Unknown ${r}: ${e}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return s}{const s=e;if(null==s.className||null==s.config)throw new Vp(`${r}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);const i=s.className;let o,l;if(i in n?[o,l]=n[i]:i in Qp?[o,l]=Qp.className:i in t&&([o,l]=t[i]),null==o)throw new Vp(`Unknown ${r}: ${i}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(Qp))e[t]=Qp[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},Qp);for(const e of Object.keys(n))Qp[e]=n[e];tm(s.config);const r=l(o,s.config,n,a);return Qp=Object.assign({},t),r}{const e=Object.assign({},Qp);for(const e of Object.keys(n))Qp[e]=n[e];const t=new o(s.config);return Qp=Object.assign({},e),t}}}function rm(e,t){return-1*function(e,t){return et?1:0}(e,t)}function am(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function sm(e){if(null==e)throw new Vp(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function im(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Vp(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function om(e,t,n=0,r=1/0){return qp(n>=0),qp(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function lm(e,t){Array.isArray(e)?(Z(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>lm(e,`element ${n+1} of ${t}`)))):Z(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${um(e)}.`))}function um(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>um(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function cm(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function hm(e,t){return ro((()=>_o(Tu(wo(e,e),t,!0))))}class fm extends Oi{getConfig(){return{}}}class dm extends fm{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>{const t=hm(e,this.axis),n=Bl(t,0,this.maxValue);return wo(e,vo(n,yo(zp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}dm.className="MaxNorm",Mi(dm);class pm extends fm{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>vo(e,yo(zp(),hm(e,this.axis)))))}getConfig(){return{axis:this.axis}}}pm.className="UnitNorm",Mi(pm);class mm extends fm{apply(e){return Ic(e)}}mm.className="NonNeg",Mi(mm);class gm extends fm{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>{const t=hm(e,this.axis),n=yo(wo(this.rate,Bl(t,this.minValue,this.maxValue)),wo(1-this.rate,t));return wo(e,vo(n,yo(zp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}gm.className="MinMaxNorm",Mi(gm);const ym={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function bm(e){return em(e)}function vm(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"constraint")}function wm(e){return null==e?null:"string"==typeof e?vm({className:e in ym?ym[e]:e,config:{}}):e instanceof fm?e:vm(e)}function _m(e){return new dm(e)}function xm(e){return new pm(e)}function km(){return new mm}function Em(e){return new gm(e)}const Cm=["channelsFirst","channelsLast"],Sm=["nearest","bilinear"],Nm=["valid","same","causal"],Im=["max","avg"],Dm=["sum","mul","concat","ave"],Am=new Map;function Tm(e){im(Cm,"DataFormat",e)}function Rm(e){im(Nm,"PaddingMode",e)}function Fm(e){im(Im,"PoolMode",e)}const Om=[];function Bm(e,t){Om.push(e);try{const e=t();return Om.pop(),e}catch(e){throw Om.pop(),e}}function Mm(e){if(!Lm(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Om.length?"":Om.join("/")+"/")+e}function $m(e){if(!Lm(e))throw new Error("Not a valid tensor name: '"+e+"'");Am.has(e)||Am.set(e,0);const t=Am.get(e);if(Am.set(e,Am.get(e)+1),t>0){const n=`${e}_${t}`;return Am.set(n,1),n}return e}const Pm=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Lm(e){return!!e.match(Pm)}function zm(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let r=1;for(let a=t;a{switch(e.rank){case 1:return Vc(e,t,n);case 2:return jc(e,[t,0],[n,e.shape[1]]);case 3:return Hc(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Gc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return El(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return El(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Vp(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Xm(e,t,n){return ro((()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:return jc(e,[0,t],[e.shape[0],n]);case 3:return Hc(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Gc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Vp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Km(e,t,n,r){return ro((()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:switch(r){case 1:return qm(e,t,n);case 2:return Xm(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return qm(e,t,n);case 2:return Hc(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Xm(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return qm(e,t,n);case 2:return Gc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Gc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Xm(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}default:throw new Vp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Ym(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),xl(e,t)}function Jm(e,t){switch(e.rank){case 1:return Ml([e,t]);case 2:return $l([e,t],0);case 3:return Pl([e,t],0);case 4:return Ll([e,t],0);default:throw new Vp(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Zm(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Vp(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return cu(e,t)}function Qm(e,t=0,n=1,r,a){return kc(e,t,n,r,a)}function eg(e,t,n,r){if(e.rank<2||t.rank<2)throw new jp(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3&&e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new jp(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`);if(2===e.rank&&2===t.rank)return Qh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?rg(e.rank,r,"channelsLast"):null,activation:n});{const a=e.shape.slice(),s=a.pop();e=e.reshape([-1,s]);const i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=t.transpose(c).reshape([l,-1]);const h=[...a,...u];return Qh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?rg(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function tg(e,t,n){return ro((()=>(t=Array.isArray(t)?sh(t,"int32"):t.toInt(),du(e,t,n))))}function ng(e){return wo(e,e)}function rg(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Vp(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1,1]):t.reshape([1,r[3],r[0],r[1],r[2]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,1,r[0]]):t.reshape([1].concat(r))}else if(4===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1]):t.reshape([1,r[2],r[0],r[1]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,r[0]]):t.reshape([1].concat(r))}else if(3===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1]):t.reshape([1,r[1],r[0]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,r[0]]):t.reshape([1].concat(r))}else if(e<3)return t;throw new Vp(`Unsupported input rank by biasAdd: ${t.rank}`)}function ag(e,t,n){return ro((()=>(null==n&&(n="channelsLast"),Tm(n),e.add(rg(e.rank,t,n)))))}function sg(e,t,n,r){return ro((()=>zh(e,t,n,r)))}function ig(e,t,n=!1){return n?e():t()}const og=["fanIn","fanOut","fanAvg"],lg=["normal","uniform","truncatedNormal"];class ug extends Oi{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class cg extends ug{apply(e,t){return ac(e,t)}}cg.className="Zeros",Mi(cg);class hg extends ug{apply(e,t){return sc(e,t)}}hg.className="Ones",Mi(hg);class fg extends ug{constructor(e){if(super(),"object"!=typeof e)throw new Vp(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Vp(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return ro((()=>wo(To(this.value),sc(e,t))))}getConfig(){return{value:this.value}}}fg.className="Constant",Mi(fg);class dg extends ug{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Ec(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}dg.className="RandomUniform",Mi(dg);class pg extends ug{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`randomNormal does not support dType ${t}.`);return Qm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}pg.className="RandomNormal",Mi(pg);class mg extends ug{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`truncatedNormal does not support dType ${t}.`);return hh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}mg.className="TruncatedNormal",Mi(mg);class gg extends ug{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return ro((()=>{if(2!==e.length||e[0]!==e[1])throw new Vp("Identity matrix initializer can only be used for 2D square matrices.");return wo(this.gain,hu(e[0]))}))}getConfig(){return{gain:this.gain}}}gg.className="Identity",Mi(gg);class yg extends ug{constructor(e){if(super(),e.scale<0)throw new Vp(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,im(og,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){im(lg,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(Tm(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=zm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=zm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=zm(e);n=Math.sqrt(t),r=Math.sqrt(t)}return[n,r]}(e),r=n[0],a=n[1];let s=this.scale;if("fanIn"===this.mode?s/=Math.max(1,r):"fanOut"===this.mode?s/=Math.max(1,a):s/=Math.max(1,(r+a)/2),"normal"===this.distribution){const n=Math.sqrt(s);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`${this.getClassName()} does not support dType ${t}.`);return hh(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Ec(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}yg.className="VarianceScaling",Mi(yg);class bg extends yg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}bg.className="GlorotUniform",Mi(bg);class vg extends yg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}vg.className="GlorotNormal",Mi(vg);class wg extends yg{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}wg.className="HeNormal",Mi(wg);class _g extends yg{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}_g.className="HeUniform",Mi(_g);class xg extends yg{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}xg.className="LeCunNormal",Mi(xg);class kg extends yg{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}kg.className="LeCunNormal",Mi(kg);class Eg extends ug{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,null!=this.seed)throw new jp("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return ro((()=>{if(e.length<2)throw new jp("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const t=Qm(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=zf.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),wo(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}Eg.className="Orthogonal",Mi(Eg);const Cg={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Sg(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"initializer")}function Ng(e){return em(e)}function Ig(e){if("string"==typeof e){const t=e in Cg?Cg[e]:e;if("GlorotNormal"===t)return new vg;if("GlorotUniform"===t)return new bg;if("HeNormal"===t)return new wg;if("HeUniform"===t)return new _g;if("LeCunNormal"===t)return new xg;if("LeCunUniform"===t)return new kg;{const e={};return e.className=t,e.config={},Sg(e)}}return e instanceof ug?e:Sg(e)}function Dg(){return new cg}function Ag(){return new hg}function Tg(e){return new fg(e)}function Rg(e){return new dg(e)}function Fg(e){return new pg(e)}function Og(e){return new mg(e)}function Bg(e){return new gg(e)}function Mg(e){return new yg(e)}function $g(e){return new bg(e)}function Pg(e){return new vg(e)}function Lg(e){return new wg(e)}function zg(e){return new _g(e)}function Wg(e){return new xg(e)}function Ug(e){return new kg(e)}function Vg(e){return new Eg(e)}let jg=0;function Hg(){return jg++}const Gg={};function qg(e=""){return e in Gg||(Gg[e]=0),Gg[e]+=1,e+Gg[e].toString()}function Xg(e){return Array.isArray(e)&&Array.isArray(e[0])}function Kg(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function Yg(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Vp(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Jg(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Vp(`Expected exactly 1 Shape; got ${e.length}`)}return e}function Zg(e){let t=0;for(const n of e)0===n.shape.length?t+=1:t+=n.shape.reduce(((e,t)=>e*t));return t}class Qg{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Hg(),n=null==n?"Variable":n,this.originalName=Mm(n),this.name=$m(this.originalName),this.trainable_=r,this.constraint=a,this.val=mh(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function ey(e){return e.map((e=>e.read()))}function ty(e){e.forEach((e=>{e[0].write(e[1])}))}class ny{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class ry{constructor(e,t,n,r,a,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=r,this.callArgs=a,this.outputTensorIndex=i,this.id=Hg(),null!=s&&(this.originalName=Mm(s),this.name=$m(this.originalName)),this.rank=t.length}}let ay=0;class sy{constructor(e,t){this.callArgs=t,this.id=ay++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let iy=0;class oy extends Oi{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=iy++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=Jp(e)+"_"+qg(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Up(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Vp(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Kp(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Kp(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Wp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Wp(`Layer ${this.name} is not connected, no input to return.`);return Kp(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Wp(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Wp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Kp(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=Yp(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=Yp(this.inputSpec);if(e.length!==t.length)throw new Vp(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;na.maxNDim)throw new Vp(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${a.maxNDim}, found ndim=${s}`);if(null!=a.minNDim&&s=0?e[r]:e[e.length+r];if(null!=s&&-1===[s,null].indexOf(i))throw new Vp(`Input ${n} is incompatible with layer ${this.name}: expected axis ${r} of input shape to have value ${s} but got shape ${e}.`)}}if(null!=a.shape)for(let e=0;e{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of Yp(e))t.push(n.shape);this.build(Kp(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&a&&(this._refCount=1)}if(this.assertInputCompatibility(e),a){let r=this.call(e,t);const a=Yp(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=Kp(s),null!=this.activityRegularizer)throw new jp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}{const n=function(e){e=Yp(e);const t=[];for(const n of e)t.push(n.shape);return Kp(t)}(e),r=this.computeOutputShape(n);let a;const s="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),a=null!=r&&r.length>0&&Array.isArray(r[0])?r.map(((n,r)=>new ry(s,n,this,Yp(e),t,this.name,r))):new ry(s,r,this,Yp(e),t,this.name),this.addInboundNode(e,a,null,null,n,r,t),this._refCount++,null!=this.activityRegularizer)throw new jp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach(((n,r)=>{null!=n&&null!=e[r]&&e[r]!==n&&(t=!0)})),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Wp(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Wp(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Up(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Zg(this.weights)}build(e){this.built=!0}getWeights(e=!1){return ey(e?this.trainableWeights:this.weights)}setWeights(e){ro((()=>{const t=this.weights;if(t.length!==e.length)throw new Vp(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],r=ey(t);for(let a=0;aa.apply(l.read()))),null==s&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=Yp(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}addInboundNode(e,t,n,r,a,s,i=null){const o=Yp(e);t=Yp(t),n=Yp(n),r=Yp(r),a=Kg(a),s=Kg(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new sy({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:r,inputShapes:a,outputShapes:s},i);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function ly(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;n0){const a=await Promise.all(t);for(let t=0;tyo(this.totals[e],wo(r,n))));this.totals[e]=a,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:ro((()=>{const n=wo(vo(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),so(t[e])})))}}class yy extends py{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const r in this.history){const a=this.history[r];for(let s=0;s{const s=oa();return s-rnew by(e,t)))}class wy{constructor(){}static registerCallbackConstructor(e,t){Z(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),wy.checkForDuplicate(t),null==wy.constructors[e]&&(wy.constructors[e]=[]),wy.constructors[e].push(t)}static checkForDuplicate(e){for(const t in wy.constructors)wy.constructors[+t].forEach((t=>{if(t===e)throw new Vp("Duplicate callback constructor.")}))}static clear(){wy.constructors={}}static createCallbacks(e){const t=[];for(const n in wy.constructors){const r=+n;e>=r&&t.push(...wy.constructors[r])}return t.map((e=>new e))}}function _y(e,t,n,r,a,s,i,o,l){const u=new yy,c=[new gy,...wy.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new my(c);return h.setParams({epochs:n,initialEpoch:r,samples:a,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function xy(e,t={},n=!1){return nm(e,Bi.getMap().classNameMap,t,"layer",n)}function ky(e,t){return ro((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=Tu(ng(e),t,!0),r=Oo(n.shape,zp()),a=_o(Vo(n,r));return vo(e,a)}))}function Ey(e,t){return ro((()=>Ku(ng($o(t,e)),-1)))}function Cy(e,t){return ro((()=>Ku(Lo($o(t,e)),-1)))}function Sy(e,t){return ro((()=>{const n=$o(e,t),r=Bl(Lo(e),zp(),Number.MAX_VALUE),a=Lo(vo(n,r));return wo(100,Ku(a,-1))}))}function Ny(e,t,n=!1){return ro((()=>{if(n)t=qc(t);else{const e=Tu(t,t.shape.length-1,!0);t=vo(t,e)}return t=Bl(t,zp(),1-zp()),Nu(Tu(wo(e.toFloat(),Cu(t)),t.shape.length-1))}))}function Iy(e,t,n=!1){return ro((()=>{const r=fu(function(e){const t=[zm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Bl(t,zp(),1-zp())).shape;return Ny(oi(r,a[a.length-1]).reshape(a),t,n)}))}function Dy(e,t){return ro((()=>{let n;return n=Bl(t,zp(),1-zp()),n=Cu(vo(n,$o(1,n))),Ku(function(e,t){if(!ae(e.shape,t.shape))throw new Vp(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return ro((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function Ay(e,t){return ro((()=>{const n=ky(e,-1),r=ky(t,-1),a=wo(n,r);return Nu(Tu(a,-1))}))}wy.constructors={};const Ty={meanSquaredError:Ey,meanAbsoluteError:Cy,meanAbsolutePercentageError:Sy,meanSquaredLogarithmicError:function(e,t){return ro((()=>{const n=Bl(t,zp(),Number.MAX_VALUE),r=Cu(yo(1,n)),a=Bl(e,zp(),Number.MAX_VALUE),s=Cu(yo(1,a));return Ku(ng($o(r,s)),-1)}))},squaredHinge:function(e,t){return ro((()=>{const n=Vo(0,$o(1,wo(e,t)));return Ku(ng(n),-1)}))},hinge:function(e,t){return ro((()=>{const n=Vo(0,$o(1,wo(e,t)));return Ku(n,-1)}))},categoricalHinge:function(e,t){return ro((()=>{const n=Tu(wo(e,t),-1),r=Au(wo($o(1,e),t),-1);return Vo(0,yo(1,$o(r,n)))}))},logcosh:function(e,t){return ro((()=>{const n=Math.log(2),r=$o(t,e),a=$o(yo(r,Iu(wo(-2,r))),n);return Ku(a,-1)}))},categoricalCrossentropy:Ny,sparseCategoricalCrossentropy:Iy,binaryCrossentropy:Dy,kullbackLeiblerDivergence:function(e,t){return ro((()=>{const n=Bl(e,zp(),1),r=Bl(t,zp(),1);return Tu(wo(e,Cu(vo(n,r))),-1)}))},poisson:function(e,t){return ro((()=>{const n=Cu(yo(zp(),t));return Ku($o(t,wo(e,n)),-1)}))},cosineProximity:Ay};function Ry(e){if("string"==typeof e){if(e in Ty)return Ty[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Vp(t)}return e}function Fy(e,t){return ro((()=>{const n=wo(.5,ic(t)),r=Hm(pu(t,n),e.dtype);return Ku(tu(e,r),-1)}))}function Oy(e,t){return ro((()=>Hm(tu(Qo(e,-1),Qo(t,-1)),"float32")))}function By(e,t){return ro((()=>Uu(e.equal(1),t.equal(1)).sum().cast("float32")))}function My(e,t){return ro((()=>{const n=By(e,t),r=function(e,t){return ro((()=>Uu(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return nu(pu(a,0),n.div(a),0).cast("float32")}))}function $y(e,t){return Dy(e,t)}function Py(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),(t=t.argMax(-1)).dtype!==e.dtype&&(t=t.asType(e.dtype)),tu(e,t).asType("float32")}const Ly=Ny,zy=Iy,Wy={binaryAccuracy:Fy,categoricalAccuracy:Oy,precision:My,categoricalCrossentropy:Ly,sparseCategoricalCrossentropy:zy,mse:Ey,MSE:Ey,mae:Cy,MAE:Cy,mape:Sy,MAPE:Sy,cosine:Ay};function Uy(e){if("string"==typeof e&&e in Wy)return Wy[e];if("string"!=typeof e&&null!=e)return e;throw new Vp(`Unknown metric ${e}`)}function Vy(e){if(qp(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Ty))if(Ty[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Wy))if(Wy[n]===e){t=n;break}return void 0!==t?t:e.name}}function jy(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!Hy(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){const n=JSON.stringify(e);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function Hy(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!Hy(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Hy(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Gy(e,t,n=console.log){let r="";for(let n=0;n0&&(r=r.slice(0,r.length-1)+" "),r+=e[n],r=r.slice(0,t[n]),r+=" ".repeat(t[n]-r.length);n(r)}function qy(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}Gy([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function Xy(e,t,n,r){let a;try{a=JSON.stringify(e.outputShape)}catch(e){a="multiple"}const s=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().join(",");let h,f;if(null==eb[c]){const e=function(e,t){Z(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],r={};if(1===e.length){const a=ab(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=ab(s,t);for(const t of e)a.has(t.name)||(n.push(t),a.add(t.name));for(const e in i)null==r[e]&&(r[e]=new Set),i[e].forEach((t=>r[e].add(t)))}}return{sorted:n,recipientCounts:rb(r)}}(i,t);h=e.sorted,f=e.recipientCounts,eb[c]=h,tb[c]=f}h=eb[c],f={},a||Object.assign(f,tb[c]);const d=new Qy(t);for(let e=0;er.maxNumTensors&&(r.maxNumTensors=e),e0;){const e=s[s.length-1];if(n.has(e.name)){s.pop();continue}const t=i[i.length-1]===s.length-1;if(0===e.inputs.length||t)s.pop(),r.push(e),n.add(e.name),t&&i.pop();else{i.push(s.length-1);for(const t of e.inputs)null==a[t.name]&&(a[t.name]=new Set),a[t.name].add(e.name),n.has(t.name)||s.push(t)}}return{sorted:r,recipientMap:a}}function sb(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);am(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map((e=>e.name))}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(r)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;qp(0===n,"input layer has >1 nodes"),qp(0===r,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(r)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},r={},a={},s={},i=[],o=(e,t,n,r,a,l)=>{null!=r&&null!=a&&null!=l||(r=e.sourceLayer,a=e.nodeIndex,l=e.tensorIndex);const u=r.inboundNodes[a];if(-1!==n.indexOf(u))throw new Up(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(ib.nodeKey(r,a)),r.id in s||(s[r.id]=Object.keys(s).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);i.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=i.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let s=t[e.id];const i=null==r[e.outboundLayer.id]?0:r[e.outboundLayer.id];s=Math.max(s,i),r[e.outboundLayer.id]=s,a[e.outboundLayer.id]=e.outboundLayer,t[e.id]=s;for(let r=0;rparseInt(e,10))).sort(rm);this.layers=[];for(const e of d){const t=f[e];t.sort(((e,t)=>{const n=s[e.id],r=s[t.id];return nr?1:0}));for(const e of t)e instanceof ib&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(rm);const p=this.inputs.slice(),m=[];for(const e of d)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===p.indexOf(n))throw new Up(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)p.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Up(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new sy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Vp("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let r=0;for(const e of this.layers)for(const t of e.weights){if(null!=n[t.originalName])throw new Vp(`Duplicate weight name: ${t.originalName}`);n[t.originalName]=t,r++}const a=[];for(const r in e){let s=r;if(null==n[r]){const e=r.split("/");s=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[s])a.push([n[s],e[r]]);else if(t)throw new Vp(`Provided weight data has no target variable: ${r}`);delete n[s]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Vp(`${e.length} of ${r} weights are not set: ${e}`)}ty(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Zy}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=Jy(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return ro((()=>{e=Yp(e);const n=new Qy;for(let t=0;t{let n;return e=Yp(e),n=null==t?Gp(null,e.length):Yp(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Kg(e);if(t.length!==this.inputLayers.length)throw new Vp(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(rm);if(r.length>1)for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const r=[];for(let t=0;tparseInt(e,10))).sort(rm);for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,r=e.inputTensors,a=e.outputTensors,s=new Array;for(const e of r)e.id in n&&s.push(n[e.id]);if(s.length===r.length){let r,i,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===s.length){const[e,n]=s[0];null==u.mask&&(u.mask=n),o=Yp(t.call(e,u)),l=Yp(t.computeMask(e,n)),r=[e],i=[n]}else r=s.map((e=>e[0])),i=s.map((e=>e[1])),null==u.mask&&(u.mask=i),o=Yp(t.call(r,u)),l=Yp(t.computeMask(r,i));if(t.activityRegularizer)throw new jp("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(Kp(n),r)}function l(e){const n=e.name,s=xy(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Vp(`Corrupted configuration, expected array for nodeData: ${e}`);i(s,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!sm(s);)for(const e of c){const t=a[e.name];if(t.name in s){const e=s[t.name];delete s[t.name];for(const n of e)o(t,n)}}const h=[],f=[],d=t.inputLayers;for(const e of d){const t=e[0],n=e[1],r=e[2];qp(t in a);const s=a[t].inboundNodes[n].outputTensors;h.push(s[r])}const p=t.outputLayers;for(const e of p){const t=e[0],n=e[1],r=e[2];qp(t in a);const s=a[t].inboundNodes[n].outputTensors;f.push(s[r])}return new e({inputs:h,outputs:f,name:u})}get stateful(){if(this._stateful)throw new Vp("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){ro((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function ob(e,t){return function(e,t,n){const r=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===r)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==r)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${r} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${r}) outputs, so ${n} must be either an array with ${r} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}(e,t,"classWeight")}async function lb(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=ro((()=>{if(1===e.shape.length)return e.clone();if(2===e.shape.length){if(e.shape[1]>1){const t=1;return e.argMax(t)}if(1===e.shape[1])return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),r=Array.from(await t.data());ao(t);const a=[];return r.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);a.push(n[e])})),sh(a,"float32")}return null}function ub(e,t){return wo(e,t)}function cb(e,t){let n,r;const a=t;n=a.xs,r=a.ys,Z(null!=n&&null!=r,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const s=hb("input",e.inputNames,n),i=hb("output",e.outputNames,r),o=s[0].shape[0];Z(s.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Z(i.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${s[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:s,ys:i}}function hb(e,t,n){if(n instanceof ma)return[n];if(Array.isArray(n))return Z(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const r=[];for(const a of t){if(null==n[a])throw new Vp(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function fb(e){return"function"==typeof e.iterator}function db(e){Z(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function pb(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>qm(e,t,n-t))):qm(e,t,n-t)}function mb(e,t){return ro((()=>null==e?null:Array.isArray(e)?e.map((e=>mb(e,t))):tg(e,"int32"===t.dtype?t:t.toInt())))}function gb(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function yb(e){const t=[];e instanceof ma&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const r=t[e];n.push(r.id)}const r=[];if(e instanceof ma)-1===n.indexOf(e.id)&&r.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&r.push(e)}));else if(null!=e)for(const t in e){const a=e[t];-1===n.indexOf(a.id)&&r.push(a)}r.forEach((e=>{e.isDisposed||e.dispose()}))}function vb(e){return Array.isArray(e)}function wb(e){return!function(e){return e instanceof ma}(e)&&!vb(e)}function _b(e,t,n,r=!0,a=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(vb(e)&&e.length>0)t=!0;else if(wb(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Vp(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(wb(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Vp(`No data provided for "${n}". Need data for each key in: ${t}`);s.push(e[n])}}else if(vb(e)){if((e=e).length!==t.length)throw new Vp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new Vp(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=yb(s),null!=n)for(let e=0;e=0&&o!==l)throw new Vp(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function xb(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Vp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);s=e}else{if(t.length>1)throw new Vp(`The model expects ${t.length} ${a} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(null!=n)for(let e=0;e1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}r.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const a of n.inboundNodes)if(-1!==r.indexOf(a)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),s=["Layer (type)","Output shape","Param #"];let i;if(a?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!a){s.push("Receives inputs"),i=[];for(const t in e.nodesByDepth)i.push(...e.nodesByDepth[t])}r("_".repeat(t)),Gy(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eVf.adagrad(.01),Adadelta:()=>Vf.adadelta(1,.95,zp()),Adam:()=>Vf.adam(.001,.9,.999,zp()),Adamax:()=>Vf.adamax(.002,.9,.999,zp(),0),RMSProp:()=>Vf.rmsprop(.001,.9,0,zp()),SGD:()=>Vf.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Vp(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Ro))throw new Vp("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Vp(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>Ry(e)))}else{const n=Ry(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Vp(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)null==e.loss[n]&&console.warn(`Output "${n}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${n} during training`),t.push(Ry(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const r=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const r of t){let t=n.hasOwnProperty(r)?n[r]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),a=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};Bm("metric",(()=>{for(let e=0;e{let n,r,s;for(const i of t){if("string"==typeof i&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(i)){const t=this.internalOutputShapes[e];let a;1===t[t.length-1]||this.lossFunctions[e]===Dy?-1!==["accuracy","acc"].indexOf(i)?r=Fy:-1!==["crossentropy","ce"].indexOf(i)&&(r=$y):this.lossFunctions[e]===Iy?-1!==["accuracy","acc"].indexOf(i)?r=Py:-1!==["crossentropy","ce"].indexOf(i)&&(r=zy):-1!==["accuracy","acc"].indexOf(i)?r=Oy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Ly),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=Uy(i);s=e,n=""+Vy(i)}let t;Bm(n,(()=>{t=s})),a(e,n,t)}})(r[e])})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){const r=null==n.batchSize?32:n.batchSize;db(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return Kp(this.testLoop(i,s,r,n.verbose,n.steps))}finally{bb(a[0],e),bb(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const r=null!=(n=n||{}).batches,a=e.testFunction;let s=[];if(n.verbose>0)throw new jp("Verbose mode is not implemented yet.");Z(!r||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const i="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!r||l{if(t.value){const{xs:n,ys:r}=cb(e,t.value),i=n.concat(r),u=ro((()=>a(i)));if(ao(i),0===l)for(let e=0;eyo(s[e],wo(c,t)))),l>0&&ao(n)}ao(u),o+=c,++l}return s})),t.done){r&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let e=0;ee.name));for(let r=0;r0){const n=[];throw t.forEach(((t,r)=>{null==t&&n.push(e[r])})),new Vp(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return ro((()=>{const r=this.checkNumSamples(e);if(n)throw new jp("Verbose predictLoop() is not implemented yet.");const a=gb(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=pb(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return Kp(s.map((e=>xl(e,0))))}))}predict(e,t={}){const n=yb(e);xb(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return db(r),this.predictLoop(n,r)}finally{bb(n,e)}}predictOnBatch(e){xb(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,r){if(null==this.optimizer_)throw new Up("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const a=[];for(let e=0;ee.shape[0])));r.sort();const a=am(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Vp(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(a.length>1)throw new Vp(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(r.length>0&&a.length>0&&!ae(r,a))throw new Vp(`Input Tensors should have the same number of samples as target Tensors. Found ${r[0]} input sample(s) and ${a[0]} target sample(s).`)}(e=_b(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=_b(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[Ey,Dy,Ny];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Vp(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${r}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,r,a=!0,s){const[i,o]=this.standardizeUserDataXY(e,t,a,s);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=r){const e=ob(r,this.outputNames);l=[];for(let t=0;t{const s=this.checkNumSamples(t,n,a,"steps"),i=[];if(r>0)throw new jp("Verbose mode is not implemented yet.");if(null!=a)throw new jp("steps mode in testLoop() is not implemented yet");{const r=gb(s,n),a=sh(jm(0,s));for(let n=0;n1&&(a+=`_${Xp(e.slice(0,n),r)}`),t.push(a)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),s=[],i=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=yo(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>ro((()=>{const t=[];let n;const r=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let e=0;e0){if(m=!0,2!==r.validationData.length)throw 3===r.validationData.length?new jp("validationData including sample weights is not supported yet."):new Vp(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${r.validationData} is invalid.`);i=r.validationData[0],o=r.validationData[1];const t=!0,n=await e.standardizeUserData(i,o,null,null,t,h);l=n[0],u=n[1],p=l.concat(u)}else if(null!=r.validationSplit&&r.validationSplit>0&&r.validationSplit<1){m=!0;const e=Math.floor(a[0].shape[0]*(1-r.validationSplit)),t=a[0].shape[0];l=pb(a,e,t),a=pb(a,0,e),u=pb(s,e,t),s=pb(s,0,e),p=l.concat(u)}else null!=r.validationSteps&&(m=!0);const g=a.concat(s).concat(c);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),b=e.getDedupedMetricsNames();let v,w;m?(e.makeTestFunction(),v=e.testFunction,w=b.slice().concat(b.map((e=>"val_"+e)))):(v=null,p=[],w=b.slice());const _=vy(r.callbacks,r.yieldEvery);return await async function(e,t,n,r,a,s,i,o,l,u,c,h,f,d,p){null==a&&(a=32),null==s&&(s=1),null==c&&(c=!0),null==f&&(f=0);let m=!1;null!=l&&null!=u&&(m=!0);const g=e.checkNumSamples(n,a,d,"steps_per_epoch");let y;null!=g&&(y=jm(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=_y(o,i,s,f,g,d,a,m,h);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let i=f;i{const f=o[c][0],d=o[c][1],p=qm(i,f,d-f);h.batch=c,h.size=d-f;const g=mb(n,p),y=t(g);for(let e=0;e"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Z(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Z(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Z(!r||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Z(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const a=null!=n.validationData;let s,i;if(a)if(fb(n.validationData))Z(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new jp("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);s=e.xs,i=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=a?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=vy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=_y(c,h,n.epochs,null,null,function(e,t){let n=null;return null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size),n}(t,n),null,a,u);f.setModel(e),e.history=d,await f.onTrainBegin(),e.stopTraining_=!1;let p=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;p=n.batchesPerEpoch:t.done){if(a){let t;t=fb(n.validationData)?Yp(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):Yp(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;nJp(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const r of t){if("string"!=typeof n[r])throw new Error("Serialization of non-string loss is not supported.");e[r]=Jp(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[Jp(Vy(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>Jp(Vy(e))));{const e={};for(const t in this.metrics)e[t]=Jp(Vy(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=xy(Yy(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=Zp(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>Zp(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=Zp(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>Zp(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=Zp(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=os(e);if(0===t.length)throw new Vp(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Vp(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Vp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Ka(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${Zy}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await Ka(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=es([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;jy(this.userDefinedMetadata,this.name,e),r.userDefinedMetadata=this.userDefinedMetadata}return r.weightData=n.data,r.weightSpecs=n.specs,e.save(r)}setUserDefinedMetadata(e){jy(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}kb.className="Model",Mi(kb);class Eb extends kb{}async function Cb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=xy(Yy(n),t);if(null!=e.weightsManifest){const t=await Ks(e.weightsManifest,e.pathPrefix,r.weights.map((e=>e.originalName))),n={};for(const e of r.weights)n[e.originalName]=t[e.originalName];r.loadWeights(n),ao(t)}return r}Eb.className="Functional",Mi(Eb);class Sb extends kb{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:qg("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Vp(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Sb||e instanceof kb;let n;if(t){if(n=e,1!==n.outputs.length)throw new Vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Vp("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Vp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=cy({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Vp(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=ly(this.outputs[0])}this.inboundNodes=[],new sy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Gp(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if(Jg(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new kb({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},r=!1){let a,s={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Vp("Legacy serialization format not supported yet.");a=t}else Z(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),a=t.layers,delete t.layers,s=t;const i=new e(s);if(!(i instanceof Sb))throw new jp(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=xy(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Vp("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Vp("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}function Nb(e){return new kb(e)}function Ib(e){return new Sb(e)}function Db(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=ls(e,t);if(0===n.length)n.push(ti(e,t));else if(n.length>1)throw new Vp(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return async function(e,t,n){if(null==n&&(n={}),null==e.load)throw new Vp("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const r=await e.load();let a=r.modelTopology;null!=a.model_config&&(a=a.model_config);const s=null==n.strict||n.strict,i=null!=r.weightData&&null!=r.weightSpecs&&s,o=xy(Yy(a),void 0,i),l=r.trainingConfig;if(null!=l&&o.loadTrainingConfig(l),null!=r.userDefinedMetadata&&o.setUserDefinedMetadata(r.userDefinedMetadata),null!=r.weightData){if(null==r.weightSpecs)throw new Vp("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:e,optimizerWeights:t}=function(e,t){const n=Ya(e,t),r={},a=[];return t.forEach((e=>{"optimizer"===e.group?a.push({name:e.name,tensor:n[e.name]}):r[e.name]=n[e.name]})),{modelWeights:r,optimizerWeights:a}}(r.weightData,r.weightSpecs);o.loadWeights(e,s),null!=o.optimizer&&t.length>0&&await o.optimizer.setWeights(t),ao(e),ao(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function Ab(e){return cy(e)}function Tb(e,t){wy.registerCallbackConstructor(e,t)}Sb.className="Sequential",Mi(Sb);class Rb extends Oi{getConfig(){return{}}}class Fb extends Rb{apply(e,t=1){return function(e,t=1){if(1!==t)throw new jp(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return su(e)}(e,t)}}Fb.className="elu",Mi(Fb);class Ob extends Rb{apply(e){return $c(e)}}Ob.className="selu",Mi(Ob);class Bb extends Rb{apply(e){return Ic(e)}}Bb.className="relu",Mi(Bb);class Mb extends Rb{apply(e){return ro((()=>Ju(6,Ic(e))))}}Mb.className="relu6",Mi(Mb);class $b extends Rb{apply(e){return e}}$b.className="linear",Mi($b);class Pb extends Rb{apply(e){return kl(e)}}Pb.className="sigmoid",Mi(Pb);class Lb extends Rb{apply(e){return function(e){return ro((()=>{const t=yo(.5,wo(.2,e));return Bl(t,0,1)}))}(e)}}Lb.className="hardSigmoid",Mi(Lb);class zb extends Rb{apply(e){return Iu(e)}}zb.className="softplus",Mi(zb);class Wb extends Rb{apply(e){return function(e){return ro((()=>vo(e,Lo(e).add(1))))}(e)}}Wb.className="softsign",Mi(Wb);class Ub extends Rb{apply(e){return Cl(e)}}Ub.className="tanh",Mi(Ub);class Vb extends Rb{apply(e,t=-1){return qc(e,t)}}Vb.className="softmax",Mi(Vb);class jb extends Rb{apply(e,t=-1){return Ru(e,t)}}jb.className="logSoftmax",Mi(jb);class Hb extends Rb{apply(e,t=1){return ro((()=>kl(e.mul(t)).mul(e)))}}function Gb(e){return e.getClassName()}function qb(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"activation")}function Xb(e){if(null==e){return qb({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},qb(t)}return e instanceof Rb?e:qb(e)}function Kb(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Hb.className="swish",Mi(Hb);class Yb extends Oi{}class Jb extends Yb{constructor(e){super(),Kb(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return ro((()=>{let t=ac([1]);return this.hasL1&&(t=yo(t,Tu(wo(this.l1,Lo(e))))),this.hasL2&&(t=yo(t,Tu(wo(this.l2,ng(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}Jb.className="L1L2",Mi(Jb);const Zb={l1l2:"L1L2"};function Qb(e){return em(e)}function ev(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"regularizer")}function tv(e){return null==e?null:"string"==typeof e?ev({className:e in Zb?Zb[e]:e,config:{}}):e instanceof Yb?e:ev(e)}class nv extends oy{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=Yg(e);let n=Ic(e);return null!=this.maxValue&&(n=Bl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}nv.className="ReLU",Mi(nv);class rv extends oy{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=Yg(e);return wu(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}rv.className="LeakyReLU",Mi(rv);class av extends oy{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Ig(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=tv(e.alphaRegularizer),this.alphaConstraint=wm(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Vp(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=Jg(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t(Tm(t),"channelsFirst"===t?li(e,[0,2,3,1]):e)))}function fv(e,t){return ro((()=>(Tm(t),"channelsFirst"===t?li(e,[0,2,3,4,1]):e)))}function dv(e,t,n,r=[1,1],a="valid",s,i,o=null){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),3!==e.rank&&4!==e.rank)throw new Vp(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Vp(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=hv(e,s);if("causal"===a)throw new jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Kh({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=li(l,[0,3,1,2])),l}))}ov.className="Softmax",Mi(ov);class pv extends oy{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",pv.verifyArgs(t),this.rank=e,lm(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new jp(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=lv(t.kernelSize,e,"kernelSize"),this.strides=lv(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Rm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Tm(this.dataFormat),this.activation=Xb(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Ig(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=wm(t.biasConstraint),this.biasRegularizer=tv(t.biasRegularizer),this.activityRegularizer=tv(t.activityRegularizer),this.dilationRate=lv(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(qp("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,3))throw new Vp(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Gb(this.activation),useBias:this.useBias,biasInitializer:Ng(this.biasInitializer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),biasConstraint:bm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class mv extends pv{constructor(e,t){super(e,t),this.kernel=null,mv.verifyArgs(t),this.filters=t.filters,lm(this.filters,"filters"),this.kernelInitializer=Ig(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=wm(t.kernelConstraint),this.kernelRegularizer=tv(t.kernelRegularizer)}build(e){e=Jg(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Vp(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],r=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return ro((()=>{let t;e=Yg(e);const n=null==this.bias?null:this.bias.read(),r=cm(this.activation.getClassName());if(null!=r&&2===this.rank)t=dv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(1===this.rank)t=function(e,t,n,r=1,a="valid",s,i=1){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),3!==e.shape.length)throw new Vp(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Vp(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Vp(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=li(e,[0,2,1])),"causal"===a)throw new jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Wl(e,t,r,"same"===a?"same":"valid","NWC",i);return null!=n&&(o=ag(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=dv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new jp("convolutions greater than 3D are not implemented yet.");t=function(e,t,n,r=[1,1,1],a="valid",s,i){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),4!==e.rank&&5!==e.rank)throw new Vp(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Vp(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=fv(e,s);if("causal"===a)throw new jp("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=jl(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=ag(o,n)),"channelsFirst"===s&&(o=li(o,[0,4,1,2,3])),o}))}(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=Jg(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class gv extends mv{constructor(e){super(2,e),gv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,2))throw new Vp(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}gv.className="Conv2D",Mi(gv);class yv extends mv{constructor(e){super(3,e),yv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Vp(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}yv.className="Conv3D",Mi(yv);class bv extends gv{constructor(e){if(super(e),this.inputSpec=[new ny({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Vp(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=Jg(e)).length)throw new Vp("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Vp("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],r=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",r,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ny({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return ro((()=>{let t=Yg(e);if(4!==t.shape.length)throw new Vp(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,r=n[0];let a,s;"channelsFirst"===this.dataFormat?(a=2,s=3):(a=1,s=2);const i=n[a],o=n[s],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],f=[r,cv(i,c,l,this.padding),cv(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=li(t,[0,2,3,1]));let d=Vl(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=li(d,[0,3,1,2])),null!=this.bias&&(d=ag(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=Jg(e)).slice();let n,r,a;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3):(n=3,r=1,a=2);const s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[r]=cv(t[r],o,s,this.padding),t[a]=cv(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}bv.className="Conv2DTranspose",Mi(bv);class vv extends mv{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Vp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Vp("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Vp(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=Ig(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=tv(t.depthwiseRegularizer),this.depthwiseConstraint=wm(t.depthwiseConstraint),this.pointwiseInitializer=Ig(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=tv(t.pointwiseRegularizer),this.pointwiseConstraint=wm(t.pointwiseConstraint)}build(e){if((e=Jg(e)).length{let t;if(e=Yg(e),1===this.rank)throw new jp("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=li(e,[0,2,3,1])),t=Pc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=ag(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=li(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ng(this.depthwiseInitializer),e.pointwiseInitializer=Ng(this.pointwiseInitializer),e.depthwiseRegularizer=Qb(this.depthwiseRegularizer),e.pointwiseRegularizer=Qb(this.pointwiseRegularizer),e.depthwiseConstraint=bm(this.depthwiseConstraint),e.pointwiseConstraint=bm(this.pointwiseConstraint),e}}vv.className="SeparableConv";class wv extends vv{constructor(e){super(2,e)}}wv.className="SeparableConv2D",Mi(wv);class _v extends mv{constructor(e){super(1,e),_v.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,1))throw new Vp(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}_v.className="Conv1D",Mi(_v);class xv extends oy{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return ro((()=>{if(e=Yg(e),"channelsLast"===this.dataFormat){const t=Km(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Km(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Km(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Km(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}xv.className="Cropping2D",Mi(xv);class kv extends oy{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,im(Sm,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return ro((()=>{let t=Yg(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=li(t,[0,2,3,1]);const e=this.size[0]*n[2],r=this.size[1]*n[3],a="nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r]);return li(a,[0,3,1,2])}{const e=this.size[0]*n[1],r=this.size[1]*n[2];return"nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}kv.className="UpSampling2D",Mi(kv);class Ev extends pv{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Ig(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=wm(e.depthwiseConstraint),this.depthwiseRegularizer=tv(e.depthwiseRegularizer)}build(e){if((e=Jg(e)).length<4)throw new Vp(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Vp(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return ro((()=>{null==a&&(a="channelsLast"),Tm(a);let i=hv(e,a);if(4!==e.rank)throw new Vp(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Vp(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Zl(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=li(i,[0,3,1,2])),i}))}(e=Yg(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=ag(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=Jg(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,a=uv(t,this.kernelSize[0],this.padding,this.strides[0]),s=uv(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],r,a,s]:[e[0],a,s,r]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ng(this.depthwiseInitializer),e.depthwiseRegularizer=Qb(this.depthwiseRegularizer),e.depthwiseConstraint=bm(this.depthwiseRegularizer),e}}function Cv(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Vp("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=e.slice(e.length-r,e.length),e=e.slice(0,e.length-r)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function a(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=a(t),constants:n=a(n)}}function Sv(e,t,n,r=!1,a,s,i=!1,o=!1){return ro((()=>{const l=t.shape.length;if(l<3)throw new Vp(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(jm(2,l));if(t=li(t,u),null!=s)throw new jp("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=a&&((a=a.asType("bool").asType("float32")).rank===l-1&&(a=lu(a,-1)),a=li(a,u)),r&&(t=Ac(t,0),null!=a&&(a=Ac(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=ph(t);let m,g;null!=a&&(m=ph(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=ro((()=>{const e=m[t],n=ic(e).sub(e);return{output:r[0].mul(e).add(f[0].mul(n)),newStates:f.map(((t,a)=>r[1][a].mul(e).add(t.mul(n))))}}));h=e.output,f=e.newStates}o&&c.push(h)}return o&&(g=th(c,1)),[h,g,f]}))}Ev.className="DepthwiseConv2D",Mi(Ev);class Nv extends oy{constructor(e){let t;if(super(e),null==e.cell)throw new Vp("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new Bv({cells:e.cell}):e.cell,null==t.stateSize)throw new Vp("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new ny({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){return null==this.states_?jm(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null)):this.states_}setStates(e){this.states_=e}computeOutputShape(e){Xg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let r;if(r=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const r of t)n.push([e[0],r]);return[r].concat(n)}return r}computeMask(e,t){return ro((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),a))throw new Vp(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map((e=>new ny({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){ro((()=>{if(!this.stateful)throw new Wp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Vp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>ac([n,e]))):this.states_=[ac([n,this.cell.stateSize])];else if(null==e)ao(this.states_),null!=this.keptStates&&(ao(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>ac([n,e]))):this.states_[0]=ac([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Vp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):ao(this.states_);for(let t=0;tso(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Cv(e,n,r,this.numConstants);e=a.inputs,n=a.initialState,r=a.constants;let s=[],i=[];if(null!=n){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new ny({shape:e.shape}));i=i.concat(this.stateSpec)}if(null!=r&&(t.constants=r,s=s.concat(r),this.numConstants=r.length),s[0]instanceof ry){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return ro((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=Yg(e),null==a&&(a=this.stateful?this.states_:this.getInitialState(e));const s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(a.length!==s)throw new Vp(`RNN Layer has ${s} state(s) but was passed ${a.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const i={training:r},o=Sv(((e,t)=>{const n=this.cell.call([e].concat(t),i);return[n[0],n.slice(1)]}),e,a,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,r);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return ro((()=>{let t=ac(e.shape);return t=Tu(t,[1,2]),t=Gm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?Zm(t,[1,e]):t)):this.cell.stateSize>1?[Zm(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===Nv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=xy(t.cell,n);return new e(Object.assign(t,{cell:r}))}}Nv.className="RNN",Mi(Nv);class Iv extends oy{}class Dv extends Iv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,lm(this.units,"units"),this.activation=Xb(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Jg(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{if(2!==(e=e).length)throw new Vp(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0ic(e),rate:this.dropout,training:r})),0ic(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=eg(null!=s?wo(e,s):e,this.kernel.read()),null!=this.bias&&(a=ag(a,this.bias.read())),null!=i&&(n=wo(n,i));let o=yo(a,eg(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Gb(this.activation),useBias:this.useBias,kernelInitializer:Ng(this.kernelInitializer),recurrentInitializer:Ng(this.recurrentInitializer),biasInitializer:Ng(this.biasInitializer),kernelRegularizer:Qb(this.kernelRegularizer),recurrentRegularizer:Qb(this.recurrentRegularizer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),kernelConstraint:bm(this.kernelConstraint),recurrentConstraint:bm(this.recurrentConstraint),biasConstraint:bm(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Dv.className="SimpleRNNCell",Mi(Dv);class Av extends Nv{constructor(e){e.cell=new Dv(e),super(e)}call(e,t){return ro((()=>{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return new e(t)}}Av.className="SimpleRNN",Mi(Av);class Tv extends Iv{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Vp("GRUCell does not support reset_after parameter set to true.");this.units=e.units,lm(this.units,"units"),this.activation=Xb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Xb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=Jg(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{if(2!==(e=e).length)throw new Vp(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let r=e[1];e=e[0],0ic(e),rate:this.dropout,training:n,count:3})),0ic(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}Rv.className="GRU",Mi(Rv);class Fv extends Iv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,lm(this.units,"units"),this.activation=Xb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Xb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=Jg(e))[e.length-1];let r;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;r=new((t=class extends ug{apply(t,r){const a=e.apply([n]),s=(new hg).apply([n]),i=e.apply([2*n]);return Jm(Jm(a,s),i)}}).className="CustomInit",t)}else r=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,r,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return ro((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Vp(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0ic(e),rate:this.dropout,training:n,count:4})),0ic(r),rate:this.recurrentDropout,training:n,count:4}));const s=this.dropoutMask,i=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}Ov.className="LSTM",Mi(Ov);class Bv extends Iv{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return ro((()=>{let n=(e=e).slice(1);const r=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?r.push(n.splice(0,e.stateSize.length)):r.push(n.splice(0,1));r.reverse();const a=[];let s;for(let i=0;i{Bm(`RNNCell_${r}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign({},e,t)}static fromConfig(e,t,n={}){const r=[];for(const e of t.cells)r.push(xy(e,n));return new e({cells:r})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return ey(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;esg(t(),n),i=()=>ig(s,t,r);return!a||a<=1?so(i().clone()):Array(a).fill(void 0).map(i).map((e=>so(e.clone())))}Bv.className="StackedRNNCells",Mi(Bv);class $v extends Nv{constructor(e){if(e.unroll)throw new jp("Unrolling is not possible with convolutional RNNs.");if(Array.isArray(e.cell))throw new jp("It is not possible at the moment to stack convolutional cells.");super(e),this.inputSpec=[new ny({ndim:5})]}call(e,t){return ro((()=>{if(null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Vp("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return ro((()=>{const{stateSize:t}=this.cell,n=e.shape,r=this.computeSingleOutputShape(n),a=ac([r[0],...r.slice(2)]);return Array.isArray(t)?Array(t.length).fill(a):[a]}))}resetStates(e,t=!1){ro((()=>{if(!this.stateful)throw new Wp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,r=this.computeSingleOutputShape(n),a=[r[0],...r.slice(2)];if(null==n[0])throw new Vp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>ac(a))):this.states_=[ac(a)];else if(null==e)ao(this.states_),null!=this.keptStates&&(ao(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>ac(a))):this.states_[0]=ac(a);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Vp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):ao(this.states_);for(let t=0;tso(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:r,padding:a,strides:s,dilationRate:i}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=uv(l,r[0],a,s[0],i[0]),h=uv(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}$v.className="ConvRNN2D";class Pv extends Fv{constructor(e){const{filters:t,kernelSize:n,strides:r,padding:a,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,lm(this.filters,"filters"),this.kernelSize=lv(n,2,"kernelSize"),this.kernelSize.forEach((e=>lm(e,"kernelSize"))),this.strides=lv(r||1,2,"strides"),this.strides.forEach((e=>lm(e,"strides"))),this.padding=a||"valid",Rm(this.padding),this.dataFormat=s||"channelsLast",Tm(this.dataFormat),this.dilationRate=lv(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>lm(e,"dilationRate")))}build(e){var t;e=Jg(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Vp(`The channel dimension of the input should be defined. Found ${e[n]}`);const r=e[n],a=this.kernelSize.concat([r,4*this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const s=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",s,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,r=this.filters;e=new((t=class extends ug{apply(e,t){return Ym([n.apply([r]),sc([r]),n.apply([2*r])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return ro((()=>{if(3!==e.length)throw new Vp(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,r=e[0],a=e[1],s=e[2];0ic(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?wo(t[n],e):e;let l=o(r,i,0),u=o(r,i,1),c=o(r,i,2),h=o(r,i,3);0ic(a),rate:this.recurrentDropout,training:n,count:4}));const f=this.recurrentDropoutMask;let d=o(a,f,0),p=o(a,f,1),m=o(a,f,2),g=o(a,f,3);const[y,b,v,w]=Jc(this.kernel.read(),4,3),[_,x,k,E]=this.useBias?Jc(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,_,this.padding),u=this.inputConv(u,b,x,this.padding),c=this.inputConv(c,v,k,this.padding),h=this.inputConv(h,w,E,this.padding);const[C,S,N,I]=Jc(this.recurrentKernel.read(),4,3);d=this.recurrentConv(d,C),p=this.recurrentConv(p,S),m=this.recurrentConv(m,N),g=this.recurrentConv(g,I);const D=this.recurrentActivation.apply(yo(l,d)),A=this.recurrentActivation.apply(yo(u,p)),T=yo(wo(A,s),wo(D,this.activation.apply(yo(c,m)))),R=wo(this.recurrentActivation.apply(yo(h,g)),this.activation.apply(T));return[R,R,T]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a{this.invokeCallHook(e,t);const n=Yg(e);if(0sg(n,this.rate,r,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}zv.className="Dropout",Mi(zv);class Wv extends zv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Wv.className="SpatialDropout1D",Mi(Wv);class Uv extends oy{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,lm(this.units,"units"),this.activation=Xb(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=wm(e.kernelConstraint),this.biasConstraint=wm(e.biasConstraint),this.kernelRegularizer=tv(e.kernelRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.activityRegularizer=tv(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=Jg(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=Jg(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e),r=cm(this.activation.getClassName());let a;return null!=r?a=eg(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=eg(n,this.kernel.read()),null!=this.bias&&(a=ag(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:Gb(this.activation),useBias:this.useBias,kernelInitializer:Ng(this.kernelInitializer),biasInitializer:Ng(this.biasInitializer),kernelRegularizer:Qb(this.kernelRegularizer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),kernelConstraint:bm(this.kernelConstraint),biasConstraint:bm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Uv.className="Dense",Mi(Uv);class Vv extends oy{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Jg(e);for(const t of e.slice(1))if(null==t)throw new Vp(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],zm(e,1)]}call(e,t){return ro((()=>{this.invokeCallHook(e,t);let n=Yg(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=Yg(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Gb(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}jv.className="Activation",Mi(jv);class Hv extends oy{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return ro((()=>{return e=Yg(e),t=e,n=this.n,ro((()=>{if(2!==t.shape.length)throw new Vp(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return Zm(Gm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Hv.className="RepeatVector",Mi(Hv);class Gv extends oy{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=Yg(e),r=n.shape,a=r.slice(0,1).concat(this.fixUnknownDimension(r.slice(1),this.targetShape));return n.reshape(a)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Gv.className="Reshape",Mi(Gv);class qv extends oy{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=jm(1,e.dims.length+1);if(!ae(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ny({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=Jg(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return li(Yg(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}qv.className="Permute",Mi(qv);class Xv extends oy{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=Yg(e);return Zo(rc(n,this.maskValue),-1)}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e),r=Zo(rc(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}Xv.className="Masking",Mi(Xv);class Kv extends oy{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(Yp(e.inputLength))}this.inputDim=e.inputDim,lm(this.inputDim,"inputDim"),this.outputDim=e.outputDim,lm(this.outputDim,"outputDim"),this.embeddingsInitializer=Ig(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=tv(e.embeddingsRegularizer),this.activityRegularizer=tv(e.activityRegularizer),this.embeddingsConstraint=wm(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return ro((()=>this.maskZero?(e=Yg(e),rc(e,ko(e))):null))}computeOutputShape(e){if(e=Jg(e),null==this.inputLength)return[...e,this.outputDim];const t=Yp(this.inputLength);if(t.length!==e.length-1)throw new Vp(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let r=0;r{this.invokeCallHook(e,t);let n=Yg(e);return"int32"!==n.dtype&&(n=Hm(n,"int32")),tg(this.embeddings.read(),n.as1D()).reshape(Jg(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ng(this.embeddingsInitializer),embeddingsRegularizer:Qb(this.embeddingsRegularizer),activityRegularizer:Qb(this.activityRegularizer),embeddingsConstraint:bm(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Kv.className="Embedding",Mi(Kv);class Yv extends oy{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new jp}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Vp(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===am(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return ro((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Vm(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=jm(1,e).concat([0]);t.push(li(r,a)),n=!0}else t.push(r)}let r=this.mergeFunction(t);const a=r.rank;if(n)if(null==a){const e=r.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));r=li(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(jm(0,a-1));r=li(r,e)}return r}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==(e=e)[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Vp("`mask` should be an Array");if(!Array.isArray(e))throw new Vp("`inputs` should be an Array");if(t.length!==e.length)throw new Vp(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:lu(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Vp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return ro((()=>Ym(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Vp("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),r=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[r]||null==e[r]){n[r]=null;break}n[r]+=e[r]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Vp("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Vp("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Vp(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return ro((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const r=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new jp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);if(t[r[0]]!==n[r[1]])throw new Vp(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Vp(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],r=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>rw(t,e[n].shape.length))):[rw(this.axes,n.shape.length),rw(this.axes,r.shape.length)],this.normalize&&(n=ky(n,t[0]),r=ky(r,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new jp("batchDot is not implemented for tensors of 4D or higher rank yet");if(Z(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Z(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new jp("batchDot is not implemented for complex64-type Tensors yet.");const r=e.shape.length,a=t.shape.length;null==n&&(n=[r-1,a-2]);const s=n;return ro((()=>{let n,i;if(r>a){n=r-a;const e=[];for(let t=0;tr){n=a-r;const t=[];for(let e=0;e0){let e;e=r>a?r+a-3:r-1;const t=[];for(let r=e;r"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new jp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);t.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);const a=t.concat(n);return 1===a.length&&a.push(1),a}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}aw.className="Dot",Mi(aw);class sw extends oy{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e);return ig((()=>Qm(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}sw.className="GaussianNoise",Mi(sw);class iw extends oy{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e);return this.rate>0&&this.rate<1?ig((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(Qm(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}iw.className="GaussianDropout",Mi(iw);class ow extends oy{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Yg(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return ro((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return ig((()=>{const t=Yg(e),r=-1.7580993408473766;let a=mu(Ec(n),this.rate);a=Hm(a,"float32");const s=((1-this.rate)*(1+this.rate*r**2))**-.5,i=-s*r*this.rate;return t.mul(a).add(a.add(-1).mul(r)).mul(s).add(i)}),(()=>Yg(e)),t.training||!1)}return e}))}}function lw(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Dl(e,t,n,r,a,s);else if(3===e.rank)i=Al(e,t,n,r,a,s);else{if(4!==e.rank)throw new jp(`batchNormalization is not implemented for array of rank ${e.rank} yet`);i=Tl(e,t,n,r,a,s)}return i}ow.className="AlphaDropout",Mi(ow);class uw extends oy{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Ig(e.betaInitializer||"zeros"),this.gammaInitializer=Ig(e.gammaInitializer||"ones"),this.movingMeanInitializer=Ig(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Ig(e.movingVarianceInitializer||"ones"),this.betaConstraint=wm(e.betaConstraint),this.gammaConstraint=wm(e.gammaConstraint),this.betaRegularizer=tv(e.betaRegularizer),this.gammaRegularizer=tv(e.gammaRegularizer)}build(e){e=Jg(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Vp(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new ny({ndim:e.length,axes:{[t]:n}})];const r=[n];this.scale&&(this.gamma=this.addWeight("gamma",r,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",r,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",r,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",r,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return ro((()=>{const n=null!=t.training&&t.training,r=Yg(e),a=r.shape,s=a.length,i=jm(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);const l=Gp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!ae(u,jm(0,s).slice(0,s-1));if(!n)return(()=>{if(c){const e=this.movingMean.read().reshape(l),t=this.movingVariance.read().reshape(l),n=this.center?this.beta.read().reshape(l):null,a=this.scale?this.gamma.read().reshape(l):null;return lw(r,e,t,n,a,this.epsilon)}return lw(r,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,f,d]=function(e,t,n,r,a=.001){return ae(r.slice().sort(),jm(0,e.rank-1))?function(e,t,n,r,a=.001){return ro((()=>{const s=ec(e,r),i=s.mean,o=s.variance;return[lw(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return ro((()=>{const s=ec(e,r),i=s.mean,o=s.variance,l=[];for(const t of jm(0,e.rank))-1!==r.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=i.reshape(l),c=o.reshape(l),h=null==t?null:t.reshape(l),f=null==n?null:n.reshape(l);return[lw(e,u,c,f,h,a),i,o]}))}(e,t,n,r,a)}(r,this.gamma.read(),this.beta.read(),i,this.epsilon),p=(e,t,n)=>{ro((()=>{const r=1-n,a=e.read(),s=a.sub(t).mul(r);e.write(a.sub(s))}))};return(()=>{p(this.movingMean,f,this.momentum),p(this.movingVariance,d,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ng(this.betaInitializer),gammaInitializer:Ng(this.gammaInitializer),movingMeanInitializer:Ng(this.movingMeanInitializer),movingVarianceInitializer:Ng(this.movingVarianceInitializer),betaRegularizer:Qb(this.betaRegularizer),gammaRegularizer:Qb(this.gammaRegularizer),betaConstraint:bm(this.betaConstraint),gammaConstraint:bm(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}uw.className="BatchNormalization",Mi(uw);class cw extends oy{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Ig(e.betaInitializer||"zeros"),this.gammaInitializer=Ig(e.gammaInitializer||"ones"),this.betaRegularizer=tv(e.betaRegularizer),this.gammaRegularizer=tv(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=Jg(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==am(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t]));this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,!0):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,!0):this.beta=null,this.built=!0}call(e,t){const n=Yg(e),r=n.shape,a=r.length;return ro((()=>{let{mean:e,variance:t}=ec(n,this.axis,!0);const s=Gp(1,a);for(const e of this.axis)s[e]=r[e];const i=e=>null!=e&&e.shape.length!==a&&this.axis!==[a-1]?e.reshape(s):e;let o=i(this.gamma.read()),l=i(this.beta.read());const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return ro((()=>{return t=Yg(e),n=this.padding,r=this.dataFormat,ro((()=>{if(4!==t.rank)throw new Vp(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Vp("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==r&&(r="channelsLast"),"channelsLast"!==r&&"channelsFirst"!==r)throw new Vp(`Unknown data format: ${r}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===r?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],lc(t,e)}));var t,n,r}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function fw(e,t,n,r,a,s){return ro((()=>{let i;Tm(a),Fm(s),Rm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=hv(e,a);const o="same"===r?"same":"valid";return i="max"===s?Gu(e,t,n,o):wl(e,t,n,o),"channelsFirst"===a&&(i=li(i,[0,3,1,2])),i}))}function dw(e,t,n,r,a,s){return ro((()=>{let i;Tm(a),Fm(s),Rm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=fv(e,a);const o="same"===r?"same":"valid";return i="max"===s?qu(e,t,n,o):_l(e,t,n,o),"channelsFirst"===a&&(i=li(i,[0,4,1,2,3])),i}))}hw.className="ZeroPadding2D",Mi(hw);class pw extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Vp(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(lm(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Vp(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Rm(this.padding),this.inputSpec=[new ny({ndim:3})]}computeOutputShape(e){const t=uv((e=Jg(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return ro((()=>{this.invokeCallHook(e,t),e=Gm(Yg(e),2);const n=this.poolingFunction(Yg(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return eh(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class mw extends pw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"max")}}mw.className="MaxPooling1D",Mi(mw);class gw extends pw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"avg")}}gw.className="AveragePooling1D",Mi(gw);class yw extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Vp(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];lm(this.poolSize,"poolSize"),lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),Rm(this.padding),this.inputSpec=[new ny({ndim:4})]}computeOutputShape(e){e=Jg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=uv(t,this.poolSize[0],this.padding,this.strides[0]),n=uv(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return ro((()=>(this.invokeCallHook(e,t),this.poolingFunction(Yg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class bw extends yw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"max")}}bw.className="MaxPooling2D",Mi(bw);class vw extends yw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"avg")}}vw.className="AveragePooling2D",Mi(vw);class ww extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Vp(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];lm(this.poolSize,"poolSize"),lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),Rm(this.padding),this.inputSpec=[new ny({ndim:5})]}computeOutputShape(e){e=Jg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[4]:e[3];return t=uv(t,this.poolSize[0],this.padding,this.strides[0]),n=uv(n,this.poolSize[1],this.padding,this.strides[1]),r=uv(r,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,r]:[e[0],t,n,r,e[4]]}call(e,t){return ro((()=>(this.invokeCallHook(e,t),this.poolingFunction(Yg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class _w extends ww{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),dw(e,t,n,r,a,"max")}}_w.className="MaxPooling3D",Mi(_w);class xw extends ww{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),dw(e,t,n,r,a,"avg")}}xw.className="AveragePooling3D",Mi(xw);class kw extends oy{constructor(e){super(e),this.inputSpec=[new ny({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new jp}}class Ew extends kw{constructor(e){super(e||{})}call(e,t){return ro((()=>{const t=Yg(e);return Ku(t,1)}))}}Ew.className="GlobalAveragePooling1D",Mi(Ew);class Cw extends kw{constructor(e){super(e||{})}call(e,t){return ro((()=>{const t=Yg(e);return Au(t,1)}))}}Cw.className="GlobalMaxPooling1D",Mi(Cw);class Sw extends oy{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),this.inputSpec=[new ny({ndim:4})]}computeOutputShape(e){return e=e,"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new jp}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Nw extends Sw{call(e,t){return ro((()=>{const t=Yg(e);return"channelsLast"===this.dataFormat?Ku(t,[1,2]):Ku(t,[2,3])}))}}Nw.className="GlobalAveragePooling2D",Mi(Nw);class Iw extends Sw{call(e,t){return ro((()=>{const t=Yg(e);return"channelsLast"===this.dataFormat?Au(t,[1,2]):Au(t,[2,3])}))}}Iw.className="GlobalMaxPooling2D",Mi(Iw);class Dw extends oy{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const r=xy(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class Aw extends Dw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=Jg(e)).length<3)throw new Vp(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=Jg(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),r=e[1];return[n[0],r].concat(n.slice(1))}call(e,t){return ro((()=>Sv(((e,n)=>[Yg(this.layer.call(e,t)),[]]),e=Yg(e),[],!1,null,null,!1,!0)[1]))}}Aw.className="TimeDistributed",Mi(Aw);class Tw extends Dw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=xy(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=xy(r),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,a=this.mergeMode,im(Dm,"BidirectionalMergeMode",a),e.weights)throw new jp("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,r,a=this.forwardLayer.computeOutputShape(e);return Array.isArray(a)&&Array.isArray(a[0])||(a=[a]),a=a,this.returnState?(r=a.slice(1),t=a[0]):t=a[0],t=t,"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[t].concat(r).concat(r.slice()):Kp(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Cv(e,n,r,this.numConstants);if(e=a.inputs,n=a.initialState,r=a.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==r)return super.apply(e,t);const s=[],i=[];if(null!=n){const e=n.length;if(e%2>0)throw new Vp("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);const r=n.map((e=>new ny({shape:e.shape})));this.forwardLayer.stateSpec=r.slice(0,e/2),this.backwardLayer.stateSpec=r.slice(e/2),i.push(...r)}if(null!=r)throw new jp("Support for constants in Bidirectional layers is not implemented yet.");const o=s[0]instanceof ry;for(const e of s)if(e instanceof ry!==o)throw new Vp("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return ro((()=>{const n=t.initialState;let r,a,s,i;if(null==n)r=this.forwardLayer.call(e,t),a=this.backwardLayer.call(e,t);else{const s=n.slice(0,n.length/2),i=n.slice(n.length/2);r=this.forwardLayer.call(e,Object.assign(t,{initialState:s})),a=this.backwardLayer.call(e,Object.assign(t,{initialState:i}))}return this.returnState&&(Array.isArray(r)&&(s=r.slice(1).concat(a.slice(1))),r=r[0],a=a[0]),this.returnSequences&&(a=Ac(a,1)),"concat"===this.mergeMode?i=Ym([r,a]):"sum"===this.mergeMode?i=yo(r,a):"ave"===this.mergeMode?i=wo(.5,yo(r,a)):"mul"===this.mergeMode?i=wo(r,a):null==this.mergeMode&&(i=[r,a]),this.returnState?null==this.mergeMode?i.concat(s):[i].concat(s):i}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Bm(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Bm(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=xy(t.layer);if(delete t.layer,null!=t.numConstants)throw new jp("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const r=t;return r.layer=n,new e(r)}}function Rw(e){return new uy(e)}function Fw(e){return new sv(e)}function Ow(e){return new nv(e)}function Bw(e){return new rv(e)}function Mw(e){return new av(e)}function $w(e){return new ov(e)}function Pw(e){return new iv(e)}function Lw(e){return new _v(e)}function zw(e){return new gv(e)}function Ww(e){return new bv(e)}function Uw(e){return new yv(e)}function Vw(e){return new wv(e)}function jw(e){return new xv(e)}function Hw(e){return new kv(e)}function Gw(e){return new Ev(e)}function qw(e){return new jv(e)}function Xw(e){return new Uv(e)}function Kw(e){return new zv(e)}function Yw(e){return new Wv(e)}function Jw(e){return new Vv(e)}function Zw(e){return new Hv(e)}function Qw(e){return new Gv(e)}function e_(e){return new qv(e)}function t_(e){return new Kv(e)}function n_(e){return new Jv(e)}function r_(e){return new Qv(e)}function a_(e){return new nw(e)}function s_(e){return new ew(e)}function i_(e){return new tw(e)}function o_(e){return new Zv(e)}function l_(e){return new aw(e)}function u_(e){return new uw(e)}function c_(e){return new cw(e)}function h_(e){return new hw(e)}function f_(e){return new gw(e)}function d_(e){return f_(e)}function p_(e){return f_(e)}function m_(e){return new vw(e)}function g_(e){return m_(e)}function y_(e){return m_(e)}function b_(e){return new xw(e)}function v_(e){return b_(e)}function w_(e){return b_(e)}function __(e){return new Ew(e)}function x_(e){return new Nw(e)}function k_(e){return new Cw(e)}function E_(e){return new Iw(e)}function C_(e){return new mw(e)}function S_(e){return new bw(e)}function N_(e){return new _w(e)}function I_(e){return new Rv(e)}function D_(e){return new Tv(e)}function A_(e){return new Ov(e)}function T_(e){return new Fv(e)}function R_(e){return new Av(e)}function F_(e){return new Dv(e)}function O_(e){return new Lv(e)}function B_(e){return new Pv(e)}function M_(e){return new Nv(e)}function $_(e){return new Bv(e)}function P_(e){return new Tw(e)}function L_(e){return new Aw(e)}Tw.className="Bidirectional",Mi(Tw);const z_=k_,W_=E_,U_=C_,V_=S_;function j_(e){return new sw(e)}function H_(e){return new iw(e)}function G_(e){return new ow(e)}function q_(e){return new Xv(e)}function X_(e,t){return Fy(e,t)}function K_(e,t){return $y(e,t)}function Y_(e,t){return Py(e,t)}function J_(e,t){return Oy(e,t)}function Z_(e,t){return Ly(e,t)}function Q_(e,t){return My(e,t)}function ex(e,t){return function(e,t){return ro((()=>{const n=By(e,t),r=function(e,t){return ro((()=>Uu(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return nu(pu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function tx(e,t){return Ay(e,t)}function nx(e,t){return Cy(e,t)}function rx(e,t){return Sy(e,t)}function ax(e,t){return Sy(e,t)}function sx(e,t){return Sy(e,t)}function ix(e,t){return Ey(e,t)}function ox(e,t){return Ey(e,t)}function lx(e,t){return Ey(e,t)}function ux(e){return new Jb(e)}function cx(e){return Kb(t=e),new Jb({l1:null!=t?t.l1:null,l2:0});var t}function hx(e){return Kb(t=e),new Jb({l2:null!=t?t.l2:null,l1:0});var t}class fx extends py{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof kb))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function dx(e,t){return et}class mx extends fx{constructor(e){if(super(),null==e&&(e={}),e.restoreBestWeights)throw new jp("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,-1===["auto","min","max"].indexOf(this.mode)&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),"min"===this.mode?this.monitorFunc=dx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=px:this.monitorFunc=dx,this.monitorFunc===dx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===dx?1/0:-1/0}async onEpochEnd(e,t){await hy(t);const n=this.getMonitorValue(t);null!=n&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){null==e&&(e={});const t=e[this.monitor];return null==t&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}const gx={earlyStopping:function(e){return new mx(e)}};var yx,bx;!function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(yx||(yx={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(bx||(bx={}));const vx={};function wx(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};vx[e]=n}function _x(e){return vx[e]}function xx(e){delete vx[e]}function kx(e,t,n,r,a){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,i=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return Ex(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>Ex(e,n,r,a)));const o=Ex(t.inputNames.slice(e)[0],n,r,a),l=o.dataSync();return"number"===s.type?l[0]:Ae(o.shape,l)}const i=t.attrParams[e];return i&&i.value}function Ex(e,t,n,r){const[a,s]=Nx(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[Sx(a,e)]));return void 0!==i?t[Sx(a,i)][s]:void 0}function Cx(e,t){const[n,r]=Nx(e);return[Sx(n,t&&t.currentContextId),r]}function Sx(e,t){return t?`${e}-${t}`:e}function Nx(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function Ix(e,t,n){let r=kx("pad",e,t,n);if("explicit"===r){r=kx("explicitPaddings",e,t,n);const a=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)a[e][0]=r[2*e],a[e][1]=r[2*e+1];return a}return r}function Dx(e){return e.kept?e:Ws(e)}const Ax=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Tx=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Rx=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],Fx=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],Ox=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],Bx=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Mx=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],$x=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],Px=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],Lx=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],zx=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Wx=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Ux=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],Vx=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],jx=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],Hx=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],Gx=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class qx{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,D,A,O,F,T,B,M,$,P,L,z,R].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,r=[],a=[],s=[],i=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?r.push(e[t.name]):"Const"===t.op?a.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(i);h.forEach((e=>{const t=i[e];t.inputNames.forEach((e=>{const[n]=Cx(e);t.inputs.push(i[n]),i[n].children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=i[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=Cx(e),n=i[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=Cx(e),n=i[t];n&&(n.signatureKey=u[e],o.push(n))})):o=r;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const d={nodes:i,inputs:o,outputs:l,weights:a,placeholders:r,signature:t,functions:f};return s.length>0&&(d.initNodes=s),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=_x(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.substr(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const r=n.type;let a;switch(n.type){case"string":a=Kx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Kx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=sk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=Jx(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=Jx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=ak(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ak(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=Yx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Yx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=ok(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=rk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=rk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=ik(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ik(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=ek(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ek(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=tk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=tk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=Qx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Qx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:a,type:r},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let r={};null!=t&&(r=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const a=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=Cx(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Zx(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,a.push(n),r[t]=n})),Object.keys(r).forEach((e=>{const t=r[e];t.inputNames.forEach((e=>{const[n]=Cx(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=Cx(i[e.name]),a=r[t];null!=a&&(a.defaultOutput=n,s.push(a))}));const o=this.mapArgsToSignature(e);return{nodes:r,inputs:a,outputs:s,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function Xx(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=Le().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function Kx(e,t,n,r=!1){const a=e[t];return null!=a?Xx(a.s,r):n}function Yx(e,t,n){const r=e[t];return r?r.b:n}function Jx(e,t,n){const r=e[t]||{},a=null!=r.i?r.i:null!=r.f?r.f:n;return"number"==typeof a?a:parseInt(a,10)}function Zx(e){switch("string"==typeof e&&(e=yx[e]),e){case yx.DT_FLOAT:return"float32";case yx.DT_INT32:case yx.DT_INT64:case yx.DT_INT8:case yx.DT_UINT8:return"int32";case yx.DT_BOOL:return"bool";case yx.DT_DOUBLE:return"float32";case yx.DT_STRING:return"string";default:return null}}function Qx(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function ek(e,t,n){const r=e[t];return r&&r.type?Zx(r.type):n}function tk(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>Zx(e))):n}function nk(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function rk(e,t,n){const r=e[t];return r&&r.shape?nk(r.shape):n}function ak(e,t,n){const r=e[t];return r?((r.list.f&&r.list.f.length?r.list.f:r.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function sk(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>Xx(e,r))):n}function ik(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>nk(e))):n}function ok(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class lk{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return Ex(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return Ex(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return Jx(this.node.rawAttrs,e,t);if(null!=n.s)return Kx(this.node.rawAttrs,e,t);if(null!=n.b)return Yx(this.node.rawAttrs,e,t);if(null!=n.shape)return rk(this.node.rawAttrs,e,t);if(null!=n.type)return ek(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return ak(this.node.rawAttrs,e,t);if(null!=n.list.s)return sk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return ik(this.node.rawAttrs,e,t);if(null!=n.list.b)return ok(this.node.rawAttrs,e,t);if(null!=n.list.type)return tk(this.node.rawAttrs,e,t)}return t}}function uk(e,t,n=""){Z(function(e,t){if(e.length!==t.length)return!1;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}class ck{constructor(e,t,n,r,a,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=r,this.identicalElementShapes=a,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=To(0),so(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),uk(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,so(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ph(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const r=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const a=0===n?0:t.size/n,s=[];ro((()=>{t=vl(t,[1,n,a]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);uk(t,e.shape,"TensorList shape mismatch: "),so(e)})),this.idTensor=To(0),this.maxNumElements=r,so(this.idTensor)}get id(){return this.idTensor.id}copy(){return new hk([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);return uk(e,this.elementShape,"TensorList shape mismatch: "),ro((()=>{const t=this.tensors.map((t=>vl(t,e)));return th(t,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=this.tensors.pop();return uk(n.shape,e,"TensorList shape mismatch: "),vl(n,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(uk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");so(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);return uk(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);uk(this.elementShape,t.shape,"TensorList shape mismatch: "),so(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return uk(this.elementShape,n,"TensorList shape mismatch: "),0===(e=e.slice(0,this.size())).length?qa([],[0].concat(this.elementShape)):ro((()=>{const t=e.map((e=>vl(this.tensors[e],n)));return th(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return uk(this.elementShape,t,"TensorList shape mismatch: "),0===this.size()?qa([],[0].concat(this.elementShape)):ro((()=>{const e=this.tensors.map((e=>vl(e,t)));return xl(e,0)}))}}function fk(e,t,n){const[r,a]=kx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=kx("numArgs",e,t,n);if(s){if(i&&2!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const u=kx("strides",e,t,n),c=Ix(e,t,n),h=kx("dataFormat",e,t,n).toUpperCase(),f=kx("dilations",e,t,n),[d,p]=kx("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:kx("leakyreluAlpha",e,t,n)}}function dk(e,t,n){return{boxes:kx("boxes",e,t,n),scores:kx("scores",e,t,n),maxOutputSize:kx("maxOutputSize",e,t,n),iouThreshold:kx("iouThreshold",e,t,n),scoreThreshold:kx("scoreThreshold",e,t,n),softNmsSigma:kx("softNmsSigma",e,t,n)}}class pk{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=To(0),this.tensorMap=new Map,so(this.handle)}get id(){return this.handle.id}clearAndClose(){this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),ro((()=>{const e=ph(t),r=n.length,a=e.length;Z(r===a,(()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${a} elements.`));for(let t=0;t{const e=[];for(let r=0;r{switch(e.category){case"arithmetic":return ro((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[yo(kx("a",e,t,n),kx("b",e,t,n))];case"AddN":return[Yo(kx("tensors",e,t,n))];case"FloorMod":case"Mod":return[Qu(kx("a",e,t,n),kx("b",e,t,n))];case"Mul":return[wo(kx("a",e,t,n),kx("b",e,t,n))];case"RealDiv":case"Div":return[vo(kx("a",e,t,n),kx("b",e,t,n))];case"DivNoNan":return[ru(kx("a",e,t,n),kx("b",e,t,n))];case"FloorDiv":return[bo(kx("a",e,t,n),kx("b",e,t,n))];case"Sub":return[$o(kx("a",e,t,n),kx("b",e,t,n))];case"Minimum":return[Ju(kx("a",e,t,n),kx("b",e,t,n))];case"Maximum":return[Vo(kx("a",e,t,n),kx("b",e,t,n))];case"Pow":return[Mo(kx("a",e,t,n),kx("b",e,t,n))];case"SquaredDifference":return[Qc(kx("a",e,t,n),kx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return ro((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lo(kx("x",e,t,n))];case"Acos":return[Xo(kx("x",e,t,n))];case"Acosh":return[Ko(kx("x",e,t,n))];case"Asin":return[tl(kx("x",e,t,n))];case"Asinh":return[nl(kx("x",e,t,n))];case"Atan":return[rl(kx("x",e,t,n))];case"Atan2":return[al(kx("x",e,t,n),kx("y",e,t,n))];case"Atanh":return[sl(kx("x",e,t,n))];case"Ceil":return[Ol(kx("x",e,t,n))];case"Complex":return[Ha(kx("real",e,t,n),kx("imag",e,t,n))];case"Cos":return[ql(kx("x",e,t,n))];case"Cosh":return[Xl(kx("x",e,t,n))];case"Elu":return[su(kx("x",e,t,n))];case"Erf":return[iu(kx("x",e,t,n))];case"Exp":return[ou(kx("x",e,t,n))];case"Expm1":return[uu(kx("x",e,t,n))];case"Floor":return[fu(kx("x",e,t,n))];case"Log":return[Cu(kx("x",e,t,n))];case"Log1p":return[Su(kx("x",e,t,n))];case"Imag":return[gu(kx("x",e,t,n))];case"Neg":return[Nu(kx("x",e,t,n))];case"Reciprocal":return[Nc(kx("x",e,t,n))];case"Real":return[Sc(kx("x",e,t,n))];case"Relu":return[Ic(kx("x",e,t,n))];case"Round":return[Bc(kx("x",e,t,n))];case"Selu":return[$c(kx("x",e,t,n))];case"Sigmoid":return[kl(kx("x",e,t,n))];case"Sin":return[Wc(kx("x",e,t,n))];case"Sign":return[zc(kx("x",e,t,n))];case"Sinh":return[Uc(kx("x",e,t,n))];case"Softplus":return[Iu(kx("x",e,t,n))];case"Sqrt":return[_o(kx("x",e,t,n))];case"Square":return[xo(kx("x",e,t,n))];case"Tanh":return[Cl(kx("x",e,t,n))];case"Tan":return[ah(kx("x",e,t,n))];case"ClipByValue":return[Bl(kx("x",e,t,n),kx("clipValueMin",e,t,n),kx("clipValueMax",e,t,n))];case"Relu6":return[Dc(kx("x",e,t,n))];case"Rsqrt":return[Mc(Ex(e.inputNames[0],t,n))];case"Prod":return[gc(kx("x",e,t,n),kx("axes",e,t,n))];case"LeakyRelu":return[wu(kx("x",e,t,n),kx("alpha",e,t,n))];case"Prelu":return[mc(kx("x",e,t,n),kx("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return(async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const r=kx("thenBranch",e,t,n),a=kx("elseBranch",e,t,n),s=kx("cond",e,t,n),i=kx("args",e,t,n);return(await s.data())[0]?n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const r=kx("body",e,t,n),a=kx("cond",e,t,n),s=kx("args",e,t,n),i=await n.functionMap[a].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map((e=>e.id));let l=await i[0].data();i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=s;for(;l[0];){const e=u;u=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await s[0].data(),s.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[Dx(kx("pred",e,t,n))];case"Switch":{const r=kx("pred",e,t,n);let a=kx("data",e,t,n);return a.kept||(a=Dx(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==Ex(e,t,n)));return r?[Dx(Ex(r,t,n))]:void 0}case"Enter":{const r=kx("frameName",e,t,n),a=kx("tensor",e,t,n);return n.enterFrame(r),[Dx(a)]}case"Exit":{const r=kx("tensor",e,t,n);return n.exitFrame(),[Dx(r)]}case"NextIteration":{const r=kx("tensor",e,t,n);return n.nextIteration(),[Dx(r)]}case"TensorArrayV3":{const r=kx("size",e,t,n),a=kx("dtype",e,t,n),s=kx("elementShape",e,t,n),i=kx("dynamicSize",e,t,n),o=kx("clearAfterRead",e,t,n),l=kx("identicalElementShapes",e,t,n),u=kx("name",e,t,n),c=new ck(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,To(1)]}case"TensorArrayWriteV3":{const r=kx("tensorArrayId",e,t,n),a=kx("index",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=kx("tensorArrayId",e,t,n),a=kx("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=kx("tensorArrayId",e,t,n),a=kx("indices",e,t,n),s=kx("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=kx("tensorArrayId",e,t,n),a=kx("indices",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=kx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=kx("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=kx("tensorArrayId",e,t,n),a=kx("tensor",e,t,n),s=kx("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=kx("tensorArrayId",e,t,n);return[To(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=kx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=kx("tensorListId",e,t,n),a=kx("index",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=kx("tensorListId",e,t,n),a=kx("index",e,t,n),s=kx("elementShape",e,t,n),i=kx("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=kx("indices",e,t,n),a=function(e,t,n,r){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const a=Math.max(...t);if(null!=r&&-1!==r&&a>=r)throw new Error(`Max index must be < array size (${a} vs. ${r})`);const s=new hk([],n,e.dtype,r),i=ph(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(kx("tensor",e,t,n),r,kx("elementShape",e,t,n),kx("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=kx("elementShape",e,t,n),a=kx("elementDType",e,t,n);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const i=function(e,t,n){return new hk([],e,t,n)}(r,a,kx(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=kx("tensorListId",e,t,n),a=kx("indices",e,t,n),s=kx("elementShape",e,t,n),i=kx("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=kx("tensorListId",e,t,n),a=kx("elementShape",e,t,n),s=kx("elementDType",e,t,n),i=kx("numElements",e,t,n);return[n.getTensorList(r.id).stack(a,s,i)]}case"TensorListFromTensor":{const r=function(e,t,n){const r=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);uk(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=ph(e);return new hk(a,t,r)}(kx("tensor",e,t,n),kx("elementShape",e,t,n),kx("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=kx("tensorListId",e,t,n),a=n.getTensorList(r.id),s=kx("dtype",e,t,n),i=kx("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=kx("tensorListId",e,t,n),a=kx("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=kx("tensorListId",e,t,n),a=kx("elementShape",e,t,n),s=kx("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=kx("tensor",e,t,n),a=kx("elementShape",e,t,n),s=function(e,t,n){let r=0;const a=t.map((e=>(r+=e,r)));if(r!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${r}, and tensor's shape is: ${e.shape}`);const s=0===r?0:e.size/r,i=ro((()=>{const i=[];e=vl(e,[1,r,s]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=kx("stride",e,t,n),a=kx("pad",e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilation",e,t,n);return[Wl(kx("x",e,t,n),kx("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=kx("strides",e,t,n),a=Ix(e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilations",e,t,n);return[zl(kx("x",e,t,n),kx("filter",e,t,n),[r[1],r[2]],a,s,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=fk(e,t,n);return[Kh({x:kx("x",e,t,n),filter:kx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=fk(e,t,n);return[Zh({x:kx("x",e,t,n),filter:kx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=kx("outputShape",e,t,n),a=kx("strides",e,t,n),s=Ix(e,t,n);return[Vl(kx("x",e,t,n),kx("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=kx("strides",e,t,n),a=Ix(e,t,n),s=kx("dilations",e,t,n),i=kx("dataFormat",e,t,n).toUpperCase();return[Zl(kx("input",e,t,n),kx("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilations",e,t,n);return[jl(kx("x",e,t,n),kx("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[wl(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[Gu(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n),i=kx("includeBatchInIndex",e,t,n),{result:o,indexes:l}=Xu(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[_l(kx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[qu(kx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[eu(kx("x",e,t,n),kx("filter",e,t,n),[i,o],a,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return ro((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=kx("shape",e,t,n),a=kx("dtype",e,t,n);return[Oo(r,kx("value",e,t,n),a)]}case"LinSpace":return[ku(kx("start",e,t,n),kx("stop",e,t,n),kx("num",e,t,n))];case"Multinomial":{const r=kx("logits",e,t,n),a=kx("numSamples",e,t,n),s=kx("seed",e,t,n);return[nc(r,a,s)]}case"OneHot":{const r=kx("indices",e,t,n),a=kx("depth",e,t,n),s=kx("onValue",e,t,n),i=kx("offValue",e,t,n);return[oi(r,a,s,i)]}case"Ones":return[sc(kx("shape",e,t,n),kx("dtype",e,t,n))];case"OnesLike":return[ic(kx("x",e,t,n))];case"RandomUniform":return[Ec(kx("shape",e,t,n),kx("minval",e,t,n),kx("maxval",e,t,n),kx("dtype",e,t,n))];case"Range":return[Cc(kx("start",e,t,n),kx("stop",e,t,n),kx("step",e,t,n),kx("dtype",e,t,n))];case"TruncatedNormal":{const r=kx("shape",e,t,n),a=kx("mean",e,t,n),s=kx("stdDev",e,t,n),i=kx("seed",e,t,n);return[hh(r,a,s,kx("dtype",e,t,n),i)]}case"Zeros":return[ac(kx("shape",e,t,n),kx("dtype",e,t,n))];case"ZerosLike":return[ko(kx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=dk(e,t,n),u=await Lf.nonMaxSuppressionWithScoreAsync(r,a,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dk(e,t,n),l=kx("padToMaxOutputSize",e,t,n),u=await Lf.nonMaxSuppressionPaddedAsync(r,a,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dk(e,t,n);return[await Lf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=zs(kx("condition",e,t,n),"bool"),a=[await yh(r)];return r.dispose(),a}case"ListDiff":return Lc(kx("x",e,t,n),kx("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return ro((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=kx("x",e,t,n),a=kx("k",e,t,n),s=kx("sorted",e,t,n),i=ch(r,a,s);return[i.values,i.indices]}case"Unique":{const r=kx("x",e,t,n),a=fh(r);return[a.values,a.indices]}case"UniqueV2":{const r=kx("x",e,t,n),a=kx("axis",e,t,n),s=fh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return ro((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=kx("images",e,t,n),a=kx("size",e,t,n),s=kx("alignCorners",e,t,n),i=kx("halfPixelCenters",e,t,n);return[Lf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=kx("images",e,t,n),a=kx("size",e,t,n),s=kx("alignCorners",e,t,n),i=kx("halfPixelCenters",e,t,n);return[Lf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=kx("image",e,t,n),a=kx("boxes",e,t,n),s=kx("boxInd",e,t,n),i=kx("cropSize",e,t,n),o=kx("method",e,t,n),l=kx("extrapolationValue",e,t,n);return[Lf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return ro((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=kx("default",e,t,n);return[Ex(e.name,t,n)||r];case"Placeholder":return[Ex(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[Dx(kx("x",e,t,n))];case"IdentityN":return kx("x",e,t,n).map((e=>Dx(e)));case"Snapshot":return[Dx(kx("x",e,t,n))];case"Shape":return[sh(kx("x",e,t,n).shape,"int32")];case"ShapeN":return kx("x",e,t,n).map((e=>sh(e.shape)));case"Size":return[To(kx("x",e,t,n).size,"int32")];case"Rank":return[To(kx("x",e,t,n).rank,"int32")];case"NoOp":return[To(1)];case"Print":const a=kx("x",e,t,n),s=kx("data",e,t,n),i=kx("message",e,t,n),o=kx("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,n)=>{switch(e.op){case"Equal":return[tu(kx("a",e,t,n),kx("b",e,t,n))];case"NotEqual":return[rc(kx("a",e,t,n),kx("b",e,t,n))];case"Greater":return[pu(kx("a",e,t,n),kx("b",e,t,n))];case"GreaterEqual":return[mu(kx("a",e,t,n),kx("b",e,t,n))];case"Less":return[_u(kx("a",e,t,n),kx("b",e,t,n))];case"LessEqual":return[xu(kx("a",e,t,n),kx("b",e,t,n))];case"LogicalAnd":return[Uu(kx("a",e,t,n),kx("b",e,t,n))];case"LogicalNot":return[Vu(kx("a",e,t,n))];case"LogicalOr":return[ju(kx("a",e,t,n),kx("b",e,t,n))];case"Select":case"SelectV2":return[nu(kx("condition",e,t,n),kx("a",e,t,n),kx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return ro((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ii(kx("a",e,t,n),kx("b",e,t,n),kx("transposeA",e,t,n),kx("transposeB",e,t,n))];case"Transpose":return[li(kx("x",e,t,n),kx("perm",e,t,n))];case"_FusedMatMul":const[r,a]=kx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=kx("numArgs",e,t,n),l=kx("leakyreluAlpha",e,t,n);if(s){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[u,c]=kx("args",e,t,n);return[Qh({a:kx("a",e,t,n),b:kx("b",e,t,n),transposeA:kx("transposeA",e,t,n),transposeB:kx("transposeB",e,t,n),bias:u,activation:a,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return ro((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Il(kx("x",e,t,n),kx("mean",e,t,n),kx("variance",e,t,n),kx("offset",e,t,n),kx("scale",e,t,n),kx("epsilon",e,t,n))];case"LRN":return[Eu(kx("x",e,t,n),kx("radius",e,t,n),kx("bias",e,t,n),kx("alpha",e,t,n),kx("beta",e,t,n))];case"Softmax":return[qc(kx("x",e,t,n))];case"LogSoftmax":return[Ru(kx("x",e,t,n))];case"SparseToDense":return[Ph(kx("sparseIndices",e,t,n),kx("outputShape",e,t,n),kx("sparseValues",e,t,n),kx("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return ro((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Au(kx("x",e,t,n),r,a)]}case"Mean":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Ku(kx("x",e,t,n),r,a)]}case"Min":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Yu(kx("x",e,t,n),r,a)]}case"Sum":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Tu(kx("x",e,t,n),r,a)]}case"All":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Jo(kx("x",e,t,n),r,a)]}case"Any":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Zo(kx("x",e,t,n),r,a)]}case"ArgMax":{const r=kx("axis",e,t,n);return[Qo(kx("x",e,t,n),r)]}case"ArgMin":{const r=kx("axis",e,t,n);return[el(kx("x",e,t,n),r)]}case"Prod":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[gc(kx("x",e,t,n),r,a)]}case"Cumsum":{const r=kx("axis",e,t,n),a=kx("exclusive",e,t,n),s=kx("reverse",e,t,n);return[Kl(kx("x",e,t,n),r,a,s)]}case"Bincount":const r=kx("x",e,t,n),a=kx("weights",e,t,n),s=kx("size",e,t,n);return[Rl(r,a,s)];case"DenseBincount":{const r=kx("x",e,t,n),a=kx("weights",e,t,n),s=kx("size",e,t,n),i=kx("binaryOutput",e,t,n);return[Yl(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return ro((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=kx("n",e,t,n),a=kx("axis",e,t,n);let s=kx("tensors",e,t,n);return s=s.slice(0,r),[xl(s,a)]}case"Gather":{const r=kx("x",e,t,n),a=kx("indices",e,t,n);return[du(r,zs(a,"int32"),0)]}case"GatherV2":{const r=kx("axis",e,t,n),a=kx("batchDims",e,t,n),s=kx("x",e,t,n),i=kx("indices",e,t,n);return[du(s,zs(i,"int32"),r,a)]}case"Reverse":{const r=kx("dims",e,t,n),a=[];for(let e=0;e{const r=kx("axis",e,t,n),a=kx("tensors",e,t,n),s=a[0].shape,i=eh(a[0]).shape,o=a.map((e=>{const t=ae(e.shape,s);if(!t&&!ae(eh(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:vl(e,s)}));return[th(o,r)]}));case"Unpack":{const r=kx("axis",e,t,n),a=kx("tensor",e,t,n);return ph(a,r)}case"Tile":{const r=kx("reps",e,t,n);return[cu(kx("x",e,t,n),r)]}case"Split":case"SplitV":{const r=kx("axis",e,t,n),a=kx("numOrSizeSplits",e,t,n),s=kx("x",e,t,n);return Jc(s,a,r)}case"ScatterNd":{const r=kx("indices",e,t,n),a=kx("values",e,t,n),s=kx("shape",e,t,n);return[$h(r,a,s)]}case"GatherNd":{const r=kx("x",e,t,n),a=kx("indices",e,t,n);return[Lh(r,a)]}case"SparseToDense":{const r=kx("sparseIndices",e,t,n),a=kx("outputShape",e,t,n),s=kx("sparseValues",e,t,n),i=kx("defaultValue",e,t,n);return[Ph(r,s,a,s.dtype===i.dtype?i:zs(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return ro((()=>((e,t,n)=>{switch(e.op){case"FFT":return[Xc(kx("x",e,t,n))];case"IFFT":return[Kc(kx("x",e,t,n))];case"RFFT":return[Zc(kx("x",e,t,n))];case"IRFFT":return[Yc(kx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return ro((()=>((e,t,n)=>{switch(e.op){case"Cast":return[zs(kx("x",e,t,n),kx("dtype",e,t,n))];case"ExpandDims":{const r=kx("axis",e,t,n);return[lu(kx("x",e,t,n),r)]}case"Squeeze":{const r=kx("axis",e,t,n);return[eh(kx("x",e,t,n),r)]}case"Reshape":return[vl(kx("x",e,t,n),kx("shape",e,t,n))];case"MirrorPad":return[Zu(kx("x",e,t,n),kx("padding",e,t,n),kx("mode",e,t,n))];case"PadV2":case"Pad":return[lc(kx("x",e,t,n),kx("padding",e,t,n),kx("constantValue",e,t,n))];case"SpaceToBatchND":{const r=kx("blockShape",e,t,n),a=kx("paddings",e,t,n);return[dc(kx("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=kx("blockShape",e,t,n),a=kx("crops",e,t,n);return[Nl(kx("x",e,t,n),r,a)]}case"DepthToSpace":{const r=kx("blockSize",e,t,n),a=kx("dataFormat",e,t,n).toUpperCase();return[Jl(kx("x",e,t,n),r,a)]}case"BroadcastTo":return[Fl(kx("x",e,t,n),kx("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,r)=>{switch(e.op){case"HashTable":case"HashTableV2":{const a=kx("keyDType",e,t,n),s=kx("valueDType",e,t,n),i=new pk(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=kx("tableHandle",e,t,n,r),s=kx("keys",e,t,n),i=kx("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=kx("tableHandle",e,t,n,r),s=kx("keys",e,t,n),i=kx("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=_x(e.op);if(a&&a.customExecutor)return a.customExecutor(new lk(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return $e(a)?a.then((e=>[].concat(e))):[].concat(a)}class gk{constructor(e={},t={},n={},r={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function yk(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>Nx(e)[0]));let c=[];null!=r&&(c=r.map((e=>Nx(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(_k(e)||xk(e)||kk(e))&&null==i&&(i=e,o=i.children.map((e=>e.name)).filter((e=>a.has(e)))),a.add(e.name),null==n[e.name]&&-1===u.indexOf(e.name)&&-1===c.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):s.push(e.name))}return{inputs:e,outputs:t,usedNodes:a,missingInputs:s,dynamicNode:i,syncInputs:o}}const bk=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],vk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],wk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function _k(e){return bk.indexOf(e.op)>=0}function xk(e){return vk.indexOf(e.op)>=0}function kk(e){return wk.indexOf(e.op)>=0}class Ek{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new Ek(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),r=t.map((e=>e.name)).sort();return n.join(this.SEPERATOR)+"--"+r.join(this.SEPERATOR)}compile(e,t){const n=yk(e,t,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:a,syncInputs:s}=n;if(null!=a)throw new Error(`This execution contains the node '${a.name}', which has the dynamic op '${a.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(r.length>0){const n=t.map((e=>e.name)),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${a}]. Missing the following inputs: [${r}]`)}return function(e,t,n){const{usedNodes:r,inputs:a}=n,s=[],i=Object.keys(a).map((e=>Nx(e)[0])).map((t=>e.nodes[t])),o=e.initNodes;i.forEach((e=>{r.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{r.has(e.name)&&s.push(e)})),null!=o&&o.forEach((e=>{r.has(e.name)&&s.push(e)}));const l=new Set,u=[];for(;s.length>0;){const e=s.pop();l.add(e.name),t[e.name]||u.push(e),e.children.forEach((e=>{!l.has(e.name)&&r.has(e.name)&&e.inputs.every((e=>l.has(e.name)))&&s.push(e)}))}return u}(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const r=n.map((e=>this.graph.nodes[Nx(e)[0]])),a=t.map((e=>Nx(e)[0]));let s=a.map((e=>this.graph.nodes[e]));0===s.length&&(s=this._outputs);const i=this.getCompilationKey(r,s);let o=this.compiledMap.get(i);null==o&&(o=this.compile(e,s),this.compiledMap.set(i,o));const l={},u={};return ro((()=>{const n=new gk(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=Nx(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;eEx(e,r,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,r,a,s,i){"control"!==t.category&&-1===s.indexOf(e)&&(n[e].forEach((e=>{null!=e&&(i[e.id]=(i[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const t=function(e,t,n){return t[Sx(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!a.has(e.id)){const t=i[e.id];1===t?(e.dispose(),delete i[e.id]):null!=t&&i[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,r={},a={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const s=new gk(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>Ex(e,i,s))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach((e=>{i[e].forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&s.dispose(c),o}async executeFunctionAsync(e,t,n){const r=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(r,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,r){const a=Object.keys(e),s=a.map((e=>this.graph.nodes[Nx(e)[0]])),i=n.map((e=>Nx(e)[0]));let o=i.map((e=>this.graph.nodes[e]));0===o.length&&(o=this._outputs);const{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:h}=yk(e,o,this.weightMap,this._initNodes),f=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),d=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,r]=Nx(t),a=[];a[r]=e[t],d[n]=a}));const p={},m=this.getFrozenTensorIds(d),g={};for(;f.length>0;){const e=this.processStack(s,f,t,d,g,m,i,p,l);await Promise.all(e)}null!=c||r||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=o.filter((e=>!_k(e)&&!Ex(e.name,d,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=c&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${a}]. Consider providing the following inputs: [${u}]. ${e}`)}return d}processStack(e,t,n,r,a,s,i,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&kx("isConstant",e.node,r,n)&&([c]=Cx(e.node.name,n)),null==r[e.node.name]){const h=mk(e.node,r,n,this._resourceManager);c||([c]=Cx(e.node.name,n));const f=n.currentContext;$e(h)?u.push(h.then((u=>(r[c]=u,n.currentContext=f,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l),u)))):(r[c]=h,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l))}else this.processChildNodes(e.node,t,n,r,a,l)}return u}processChildNodes(e,t,n,r,a,s){e.children.forEach((e=>{const[i]=Cx(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!Ex(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!Ex(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[r]=Nx(t),a=this.graph.nodes[r];if(a.attrParams.shape&&a.attrParams.shape.value){const e=a.attrParams.shape.value;Z(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${a.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}a.attrParams.dtype&&a.attrParams.dtype.value&&Z(n.dtype===a.attrParams.dtype.value,(()=>`The dtype of dict['${a.name}'] provided in model.execute(dict) must be ${a.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){const t={};for(const n in e)null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[n]?t[this._signature.inputs[n].name]=e[n]:t[n]=e[n];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=Nx(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]?this._signature.outputs[e].name:e),{})}checkOutputs(e){e.forEach((e=>{const[t]=Nx(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class Ck{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class Sk{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",null==t&&(this.loadOptions={}),this.resourceManager=new Ck}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=ti(e,this.loadOptions);else{const t=ls(e,this.loadOptions);if(0===t.length)t.push(ti(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let n;n=null!=this.artifacts.userDefinedMetadata&&null!=this.artifacts.userDefinedMetadata.signature?this.artifacts.userDefinedMetadata.signature:this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const r=Ya(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Ek(qx.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(r),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=qx.Instance.transformGraph(e.modelInitializer);this.initializer=new Ek(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=os(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof ma||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,n,r)=>(t[n]=e[r],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function Nk(e,t={}){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&null==e.load&&(e.endsWith("/")||(e+="/"),e=`${e}model.json?tfjs-format=file`);const n=new Sk(e,t);return await n.load(),n}const Ik="2.8.5";function Dk(e,t,n=new Map,r=new Set){if(null==e)return null;if(r.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(a.recurse){if(Ok(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=Dk(e[s],t,n,r);a[s]=i}return r.delete(e),a}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,a.value),a.value}function Ak(e,t=Rk){return Tk(e,t)}function Tk(e,t,n=new Set){const r=e[0];if(n.has(r))throw new Error("Circular references are not supported.");const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(a.recurse){if(Ok(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=Tk(e.map((e=>e[s])),t,n);a[s]=r}return n.delete(r),a}throw new Error(`Can't recurse into non-iterable type: ${r}`)}return a.value}function Rk(e){return null===e?null:Ok(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Fk(e,t){const n=new Map;Dk(e,t,n);for(const e of Array.from(n.keys())){const t=n.get(e);if($e(t)){const r=await t;n.set(e,r)}}return Dk(e,t,n)}function Ok(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof ma))}function Bk(e){return e instanceof ma?{value:e.clone(),recurse:!1}:Ok(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Mk{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class $k extends Mk{constructor(){super($k.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new Gk(this,e,t)}columnMajorBatch(e,t=!0,n=Rk){return this.rowMajorBatch(e,t).map((e=>Ak(e,n)))}concatenate(e,t){return new Qk(Pk([this,e]),t)}take(e){return e<0||null==e?this:new Hk(this,e)}skip(e){return e<0||null==e?this:new jk(this,e)}prefetch(e){return new nE(this,e)}shuffle(e,t){return new rE(this,e,t)}serial(){return new Vk(this)}}class Wk extends zk{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:(t=e,function(e,t){return Dk(e,t)}(t,Bk)),done:!1};var t}}class Uk extends zk{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class Vk extends zk{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class jk extends zk{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class Gk extends zk{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class qk extends zk{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ao(e.value)}}}class Xk extends zk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ia(e.value),n=this.transform(e.value),r=Ia(n);for(const e of t)Na(e,r)||e.dispose();return{value:n,done:!1}}}class Kk extends zk{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class Yk extends zk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ia(e.value),n=await this.transform(e.value),r=Ia(n);for(const e of t)Na(e,r)||e.dispose();return{value:n,done:!1}}}class Jk extends zk{constructor(){super(),this.outputQueue=new $k,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class Zk extends Jk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Ia(e.value),n=this.transform(e.value),r=Ia(n);this.outputQueue.pushAll(n);for(const e of t)Na(e,r)||e.dispose();return!0}}class Qk extends zk{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var eE;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(eE||(eE={}));class tE extends zk{constructor(e,t=eE.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;const r=await Fk(this.iterators,(function(e){return e instanceof zk?{value:e.next().then((e=>(t++,e.done&&n++,e.value))),recurse:!1}:{value:null,recurse:!0}}));if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case eE.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case eE.SHORTEST:return{value:null,done:!0};case eE.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class nE extends zk{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new Mk(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class rE extends nE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=bc.alea(n||oa().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class aE{constructor(){this.size=null}batch(e,t=!0){const n=this;let r;return Z(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),r=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),sE((async()=>(await n.iterator()).columnMajorBatch(e,t,lE)),r)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,sE((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,sE((async()=>(await t.iterator()).filter((t=>ro((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return sE((async()=>(await t.iterator()).map((t=>ro((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return sE((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return sE((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,sE((async()=>{return n=Lk((async()=>({value:await t.iterator(),done:!1}))).take(e),new Qk(n,r);var n,r}),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const r=this,a=bc.alea(t||oa().toString());return sE((async()=>{let t=a.int32();return n&&(t+=a.int32()),(await r.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,sE((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function sE(e,t=null){return new class extends aE{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function iE(e){return sE((async()=>Pk(e)),e.length)}function oE(e){if(!Ok(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;nfunction(e,t=eE.FAIL){return new tE(e,t)}(await Fk(e,(e=>{if(e instanceof aE)return{value:e.iterator(),recurse:!1};if(Ok(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),eE.SHORTEST)),t)}function lE(e){if(null===e)return null;return null==(t=e[0])||null===(n=t)||"object"!=typeof n&&"function"!=typeof n||Array.isArray(t)||"object"==typeof t&&t instanceof ma||ve(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof ma?th(e):qa(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}aE.MAX_BUFFER_SIZE=1e4;class uE extends aE{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split("\n").map((e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e)))}}const cE='"',hE=Symbol("out"),fE=Symbol("field"),dE=Symbol("quote"),pE=Symbol("quoteafterquote"),mE=Symbol("quoteinquote");class gE extends aE{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new uE(e),t||(t={}),this.hasHeader=!1!==t.hasHeader,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(Z(null==t.delimiter,(()=>"Delimiter should not be provided when delimWhitespace is true.")),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&Z(e.length===this.fullColumnNames.length,(()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+").")),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce(((e,t)=>(e[t]=e[t]+1||1,e)),{}),n=Object.keys(t).filter((e=>t[e]>1));if(Z(0===n.length,(()=>"Duplicate column names found: "+n.toString())),this.columnConfigs)for(const e of Object.keys(this.columnConfigs))if(-1===this.fullColumnNames.indexOf(e))throw new Error('The key "'+e+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const n=t.value;return this.parseRow(n,!1)}return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map((e=>this.makeDataElement(e)))}makeDataElement(e){const t=this.parseRow(e),n={},r={};for(let a=0;a14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!1!==e.includeSpectrogram,this.includeWaveform=!0===e.includeWaveform,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(Le().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new yE(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:null==this.audioTrackConstraints||this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,this.sampleRateHz){if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`)}else this.sampleRateHz=this.audioContext.sampleRate;const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const n=await this.getAudioData();if(this.includeSpectrogram){const t=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(t,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const e=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(e,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let n=0;return new Promise((r=>{const a=setInterval((()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(a),r({freqDataQueue:e,timeDataQueue:t}))}),this.fftSize/this.sampleRateHz*1e3)}))}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),null!=this.stream&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(((e,r)=>n.set(e,r*t))),n}getTensorFromAudioDataArray(e,t){const n=new Float32Array(ne(t));return n.set(e,n.length-e.length),qa(n,t)}}class bE extends zk{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=sh([0],"int32"),this.webcamConfig.centerCrop){const e=1*this.webcamConfig.resizeWidth/this.webcamVideoElement.width,t=1*this.webcamConfig.resizeHeight/this.webcamVideoElement.height,n=(1-e)/2,r=(1-t)/2,a=n+e,s=t+r;this.cropBox=ih([r,n,s,a],[1,4])}else this.cropBox=ih([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(Le().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const n=new bE(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&Z("user"===this.webcamConfig.facingMode||"environment"===this.webcamConfig.facingMode,(()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`));try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise((e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}}))}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=di(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(!this.resize)return{value:e,done:!1};try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{e.dispose()}}needToResize(){return!(!this.webcamConfig.resizeWidth||!this.webcamConfig.resizeHeight||this.webcamVideoElement.width===this.webcamConfig.resizeWidth&&this.webcamVideoElement.height===this.webcamConfig.resizeHeight)}cropAndResizeFrame(e){return ro((()=>{const t=e.toFloat().expandDims(0);let n;n=Lf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return n.reshape(r.slice(1))}))}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach((e=>e.stop()));try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class vE{}class wE extends zk{split(e){return new _E(this,e)}}class _E extends wE{constructor(e,t){super(),this.upstream=e,this.impl=new xE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class xE extends Jk{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return""!==this.carryover&&(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const e of t.slice(0,-1))this.outputQueue.push(e);return this.carryover=t[t.length-1],!0}}class kE extends zk{decodeUTF8(){return new EE(this)}}class EE extends wE{constructor(e){super(),this.upstream=e,this.impl=new CE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class CE extends Jk{constructor(e){if(super(),this.upstream=e,Le().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:e}=n(4589);this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t,n;return!e.done&&(t=e.value,n=Le().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class SE extends kE{constructor(e,t={}){super(),this.file=e,this.options=t,Z(e instanceof Uint8Array||!!Le().get("IS_BROWSER")&&(e instanceof File||e instanceof Blob),(()=>"FileChunkIterator only supports File, Blob and Uint8Array right now.")),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1048576}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise(((e,t)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{const r=new FileReader;r.onload=n=>{let a=r.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(a)},r.onabort=e=>t(new Error("Aborted")),r.onerror=e=>t(new Error(e.type));const a=this.file.slice(this.offset,n);r.readAsArrayBuffer(a)}this.offset=n}));return{value:await e,done:!1}}}function NE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class IE extends vE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(NE(this.input)&&Le().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new SE(this.input,this.options)}}class DE extends vE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return NE(this.url)?new IE(this.url,this.fileOptions).iterator():async function(e,t={}){let n,r;var a;"string"==typeof e?n=e:(n=e.url,r={method:(a=e).method,headers:a.headers,body:a.body,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,referrer:a.referrer,integrity:a.integrity});const s=await la(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new SE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function AE(e,t={}){return new gE(new DE(e),t)}function TE(e){const t=Lk(e);return sE((async()=>t))}function RE(e){return sE((async()=>{const t=await e();return Lk((()=>t.next()))}))}async function FE(e,t){return bE.create(e,t)}async function OE(e){return yE.create(e)}const BE="2.8.5";function ME(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Z("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const $E=gh;class PE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,eo())}write(e,t,n){this.firstUse&&(this.firstUse=!1,Le().get("IS_NODE")&&cd("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"));const r={};return this.data.set(r,{values:e,dtype:n,refCount:1}),r}makeTensorInfo(e,t,n){let r;if("string"===t&&null!=n&&n.length>0&&xe(n[0])){const a=n.map((e=>ua(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return{dataId:r,shape:e,dtype:t}}incRef(e){this.data.get(e).refCount++}decRef(e){this.data.has(e)&&this.data.get(e).refCount--}move(e,t,n,r){this.data.set(e,{values:t,dtype:r,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);return"complex64"===t?fd(this.readSync(n.real.dataId),this.readSync(n.imag.dataId)):this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ls(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return eo().makeTensorFromDataId(r,t,n,this)}disposeData(e){if(this.data.has(e)){const{complexTensorInfos:t}=this.data.get(e);null!=t&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.data.has(t)){const e=this.data.get(t);e.refCount--,e.refCount<1&&this.disposeData(t)}}async time(e){const t=oa();return e(),{kernelMs:oa()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ME([e],"where");const t=this.readSync(e.dataId);return $E(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function LE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(ME(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=ne(i.shape),c=n||i.dtype,h=me(c,u);for(let e=0;e{const{x:i}=r;if(ME(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,a);return o.makeTensorInfo(i.shape,u,c)}}po("cpu",(()=>new PE),1);const WE=LE(Pt,(e=>e>=0?e:Math.exp(e)-1)),UE={kernelName:Pt,backendName:"cpu",kernelFunc:WE};function VE(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const jE={kernelName:tn,backendName:"cpu",kernelFunc:VE};function HE(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;ME([a],"leakyRelu");const i=ne(a.shape),o=n.data.get(a.dataId).values,l=pe("float32",i);for(let e=0;e{const i=Uo(t,n),o=i.length,l=Ie(i),u=pe(s,ne(i)),c=t.length,h=n.length,f=Ie(t),d=Ie(n),p=zo(t,i),m=zo(n,i);if(p.length+m.length===0)for(let t=0;ts[e]=0));const i=Be(s,c,f),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=Be(g,h,d);u[t]=e(r[i],a[y])}return[u,i]}}const XE=qE(((e,t)=>e<0?t*e:e));function KE(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;ME([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=XE(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const YE={kernelName:Hn,backendName:"cpu",kernelFunc:KE},JE=LE(Yn,(e=>Math.max(0,e))),ZE={kernelName:Yn,backendName:"cpu",kernelFunc:JE},QE=LE(nr,(e=>Math.min(Math.max(0,e),6))),eC={kernelName:nr,backendName:"cpu",kernelFunc:QE};function tC(e,t,n,r,a){if("linear"===n)return VE({inputs:{x:t},backend:e});if("relu"===n)return JE({inputs:{x:t},backend:e});if("elu"===n)return WE({inputs:{x:t},backend:e});if("relu6"===n)return QE({inputs:{x:t},backend:e});if("prelu"===n)return KE({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return HE({inputs:{x:t},backend:e,attrs:{alpha:a}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function nC(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,o=n.makeTensorInfo(r.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",s),imag:n.makeTensorInfo(a.shape,"float32",i)},o}const rC={kernelName:mt,backendName:"cpu",kernelFunc:nC};function aC(e,t,n="float32"){if("complex64"===n)return nC({inputs:{real:aC(e,t,"float32"),imag:aC(e,t,"float32")},backend:e});const r=Re(ne(t),n);return e.makeTensorInfo(t,n,r)}function sC(e){const{inputs:t,backend:n}=e,{input:r}=t,a=n.data.get(r.dataId).complexTensorInfos.real,s=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,s)}const iC={kernelName:Xn,backendName:"cpu",kernelFunc:sC};function oC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return VE({inputs:{x:a},backend:n});const e=aC(n,a.shape,a.dtype),t=oC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=nC({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=sC({inputs:{input:a},backend:n}),t=oC({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!be(a.dtype,s)){const e=VE({inputs:{x:a},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:s}}if("int32"===s){const e=n.data.get(a.dataId).values,t=Int32Array.from(e);return n.makeTensorInfo(a.shape,"int32",t)}if("bool"===s){const e=n.data.get(a.dataId).values,t=ia([0],a.dtype),[r,s]=qE(((e,t)=>e!==t?1:0))(a.shape,[],e,t,"bool");return n.makeTensorInfo(s,"bool",r)}throw new Error(`Error in Cast: failed to cast ${a.dtype} to ${s}`)}const lC={kernelName:ft,backendName:"cpu",kernelFunc:oC};function uC(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;ME([s,i],e);const l=o.data.get(s.dataId).values,u=o.data.get(i.dataId).values,c=r||s.dtype,[h,f]=t(s.shape,i.shape,l,u,c);return o.makeTensorInfo(f,c,h)}:({inputs:e,backend:a})=>{const{a:s,b:i}=e,o=a;if("complex64"===s.dtype||"complex64"===i.dtype){const e=oC({inputs:{x:s},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),r=t.complexTensorInfos.real,a=t.complexTensorInfos.imag,l=o.data.get(r.dataId).values,u=o.data.get(a.dataId).values,c=oC({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),f=h.complexTensorInfos.real,d=h.complexTensorInfos.imag,p=o.data.get(f.dataId).values,m=o.data.get(d.dataId).values,[g,y,b]=n(s.shape,i.shape,l,u,p,m),v=o.makeTensorInfo(b,"float32",g),w=o.makeTensorInfo(b,"float32",y),_=nC({inputs:{real:v,imag:w},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(v),o.disposeIntermediateTensorInfo(w),_}{const e=o.data.get(s.dataId).values,n=o.data.get(i.dataId).values,a=r||s.dtype,[l,u]=t(s.shape,i.shape,e,n,a);return o.makeTensorInfo(u,a,l)}}}function cC(e){return(t,n,r,a,s,i)=>{const o=Uo(t,n),l=ne(o),u=o.length,c=Ie(o),h=pe("float32",l),f=pe("float32",l),d=zo(t,o),p=zo(n,o),m=fd(r,a),g=fd(s,i),y=t.length,b=Ie(t),v=n.length,w=Ie(n);if(d.length+p.length===0)for(let t=0;tr[e]=0));const a=Be(r,y,b),s=n.slice(-v);p.forEach((e=>s[e]=0));const i=Be(s,v,w),o=e(m[2*a],m[2*a+1],g[2*i],g[2*i+1]);h[t]=o.real,f[t]=o.imag}return[h,f,o]}}const hC=qE(((e,t)=>e+t)),fC=cC(((e,t,n,r)=>({real:e+n,imag:t+r}))),dC=uC(qe,hC,fC),pC={kernelName:qe,backendName:"cpu",kernelFunc:dC};function mC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{shape:s}=r,i=ne(a.shape),o=he(s,i),l=ne(o);Z(i===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${a.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(a.dataId);const u=n.data.get(a.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:a.dataId,shape:o,dtype:a.dtype}}const gC={kernelName:Jn,backendName:"cpu",kernelFunc:mC};function yC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;ME([a,s],"matMul");const l=a.shape.length,u=s.shape.length,c=i?a.shape[l-2]:a.shape[l-1],h=o?s.shape[u-1]:s.shape[u-2],f=i?a.shape[l-1]:a.shape[l-2],d=o?s.shape[u-2]:s.shape[u-1],p=a.shape.slice(0,-2),m=s.shape.slice(0,-2),g=ne(p),y=ne(m);Z(l>=2&&u>=2&&(g===y||1===g||1===y),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${p}) and (${m}).`));const b=(g>y?a.shape.slice(0,-2):s.shape.slice(0,-2)).concat([f,d]);Z(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${a.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`));const v=o?[y,d,h]:[y,h,d],w=mC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),_=mC({inputs:{x:s},backend:n,attrs:{shape:v}}),x=i?w.shape[1]:w.shape[2],k=i?w.shape[2]:w.shape[1],E=o?_.shape[1]:_.shape[2],C=Math.max(g,y),S=n.data.get(w.dataId).values,N=n.data.get(_.dataId).values,I=Ie(w.shape),D=Ie(_.shape),[A,T,R]=i?[I[0],1,I[1]]:[I[0],I[1],1],[F,O,B]=o?[1,D[1],D[0]]:[D[1],1,D[0]],M=k*E,$=Ls([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;ME(t,"abs");let r=new Float32Array(ne(t.shape));return r=wC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},xC=LE(He,(e=>Math.acos(e))),kC={kernelName:He,backendName:"cpu",kernelFunc:xC},EC=LE(Ge,(e=>Math.acosh(e))),CC={kernelName:Ge,backendName:"cpu",kernelFunc:EC},SC={kernelName:Xe,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;ME(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Ls(r[0].shape,r[0].dtype),i=s.values;for(let e=0;en&&(n=a,r=e)}f[e]=r}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},FC={kernelName:Ze,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;ME(a,"argMin");let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=IC({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),i=[i[0]],$u("argMin",i,l.shape.length);const[c,h]=Bu(l.shape,i),f=Re(ne(c),"int32"),d=ne(h),p=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},OC=LE(Qe,(e=>Math.asin(e))),BC={kernelName:Qe,backendName:"cpu",kernelFunc:OC},MC=LE(et,(e=>Math.asinh(e))),$C={kernelName:et,backendName:"cpu",kernelFunc:MC},PC=LE(tt,(e=>Math.atan(e))),LC={kernelName:tt,backendName:"cpu",kernelFunc:PC},zC=qE(((e,t)=>Math.atan2(e,t))),WC=uC(rt,zC),UC={kernelName:rt,backendName:"cpu",kernelFunc:WC},VC=LE(nt,(e=>Math.atanh(e))),jC={kernelName:nt,backendName:"cpu",kernelFunc:VC};function HC(e,t,n,r,a,s){const i=a.strideHeight,o=a.strideWidth,l=a.dilationHeight,u=a.dilationWidth,c=a.effectiveFilterHeight,h=a.effectiveFilterWidth,f=a.padInfo.top,d=a.padInfo.left,p="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Ls(a.outShape,n),g=m.values,y=a.outShape[1]*a.outShape[2]*a.outShape[3],b=a.outShape[2]*a.outShape[3],v=a.outShape[3];for(let t=0;ty?y=i:"avg"===s&&(b+=i,w++)}if(isNaN(y))break}g[k+n*v+t]="avg"===s?b/w:y}}}return m}function GC(e,t,n,r,a=!1,s=!1){const i=Ls(r.outShape,"int32"),o=r.strideHeight,l=r.strideWidth,u=r.dilationHeight,c=r.dilationWidth,h=r.effectiveFilterHeight,f=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,m=Ls(t,n,e);for(let e=0;ew&&(w=u,_=a?s?((e*r.inHeight+n)*r.inWidth+o)*r.inChannels+t:(n*r.inWidth+o)*r.inChannels+t:i*f+l)}}i.set(_,e,n,o,t)}}return i}function qC(e,t,n,r,a,s){const i=a.strideDepth,o=a.strideHeight,l=a.strideWidth,u=a.dilationDepth,c=a.dilationHeight,h=a.dilationWidth,f=a.effectiveFilterDepth,d=a.effectiveFilterHeight,p=a.effectiveFilterWidth,m=a.padInfo.front,g=a.padInfo.top,y=a.padInfo.left,b="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Ls(a.outShape,n),w=v.values,_=a.outShape[1]*a.outShape[2]*a.outShape[3]*a.outShape[4],x=a.outShape[2]*a.outShape[3]*a.outShape[4],k=a.outShape[3]*a.outShape[4],E=a.outShape[4];for(let t=0;tx?x=a:"avg"===s&&(k+=a,C++),isNaN(x))break}if(isNaN(x))break}if(isNaN(x))break}w[g+t]="avg"===s?k/C:x}}}}return v}const XC={kernelName:at,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;ME(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))c=VE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ie(a.shape),r=HC(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},KC={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u,dilations:c}=r;ME(a,"avgPool3d");let h=c;null==h&&(h=[1,1,1]);const f=ll(a.shape,s,i,h,o,l,u),d=qC(n.data.get(a.dataId).values,a.shape,a.dtype,Ie(a.shape),f,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}},YC={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"avgPool3DGrad");const h=ll(s.shape,i,o,u,l,c),f=h.strideDepth,d=h.strideHeight,p=h.strideWidth,m=h.filterDepth,g=h.filterHeight,y=h.filterWidth,b=h.dilationDepth,v=h.dilationHeight,w=h.dilationWidth,_=h.effectiveFilterDepth,x=h.effectiveFilterHeight,k=h.effectiveFilterWidth,E=_-1-h.padInfo.front,C=k-1-h.padInfo.left,S=x-1-h.padInfo.top,N=Ls(s.shape,"float32"),I=1/(m*g*y),D=n.bufferSync(a);for(let e=0;e=h.outDepth||Math.floor(r)!==r))for(let n=0;n=h.outHeight||Math.floor(a)!==a))for(let n=0;n=h.outWidth||Math.floor(s)!==s||(l+=D.get(e,r,a,s,t))}}}N.set(l*I,e,n,r,a,t)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}},JC={kernelName:st,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;ME([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=ol(i.shape,o,l,1,u),h=c.strideHeight,f=c.strideWidth,d=c.filterHeight,p=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,v=b-1-c.padInfo.left,w=y-1-c.padInfo.top,_=Ls(i.shape,"float32"),x=1/(d*p),k=n.data.get(a.dataId).values,E=Ls(a.shape,"float32",k);for(let e=0;e=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(a)!==a||(i+=E.get(e,r,a,t))}}_.set(i*x,e,n,r,t)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}},ZC={kernelName:Yt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,scale:s,offset:i,mean:o,variance:l}=t;Z(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==s||o.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),ME([a,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=r;null==u&&(u=.001);const c=n.data.get(a.dataId).values,h=n.data.get(o.dataId).values,f=n.data.get(l.dataId).values,d=s?n.data.get(s.dataId).values:new Float32Array([1]),p=i?n.data.get(i.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=p.length,y=d.length,b=f.length,v=h.length;let w=0,_=0,x=0,k=0;for(let e=0;e=g&&(w=0),_>=v&&(_=0),x>=y&&(x=0),k>=b&&(k=0);return n.makeTensorInfo(a.shape,a.dtype,m)}};function QC(e,t,n,r,a){const s=Ai(r,t,n),i=ne(n),o=Ie(r);if(s){const n=Ti(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Ls(r,a,"string"===a?Sd(e):e),u=Ls(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?Nd(u.values):u.values}function eS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;ME(a,"slice");const[o,l]=Ri(a,s,i);bi(a,o,l);const u=QC(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const tS={kernelName:ur,backendName:"cpu",kernelFunc:eS},nS={kernelName:ut,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;ME([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Jf(a.shape,s,o),u=Zf(l.length,s.length),c=Qf(a.shape,s,o),h=ed(i,s.length),f=td(c,i,s.length),d=mC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=IC({inputs:{x:d},backend:n,attrs:{perm:u}}),m=mC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=eS({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function rS(e,t,n,r,a){const s=ne(r),i=Re(a,n);for(let n=0;n=a||(i[r]+=s>0?t[n]:1)}return i}function aS(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Ls([a,n],t.dtype);for(let o=0;o=n||(r?i.set(1,o,s):t.size>0?i.set(i.get(o,s)+t.get(o,a),o,s):i.set(i.get(o,s)+1,o,s))}return i}const sS={kernelName:ct,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=rS(n.data.get(a.dataId).values,n.data.get(s.dataId).values,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,o)}};function iS(e){return(t,n,r)=>{const a=pe(n,t.length);for(let n=0;nMath.ceil(e))),lS=zE(dt,oS),uS={kernelName:dt,backendName:"cpu",kernelFunc:lS},cS=LE(pt,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,r=new Float32Array(ne(t.shape)),a=n.data.get(t.dataId),s=a.complexTensorInfos.real,i=a.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let e=0;e{const n=ne(e.shape);a.set(e.vals,t),t+=n}))}else{let r=0;e.forEach((e=>{const s="string"===n?Sd(e.vals):e.vals;let i=0;for(let n=0;ne.shape)),s);if(0===ne(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>ne(e.shape)>0));if(1===o.length)return VE({inputs:{x:o[0]},backend:n});if(Gf(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>sC({inputs:{input:e},backend:n}))),t=o.map((e=>pS({inputs:{input:e},backend:n}))),r=gS({inputs:e,backend:n,attrs:{axis:s}}),a=gS({inputs:t,backend:n,attrs:{axis:s}}),i=nC({inputs:{real:r,imag:a},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(a),i}const l=o.map((e=>{const t=ne(e.shape.slice(s));return mC({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));i=qf(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=dS(u,i,t[0].dtype,c),f=qf(o.map((e=>e.shape)),s),d=n.makeTensorInfo(f,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}const yS={kernelName:yt,backendName:"cpu",kernelFunc:gS};function bS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"conv2d");const h=bl(l),f=ul(a.shape,s.shape,i,u,o,c,!1,h),d=f.filterHeight,p=f.filterWidth,m=f.dilationHeight,g=f.dilationWidth,y=f.padInfo.left,b=f.padInfo.top,v="channelsLast"===f.dataFormat,w=new ha(f.outShape,a.dtype),_=Ie(a.shape),x=Ie(s.shape),k=_[0],E=v?_[1]:_[2],C=v?_[2]:1,S=v?1:_[1],N=w.strides[0],I=v?w.strides[1]:w.strides[2],D=v?w.strides[2]:1,A=v?1:w.strides[1],T=n.data.get(a.dataId).values,R=n.data.get(s.dataId).values,F=w.values;for(let e=0;e=f.inHeight)continue;const s=e*x[0],i=t+n*E;for(let e=0;e=f.inWidth)continue;const a=i+r*C;let o=s+e*x[1];for(let e=0;e=u.inDepth)continue;const s=e*C[0],i=t+n*E[1];for(let e=0;e=u.inHeight)continue;const a=s+e*C[1],o=i+r*E[2];for(let e=0;e=u.inWidth)continue;const s=a+e*C[2],i=o+t*u.inChannels;let l=s;for(let e=0;eMath.cos(e))),SS={kernelName:Et,backendName:"cpu",kernelFunc:CS},NS=LE(Ct,(e=>Math.cosh(e))),IS={kernelName:Ct,backendName:"cpu",kernelFunc:NS},DS={kernelName:Nt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,[c,h,f,d]=a.shape,p=s.shape[0],[m,g]=o,y=Ls([p,m,g,d],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,_=Ie(a.shape),x=Ie(y.shape);for(let e=0;e=c)continue;const o=m>1?(a-n)*(h-1)/(m-1):0,p=g>1?(s-r)*(f-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+a)*(h-1);if(c<0||c>h-1)for(let n=0;n1?r*(f-1)+l*p:.5*(r+s)*(f-1);if(c<0||c>f-1){for(let n=0;n1?r*(f-1)+n*p:.5*(r+s)*(f-1);if(a<0||a>f-1){for(let r=0;re+p-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`)),Z(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l=a.shape[1],u=a.shape[2],c=a.shape[3],h=l*s,f=u*s,d=c/(s*s),p=n.data.get(a.dataId).values,m=new Float32Array(o*h*f*d);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${f}'`));const d=ul(a.shape,s.shape,i,f,o,u,!0),{filterHeight:p,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=d,v=b.left,w=b.top,_=d.outChannels/d.inChannels,x=new ha(d.outShape,a.dtype),k=n.data.get(a.dataId).values,E=n.data.get(s.dataId).values,C=x.values;for(let e=0;e=d.inHeight)continue;const s=e*h[0],i=t+n*c[1];for(let e=0;e=d.inWidth)continue;const a=s+e*h[1],o=i+r*d.inChannels;let l=t,u=a;for(let e=0;e{const{x:r,filter:a}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(r.dataId).values,c=r.shape.length,h=l.data.get(a.dataId).values,f=a.shape.length,{batchSize:d,inHeight:p,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:w,strideWidth:_,filterHeight:x,filterWidth:k,dilationHeight:E,dilationWidth:C,outShape:S}=il(r.shape,a.shape,s,i,"NHWC",o),N=ne(S),I=S.length,D=me(r.dtype,N);for(let e=0;e=0&&s=0&&dl&&(l=m)}}}D[Be([e,t,s,o],I,Ie(S))]=l}}}return{dataId:l.write(ia(D,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},LS={kernelName:Mt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Ae(r.shape,u.data.get(r.dataId).values),h=Ae(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=il(r.shape,a.shape,i,o,"NHWC",l);Z(s.rank===C.length,(()=>`Error in ${Mt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Ae(C,u.data.get(s.dataId).values),N=Fe(a.shape,a.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=t,l=n)}}}N[o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ia(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},zS={kernelName:Bt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Ae(r.shape,u.data.get(r.dataId).values),h=Ae(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=il(r.shape,a.shape,i,o,"NHWC",l);Z(s.rank===C.length,(()=>`Error in ${Bt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Ae(C,u.data.get(s.dataId).values),N=Fe(r.shape,r.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=r,l=u)}}}N[e][o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ia(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},WS={kernelName:Lt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;ME([r,a],"eluGrad");const s=new Float32Array(ne(a.shape)),i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values;for(let e=0;e=1?o[e]:o[e]*(t+1)}return n.makeTensorInfo(a.shape,"float32",s)}},US=qE(((e,t)=>e===t?1:0)),VS=uC(Wt,US,null,"bool"),jS={kernelName:Wt,backendName:"cpu",kernelFunc:VS},HS=ad,GS=sd,qS=id,XS=od,KS=ld,YS=ud,JS=LE(zt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+HS*n);return t*(1-((((YS*r+KS)*r+XS)*r+qS)*r+GS)*r*Math.exp(-n*n))})),ZS={kernelName:zt,backendName:"cpu",kernelFunc:JS},QS=iS((e=>Math.exp(e))),eN=zE(Ut,QS),tN={kernelName:Ut,backendName:"cpu",kernelFunc:eN};function nN(e){const{inputs:t,backend:n,attrs:r}=e,{input:a}=t,{dim:s}=r,i=a.shape.length,o=a.shape.slice();let l=s;return s<0&&(Z(-(i+1)<=s,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+s+1),o.splice(l,0,1),mC({inputs:{x:a},backend:n,attrs:{shape:o}})}const rN={kernelName:Vt,backendName:"cpu",kernelFunc:nN},aN=iS((e=>Math.expm1(e))),sN=zE(jt,aN),iN={kernelName:jt,backendName:"cpu",kernelFunc:sN},oN=qE(((e,t)=>e*t)),lN=cC(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),uN=uC(Fn,oN,lN),cN={kernelName:Fn,backendName:"cpu",kernelFunc:uN},hN=qE(((e,t)=>e/t)),fN=uC($t,hN),dN={kernelName:$t,backendName:"cpu",kernelFunc:fN},pN=qE(((e,t)=>e-t)),mN=cC(((e,t,n,r)=>({real:e-n,imag:t-r}))),gN=uC(xr,pN,mN),yN={kernelName:xr,backendName:"cpu",kernelFunc:gN};function bN(e,t,n){const r=e.shape,a=r[0],s=r[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[a,s],c=ne(u),h=pe("float32",c),f=pe("float32",c);for(let e=0;e{const{image:r}=e,a=n,s=pe(r.dtype,ne(r.shape)),[i,o,l,u]=r.shape,c=a.data.get(r.dataId).values;for(let e=0;e=0&&fMath.floor(e))),SN=zE(Xt,CN),NN={kernelName:Xt,backendName:"cpu",kernelFunc:SN},IN=qE(((e,t)=>Math.floor(e/t))),DN=uC(Kt,IN,null,"int32"),AN={kernelName:Kt,backendName:"cpu",kernelFunc:DN},TN={kernelName:Pr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=bS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=dC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=tC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},RN={kernelName:Lr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=FS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=dC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=tC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},FN={kernelName:Zt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=ne(r.shape),i=a.shape,o=i[i.length-1],[l,u,c,h]=pi(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Ls([u,c],r.dtype),d=n.data.get(a.dataId).values,p=n.data.get(r.dataId).values;for(let e=0;e=s/c)throw new Error(`Invalid indices: ${t} does not index into ${r.shape}`);for(let t=0;te>t?1:0)),$N=uC(Qt,MN,null,"bool"),PN={kernelName:Qt,backendName:"cpu",kernelFunc:$N},LN=qE(((e,t)=>e>=t?1:0)),zN=uC(en,LN,null,"bool"),WN={kernelName:en,backendName:"cpu",kernelFunc:zN},UN={kernelName:nn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t,a=ne(r.shape),s=r.shape[r.shape.length-1],i=mC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=bN(i,!0,n),l=mC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},VN=LE(an,(e=>Number.isFinite(e)?1:0),"bool"),jN={kernelName:an,backendName:"cpu",kernelFunc:VN},HN=LE(sn,(e=>Math.abs(e)===1/0?1:0),"bool"),GN={kernelName:sn,backendName:"cpu",kernelFunc:HN},qN=LE(on,(e=>Number.isNaN(e)?1:0),"bool"),XN={kernelName:on,backendName:"cpu",kernelFunc:qN},KN=qE(((e,t)=>ee<=t?1:0)),QN=uC(cn,ZN,null,"bool"),eI={kernelName:cn,backendName:"cpu",kernelFunc:QN};function tI(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),aI=zE(fn,rI),sI={kernelName:fn,backendName:"cpu",kernelFunc:aI},iI=LE(dn,(e=>Math.log1p(e))),oI={kernelName:dn,backendName:"cpu",kernelFunc:iI},lI=qE(((e,t)=>e&&t)),uI=uC(pn,lI,null,"bool"),cI={kernelName:pn,backendName:"cpu",kernelFunc:uI},hI=LE(mn,(e=>e?0:1),"bool"),fI={kernelName:mn,backendName:"cpu",kernelFunc:hI},dI=qE(((e,t)=>e||t)),pI=uC(gn,dI,null,"bool"),mI={kernelName:gn,backendName:"cpu",kernelFunc:pI},gI={kernelName:bn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r;ME(a,"LRN");const u=a.shape[3],c=u-1,h=n.data.get(a.dataId).values,f=ne(a.shape),d=new Float32Array(f);function p(e){const t=e%u;let n=e-t+Math.max(0,t-s);const r=e-t+Math.min(t+s,c);let a=0;for(;n<=r;n++){const e=h[n];a+=e*e}return a}for(let e=0;es&&(s=t)}a[n]=s}return a}function vI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=n;let l=a.shape;const u=l.length,c=fe(s,l);let h=c;const f=Pu(h,u);let d=o.data.get(a.dataId).values;if(null!=f){const e=new Array(u);for(let t=0;tMath.max(e,t))),xI=uC(_n,_I),kI={kernelName:_n,backendName:"cpu",kernelFunc:xI},EI={kernelName:xn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;ME(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))c=VE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ie(a.shape),r=HC(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},CI={kernelName:En,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u,dilations:c}=r;ME(a,"maxPool3d");let h=c;null==h&&(h=[1,1,1]);const f=ll(a.shape,s,i,h,o,l,u),d=qC(n.data.get(a.dataId).values,a.shape,a.dtype,Ie(a.shape),f,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}},SI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"maxPool3DGrad");const h=ll(s.shape,i,o,u,l,c),f=function(e,t){const n=Ls(t.outShape,"int32"),r=t.strideDepth,a=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,f=t.padInfo.front,d=t.padInfo.top,p=t.padInfo.left;for(let m=0;m=E&&(E=o,C=n*c*h+a*c+i)}}}n.set(C,m,y,r,a,g)}}}return n}(n.bufferSync(s),h),d=h.strideDepth,p=h.strideHeight,m=h.strideWidth,g=h.dilationDepth,y=h.dilationHeight,b=h.dilationWidth,v=h.effectiveFilterDepth,w=h.effectiveFilterHeight,_=h.effectiveFilterWidth,x=v-1-h.padInfo.front,k=_-1-h.padInfo.left,E=w-1-h.padInfo.top,C=Ls(s.shape,"float32"),S=n.bufferSync(a);for(let e=0;e=h.outDepth||Math.floor(r)!==r))for(let a=0;a=h.outHeight||Math.floor(s)!==s))for(let i=0;i<_;i+=b){const u=(o+i)/m;if(u<0||u>=h.outWidth||Math.floor(u)!==u)continue;const c=v*w*_-1-f.get(e,r,s,u,t)===n*w*_+a*_+i?1:0;0!==c&&(l+=S.get(e,r,s,u,t)*c)}}}C.set(l,e,n,r,a,t)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}},NI={kernelName:kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;ME([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=ol(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Ls(f.outShape,o.dtype,GC(d,o.shape,o.dtype,f).values),m=f.strideHeight,g=f.strideWidth,y=f.dilationHeight,b=f.dilationWidth,v=f.effectiveFilterHeight,w=f.effectiveFilterWidth,_=w-1-f.padInfo.left,x=v-1-f.padInfo.top,k=Ls(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Ls(a.shape,"float32",E);for(let e=0;e=f.outHeight||Math.floor(r)!==r))for(let a=0;a=f.outWidth||Math.floor(o)!==o)continue;const l=v*w-1-p.get(e,r,o,t)===n*w+a?1:0;0!==l&&(i+=C.get(e,r,o,t)*l)}}k.set(i,e,n,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}},II={kernelName:Sn,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ME(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=ol(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=HC(e,0,n,Ie(t),a,"max"),i=GC(e,t,n,a,!0,r);return[s.values,i.values]}(u,r.shape,r.dtype,o,c),d=l.write(h,c.outShape,r.dtype),p=l.write(f,c.outShape,r.dtype);return[{dataId:d,shape:c.outShape,dtype:r.dtype},{dataId:p,shape:c.outShape,dtype:"int32"}]}};function DI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;ME(a,"sum"),o="bool"===a.dtype?oC({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):VE({inputs:{x:a},backend:n});const l=o.shape.length,u=fe(s,o.shape),c=Pu(u,l);let h=u,f=o;null!=c&&(f=IC({inputs:{x:o},backend:n,attrs:{perm:c}}),h=zu(h.length,l)),$u("sum",h,f.shape.length);const[d,p]=Bu(f.shape,h);let m=aC(n,d,ka(f.dtype,"int32"));const g=ne(p),y=n.data.get(m.dataId).values,b=n.data.get(f.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),d}},RI={kernelName:In,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;ME(a,"min");const o=fe(s,a.shape);let l=o;const u=Pu(l,a.shape.length);let c=a;null!=u&&(c=IC({inputs:{x:a},backend:n,attrs:{perm:u}}),l=zu(l.length,a.shape.length)),$u("min",l,c.shape.length);const[h,f]=Bu(c.shape,l),d=ne(f),p=Re(ne(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),OI=uC(Dn,FI),BI={kernelName:Dn,backendName:"cpu",kernelFunc:OI},MI={kernelName:An,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;ME(a,"mirrorPad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=s.map(((e,t)=>e[0]+a.shape[t])),c="reflect"===i?0:1,h=n.data.get(a.dataId).values,f=a.shape.length,d=Ie(a.shape),p=ne(o),m=o.length,g=Ie(o),y=pe(a.dtype,p);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=Be(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},$I=qE(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),PI=uC(Tn,$I),LI={kernelName:Tn,backendName:"cpu",kernelFunc:PI};function zI(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=a.shape.length;let o=s;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const l=fe([o],a.shape),u=vI({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Mu(u.shape,l),h=mC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=gN({inputs:{a,b:h},backend:n}),d=eN({inputs:{x:f},backend:n}),p=DI({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=mC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=fN({inputs:{a:d,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}const WI={kernelName:vr,backendName:"cpu",kernelFunc:zI},UI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;ME(a,"multinomial");const l=o?a:zI({inputs:{logits:a},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,f=[u,s],d=Re(ne(f),"int32");for(let e=0;ee!==t?1:0)),ZI=uC(Bn,JI,null,"bool"),QI={kernelName:Bn,backendName:"cpu",kernelFunc:ZI},eD={kernelName:zn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;ME(a,"oneHot");const l=ne(a.shape),u=new Float32Array(l*s);u.fill(o);const c=n.data.get(a.dataId).values;for(let e=0;e=0&&c[e]{Q(s,e.shape,"All tensors passed to stack must have matching shapes"),Z(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=gS({inputs:t.map((e=>{const t=nN({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const sD={kernelName:Wn,backendName:"cpu",kernelFunc:aD},iD={kernelName:Un,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;ME(a,"pad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=n.data.get(a.dataId).values,c=ne(a.shape),h=a.shape.length,f=Ie(a.shape),d=ne(o),p=o.length,m=Ie(o),g=pe(a.dtype,d);0!==i&&g.fill(i);for(let e=0;ee+l[t])),p,m)]=u[e];return{dataId:n.write(g,o,a.dtype),shape:o,dtype:a.dtype}}},oD=qE(((e,t)=>Math.pow(e,t))),lD=uC(jn,oD),uD={kernelName:jn,backendName:"cpu",kernelFunc:lD};function cD(e,t,n,r){const[a,s]=Bu(e,r),i=ka(t,"int32"),o=Re(ne(a),i),l=ne(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function fD(e,t,n,r){if(e===t||e1)return Re(0,r);const a=Re(Math.abs(Math.ceil((t-e)/n)),r);t1/e)),mD={kernelName:Kn,backendName:"cpu",kernelFunc:pD},gD={kernelName:er,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;ME(a,"resizeBilinear");const l=Ie(a.shape),[u,c]=o,[h,f,d,p]=a.shape,m=n.data.get(a.dataId).values,g=new Float32Array(ne([h,u,c,p])),y=[s&&u>1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c];let v=0;const w=y[0]/b[0],_=y[1]/b[1];for(let e=0;e1?u-1:u,i&&d>1?c-1:c],g=[i&&f>1?f-1:f,i&&d>1?d-1:d],y=m[0]/g[0],b=m[1]/g[1],v=n.data.get(s.dataId).values;let w=0;for(let e=0;e1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],v=y[0]/b[0],w=y[1]/b[1];let _=0;for(let e=0;e1?c-1:c,i&&p>1?h-1:h],b=[i&&d>1?d-1:d,i&&p>1?p-1:p],v=y[0]/b[0],w=y[1]/b[1],_=1/v,x=1/w,k=2*Math.ceil(_)+2,E=2*Math.ceil(x)+2;for(let e=0;e=d)continue;const f=t+u*l[1],m=u*v;if(e===Math.min(c-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=p)continue;const a=f+t*l[2],s=t*w;r===Math.min(h-1,i?Math.round(s):Math.floor(s))&&(o+=g[a+n])}}m[s+n]=o}}}}return n.makeTensorInfo(a.shape,a.dtype,m)}},wD={kernelName:rr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;ME(a,"reverse");const i=a.shape.length,o=fe(s,a.shape);if(0===i)return VE({inputs:{x:a},backend:n});const l=new ha(a.shape,a.dtype),u=n.bufferSync(a);for(let e=0;en[e]=a.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},_D={kernelName:Mr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=pe(r.dtype,ne(r.shape)),[u,c,h,f]=r.shape,[d,p]=Yf(i,c,h),m=Math.sin(a),g=Math.cos(a),y=o.data.get(r.dataId).values;for(let e=0;e=0&&w=0&&_{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),kD={kernelName:ar,backendName:"cpu",kernelFunc:xD},ED=iS((e=>1/Math.sqrt(e))),CD=zE(sr,ED),SD={kernelName:sr,backendName:"cpu",kernelFunc:CD};function ND(e,t,n,r,a,s,i,o,l,u){const c=[r/a,a],h=e.values,f=t.values;if(0===r)return Ls(n,t.dtype);const d=Ls(c,t.dtype);d.values.fill(l);for(let e=0;e=r/a)throw new Error(`Invalid indices: ${s} does not index into ${n}`);for(let n=0;n1||1===a.shape.length?1:ne(a.shape.slice(1));for(let e=0;ee>=0?TD*e:AD*(Math.exp(e)-1))),FD={kernelName:lr,backendName:"cpu",kernelFunc:RD},OD=LE(dr,(e=>1/(1+Math.exp(-e)))),BD={kernelName:dr,backendName:"cpu",kernelFunc:OD},MD=LE(fr,(e=>e<0?-1:e>0?1:0)),$D={kernelName:fr,backendName:"cpu",kernelFunc:MD},PD=LE(cr,(e=>Math.sin(e))),LD={kernelName:cr,backendName:"cpu",kernelFunc:PD},zD=LE(hr,(e=>Math.sinh(e))),WD={kernelName:hr,backendName:"cpu",kernelFunc:zD},UD=Math.log(1.1920928955078125e-7)+2,VD=LE(pr,(e=>{const t=e>-UD,n=e{const t=[...c];t[o]=e;const r=eS({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},XD=LE(mr,(e=>Math.sqrt(e))),KD={kernelName:mr,backendName:"cpu",kernelFunc:XD},YD={kernelName:_r,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;ME(n,"square");const a=r.data.get(n.dataId).values,s=new Float32Array(a.length);for(let e=0;e{const n=e-t;return n*n})),ZD=uC(wr,JD),QD={kernelName:wr,backendName:"cpu",kernelFunc:ZD},eA=LE(Or,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),tA={kernelName:Or,backendName:"cpu",kernelFunc:eA};function nA(e,t,n,r){const a=Ls(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=nA(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const _=mC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},aA=LE(Cr,(e=>Math.tan(e))),sA={kernelName:Cr,backendName:"cpu",kernelFunc:aA},iA=LE(Sr,(e=>Math.tanh(e)));function oA(e,t){const n=new Array(e.rank);for(let r=0;rt.value-e.value));const i=t*r,c=l.subarray(i,i+r),h=u.subarray(i,i+r);for(let e=0;e{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},nD];for(const e of cA)Hr(e);const hA={},fA={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function dA(e){if(!(e in hA)){const t=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete hA[e]}),!1),1===e?t.getContext("webgl",fA)||t.getContext("experimental-webgl",fA):t.getContext("webgl2",fA)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;hA[e]=t}const t=hA[e];return t.isContextLost()?(delete hA[e],dA(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),hA[e])}var pA,mA,gA;function yA(e,t){return[t,e]}function bA(e){const t=ne(e);return oe(Math.ceil(t/4))}function vA(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function wA(e,t){const n=e;let r,a,s,i,o,l,u,c,h,f;return 2===Le().getNumber("WEBGL_VERSION")?(r=n.R32F,a=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,f=n.FLOAT):(r=e.RGBA,a=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,f=e.FLOAT),l=e.RGBA,{internalFormatFloat:r,internalFormatHalfFloat:a,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:f}}function _A(e,t){const n=t();return Le().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}(e,t))}(e),n}function xA(e){return!!(Le().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(pA||(pA={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(mA||(mA={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(gA||(gA={}));const EA=/ERROR: [0-9]+:([0-9]+):/g;function CA(e,t){if(_A(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function SA(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(_A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),_A(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),_A(e,(()=>e.enableVertexAttribArray(o))),!0)}function NA(e,t,n,r){_A(e,(()=>function(e,t,n){(function(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(`textureUnit must be in [gl.TEXTURE0, gl.TEXTURE${n}].`)})(e,n),_A(e,(()=>e.activeTexture(e.TEXTURE0+n))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),_A(e,(()=>e.uniform1i(n,r)))}function IA(e,t,n){_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),_A(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function DA(e,t){_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),_A(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function AA(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}(e,t))}function TA(e,t,n){const r=_A(e,(()=>t()));if(null==r)throw new Error(n);return r}function RA(e,t=2){return ne(e.slice(0,e.length-t))}function FA(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function OA(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[RA(e),...FA(e)]),t}function BA(e){return e%2==0}function MA(e,t){if(ae(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){const n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(BA(n)&&BA(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&BA(e[0])&&BA(t[0])}let $A,PA;function LA(e,t){return null!=e.getExtension(t)}function zA(e){try{if(null!=dA(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function WA(e){const t=wA(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),a}function UA(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Z("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const VA=Le();function jA(){let e,t,n,r,a,s,i,o,l,u;return 2===Le().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",a="texture",s="outputColor",i="out vec4 outputColor;",o="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",l="",u="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",a="texture2D",s="gl_FragColor",i="",o="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",l="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",u="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:a,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function HA(e,t,n="index"){const r=Ie(t);return r.map(((t,a)=>`int ${e[a]} = ${n} / ${t}; ${a===r.length-1?`int ${e[a+1]} = ${n} - ${e[a]} * ${t}`:`index -= ${e[a]} * ${t}`};`)).join("")}function GA(e){const t=Ie(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}VA.registerFlag("HAS_WEBGL",(()=>VA.getNumber("WEBGL_VERSION")>0)),VA.registerFlag("WEBGL_VERSION",(()=>zA(2)?2:zA(1)?1:0)),VA.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),VA.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===VA.get("WEBGL_VERSION"))),VA.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),VA.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),VA.registerFlag("WEBGL_PACK",(()=>VA.getBool("HAS_WEBGL"))),VA.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_CLIP",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>!1)),VA.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_REDUCE",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_LAZILY_UNPACK",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_CONV_IM2COL",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==$A){const t=dA(e);$A=t.getParameter(t.MAX_TEXTURE_SIZE)}return $A}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==PA){const t=dA(e);PA=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,PA)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=VA.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=dA(e);return t=LA(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:LA(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),VA.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>VA.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ba())),VA.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=dA(e);if(1===e){if(!LA(t,"OES_texture_float"))return!1}else if(!LA(t,"EXT_color_buffer_float"))return!1;return WA(t)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!VA.getBool("WEBGL_FORCE_F16_TEXTURES")&&VA.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),VA.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=dA(e);if(1!==e){if(LA(t,"EXT_color_buffer_float"))return WA(t);const e="EXT_color_buffer_half_float";if(LA(t,e)){const n=t.getExtension(e);return function(e,t){const n=wA(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);const s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(a),s}(t,n)}return!1}return!!LA(t,"OES_texture_float")&&!!LA(t,"WEBGL_color_buffer_float")&&WA(t)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=VA.getNumber("WEBGL_VERSION"))&&null!=dA(e).fenceSync;var e})),VA.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>VA.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),VA.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}));const qA="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";class XA{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=pA.DENSE;const t=bA(e),n=jA();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${HA(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${n.output} = result;\n }\n `}}class KA{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=pA.DENSE;const t=bA(e),n=jA();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${HA(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${n.output} = result;\n }\n `}}class YA{constructor(e){this.variableNames=["A"],this.outTexUsage=mA.DOWNLOAD;const t=jA();this.outputShape=e,this.userCode=`\n ${qA}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class JA{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=mA.DOWNLOAD;const t=jA();this.outputShape=e,this.userCode=`\n ${qA}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${t.output} = encode_float(x);\n }\n `}}class ZA{constructor(e,t,n=!1){this.variableNames=["A"];const r=jA(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${GA(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / ${s};\n int c = imod(flatIndex, ${s});\n vec2 uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n vec4 values = ${r.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${r.output} = vec4(${i}, 0., 0., 0.);\n }\n `}}class QA{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=jA(),[a,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let n=0;n<=1;n++){const o=2*t+n;i+=`\n localCoords = coords;\n if(localCoords[2] + ${n} < ${e[2]}) {\n localCoords[2] += ${n};\n if(localCoords[1] + ${t} < ${e[1]}) {\n localCoords[1] += ${t};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / ${s};\n c = imod(flatIndex, ${s});\n uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n values = ${r.texture2D}(A, uv);\n\n if(offset == 0) {\n result[${o}] = values[0];\n } else if(offset == 1) {\n result[${o}] = values[1];\n } else if(offset == 2) {\n result[${o}] = values[2];\n } else {\n result[${o}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${GA(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${i}\n\n ${r.output} = ${o};\n }\n `}}function eT(e,t,n,r,a,s){!function(e,t){const n=Le().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const i=function(e){return TA(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return _A(e,(()=>e.bindTexture(o,i))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),_A(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function tT(e){return e.internalFormatFloat}function nT(e){return e.internalFormatHalfFloat}function rT(e){return e.downloadTextureFormat}function aT(e){return e.internalFormatPackedFloat}function sT(e){return e.internalFormatPackedHalfFloat}class iT{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=Le().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){hA[e]=t}(t,e)):this.gl=dA(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===Le().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=kA(this.gl,e),LA(this.gl,t))this.textureHalfFloatExtension=kA(this.gl,t);else if(Le().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),LA(this.gl,r))this.colorBufferHalfFloatExtension=kA(this.gl,r);else if(Le().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",LA(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!LA(this.gl,r))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(r)}this.vertexBuffer=function(e){return function(e,t){const n=TA(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return _A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),_A(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}(this.gl),this.indexBuffer=function(e){return function(e,t){const n=TA(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return _A(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),_A(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}(this.gl),this.framebuffer=function(e){return TA(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=wA(this.gl,this.textureHalfFloatExtension)}get debug(){return Le().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;_A(e,(()=>e.finish())),_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),_A(e,(()=>e.deleteFramebuffer(this.framebuffer))),_A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),_A(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),_A(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,tT(r),r.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,nT(r),r.textureFormatFloat,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,rT(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,r){this.throwIfDisposed(),function(e,t,n,r,a,s){let i,o,l;_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),a instanceof Uint8Array?(i=new Uint8Array(n*r*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*r*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(a),_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,r,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=vA(t,n);return eT(e,a,s,sT(r),e.RGBA,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=vA(t,n);return eT(e,a,s,aT(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(DA(this.gl,this.framebuffer),this.outputTexture=null),_A(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=yA(t,n),i=new Uint8Array(t*n*4);return _A(e,(()=>e.readPixels(0,0,a,s,r.downloadTextureFormat,e.UNSIGNED_BYTE,i))),new Float32Array(i.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,r,a,s){return function(e,t,n,r,a,s,i,o){const l=e,u=new Float32Array(function(e,t){const[n,r]=vA(e,t);return n*r*4}(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}(this.gl,e,0,0,0,a,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const r=e,a=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,a),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),a}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const r=function(e,t,n,r){const a=e.createBuffer();_A(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return _A(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),_A(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),_A(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),a}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Le().getBool("WEBGL_FENCE_API_ENABLED")){const r=e,a=r.fenceSync(r.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=r.clientWaitSync(a,0,0);return e===r.ALREADY_SIGNALED||e===r.CONDITION_SATISFIED},t=a}else Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const r=new Float32Array(t*n*4);return _A(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,r))),r}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl,n=function(e,t){const n=TA(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(_A(e,(()=>e.shaderSource(n,t))),_A(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=EA.exec(t);if(null==n)return console.log(`Couldn't parse line number in error: ${t}`),void console.log(e);const r=+n[1],a=e.split("\n"),s=a.length.toString().length+2,i=a.map(((e,t)=>ue((t+1).toString(),s)+e));let o=0;for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(_A(e,(()=>e.shaderSource(n,t))),_A(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}(t),a=function(e){return TA(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return _A(t,(()=>t.attachShader(a,r))),_A(t,(()=>t.attachShader(a,n))),function(e,t){if(_A(e,(()=>e.linkProgram(t))),!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}(t,a),this.debug&&CA(t,a),this.vertexAttrsAreBound||(this.setProgram(a),this.vertexAttrsAreBound=function(e,t,n){return _A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),SA(e,t,"clipSpacePos",n,3,20,0)&&SA(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&_A(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&CA(this.gl,this.program),_A(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return TA(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),_A(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),NA(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=vA(t,n);this.setOutputMatrixTextureDriver(e,r,a)}setOutputMatrixWriteRegion(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)}setOutputPackedMatrixWriteRegion(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&CA(this.gl,this.program),AA(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),_A(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),_A(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=kA(this.gl,2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await ce((()=>this.disposed||this.isQueryAvailable(e,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),r=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),r&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||ce((()=>(this.pollItems(),0===this.itemsToPoll.length)))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),IA(this.gl,e,this.framebuffer),this.debug&&AA(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(IA(this.gl,this.outputTexture,this.framebuffer),this.debug&&AA(this.gl)):DA(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const r=this.gl;IA(r,e,this.framebuffer),this.debug&&AA(r),this.outputTexture=e,_A(r,(()=>r.viewport(0,0,t,n))),_A(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),_A(this.gl,(()=>this.gl.scissor(e,t,n,r)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{getBroadcastDims:oT}=g;function lT(e,t,n,r){const a=[];e.forEach((e=>{const t=ne(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?a.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(a.push(`uniform sampler2D ${e.name};`),a.push(`uniform int offset${e.name};`))}));const s=a.join("\n"),i=e.map((e=>function(e,t,n=!1){let r="";r+=n?cT(e):uT(e);const a=e.shapeInfo.logicalShape,s=t.logicalShape;return a.length<=s.length&&(r+=n?function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=oT(e.shapeInfo.logicalShape,t.logicalShape),l=yT(i),u=i-s;let c;const h=["x","y","z","w","u","v"];c=0===s?"":i<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let f="";f=i<2&&s>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let d="return outputValue;";const p=1===ne(e.shapeInfo.logicalShape),m=1===ne(t.logicalShape);if(1!==s||p||m){if(p&&!m)d=1===i?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=s-2,t=s-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?d="return vec4(outputValue.x);":o.indexOf(e)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}}else d="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${a}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${r}(${f});\n ${d}\n }\n `}(e,t):function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&ae(i,s))return`\n float ${a}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=yT(l),c=oT(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let f;const d=["x","y","z","w","u","v"];f=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${d[e+h]} = 0;`)).join("\n");let p="";return p=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${d[t+h]}`)).join(", "),`\n float ${a}() {\n ${u} coords = getOutputCoords();\n ${f}\n return get${r}(${p});\n }\n `}(e,t)),r}(e,t,r))).join("\n"),o=t.texShape,l=jA(),u=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(l);let c,h,f=function(e){return`${e.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${e.varyingFs} vec2 resultUV;\n ${e.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${e.defineSpecialNaN}\n ${e.defineSpecialInf}\n ${e.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${hT}\n ${fT}\n ${dT}\n `}(l);return t.isPacked?(c=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:1===n[1]?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}(0,t);case 2:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(ae(e,t))return`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]}));\n }\n `;const r=Math.ceil(e[1]/2);return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec2(r, c);\n }\n `}(e,t);case 3:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),a=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${a};\n index -= b * ${a};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t);default:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),a=r*Math.ceil(e[e.length-2]/2);let s=a,i="",o="b, r, c";for(let t=2;te[t])).join(", ")}function wT(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const r=e.logicalShape,a=t[n],s=a.shape;if(!ae(r,s))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${s} must match`);if(e.isUniform&&a.isUniform)return;const i=e.texShape,o=a.isUniform?null:a.texData.texShape;if(!ae(i,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${o} must match`)}))}const{addImpl:_T,bincountImpl:xT,bincountReduceImpl:kT,ceilImpl:ET,concatImpl:CT,expImpl:ST,expm1Impl:NT,floorImpl:IT,gatherV2Impl:DT,greaterImpl:AT,lessImpl:TT,linSpaceImpl:RT,logImpl:FT,maxImpl:OT,maximumImpl:BT,minimumImpl:MT,multiplyImpl:$T,negImpl:PT,prodImpl:LT,rangeImpl:zT,rsqrtImpl:WT,simpleAbsImpl:UT,sliceImpl:VT,stridedSliceImpl:jT,subImpl:HT,tileImpl:GT,topKImpl:qT,transposeImpl:XT,uniqueImpl:KT}=U;function YT(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function JT(e,t){return 1===t?[e]:YT(e,t)}class ZT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const n=JT("rc",t),r=yT(t),a=function(e,t,n){if(1===e)return`rc > ${t[0]}`;let r="";for(let a=e-2;a= ${t[a]}`,a= ${t};\n bool rEdge = rp1 >= ${n};\n `}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){const n=e.length,r=function(e,t){const n=[];for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=`${0===r?"r":"rp1"}, ${0===a?"c":"cp1"}`;for(let n=2;n= ${e[0]} ? 0. : getA(rc + 1),\n 0, 0`:`getA(${r[0]}),\n cEdge ? 0. : getA(${r[1]}),\n rEdge ? 0. : getA(${r[2]}),\n rEdge || cEdge ? 0. : getA(${r[3]})`}(e,n);this.userCode=`\n void main() {\n ${r} rc = getOutputCoords();\n\n if(${a}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${i}));\n }\n }\n `}}}class QT{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var r;this.userCode=`\n ${r=t,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${HA(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${GA(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${e[1]};\n int cols = ${e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class eR{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){const r=nR(t,n),a=rR(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=tR(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();const e=this.freeTextures[a].shift();return this.usedTextures[a].push(e),e}let i;return r===gA.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===gA.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===gA.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===gA.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===gA.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,r){if(null==this.freeTextures)return;const a=nR(n,r),s=rR(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=tR(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=Le().get("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;const l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function tR(e,t,n,r,a){const s=function(e,t){switch(e){case gA.PACKED_2X2_FLOAT32:return aT(t);case gA.PACKED_2X2_FLOAT16:return sT(t);case gA.UNPACKED_FLOAT32:return tT(t);case gA.UNPACKED_FLOAT16:return nT(t);case gA.PACKED_4X1_UNSIGNED_BYTE:return rT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=vA(e[0],e[1]);i=t*n}else{const[t,n]=yA(e[0],e[1]);i=t*n}return i*function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}(n,s)}function nR(e,t){if(e===mA.UPLOAD)return gA.PACKED_2X2_FLOAT32;if(e===mA.RENDER||null==e)return function(e){return Le().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?gA.PACKED_2X2_FLOAT32:gA.UNPACKED_FLOAT32:e?gA.PACKED_2X2_FLOAT16:gA.UNPACKED_FLOAT16}(t);if(e===mA.DOWNLOAD||e===mA.PIXELS)return gA.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function rR(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class aR{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=`\n float unaryOperation(float x) {\n ${t}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}const sR="return abs(x);",iR="return x;";class oR{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${t}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}class lR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=JT("rc",t),r=yT(t),a=function(e,t){if(1===e)return"rc";let n="";for(let r=0;r0&&t.refCount--}}move(e,t,n,r){if(Le().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:mA.UPLOAD,refCount:1,complexParentRefCount:0})}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.texData.has(t)){const e=this.texData.get(t);e.refCount--,e.refCount<1&&this.disposeData(t)}}readSync(e){const t=this.texData.get(e),{values:n,dtype:r,complexTensorInfos:a,slice:s,shape:i,isPacked:o}=t;if(null!=s){let t;t=o?new oR(i,iR):new aR(i,iR);const n=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:r}],r),a=this.readSync(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===r)return n;const l=null!=this.activeTimers;let u,c;return l&&(u=oa()),c="complex64"===r?fd(this.readSync(a.real.dataId),this.readSync(a.imag.dataId)):this.getValuesFromTexture(e),l&&(this.downloadWaitMs+=oa()-u),this.convertAndCacheOnCPU(e,c)}async read(e){if(this.pendingRead.has(e)){const t=this.pendingRead.get(e);return new Promise((e=>t.push(e)))}const t=this.texData.get(e),{values:n,shape:r,slice:a,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(null!=a){let t;t=o?new oR(r,iR):new aR(r,iR);const n=this.runWebGLProgram(t,[{dataId:e,shape:r,dtype:s}],s),a=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if(!Le().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Le().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==s&&Le().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...bA(r))}if(this.pendingRead.set(e,[]),"complex64"!==s&&await this.gpgpu.createAndWaitForFence(),"complex64"===s){const e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]);u=fd(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=ne(r);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}null!=l&&this.disposeIntermediateTensorInfo(l);const h=this.convertAndCacheOnCPU(e,u),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),h}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ls(e.shape,e.dtype,n)}checkNumericalProblems(e){if(null!=e)for(let t=0;te.query))).filter((e=>null!=e)),s=te(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,r&&(this.programTimersStack=null);const i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=K(e),i.getExtraProfileInfo=()=>e.map(((e,t)=>({name:s[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:oa(),endMs:null}}endTimer(e){return Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=oa(),e)}async getQueryTime(e){if(Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),void this.pendingDeletes++;if(!this.texData.has(e))return;if(this.texData.get(e).complexParentRefCount>0)return void this.texData.get(e).refCount--;this.releaseGPUData(e);const{complexTensorInfos:t}=this.texData.get(e);null!=t&&(this.texData.get(t.real.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.real),this.texData.get(t.imag.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.imag)),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:n,texShape:r,usage:a,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(r,n),this.textureManager.releaseTexture(t,r,a,s)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return Le().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=eo().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=128){const n=this.getCPUBackend();return Le().getBool("IS_TEST")||this.warnedAboutCPUBackend||null!=n||(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),null!=n&&e.every((e=>null==this.texData.get(e.dataId).texture&&ne(e.shape)0&&xe(n[0])){const a=n.map((e=>ua(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return this.texData.get(r).usage=null,{dataId:r,shape:e,dtype:t}}makeOutput(e,t,n){const{dataId:r}=this.makeTensorInfo(e,t,n);return eo().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new lR(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new ZT(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[RA(e.shape),...FA(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[RA(t),...FA(t)],s=new QT(a,n),i=this.runWebGLProgram(s,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}}decode(e){const t=this.texData.get(e),{isPacked:n,shape:r,dtype:a}=t,s=OA(r);let i;return i=n?new KA(s):new XA(s),{dtype:a,shape:r,dataId:this.runWebGLProgram(i,[{shape:s,dtype:a,dataId:e}],a,null,!0).dataId}}runWebGLProgram(e,t,n,r,a=!1){const s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===pA.DENSE){const t=bA(e.outputShape);i.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(i.usage=e.outTexUsage),0===ne(s.shape))return i.values=pe(s.dtype,0),s;const o=[],l=t.map((t=>{if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&ne(t.shape)<=Le().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),o.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!MA(n.shape,t.shape)){const e=t,r=t.shape;t.shape=n.shape,t=this.packedReshape(t,r),o.push(t),n=this.texData.get(t.dataId),e.shape=r}return this.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(s.dataId);const u={shape:s.shape,texData:i,isUniform:!1},c=function(e,t,n){let r="";t.concat(n).forEach((e=>{const t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=`${e.shape}_${n}_${t}`}));const a=e.userCode;let s=e.constructor.name;return s+="_"+r+"_"+a,s}(e,l,u),h=this.getAndSaveBinary(c,(()=>function(e,t,n,r){const a=t.userCode,s=n.map(((e,n)=>{const r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=s.map((e=>e.shapeInfo)),o={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},l=lT(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===Le().getNumber("WEBGL_VERSION")&&(c=e.getUniformLocation(u,"INFINITY",!1));const f={};for(let n=0;n{const a=t.program.variableNames[r],s=t.uniformLocations[a],i=t.uniformLocations[`offset${a}`];if(null!=s)if(n.isUniform)if(ne(n.shape)<2)e.gl.uniform1f(s,n.uniformValues[0]);else{let t=n.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(s,t)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,s,r)})),null!=a&&a(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,h,l,u,r),o.forEach((e=>this.disposeIntermediateTensorInfo(e))),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!Le().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&!1===a){const e=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),e}return s}compileAndRun(e,t,n,r,a=!1){n=n||t[0].dtype;const s=this.runWebGLProgram(e,t,n,r,a);return eo().makeTensorFromDataId(s.dataId,s.shape,s.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(Le().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]})),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=ro((()=>{if(!Le().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=Le().getBool("DEBUG");Le().set("DEBUG",!1);const t=this.abs(To(1e-8)).dataSync()[0];if(Le().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:r,values:a,texture:s,usage:i,isPacked:o}=t;if(null!=s)return;const l=null!=this.activeTimers;let u;l&&(u=oa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=Le().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?X(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=de(e);e=t.newShape}let r=ne(e);if(e.length<=1&&r<=n)return[1,r];if(2===e.length&&e[0]<=n&&e[1]<=n)return e;if(3===e.length&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){const t=RA(e);let n=2,a=2;return e.length&&([n,a]=FA(e)),r=t*(n/2)*(a/2),oe(r).map((e=>2*e))}return oe(r)}(n,o),t.texShape=c),null!=a){const e=OA(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=vA(c[0],c[1]),s=new QA(e,[h,i],f)):s=new ZA(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?mA.PIXELS:mA.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(d.dataId),i,h,a);const p=!0,m=this.runWebGLProgram(s,[d],r,null,p),g=this.texData.get(m.dataId);t.texture=g.texture,t.texShape=g.texShape,t.isPacked=g.isPacked,t.usage=g.usage,this.disposeIntermediateTensorInfo(d),this.texData.delete(m.dataId),t.values=null,l&&(this.uploadWaitMs+=oa()-u)}else{const e=this.acquireTexture(c,i,r,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:r}=n;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){const e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,r)}computeBytes(e,t){return e[0]*e[1]*we(t)}}Ma()&&po("webgl",(()=>new hR),2);class fR{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Uo(t,n),this.userCode=`\n float binaryOperation(float a, float b) {\n ${e}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}}class dR{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Uo(t,n);const a=this.outputShape.length;let s="";if(r)if(0===a||1===ne(this.outputShape))s="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(s=`\n ${yT(a)} coords = getOutputCoords();\n `,1===a)s+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=JT("coords",a);s+=`\n bool nextRowOutOfBounds =\n (${e[a-2]} + 1) >= ${this.outputShape[a-2]};\n bool nextColOutOfBounds =\n (${e[a-1]} + 1) >= ${this.outputShape[a-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${e}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${s}\n\n setOutput(result);\n }\n `}}function pR(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const mR={kernelName:tn,backendName:"webgl",kernelFunc:pR};function gR(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.makeTensorInfo(r.shape,"complex64"),i=n.texData.get(s.dataId),o=pR({inputs:{x:r},backend:n});n.texData.get(o.dataId).complexParentRefCount++;const l=pR({inputs:{x:a},backend:n});return n.texData.get(l.dataId).complexParentRefCount++,i.complexTensorInfos={real:o,imag:l},s}const yR={kernelName:mt,backendName:"webgl",kernelFunc:gR},bR="return (a < 0.) ? b * a : a;",vR="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",wR={kernelName:ln,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",sa(s,"float32")),o=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR(vR,a.shape,i.shape):new fR(bR,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},_R="return (a < 0.) ? b * a : a;",xR="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",kR={kernelName:Hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR(xR,r.shape,a.shape):new fR(_R,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function ER({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:r}){return({inputs:a,backend:s})=>{const{x:i}=a,o=s,l=r||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=n){const e=o.texData.get(i.dataId),t=n(e.values,l);return o.makeTensorInfo(i.shape,l,t)}let u;return u=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new oR(i.shape,t):new aR(i.shape,e),o.runWebGLProgram(u,[i],l)}}function CR({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:r=!1,cpuKernelImpl:a,dtype:s}){return({inputs:i,backend:o})=>{const{a:l,b:u}=i,c=o;if(r&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[r,a]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,r]=t,a={dataId:n.dataId,dtype:n.dtype,shape:l.shape},s={dataId:r.dataId,dtype:r.dtype,shape:u.shape},i=new fR(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],ka(n.dtype,r.dtype))})),s=gR({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||ka(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&null!=a){const e=c.texData.get(l.dataId),t=c.texData.get(u.dataId),[n,r]=a(l.shape,u.shape,e.values,t.values,h),s=c.makeTensorInfo(r,h);return c.texData.get(s.dataId).values=n,s}let f;return f=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new dR(t,l.shape,u.shape,n):new fR(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function SR(e,t=!1){if("linear"===e)return"return x;";if("relu"===e)return t?"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n";if("elu"===e)return t?"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n":"return (x >= 0.0) ? x : (exp(x) - 1.0);";if("relu6"===e)return t?"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n";if("prelu"===e)return t?xR:_R;if("leakyrelu"===e)return t?vR:bR;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class NR{constructor(e,t,n,r=!1,a=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;const u=r?e[1]:e[2],c=Math.ceil(u/2),h=r?"i * 2, rc.y":"rc.y, i * 2",f=a?"rc.z, i * 2":"i * 2, rc.z",d=r?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],p=a?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";i&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${i}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${i}\n }`:`vec4 activation(vec4 x) {\n ${i}\n }`,g="result = activation(result);");const y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",v="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${a.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=i.texData.get(a.dataId);return!c.isPacked||MA(a.shape,l)||null!==c.texture&&MA(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[RA(e.shape),...FA(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[RA(t),...FA(t)],i=new QT(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const FR={kernelName:Jn,backendName:"webgl",kernelFunc:RR};class OR{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];const i=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${se(e)?e.toPrecision(2):e}, ones);`}let u="";a%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${i}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${i};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class BR{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];let i="0.0",o="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",o="min"):"max"===t&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\n if (${"sum"===t}) {\n sumValue += dot(values, ones);\n } else if (${"prod"===t}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${o}(values, minMaxValue);\n }\n `,f="vec4";"all"===t?(i="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",f="bvec4"):"any"===t&&(i="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",f="bvec4");let d="";a%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${i};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${i});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function MR(e,t,n,r){const a=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],r=Kf(n);t.push({inSize:n,windowSize:r,outSize:Math.ceil(n/r)})}return t}(e.shape);let s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const r=yT(this.rank),a=YT("rc",this.rank),s=new Array(this.rank);for(let e=0;e=2&&c>=2&&(y===b||1===y||1===b),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${g}).`));const v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([d,p]);Z(h===f,(()=>`Error in matMul: inner shapes (${h}) and (${f}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${r} must match.`));const w=n?[y,h,d]:[y,d,h],_=r?[b,p,f]:[b,f,p],x=RR({inputs:{x:e},backend:a,attrs:{shape:w}}),k=RR({inputs:{x:t},backend:a,attrs:{shape:_}}),E=[x,k],C=Math.max(y,b),S=n?x.shape[1]:x.shape[2],N=null!=s,I=null!=i,D="leakyrelu"===l,A=null!=l?SR(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||D||null!=A)){let e=x,t=k;n&&(e=UR({inputs:{x},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=UR({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=RR({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=RR({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=AR({inputs:{a:i,b:l},backend:a});T=zR({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=ka(e.dtype,t.dtype),u=new NR(w,_,[C,d,p],n,r,N,A,I,D),c=[x,k];if(null!=s&&c.push(s),I&&c.push(i),D){const e=a.makeTensorInfo([],"float32",sa(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const R=RR({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return R}const HR={kernelName:$r,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=r;return jR({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},GR="return abs(x);",qR={kernelName:je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])&&"complex64"!==r.dtype){const e=n.texData.get(r.dataId),t=UT(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oR(r.shape,GR):new aR(r.shape,GR),n.runWebGLProgram(a,[r],r.dtype)}},XR=ER({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),KR={kernelName:He,backendName:"webgl",kernelFunc:XR},YR=ER({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),JR={kernelName:Ge,backendName:"webgl",kernelFunc:YR},ZR="return a + b;",QR=CR({opSnippet:ZR,packedOpSnippet:ZR,supportsComplex:!0,cpuKernelImpl:_T}),eF={kernelName:qe,backendName:"webgl",kernelFunc:QR};class tF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${r};\n setOutput(result);\n }\n `}}class nF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${r};\n setOutput(result);\n }\n `}}const rF={kernelName:Xe,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return pR({inputs:{x:a[0]},backend:r});if(a.length>Le().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(a.length/2),n=e({inputs:a.slice(0,t),backend:r}),s=e({inputs:a.slice(t),backend:r});return e({inputs:[n,s],backend:r})}const s=a.map((e=>e.dtype)).reduce(((e,t)=>ka(e,t))),i=a.map((e=>e.shape)),o=Le().getBool("WEBGL_PACK")?new nF(a[0].shape,i):new tF(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},aF={kernelName:Ke,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=zu(u.length,o)),$u("all",u,o);const[f,d]=Bu(h.shape,u),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,ne(d)]}}),m=MR(p,p.dtype,"all",n);let g;return g=RR(i?{inputs:{x:m},backend:n,attrs:{shape:Mu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},sF={kernelName:Ye,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=zu(u.length,o)),$u("any",u,o);const[f,d]=Bu(h.shape,u),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,ne(d)]}}),m=MR(p,p.dtype,"any",n);let g;return g=RR(i?{inputs:{x:m},backend:n,attrs:{shape:Mu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class iF{constructor(e,t,n){this.variableNames=["A"];const{windowSize:r,batchSize:a,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[a,s];const i="max"===t?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${r};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${r}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${i} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class oF{constructor(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Z(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const a=e[e.length-1],s=Math.ceil(a/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),r||this.variableNames.push("bestIndicesA");const i=this.outputShape,o=i.length,l=yT(o),u=JT("coords",o);let c,h;if(1===s){h=o+1;const e=yT(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const f=["x","y","z","w","u","v"].slice(0,h),d="."+f[h-1],p=f.map((e=>"int "+e)),m=JT("sourceLocR",h-1).concat("inIdx.r"),g=JT("sourceLocG",h-1).concat("inIdx.g"),y=JT("sourceLocB",h-1).concat("inIdx.b"),b=JT("sourceLocA",h-1).concat("inIdx.a"),v="max"===n?"greaterThan":"lessThan",w=r?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,_=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,x=r?"":`\n float getBestIndicesAChannel(${p.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${p.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${x}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${i[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${i[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${w}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${v}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function lF(e,t,n,r=null){let a=t.shape[0],s=t.shape[1];null!=r&&(a=r.shape[0],s=r.shape[1]);const i=Kf(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new iF(o,n,null==r),u=[t];null!=r&&u.push(r);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=lF(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function uF(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=Kf(a[a.length-1]),i=new oF(a,s,n,null==r),o=null==r?[t]:[t,r],l=e.runWebGLProgram(i,o,"int32");if(l.shape.length===t.shape.length){const r=uF(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function cF(e,t,n,r){const a=[n];if($u("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!Le().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Bu(t.shape,a),o=ne(i),l=RR({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=lF(e,l,r);n.push(u);const c=RR({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return uF(e,t,r)}const hF={kernelName:Je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=UR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),$u("argMax",[i[0]],l.shape.length);const c=cF(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},fF={kernelName:Ze,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=UR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),$u("argMin",[i[0]],l.shape.length);const c=cF(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},dF=ER({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),pF={kernelName:Qe,backendName:"webgl",kernelFunc:dF},mF=ER({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),gF={kernelName:et,backendName:"webgl",kernelFunc:mF},yF=ER({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),bF={kernelName:tt,backendName:"webgl",kernelFunc:yF},vF=CR({opSnippet:"\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),wF={kernelName:rt,backendName:"webgl",kernelFunc:vF},_F=ER({opSnippet:"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),xF={kernelName:nt,backendName:"webgl",kernelFunc:_F};class kF{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;const p="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(p||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${u}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / count");const v=4*Math.floor(s/4),w=s%4,_=`\n if (${p}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${y};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${v}; wC += 4) {\n int xC = xCCorner + wC * ${u};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n getValue(batch, xR, xC + 3 * ${u}, d)\n );\n\n ${_}\n }\n\n int xC = xCCorner + ${v};\n if (${1===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${2===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${3===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n initializationValue\n );\n\n ${_}\n }\n }\n setOutput(${b});\n }\n `}}class EF{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let v="0.0";if(b||(v="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p};\n wC += ${h}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${p} +\n wR * ${p} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let w=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(w="avgValue / count");const _=4*Math.floor(s/4),x=s%4,k=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${v};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${v});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${_}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${k}\n }\n\n int xC = xCCorner + ${_};\n if (${1===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${2===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${3===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${k}\n }\n }\n setOutput(${w});\n }\n }\n `}}const CF={kernelName:at,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;UA(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))return pR({inputs:{x:a},backend:n});const c=new kF(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},SF={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r,c=ll(a.shape,s,i,[1,1,1],o,l,u),h=new EF(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class NF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${o};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${i}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class IF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=c-1-e.padInfo.front,p=h-1-e.padInfo.top,m=f-1-e.padInfo.left,g=1/(t*n*r);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${p}, ${m});\n const float avgMultiplier = float(${g});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${a}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${u}) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const DF={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=ll(i.shape,o,l,[1,1,1],u,c),f=new IF(h);return n.runWebGLProgram(f,[a],i.dtype)}},AF={kernelName:st,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;UA([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=ol(i.shape,o,l,1,u),h=new NF(c);return n.runWebGLProgram(h,[a],i.dtype)}},TF={kernelName:lt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return jR({a,b:s,transposeA:i,transposeB:o,backend:n})}};class RF{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Uo(e,t),Uo(e,n);let i="0.0";null!=r&&(Uo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Uo(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${i};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${s}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class FF{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Uo(e,t),Uo(e,n);let i="vec4(0.0)";null!=r&&(Uo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Uo(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${i};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${s}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const OF={kernelName:Yt,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,mean:a,variance:s,offset:i,scale:o}=e;Z(a.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==i||a.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==o||a.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[r,a,s];let c=null;null!=i&&(c=i.shape,u.push(i));let h=null;null!=o&&(h=o.shape,u.push(o));const f=Le().getBool("WEBGL_PACK_NORMALIZATION")?new FF(r.shape,a.shape,s.shape,c,h,l):new RF(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class BF{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=yT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return MF.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let a;a=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${MF[t]} = start[${t}] + coords.${MF[t]};`)).join("\n")}\n `,this.userCode=`\n ${n}\n void main() {\n ${a}\n setOutput(getSource(${r}));\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}const MF=["x","y","z","w","u","v"];class $F{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=yT(this.rank),n=JT("coords",this.rank),r=JT("sourceLoc",this.rank),a=1===this.rank?"sourceLoc":`vec2(${r.slice(-2).join()})`,s=`getChannel(getSource(${r.join()}), ${a})`,i=`\n result.x = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.y = ${s};\n --${r[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${r[this.rank-2]};\n result.z = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.w = ${s};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${r[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n uniform int start[${this.rank}];\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${i}\n ${o}\n setOutput(result);\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}function PF(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Ri(a,s,i);if(bi(a,o,l),0===ne(l))return n.makeTensorInfo(l,a.dtype,[]);if(n.shouldExecuteOnCPU([a])||"string"===a.dtype){const e=n.texData.get(a.dataId),t=VT(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=Ai(a.shape,o,l);if(u||!c){const e=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $F(l):new BF(l),t=e.getCustomSetupFunc(o);return n.runWebGLProgram(e,[a],a.dtype,t)}return n.uploadToGPU(a.dataId),function(e,t,n,r){const a=r.texData.get(e.dataId),s=r.makeTensorInfo(n,e.dtype),i=r.texData.get(s.dataId);Object.assign(i,a),i.complexParentRefCount=0,i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=Ti(t,Ie(e.shape));a.slice&&(o+=a.slice.flatOffset),i.slice={flatOffset:o,origDataId:a.slice&&a.slice.origDataId||e.dataId};const l=r.dataRefCount.get(i.slice.origDataId)||1;return r.dataRefCount.set(i.slice.origDataId,l+1),s}(a,o,l,n)}const LF={kernelName:ur,backendName:"webgl",kernelFunc:PF},zF={kernelName:ut,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;Z(a.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=Jf(a.shape,s,o),u=Zf(l.length,s.length),c=Qf(a.shape,s,o),h=ed(i,s.length),f=td(c,i,s.length),d=[],p=RR({inputs:{x:a},backend:n,attrs:{shape:l}}),m=UR({inputs:{x:p},backend:n,attrs:{perm:u}}),g=RR({inputs:{x:m},backend:n,attrs:{shape:c}}),y=PF({inputs:{x:g},backend:n,attrs:{begin:h,size:f}});return d.push(p),d.push(m),d.push(g),d.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}},WF={kernelName:ct,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=n.readSync(a.dataId),l=n.readSync(s.dataId),u=xT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},UF=CR({opSnippet:"return float(a != b);",dtype:"bool"}),VF={kernelName:Bn,backendName:"webgl",kernelFunc:UF};function jF(e){const{inputs:t,backend:n}=e,{input:r}=t;return pR({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const HF={kernelName:Xn,backendName:"webgl",kernelFunc:jF},GF={kernelName:ft,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r,attrs:a}=t,{x:s}=n,{dtype:i}=a;if("complex64"===i){if("complex64"===s.dtype)return pR({inputs:{x:s},backend:r});const t=ac(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=gR({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=jF({inputs:{input:s},backend:r}),n=e({inputs:{x:t},backend:r,attrs:{dtype:i}});return r.disposeIntermediateTensorInfo(t),n}if(!be(s.dtype,i)){const e=pR({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new aR(e.shape,"return float(int(x));"),r=t.runWebGLProgram(n,[e],"int32");return{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}(s,r);if("bool"===i){const e=r.makeTensorInfo([],"bool",pe("bool",1)),t=UF({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${s.dtype} to ${i}`)}},qF="return ceil(x);",XF=ER({opSnippet:qF,packedOpSnippet:qF,cpuKernelImpl:ET}),KF={kernelName:dt,backendName:"webgl",kernelFunc:XF};class YF{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}class JF{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}const ZF={kernelName:pt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=Le().getBool("WEBGL_PACK_CLIP")?new JF(a.shape):new YF(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class QF{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "}}function eO(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const tO={kernelName:gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new QF(r.shape),i=[eO(r,a.complexTensorInfos.real),eO(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class nO{constructor(e){this.outputShape=[],this.outputShape=qf(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${aO(i,l,t)}),\n vec2(${aO(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${aO(i,l,d)}),\n vec2(${aO(u,l,d)}));`,this.userCode=`\n float getValue(${i.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${a} coords = getOutputCoords();\n vec4 result = vec4(getValue(${s}), 0., 0., 0.);\n\n ${s[r-1]} = ${s[r-1]} + 1;\n if (${s[r-1]} < ${n[r-1]}) {\n result.g = getValue(${s});\n }\n\n ${s[r-2]} = ${s[r-2]} + 1;\n if (${s[r-2]} < ${n[r-2]}) {\n result.a = getValue(${s});\n }\n\n ${s[r-1]} = ${s[r-1]} - 1;\n if (${s[r-2]} < ${n[r-2]} &&\n ${s[r-1]} < ${n[r-1]}) {\n result.b = getValue(${s});\n }\n setOutput(result);\n }\n `}}function aO(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function sO(e){const{inputs:t,backend:n}=e,{input:r}=t;return pR({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const iO={kernelName:rn,backendName:"webgl",kernelFunc:sO};function oO(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>jF({inputs:{input:e},backend:n}))),a=e.map((e=>sO({inputs:{input:e},backend:n}))),s=oO(r,t,n),i=oO(a,t,n),o=gR({inputs:{real:s,imag:i},backend:n});return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),a.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),o}if("string"===r){const{tensors2D:a,outShape:s}=lO(e,t,n),i=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),o=1===a[0].shape[0],l=CT(i,s,r,o),u=qf(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,r,l);return a.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}if(e.length>Le().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=oO(e.slice(0,r),t,n),s=oO(e.slice(r),t,n),i=oO([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new rO(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:a,outShape:s}=lO(e,t,n),i=new nO(a.map((e=>e.shape))),o=n.runWebGLProgram(i,a,r);a.forEach((e=>n.disposeIntermediateTensorInfo(e)));const l=RR({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function lO(e,t,n){const r=qf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>RR({inputs:{x:e},attrs:{shape:[-1,ne(e.shape.slice(t))]},backend:n}))),outShape:r}}function uO(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=fe(a,t[0].shape)[0],i=qf(t.map((e=>e.shape)),s);if(0===ne(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>ne(e.shape)>0));return 1===o.length?pR({inputs:{x:o[0]},backend:n}):(Gf(o.map((e=>e.shape)),s),oO(o,s,n))}const cO={kernelName:yt,backendName:"webgl",kernelFunc:uO};class hO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let v="",w="";n&&(v=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,w="result = activation(result);");const _=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${v}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${m}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${1===p}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${2===p}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===p}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${_}\n ${w}\n setOutput(result);\n }\n `}}class fO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${a}, ${s}, ${i});\n const ivec3 pads = ivec3(${t}, ${n}, ${r});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${u};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${1===p}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${2===p}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${3===p}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class dO{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:r,inChannels:a,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:h}=n,{left:f,top:d}=o,p=a*r,m=jA(),g="channelsLast"===h,y=g?0:1,b=g?1:2;let v="";for(let n=0;n<=1;n++)for(let r=0;r<=1;r++)v+=`\n blockIndex = rc.y + ${r};\n pos = rc.x + ${n};\n\n if(blockIndex < ${e[1]} && pos < ${e[0]}) {\n offsetY = int(blockIndex / (${l})) * ${i} - ${d};\n d0 = offsetY + ${c} * (pos / ${p});\n\n if(d0 < ${t[y]} && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${f}.);\n d1 = offsetX + ${u} * (int(mod(float(pos), ${p}.) / ${a}.));\n\n if(d1 < ${t[b]} && d1 >= 0) {\n\n ch = int(mod(float(pos), ${a}.));\n\n if (${g}) {\n innerDims = vec2(d1, ch);\n result[${2*n+r}] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*n+r}] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${v}\n\n ${m.output} = result;\n }\n `}}function pO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const l=e.shape,u=r.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],f=n.outChannels,d="channelsLast"===n.dataFormat;let p;const m=[],g=(1===h||1===f)&&c>1e3,y=l[2]%2!=0&&!!u.isPacked;if(!g&&Le().getBool("WEBGL_LAZILY_UNPACK")&&Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&y){const c=d?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},f=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Z(MA(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=RR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=jR({a:h,b:g,backend:r,transposeA:!1,transposeB:!1,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),b=r.texData.get(y.dataId);Z(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=f,b.shape=n.outShape,p=pR({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=RR({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=RR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=jR({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=RR({inputs:{x:h},backend:r,attrs:{shape:n.outShape}}),m.push(u),m.push(c),m.push(h)}for(const e of m)r.disposeIntermediateTensorInfo(e);return p}function mO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:f,dataFormat:d}=n,p="channelsLast"===d,m=l*u*c,g=f*h,y=[m,g],b=[],v=RR({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=RR({inputs:{x:t},backend:r,attrs:{shape:[1,m,ne(t.shape)/m]}});b.push(v),b.push(w);const _=new dO(y,v.shape,n),x=r.runWebGLProgram(_,[v],"float32"),k=RR({inputs:{x},backend:r,attrs:{shape:[1,y[0],y[1]]}});b.push(x),b.push(k);const E=null!=a,C=null!=s,S="leakyrelu"===o,N=o?SR(o,!0):null,I=new NR(k.shape,w.shape,[1,g,n.outChannels],!0,!1,E,N,C,S),D=[k,w];if(a&&D.push(a),C&&D.push(s),S){const e=r.makeTensorInfo([],"float32",sa(i,"float32"));D.push(e),b.push(e)}const A=r.runWebGLProgram(I,D,"float32"),T=RR({inputs:{x:A},backend:r,attrs:{shape:p?[1,f,h,n.outChannels]:[1,n.outChannels,f,h]}});b.push(A);for(const e of b)r.disposeIntermediateTensorInfo(e);return T}const gO={kernelName:bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r,h=bl(l),f=ul(a.shape,s.shape,i,u,o,c,!1,h);let d;if(1!==f.filterHeight||1!==f.filterWidth||1!==f.dilationHeight||1!==f.dilationWidth||1!==f.strideHeight||1!==f.strideWidth||"SAME"!==f.padInfo.type&&"VALID"!==f.padInfo.type)if(Le().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=mO({x:a,filter:s,convInfo:f,backend:n});else{const e=new hO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=pO({x:a,filter:s,convInfo:f,backend:n});const p=RR({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class yO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s="channelsLast"===e.dataFormat;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n if (${s}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class bO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${s}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class vO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yF = 0; yF < ${e.outDepth}; yF++) {\n int xF = wF + yF * ${t} - ${a};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${s};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${r} - ${i};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class wO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=r-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${t}; wF++) {\n float dyF = float(dyFCorner + wF) / ${a}.0;\n\n if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${t} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${r}; wC++) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${r} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const _O={kernelName:vt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=r,h=bl(l),f=ul(a.shape,c,i,1,o,u,!1,h),d=new yO(f);return n.runWebGLProgram(d,[a,s],"float32")}},xO={kernelName:wt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=r,h=bl(u),f=ul(i,s.shape,o,1,l,c,!1,h),d=new bO(f);return n.runWebGLProgram(d,[a,s],"float32")}},kO={kernelName:_t,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=cl(a.shape,s.shape,i,l,o),c=new fO(u);return n.runWebGLProgram(c,[a,s],"float32")}},EO={kernelName:xt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,filterShape:l}=r,u=cl(a.shape,l,i,1,o),c=new vO(u);return n.runWebGLProgram(c,[a,s],"float32")}},CO={kernelName:kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{pad:i,strides:o,inputShape:l}=r,u=cl(l,s.shape,o,1,i),c=new wO(u);return n.runWebGLProgram(c,[a,s],"float32")}},SO=ER({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),NO={kernelName:Et,backendName:"webgl",kernelFunc:SO},IO=ER({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),DO={kernelName:Ct,backendName:"webgl",kernelFunc:IO};class AO{constructor(e,t,n,r,a){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[s,i,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const f="bilinear"===r?1:0,[d,p]=[i-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(i-1)/(c-1),"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[b,v,w]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${p} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${p}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${s}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${v};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${a}));\n return;\n }\n float in_x = ${w};\n if( in_x < 0.0 || in_x > ${p} ) {\n setOutput(float(${a}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}}const TO={kernelName:Nt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,c=new AO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class RO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${FO(r,"coords")})`,s=e[e.length-1];let i="",o="";t?(i=n?"end != "+(s-1):"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=`\n uniform float index;\n void main() {\n ${yT(r)} coords = getOutputCoords();\n int end = ${OO(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${OO(r,"coords")} = idx;\n val += getX(${FO(r,"coords")});\n }\n setOutput(val);\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.index&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}}function FO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function OO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}const BO={kernelName:St,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,exclusive:i,reverse:o}=r,l=a.shape.length,u=Pu([s],l);let c=a;null!=u&&(c=UR({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=zu(1,l)[0];if(h!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${a.shape.length-1} but got axis=${s}`);const f=a.shape[h];let d=pR({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new RO(c.shape,!1,o),r=t.getCustomSetupFunc(e),a=d;d=n.runWebGLProgram(t,[d],d.dtype,r),n.disposeIntermediateTensorInfo(a)}if(i){const e=new RO(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=UR({inputs:{x:d},backend:n,attrs:{perm:Lu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},MO={kernelName:It,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i,binaryOutput:o}=r;if(1===a.shape.length){const e=n.readSync(a.dataId),t=n.readSync(s.dataId),r=xT(e,t,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,r)}if(2===a.shape.length){const e=n.bufferSync(a),t=n.bufferSync(s),r=kT(e,t,i,o);return n.makeTensorInfo(r.shape,s.dtype,r.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${a.shape.length}.`)}};class $O{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${t};\n int offset_h = imod(h, ${t});\n int in_w = w / ${t};\n int offset_w = imod(w, ${t});\n int offset_d = (offset_h * ${t} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const PO={kernelName:Dt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockSize:s,dataFormat:i}=r;Z(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l="NHWC"===i?a.shape[1]:a.shape[2],u="NHWC"===i?a.shape[2]:a.shape[3],c="NHWC"===i?a.shape[3]:a.shape[1],h=l*s,f=u*s,d=c/(s*s),p=new $O("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class LO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=e.outChannels/e.inChannels;let g="",y="";n&&(g=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,y="result = activation(result);");const b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${g}\n\n const ivec2 strides = ivec2(${u}, ${c});\n const ivec2 pads = ivec2(${o}, ${l});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${m};\n int q = d2 - d1 * ${m};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${d}; wR++) {\n int xR = xRCorner + wR * ${h};\n\n if (xR < 0 || xR >= ${s}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p}; wC++) {\n int xC = xCCorner + wC * ${f};\n\n if (xC < 0 || xC >= ${i}) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${b}\n ${y}\n setOutput(result);\n }\n `}}class zO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=p;let g="int xR; int xC; int xCOffset;";for(let e=0;e= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n xTexelR${e}C${n}.zw = vec2(0.);\n }\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n previous.zw = vec2(0.);\n }\n\n xR${e}C${n} = vec4(previous.zw, xTexelR${e}C${n}.xy);\n } else {\n xR${e}C${n} = vec4(0, 0, xTexelR${e}C${n}.xy);\n }\n `:`\n if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xR${e}C${n} = xTexelR${e}C${n};\n `,n+1= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n `,f>1&&(g+=`\n xCOffset -= 2;\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n `),g+=`\n xR${e}C${n+1} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.xy);\n `):g+=`\n xCOffset = xC + ${t};\n\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n\n xR${e}C${n+1} = xTexelR${e}C${n+2};\n `}}else n= 0 && xR < ${s}) {\n `,l%2==1?(g+=`\n xCOffset = xC + 1 - ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.zw);\n `,n+1= 0 && xCOffset < ${i}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR${e}C${n+1} = vec4(xTexelR${e}C${n+2}.xy, final.xy);\n `)):(g+=`\n if(xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.xy, xTexelR${e}C${n+2}.xy);\n `,n+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=ul(a.shape,s.shape,i,c,o,u,!0);let f;return f=Le().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new zO(h):new LO(h),n.runWebGLProgram(f,[a,s],"float32")}};class UO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${s} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class VO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const jO={kernelName:Tt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=r,h=ul(a.shape,c,i,o,l,u,!0),f=new UO(h);return n.runWebGLProgram(f,[a,s],"float32")}},HO={kernelName:Rt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=r,h=ul(c,s.shape,i,o,l,u,!0),f=new VO(h);return n.runWebGLProgram(f,[a,s],"float32")}};class GO{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "}}const qO={kernelName:Ft,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=ne(r.shape),i=RR({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new GO(s),l=n.runWebGLProgram(o,[i],i.dtype),u=RR({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class XO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:r,strideHeight:a,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=r;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${s});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${i}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const KO={kernelName:Ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=il(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new XO(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=RR({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},YO=ER({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n"}),JO={kernelName:Pt,backendName:"webgl",kernelFunc:YO},ZO={kernelName:Lt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",r.shape,a.shape):new fR("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},QO=CR({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),eB={kernelName:Wt,backendName:"webgl",kernelFunc:QO},tB=ER({opSnippet:`\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = ${ad};\n float a1 = ${sd};\n float a2 = ${id};\n float a3 = ${od};\n float a4 = ${ld};\n float a5 = ${ud};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`}),nB={kernelName:zt,backendName:"webgl",kernelFunc:tB},rB="return exp(x);",aB=ER({opSnippet:rB,packedOpSnippet:rB,cpuKernelImpl:ST}),sB={kernelName:Ut,backendName:"webgl",kernelFunc:aB};function iB(e){const{inputs:t,attrs:n,backend:r}=e,{dim:a}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice();let l=a;return a<0&&(Z(-(i+1)<=a,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+a+1),o.splice(l,0,1),RR({inputs:{x:s},backend:r,attrs:{shape:o}})}const oB={kernelName:Vt,backendName:"webgl",kernelFunc:iB},lB="return exp(x) - 1.0;",uB=ER({opSnippet:lB,packedOpSnippet:lB,cpuKernelImpl:NT}),cB={kernelName:jt,backendName:"webgl",kernelFunc:uB};class hB{constructor(e,t,n){this.variableNames=["real","imag"];const r=t[1];this.outputShape=t;const a=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${r}.0`:"1.0";let i;if("real"===e)i="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);i="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${a};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${i}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${r});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${r}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${s};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function fB(e,t,n){const r=n.texData.get(e.dataId),a=ne(e.shape),s=e.shape[e.shape.length-1],i=RR({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new hB("real",o,t),u=new hB("imag",o,t),c=[{dataId:r.complexTensorInfos.real.dataId,dtype:r.complexTensorInfos.real.dtype,shape:o},{dataId:r.complexTensorInfos.imag.dataId,dtype:r.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),f=n.runWebGLProgram(u,c,"float32"),d=gR({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=RR({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const dB={kernelName:Ht,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return fB(r,!1,n)}};class pB{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}function mB(e){const{backend:t,attrs:n}=e,{shape:r,value:a}=n;let{dtype:s}=n;if(s=s||Ce(a),"string"===s){const e=me(s,ne(r));return e.fill(a),t.makeTensorInfo(r,s,e)}{const e=new pB(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const gB={kernelName:Gt,backendName:"webgl",kernelFunc:mB};class yB{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const bB={kernelName:qt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new yB(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},vB="return floor(x);",wB=ER({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:IT}),_B={kernelName:Xt,backendName:"webgl",kernelFunc:wB},xB=CR({opSnippet:"\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",packedOpSnippet:"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n",dtype:"int32"}),kB={kernelName:Kt,backendName:"webgl",kernelFunc:xB};class EB{constructor(e){this.variableNames=["A"];const t=jA(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${r}.0, ${n}.0);\n\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}}class CB{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=jA(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${r}.0, ${n}.0);\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${t.output} = result;\n }\n `}}const SB={kernelName:Br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e;let{pixels:a}=t;const{numChannels:s}=r,i="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,l="undefined"!=typeof ImageBitmap&&a instanceof ImageBitmap,[u,c]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],h=[c,u],f=[c,u,s];(o||i||l)&&(null==NB&&(NB=document.createElement("canvas").getContext("2d")),NB.canvas.width=u,NB.canvas.height=c,NB.drawImage(a,0,0,u,c),a=NB.canvas);const d=n.makeTensorInfo(h,"int32");n.texData.get(d.dataId).usage=mA.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),a);const p=Le().getBool("WEBGL_PACK")?new CB(f):new EB(f),m=n.runWebGLProgram(p,[d],"int32");return n.disposeData(d.dataId),m}};let NB;const IB={kernelName:Pr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r,m=bl(c),g=ul(a.shape,s.shape,l,h,u,f,!1,m);let y;const b=[];if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(Le().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=mO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});else{const e=null!=i,t=null!=o,r="leakyrelu"===d,l=d?SR(d,!1):null,u=new hO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",sa(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=pO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=RR({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},DB={kernelName:Lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:f,leakyreluAlpha:d}=r,p=[];let m=c;null==m&&(m=[1,1]),Z(yl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=ul(a.shape,s.shape,l,m,u,h,!0),y=Le().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?SR(f,y):null,v=[a,s],w=null!=i,_=null!=o,x="leakyrelu"===f;if(w&&v.push(i),_&&v.push(o),x){const e=n.makeTensorInfo([],"float32",sa(d,"float32"));v.push(e),p.push(e)}let k;k=y?new zO(g,w,b,_,x):new LO(g,w,b,_,x);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class AB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=yT(t.length),a=yT(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=`\n ${r} strides = ${r}(${this.strides});\n void main() {\n ${a} coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < ${this.sliceDim}; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * ${s};\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n `}}const TB={kernelName:Zt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=a.shape,i=s[s.length-1],[o,l,u,c]=pi(r,a),h=RR({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=RR({inputs:{x:r},backend:n,attrs:{shape:[ne(r.shape)/u,u]}}),d=new AB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=RR({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class RB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=yT(this.rank),r=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let t=0;tn.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(l.outputShape,r.dtype,r.values)}const p=new RB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=RR({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},OB=CR({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:AT,dtype:"bool"}),BB={kernelName:Qt,backendName:"webgl",kernelFunc:OB},MB=CR({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),$B={kernelName:en,backendName:"webgl",kernelFunc:MB},PB={kernelName:nn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return fB(r,!0,n)}},LB=ER({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),zB={kernelName:an,backendName:"webgl",kernelFunc:LB},WB=ER({opSnippet:"return float(isinf(x));",dtype:"bool"}),UB={kernelName:sn,backendName:"webgl",kernelFunc:WB},VB=ER({opSnippet:"return float(isnan(x));",dtype:"bool"}),jB={kernelName:on,backendName:"webgl",kernelFunc:VB},HB=CR({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:TT,dtype:"bool"}),GB={kernelName:un,backendName:"webgl",kernelFunc:HB},qB=CR({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),XB={kernelName:cn,backendName:"webgl",kernelFunc:qB},KB={kernelName:hn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=RT(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},YB=ER({opSnippet:"if (x < 0.0) return NAN;\n return log(x);",packedOpSnippet:"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:FT}),JB={kernelName:fn,backendName:"webgl",kernelFunc:YB},ZB=ER({opSnippet:"return log(1.0 + x);"}),QB={kernelName:dn,backendName:"webgl",kernelFunc:ZB},eM=CR({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),tM={kernelName:pn,backendName:"webgl",kernelFunc:eM},nM=ER({opSnippet:"return float(!(x >= 1.0));"}),rM={kernelName:mn,backendName:"webgl",kernelFunc:nM},aM=CR({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),sM={kernelName:gn,backendName:"webgl",kernelFunc:aM};class iM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[];const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${s}; j <= ${s}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${i}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class oM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${s};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${s}; j <= ${s}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${i}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const lM={kernelName:bn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r,u=Le().getBool("WEBGL_PACK_NORMALIZATION")?new oM(a.shape,s,i,o,l):new iM(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class uM{constructor(e,t,n,r,a){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=a,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${t})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${t} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${r}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${r})\n * float(${a})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${a});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}}const cM={kernelName:vn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=r,h=new uM(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function hM(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o),h=null!=c,f=n.shouldExecuteOnCPU([a]);let d=a;if(h){if(f){const e=n.texData.get(d.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:BT}),pM={kernelName:_n,backendName:"webgl",kernelFunc:dM},mM={kernelName:xn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;UA(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))return pR({inputs:{x:a},backend:n});const c=new kF(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},gM={kernelName:En,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=r,c=ll(a.shape,s,i,[1,1,1],o,u,l),h=new EF(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class yM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,a=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=a-1-e.padInfo.top,o=s-1-e.padInfo.left,l=a*s-1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${a};\n wR += ${r}) {\n float dyR = float(dyRCorner + wR) / ${t}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${s} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class bM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,f=u-1-e.padInfo.left,d=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${o};\n wD += ${a}) {\n float dyD = float(dyDCorner + wD) / ${t}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${u};\n wC += ${i}) {\n float dyC = float(dyCCorner + wC) / ${r}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const vM={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=ll(i.shape,o,l,[1,1,1],u,c),f=new EF(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new bM(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},wM={kernelName:kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;UA([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=ol(o.shape,l,u,1,c,h),d=new kF(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new yM(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},_M={kernelName:Sn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;Z(4===r.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`));const u=[1,1];Z(yl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=ol(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new kF(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new kF(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},xM={kernelName:Nn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{keepDims:a,axis:s}=t,i=n,o=r.shape.length,l=fe(s,r.shape);let u=l;const c=Pu(u,o),h=null!=c,f=i.shouldExecuteOnCPU([r]),d=[];let p=r;if(h){if(f){const e=i.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:MT}),CM={kernelName:Dn,backendName:"webgl",kernelFunc:EM};class SM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r),l="reflect"===n?0:1;this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n for (int i = 0; i < ${r}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class NM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=JT("rc",r),l=JT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let f="";if(1===r){const e=`\n ${a} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${a} source = rc;\n ${a} lt = ${a}(lessThan(source, start));\n ${a} gte = ${a}(greaterThanEqual(source, end));\n ${a} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${a} start = ${a}(${s});\n const ${a} end = ${a}(${i});\n\n void main() {\n ${a} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}}const IM={kernelName:An,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new NM(r.shape,a,s):new SM(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},DM=CR({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),AM={kernelName:Tn,backendName:"webgl",kernelFunc:DM};class TM{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=`\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${t-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${t-1}));\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.seedLoc&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}const RM=CR({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n",checkOutOfBounds:!0}),FM={kernelName:$t,backendName:"webgl",kernelFunc:RM},OM="return a - b;",BM=CR({opSnippet:OM,packedOpSnippet:OM,supportsComplex:!0,cpuKernelImpl:HT}),MM={kernelName:xr,backendName:"webgl",kernelFunc:BM};function $M(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=fe([s],a.shape),o=hM({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Mu(o.shape,i),u=RR({inputs:{x:o},backend:n,attrs:{shape:l}}),c=BM({inputs:{a,b:u},backend:n}),h=aB({inputs:{x:c},backend:n}),f=zR({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=RR({inputs:{x:f},backend:n,attrs:{shape:l}}),p=RM({inputs:{a:h,b:d},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),p}const PM={kernelName:vr,backendName:"webgl",kernelFunc:$M},LM={kernelName:Rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r,l=o?a:$M({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new TM(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},zM="return -x;",WM={kernelName:On,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])){const e=n.texData.get(r.dataId),[t,a]=PT(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oR(r.shape,zM):new aR(r.shape,zM),n.runWebGLProgram(a,[r],r.dtype)}},UM=ff,VM={kernelName:Mn,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=r,u=n.readSync(a.dataId),c=n.readSync(s.dataId),{selectedIndices:h}=UM(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},jM=df,HM={kernelName:$n,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),{selectedIndices:f,validOutputs:d}=jM(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},GM=pf,qM={kernelName:Pn,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),f=i,d=o,p=l,m=u,{selectedIndices:g,selectedScores:y}=GM(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class XM{constructor(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${r}), float(${n}),\n float(index == coords.y)));\n }\n `}}const KM={kernelName:zn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r,l=ne(a.shape),u=new XM(l,s,i,o),c=RR({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=RR({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function YM(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=jF({inputs:{input:r},backend:n}),t=YM({inputs:{x:e},backend:n}),a=sO({inputs:{input:r},backend:n}),s=YM({inputs:{x:a},backend:n}),i=gR({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return mB({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const JM={kernelName:Fr,backendName:"webgl",kernelFunc:YM},ZM={kernelName:Ln,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,{x:a}=n;if("string"===a.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===a.dtype){const t=jF({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=sO({inputs:{input:a},backend:r}),i=YM({inputs:{x:s},backend:r}),o=gR({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return mB({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},QM={kernelName:Wn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return iB({inputs:{input:t[0]},backend:n,attrs:{dim:a}});const s=t[0].shape,i=t[0].dtype;t.forEach((e=>{Q(s,e.shape,"All tensors passed to stack must have matching shapes"),Z(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=uO({inputs:t.map((e=>{const t=iB({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class e${constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float(${n}));\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float(${n}));\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}}class t${constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=JT("rc",r),l=JT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h=[`${a} rc = outputLoc;`,`${o[r-1]} += 1;\n if(${u}) {\n `,1===r?"":`}\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {`,1===r?"":` ${o[r-1]} += 1;\n if(${u}) {`],f=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let e=0,t=1===r?2:4;e{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new t$(a.shape,s,i):new e$(a.shape,s,i);return n.runWebGLProgram(o,[a],a.dtype)},r$={kernelName:Un,backendName:"webgl",kernelFunc:n$},a$=CR({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),s$={kernelName:jn,backendName:"webgl",kernelFunc:a$},i$={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=[],u=fe(s,a.shape);let c=u;const h=Pu(c,o);let f,d=a;if(null!=h&&(d=UR({inputs:{x:a},backend:n,attrs:{perm:h}}),c=zu(c.length,o),l.push(d)),$u("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=LT(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Bu(d.shape,c),r=ne(t),s=RR({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=MR(s,Ea(a.dtype),"prod",n);f=RR({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Mu(f.shape,u);f=RR({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},o$=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=zT(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},l$={kernelName:qn,backendName:"webgl",kernelFunc:o$},u$=ER({opSnippet:"return 1.0 / x;"}),c$={kernelName:Kn,backendName:"webgl",kernelFunc:u$},h$=ER({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),f$={kernelName:Yn,backendName:"webgl",kernelFunc:h$},d$=ER({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),p$={kernelName:nr,backendName:"webgl",kernelFunc:d$};class m${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class g${constructor(e,t,n,r,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${o}.0,\n ${o}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const y$={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=Le().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new g$(a.shape,l,u,s,i):new m$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class b${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${r-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${a-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const v$={kernelName:tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new b$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class w${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=r?"0.5":"0.0";let f;f=a?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}const _$={kernelName:Zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=new w$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],a.dtype)}};class x${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${r}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${a}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const k$={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new x$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class E${constructor(e,t){this.variableNames=["x"];const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,1===n)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const r=e.map(((n,r)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(r))).join(","),a=yT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class C${constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const r=JT("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=yT(n);function o(n){const r=e.map(((r,a)=>function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${r[n]} - 1`:`${r[n]}`}(a,n)));return`getChannel(getX(${r.join(",")}), vec2(${r.slice(-2).join(",")}))`}this.userCode=1===n?`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${e[0]} - rc - 1),\n ${e[0]} - rc - 1);\n if(${a}){\n result.g = getChannel(getX(${e[0]} - (rc + 1) - 1),\n ${e[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:`\n void main() {\n ${i} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(r.slice())};\n if(${a}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(r.slice())};\n }\n if(${s}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n if(${a}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n }\n }\n setOutput(result);\n }\n `}}const S$={kernelName:rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r,i=a.shape.length,o=fe(s,a.shape);if(0===i)return pR({inputs:{x:a},backend:n});const l=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new C$(a.shape,o):new E$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class N${constructor(e,t,n,r){this.variableNames=["Image"],this.outputShape=[];const a=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;const[l,u]=Yf(r,a,s),c=l.toFixed(3),h=u.toFixed(3);let f="";f="number"==typeof n?`float outputValue = ${n.toFixed(2)};`:`\n vec3 fill = vec3(${n.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - ${c}) * ${o} - (float(y) - ${h}) * ${i};\n float coordYFloat = (float(x) - ${c}) * ${i} + (float(y) - ${h}) * ${o};\n int coordX = int(round(coordXFloat + ${c}));\n int coordY = int(round(coordYFloat + ${h}));\n ${f}\n if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${a}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const I$={kernelName:Mr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new N$(r.shape,a,s,i);return o.runWebGLProgram(l,[r],r.dtype)}},D$=ER({opSnippet:"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n"}),A$={kernelName:ar,backendName:"webgl",kernelFunc:D$},T$=ER({opSnippet:"return inversesqrt(x);",cpuKernelImpl:WT}),R$={kernelName:sr,backendName:"webgl",kernelFunc:T$};class F${constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=yT(a.length),l=yT(s.length);let u="";1===n?u="i":2===n&&(u="i, j");const c=`getIndices(${u})`;let h="";1===r?h="i":2===r&&(h="i, coords[1]");const f=`getUpdates(${h})`,d=t>1?"strides[j]":"strides";this.userCode=`\n ${o} strides = ${o}(${a});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${e}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${t}; j++) {\n int index = round(${c});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}}const O$={kernelName:ir,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a,updates:s}=t,{shape:i}=r,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=yi(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=RR({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=RR({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new F$(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=RR({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class B${constructor(e,t,n){let r,a;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)a="resRC",r="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[],i=[];for(let r=0;r= 1.0) {\n setOutput(getA(${a}));\n } else {\n setOutput(getB(${a}));\n }\n }\n `}}const M$={kernelName:or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new B$(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],ka(a.dtype,s.dtype))}},$$=ER({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${nd};\n float scale = ${rd};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),P$={kernelName:lr,backendName:"webgl",kernelFunc:$$},L$=ER({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),z$={kernelName:dr,backendName:"webgl",kernelFunc:L$},W$=ER({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),U$={kernelName:fr,backendName:"webgl",kernelFunc:W$},V$=ER({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),j$={kernelName:cr,backendName:"webgl",kernelFunc:V$},H$=ER({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),G$={kernelName:hr,backendName:"webgl",kernelFunc:H$},q$=ER({opSnippet:"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n"}),X$={kernelName:pr,backendName:"webgl",kernelFunc:q$},K$={kernelName:yr,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,paddings:i}=r;Z(a.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...i);for(let e=1+s.length;en.disposeIntermediateTensorInfo(e))),g}},Y$={kernelName:kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{sparseIndices:a,sparseValues:s,defaultValue:i}=t,{outputShape:o}=r,{sliceRank:l,numUpdates:u,strides:c,outputSize:h}=yi(0,a,o),f=new F$(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=RR({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},J$={kernelName:br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{numOrSizeSplits:s,axis:i}=r,o=fe(i,a.shape)[0],l=wd(a,s,o),u=a.shape.length,c=new Array(u).fill(0),h=a.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const r=PF({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},Z$=ER({opSnippet:"return sqrt(x);"}),Q$={kernelName:mr,backendName:"webgl",kernelFunc:Z$},eP=ER({opSnippet:"return x * x;"}),tP={kernelName:_r,backendName:"webgl",kernelFunc:eP},nP="return (a - b) * (a - b);",rP=CR({opSnippet:nP,packedOpSnippet:nP}),aP={kernelName:wr,backendName:"webgl",kernelFunc:rP},sP={kernelName:Or,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:r}=e,a=`if (isnan(x)) return x;\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new aR(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class iP{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=yT(n.length),s=yT(n.length);let i="";if(1===r)i="coords * strides + begin";else{let e=0;i=n.map(((t,r)=>(e++,1===n.length?`coords * strides[${r}] + begin[${r}]`:`coords[${e-1}] * strides[${r}] + begin[${r}]`))).join(",")}this.userCode=`\n ${a} begin = ${a}(${e});\n ${a} strides = ${a}(${t});\n\n void main() {\n ${s} coords = getOutputCoords();\n setOutput(getX(${i}));\n }\n `}}const oP={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:f}=r,{nonStrided:d,$begin:p,$strides:m,size:g,newShape:y,outShape:b}=Fi(a.shape,s,i,o,l,u,c,h,f),v=RR({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=PF({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=RR({inputs:{x:e},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(e)}else if(b.some((e=>0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else if(n.shouldExecuteOnCPU([v])){const e=n.texData.get(v.dataId).values,t=Ls(v.shape,v.dtype,e),r=jT(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new iP(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const _=RR({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},lP=ER({opSnippet:"return tan(x);"}),uP={kernelName:Cr,backendName:"webgl",kernelFunc:lP},cP=ER({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),hP={kernelName:Sr,backendName:"webgl",kernelFunc:cP};class fP{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[];for(let t=0;tca(e))),t=Ls(a.shape,a.dtype,e),r=GT(t,s);return n.makeTensorInfo(r.shape,r.dtype,r.values)}const i=new fP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const pP={kernelName:Nr,backendName:"webgl",kernelFunc:dP},mP={kernelName:Ir,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{k:s,sorted:i}=r,o=n.readSync(a.dataId),[l,u]=qT(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}},gP={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;UA(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");const i=r.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=KT(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},yP={kernelName:Tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{value:a}=t;let{axis:s}=r;s<0&&(s+=a.shape.length);const i=a,o=i.shape.length,l=a.shape[s],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),p}};class bP{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,r=e.batchSize,a=e.inSize,s=e.numSegments,i=s*Math.ceil(a/n);this.outputShape=[r,i];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";a%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `);let h="";a%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${s})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${s})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${2===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${3===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${u}\n }\n setOutput(sumValue);\n }\n `}}const vP=[lM,cM,HR,qR,KR,JR,eF,rF,aF,sF,hF,fF,pF,gF,wF,bF,xF,SF,CF,DF,AF,TF,OF,zF,WF,GF,KF,ZF,tO,yR,cO,_O,xO,gO,EO,CO,kO,NO,DO,TO,BO,MO,PO,jO,HO,WO,qO,KO,JO,ZO,eB,nB,sB,oB,cB,dB,gB,bB,_B,kB,SB,IB,DB,TB,FB,BB,$B,mR,PB,iO,zB,UB,jB,wR,GB,XB,KB,QB,JB,tM,rM,sM,fM,gM,mM,vM,wM,_M,pM,xM,kM,CM,IM,AM,LM,TR,WM,VM,HM,qM,VF,KM,ZM,QM,r$,s$,kR,i$,l$,HF,FM,c$,p$,f$,FR,y$,v$,_$,k$,S$,I$,A$,R$,O$,M$,P$,z$,U$,j$,G$,LF,PM,X$,K$,Y$,J$,Q$,tP,aP,sP,oP,MM,WR,uP,hP,pP,mP,VR,gP,yP,{kernelName:Rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,segmentIds:s}=t,{numSegments:i}=r,o=a.shape.length,l=[];let u=0;const c=Pu([u],o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=zu(1,o)[0]);const f=xd(h.shape,u,i),d=ne([h.shape[u]]),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Ea(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=_d(o,s),c=new bP({windowSize:u,inSize:o,batchSize:i,numSegments:s},t),h=n.compileAndRun(c,[e,r],a);if(l.push(h),h.shape[1]===s)return h;const f=o$({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=dP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=RR({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Lu(c);b=UR({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},JM];for(const e of vP)Hr(e);const wP={"tfjs-core":Xi,"tfjs-backend-cpu":"2.8.5","tfjs-backend-webgl":"2.8.5","tfjs-data":BE,"tfjs-layers":Zy,"tfjs-converter":Ik,tfjs:"2.8.5"}},4538:(e,t,n)=>{"use strict";e.exports=n(4063)},4658:e=>{"use strict";const t="[\ud800-\udbff][\udc00-\udfff]";e.exports=e=>e&&e.exact?new RegExp(`^${t}$`):new RegExp(t,"g")},7737:(e,t,n)=>{"use strict";n.d(t,{z:()=>o});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=function(){function e(){a()(this,e),this.table_width=17,this.table_truncate=16,this.dtype_test_lim=10,this.table_max_row=21,this.table_max_col_in_console=7}return i()(e,[{key:"set_width",value:function(e){this.table_width=e}},{key:"set_max_col_in_console",value:function(e){this.table_max_col_in_console=e}},{key:"set_row_num",value:function(e){this.table_max_row=e}},{key:"set_truncate",value:function(e){this.table_truncate=e}},{key:"set_dtype_test_lim",value:function(e){this.dtype_test_lim=e}},{key:"get_width",get:function(){return this.table_width}},{key:"get_max_col_in_console",get:function(){return this.table_max_col_in_console}},{key:"get_max_row",get:function(){return this.table_max_row}},{key:"get_truncate",get:function(){return this.table_truncate}},{key:"get_dtype_test_lim",get:function(){return this.dtype_test_lim}}]),e}()},5291:(e,t,n)=>{"use strict";n.d(t,{z:()=>f});var r=n(319),a=n.n(r),s=n(4575),i=n.n(s),o=n(3676),l=n(697),u=n(3938),c=new l.c,h=function e(t){i()(this,e),c.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),c.__in_object(t,"axis","axis not found: specify the axis");var n,r;if(!Array.isArray(t.df_list))throw new Error("df_list must be an Array of dataFrames/Series");if(n=t.df_list,"number"!=typeof t.axis)throw new Error("axis must be a number");r=0==t.axis||1==t.axis?t.axis:1;var s=Object.assign({},n);if(1==r){var l=[],h={},f=0;for(var d in s){var p=s[d].columns,m=s[d].values.length;for(var g in m>f&&(f=m),p){var y=p[g];if(y in h){var b=h[y],v="".concat(y,"_").concat(b+1);l.push(v),h[y]=b+1}else l.push(y),h[y]=1}}var w=new Array(f);for(var _ in n){for(var x=n[_].values,k=0;k0)for(var U=0;U<$.length;U++){for(var V=$[U],j=Array(A.length),H=0;H{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>DataFrame});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(3038),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(7757),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8926),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6525),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default=__webpack_require__.n(_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(2205),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(8585),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default=__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(9754),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default=__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__),_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(2563),_generic__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(2847),_series__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(3938),_utils__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(697),_groupby__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(7398),_plotting_plot__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(4564),_indexing__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(9365),_concat_js__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(5291),mathjs__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(3346);function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(e);if(t){var a=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default()(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var utils=new _utils__WEBPACK_IMPORTED_MODULE_11__.c,DataFrame=function(_Ndframe){_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(DataFrame,_Ndframe);var _super=_createSuper(DataFrame),_sample,_to_csv;function DataFrame(e,t){var n;return _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default()(this,DataFrame),(n=_super.call(this,e,t))._set_column_property(),n}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default()(DataFrame,[{key:"_set_column_property",value:function(){var e=this,t=this.col_data,n=this.column_names;t.forEach((function(t,r){e[n[r]]=null,Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(this.col_data[r],{columns:n[r],index:this.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"to_csv",value:(_to_csv=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]?a[0]:"",e.next=3,_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(DataFrame.prototype),"to_csv",this).call(this);case 3:return n=e.sent,"undefined"==typeof window?__webpack_require__(2993).writeFileSync(t,n,(function(e){return e&&console.error(e)})):(r="data:text/csv;charset=utf-8,"+n,window.open(encodeURI(r))),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)}))),function(){return _to_csv.apply(this,arguments)})},{key:"drop",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","index","inplace","axis"];utils._throw_wrong_params_error(t,n),t.inplace=t.inplace||!1,"axis"in t||(t.axis=1);var r=null;if(r="index"in t&&0==t.axis?t.index:t.columns,1==t.axis){if(!("columns"in t))throw Error("No column found. Axis of 1 must be accompanied by an array of column(s) names");var a=this,s={},i=[],o=r.map((function(e){var t=a.columns.indexOf(e);if(-1==t)throw new Error('column "'.concat(e,'" does not exist'));return t}));if(this.col_data.forEach((function(e,t){o.includes(t)||(s[a.column_names[t]]=e,i.push(a.dtypes[t]))})),!t.inplace){var l=a.columns,u=Object.keys(s),c=new DataFrame(s,{index:a.index,dtypes:i});return c.__set_col_property(c,c.col_data,u,l),c}var h=a.columns,f=Object.keys(s);this.__update_frame_in_place(null,null,s,null,i),this.__set_col_property(a,a.col_data,f,h)}else{if(!utils.__key_in_object(t,"index"))throw Error("No index label found. Axis of 0 must be accompanied by an array of index labels");r.forEach((function(t){if(!e.index.includes(t))throw new Error("".concat(t," does not exist in index"))}));var d,p,m=this.values,g=[];if("string"==typeof r[0]?(this.index.forEach((function(e,t){r.includes(e)&&g.push(t)})),d=utils.__remove_arr(m,g),p=utils.__remove_arr(this.index,g)):(d=utils.__remove_arr(m,r),p=utils.__remove_arr(this.index,r)),!t.inplace)return new DataFrame(d,{columns:this.columns,index:p});this.row_data_tensor=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(d),this.data=d,this.__set_index(p)}}},{key:"loc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="loc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"iloc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="iloc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return this;var t=this.values.slice(0,e),n=this.index.slice(0,e),r={columns:this.column_names,index:n},a=new DataFrame(t,r);return a}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,t=this.values.length;if(e>t||e<1)return this;var n=this.values.slice(t-e),r=this.index.slice(t-e),a={columns:this.column_names,index:r},s=new DataFrame(n,a);return s}},{key:"sample",value:(_sample=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a,s=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:-1,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc({rows:r}),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return _sample.apply(this,arguments)})},{key:"add",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].add(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"sub",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].sub(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mul",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mul(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"div",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].div(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"pow",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].pow(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mod",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mod(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mean",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.mean(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"median",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__median(t,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"min",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.min(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"max",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.max(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"std",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.qoR)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"var",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.CAK)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"count",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__count_nan(t,!0,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"round",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.values,n=this.index,r=utils.__round(t,e,!1),a={columns:this.column_names,index:n},s=new DataFrame(r,a);return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"__cum_ops",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(0!=e&&1!=e)throw new Error("axis must be between 0 or 1");if(this.__frame_is_compactible_for_operation){var n=[],r=null;r=0==e?this.col_data:this.values;for(var a=0;ai?(i=u,o.push(u)):o.push(i);break;case"min":u0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"sum");return n}},{key:"cummin",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"min");return n}},{key:"cummax",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"max");return n}},{key:"cumprod",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"prod");return n}},{key:"copy",value:function(){return new DataFrame(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.values),{columns:_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names),index:this.index,dtypes:this.dtypes})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e){var t=this.copy();return t.__reset_index(),t}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["key","drop","inplace"];if(utils._throw_wrong_params_error(e,t),!utils.__key_in_object(e,"key"))throw Error("Index ValueError: You must specify an array of index");if(utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"drop")||(e.drop=!0),Array.isArray(e.key)&&e.key.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.key.length," must match lenght of existing index ").concat(this.index.length));if("string"==typeof e.key&&this.column_names.includes(e.key)&&(e.key_name=e.key,e.key=this[e.key].values),!e.inplace){var n=this.copy();return n.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&n.drop({columns:[e.key_name],axis:1,inplace:!0}),n}this.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&this.drop({columns:[e.key_name],inplace:!0,axis:1})}},{key:"describe",value:function(){var e=this.select_dtypes(["float32","int32"]),t=e.column_names,n={};return t.forEach((function(t){var r=e[t],a=[r.count(),r.mean(),r.std(),r.min(),r.median(),r.max(),r.var()];n[t]=a})),new DataFrame(n,{index:["count","mean","std","min","median","max","variance"]}).round(6)}},{key:"select_dtypes",value:function(e){var t=this.dtypes,n=this.column_names,r={},a=this.col_data,s=["float32","int32","string","boolean"];return null==e?this.copy():(e.forEach((function(e){if(!s.includes(e))throw Error("Dtype Error: dtype ".concat(e," not supported."))})),t.forEach((function(t,s){e.includes(t)&&(r[n[s]]=a[s])})),new DataFrame(r))}},{key:"sum",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{axis:1};if(this.__frame_is_compactible_for_operation()){var t,n=[];(1==e.axis?this.col_data:this.values).map((function(e){var t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).sum().arraySync();n.push(Number(t.toFixed(5)))})),t=1==e.axis?this.column_names:this.index;var r=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{columns:"sum",index:t});return r}throw Error("Dtype Error: Operation can not be performed on string type")}},{key:"abs",value:function(){var e=this.values,t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).abs().arraySync();return new DataFrame(utils.__round(t,2,!1),{columns:this.column_names,index:this.index})}},{key:"__get_tensor_and_idx",value:function(e,t){var n,r,a;return 1==t?(n=e.row_data_tensor,r=e.column_names,a=0):(n=e.row_data_tensor,r=e.index,a=1),[n,r,a]}},{key:"query",value:function query(kwargs){var operators=[">","<","<=",">=","==","!="],column_index,operator,value;if(utils.__key_in_object(kwargs,"inplace")||(kwargs.inplace=!1),!utils.__key_in_object(kwargs,"column"))throw new Error("specify the column");if(!this.columns.includes(kwargs.column))throw new Error("column ".concat(kwargs.column," does not exist"));if(column_index=this.columns.indexOf(kwargs.column),!utils.__key_in_object(kwargs,"is"))throw new Error("specify an operator in param [is]");if(!operators.includes(kwargs.is))throw new Error(" ".concat(kwargs.is," is not a supported logical operator"));if(operator=kwargs.is,!utils.__key_in_object(kwargs,"to"))throw new Error("specify a value in param [to]");value=kwargs.to;for(var data=this.values,index=this.index,new_data=[],new_index=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","values","inplace"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"inplace")||(t.inplace=!1),utils.__key_in_object(t,"columns")){if(t.columns.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),t.columns.length!=t.values.length)throw Error("Lenght Error: The lenght of the columns names must be equal to the lenght of the values,\n got column of length ".concat(t.columns.length," but values of length ").concat(t.values.length));var r=this.col_data;t.columns.map((function(n,a){var s=e.column_names.indexOf(n),i=e.col_data[s],o=[];i.map((function(e){isNaN(e)&&"string"!=typeof e?o.push(t.values[a]):o.push(e)})),r[s]=o}));var a={};if(r.map((function(t,n){a[e.column_names[n]]=t})),!t.inplace)return new DataFrame(a,{index:this.index});this.__update_frame_in_place(null,null,a,null,null)}else{if(!utils.__key_in_object(t,"values"))throw Error("Value Error: Please specify a fill value");var s;s=Array.isArray(t.values)?t.values[0]:t.values;for(var i=[],o=this.values,l=this.columns,u=0;u0&&void 0!==arguments[0]?arguments[0]:{},t=e.axis||0,n=e.inplace||!1;if(0!=t&&1!=t)throw new Error("axis must either be 1 or 0");var r=null,a=null;0==t?(r=this.values,a=this.columns):(r=this.col_data,a=[]);for(var s=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["replace","with","in"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"in")){if(t.in.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var r={};return this.column_names.map((function(n,a){if(t.in.includes(n)){var s=e.col_data[a],i=[];s.map((function(e){e==t.replace?i.push(t.with):i.push(e)})),r[n]=i}else r[n]=e.col_data[a]})),new DataFrame(r,{columns:this.column_names,index:this.index})}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}if(utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var a=[],s=this.values;s.map((function(e){var n=[];e.map((function(e){e==t.replace?n.push(t.with):n.push(e)})),a.push(n)}));var i=new DataFrame(a,{index:this.index,columns:this.column_names});return i}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}},{key:"__logical_ops",value:function(e,t,n){var r,a;if(utils.__is_number(e))a=e;else if(e.series)if(0==n){if(e.values.length!=this.shape[0])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else{if(e.values.length!=this.shape[1])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else a=Array.isArray(e)?_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e):e.row_data_tensor;switch(t){case"lt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).less(a).arraySync();break;case"gt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greater(a).arraySync();break;case"le":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).lessEqual(a).arraySync();break;case"ge":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greaterEqual(a).arraySync();break;case"ne":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).notEqual(a).arraySync();break;case"eq":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).equal(a).arraySync()}return new DataFrame(utils.__map_int_to_bool(r,2),{columns:this.column_names,index:this.index})}},{key:"__get_df_from_tensor",value:function(e,t){for(var n=e.shape[0],r=[],a=0;a0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"column"))throw Error("Value Error: Please specify a column to cast");if(!utils.__key_in_object(e,"dtype"))throw Error("Value Error: Please specify dtype to cast to");if(!this.column_names.includes(e.column))throw Error("'".concat(e.column,"' not found in columns"));var t=this.column_names.indexOf(e.column),n=this.col_types,r=this.col_data;n[t]=e.dtype;var a=[],s=r[t];switch(e.dtype){case"float32":s.map((function(e){a.push(Number(e))})),r[t]=a;break;case"int32":s.map((function(e){a.push(Number(Number(e).toFixed()))})),r[t]=a;break;case"string":s.map((function(e){a.push(String(e))})),r[t]=a}var i={};this.column_names.forEach((function(e,t){i[e]=r[t]}));var o=new DataFrame(i,{dtypes:n,index:this.index});return o}},{key:"unique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n={};if(1==t){var r=this.column_names;r.forEach((function(t){n[t]=e[t].unique().values}))}else{var a=this.values,s=this.index;a.forEach((function(e,t){var r=new Set(e);n[s[t]]=Array.from(r)}))}return n}},{key:"nunique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n=[];if(1==t){var r=this.column_names;r.forEach((function(t){n.push(e[t].unique().values.length)}));var a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.column_names});return a}var s=this.values;s.forEach((function(e){var t=new Set(e);n.push(Array.from(t).length)}));var i=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.index});return i}},{key:"rename",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["mapper","inplace","axis"];if(utils._throw_wrong_params_error(e,t),utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"axis")||(e.axis=1),!utils.__key_in_object(e,"mapper"))throw Error("Please specify a mapper object");if(1==e.axis){var n=Object.keys(e.mapper),r=Object.values(e.mapper),a=_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names);if(n.forEach((function(e,t){if(!a.includes(e))throw Error("Label Error: Specified column '".concat(e,"' not found in column axis"));var n=a.indexOf(e);a[n]=r[t]})),!e.inplace){var s=this.copy();return s.columns=a,s.__set_col_property(s,s.col_data,a,n),s}this.columns=a,this.__set_col_property(this,this.col_data,a,n)}else{var i=Object.keys(e.mapper),o=this.index,l=[];if(o.forEach((function(t){i.includes(t)?l.push(e.mapper[t]):l.push(t)})),!e.inplace){var u=this.copy();return u.__set_index(l),u}this.__set_index(l)}}},{key:"sort_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.__sort_by(r,r,n),s=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(a,2),i=s[0],o=s[1];if(!t){var l=this.copy();return l.__update_frame_in_place(i,null,null,o,null),l}this.__update_frame_in_place(i,null,null,o,null)}},{key:"sort_values",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"by"))throw Error("use col_name to specify column name");var t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.column(e.by).values,s=this.__sort_by(a,r,n),i=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(s,2),o=i[0],l=i[1];if(!t){var u=this.copy();return u.__update_frame_in_place(o,null,null,l,null),u}this.__update_frame_in_place(o,null,null,l,null)}},{key:"__set_col_property",value:function(e,t,n,r){r.forEach((function(t){delete e[t]})),t.forEach((function(t,r){Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(t,{columns:n[r],index:e.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"__update_frame_in_place",value:function(e,t,n,r,a){if(null!=e)this.data=e;else if(null!=n){var s=utils._get_row_and_col_values(n);this.data=s[0],this.columns=s[1],t=s[1]}null!=n?(this.col_data=Object.values(n),this.columns=Object.keys(n),t=Object.keys(n)):null!=e&&(this.col_data=utils.__get_col_values(e)),null!=t&&(this.columns=t),null!=r&&(this.index_arr=r),null!=a&&(this.col_types=a)}},{key:"__sort_by",value:function(e,t,n){for(var r=this.values,a=utils.__sort(e,n),s=utils.__get_duplicate(e),i=[],o=[],l=0;l{"use strict";n.d(t,{Z:()=>_});var r=n(7757),a=n.n(r),s=n(8926),i=n.n(s),o=n(3038),l=n.n(o),u=n(319),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(2563),g=n(107),y=n(697),b=n(7737),v=new y.c,w=new b.z,_=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(f()(this,e),this.kwargs=n,t instanceof m.Tensor&&(t=t.arraySync()),v.__is_1D_array(t))this.series=!0,this._read_array(t);else if(this.series=!1,v.__is_object(t[0]))this._read_object(t,1);else if(v.__is_object(t))this._read_object(t,2);else{if(!(Array.isArray(t[0])||v.__is_number(t[0])||v.__is_string(t[0])))throw new Error("File format not supported");this._read_array(t)}}var t,n;return p()(e,[{key:"_read_array",value:function(e){if(this.data=v.__replace_undefined_with_NaN(e,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)"columns"in this.kwargs?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}},{key:"_read_object",value:function(e,t){if(2==t){var n=v._get_row_and_col_values(e),r=l()(n,2),a=r[0],s=r[1];this.kwargs.columns=s,this._read_array(a)}else{var i=e.map((function(e){return Object.values(e)}));if(this.data=v.__replace_undefined_with_NaN(i,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.kwargs.columns=Object.keys(Object.values(e)[0]),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)this.kwargs.columns?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has column length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}}},{key:"_set_col_types",value:function(e,t){var n=["float32","int32","string","boolean"];if(t)this.series?this.col_types=v.__get_t(this.values):this.col_types=v.__get_t(this.col_data);else if(this.series)this.col_types=e;else{if(e.length!=this.columns.length)throw new Error("length Mixmatch: Length of specified dtypes is ".concat(e.length,", but length of columns is ").concat(this.columns.length));if(!Array.isArray(e))throw new Error("dtypes must be an Array of types");e.forEach((function(e,t){if(!n.includes(e))throw new Error("dtype error: dtype specified at index ".concat(t," is not supported"))})),this.col_types=e}}},{key:"__set_index",value:function(e){if(!Array.isArray(e))throw Error("Value Error: index must be an array");if(e.length>this.shape[0]||e.lengthr){var l,u,c,h=this.columns.slice(0,4),f=this.columns.slice(i-4);if(o=[""].concat(h).concat(["..."]).concat(f),this.values.length>n){var d=this.iloc({rows:["0:".concat(n)],columns:["0:4"]}),p=this.iloc({rows:["0:".concat(n)],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=d.values,c=p.values}else{var m=this.iloc({rows:["0:"],columns:["0:4"]}),y=this.iloc({rows:["0:"],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=m.values,c=y.values}l.map((function(e,t){var n=[e].concat(u[t]).concat(["..."]).concat(c[t]);a.push(n)}))}else{var b,v;if(o=[""].concat(this.columns),this.values.length>n){var _=this.loc({rows:["0:".concat(n)],columns:this.columns});b=_.index,v=_.values}else v=this.values,b=this.index;b.forEach((function(e,t){var n=[e].concat(v[t]);a.push(n)}))}s[0]=10;for(var x=1;x{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>GroupBy});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__),_frame__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(697),utils=new _utils__WEBPACK_IMPORTED_MODULE_3__.c,GroupBy=function(){function GroupBy(e,t,n,r){_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this,GroupBy),this.key_col=t,this.col_dict=e,this.data=n,this.column_name=r,this.data_tensors={}}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(GroupBy,[{key:"group",value:function(){if(2==this.key_col.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()}));this.col(t);var r=this.arithemetic(n),a=this.to_DataFrame(this.key_col,this.group_col_name,r,n);return a}},{key:"to_DataFrame",value:function(e,t,n,r){if(2==e.length){var a=[];for(var s in n){var i=n[s];for(var o in i){var l=i[o],u=[];if(Array.isArray(l[0])){for(var c=0;c{"use strict";n.d(t,{j:()=>a});var r=new(n(697).c),a=function(e,t){var n=null,a=null,s=!1;if(Object.prototype.hasOwnProperty.call(t,"rows")){if(!Array.isArray(t.rows))throw new Error("rows parameter must be a Array");if(1==t.rows.length&&"string"==typeof t.rows[0])if(t.rows[0].includes(":")){var i=t.rows[0].split(":");if("loc"==t.type){var o,l;o=isNaN(Number(i[0]))?e.index.indexOf(i[0]):Number(i[0]),l=isNaN(Number(i[1]))?e.index.lastIndexOf(i[1])-1||e.values.length-1:Number(i[1])-1||e.values.length-1,n=r.__range(o,l)}else{var u=parseInt(i[0])||0,c=parseInt(i[1])-1||e.values.length-1;"number"==typeof u&&"number"==typeof c&&(n=r.__range(u,c))}}else{if("loc"!=t.type)throw new Error("Slice index must be separated by ':'");var h=[];e.index.map((function(e,n){t.rows[0]==e&&h.push(n)})),n=h}else if("loc"==t.type){var f=[];e.index.map((function(e,n){t.rows.includes(e)&&f.push(n)})),n=f}else n=t.rows}else t.type,n=r.__range(0,Number(e.shape[0])-1);if(Object.prototype.hasOwnProperty.call(t,"columns")){if(!Array.isArray(t.columns))throw new Error("columns must be a list");if(1==t.columns.length&&t.columns[0].includes(":")){var d,p,m=t.columns[0].split(":");"iloc"==t.type||""==m[0]?(d=parseInt(m[0])||0,p=parseInt(m[1])-1||e.values[0].length-1):(d=parseInt(e.columns.indexOf(m[0])),p=parseInt(e.columns.indexOf(m[1]))-1),"number"==typeof d&&"number"==typeof p&&(a=r.__range(d,p),s=!0)}else a=t.columns}else a="loc"==t.type?e.column_names:r.__range(0,Number(e.shape[1])-1);for(var g=e.values,y=[],b=0;bw)throw new Error("Specified row index ".concat(v," is bigger than maximum row index of ").concat(w));if(Array.isArray(g[0])){var _=g[v],x=[];for(var k in a){var E;if("loc"!=t.type||s){E=a[k];var C=e.columns.length-1;if(E>C)throw new Error("column index ".concat(E," is bigger than ").concat(C))}else if(-1==(E=e.columns.indexOf(a[k])))throw new Error("Column ".concat(a[k]," does not exist"));var S=_[E];x.push(S)}y.push(x)}else y.push(g[v])}var N=[];"iloc"==t.type||s?a.map((function(t){N.push(e.columns[t])})):N=a;var I=[];return n.forEach((function(t){I.push(e.index[t])})),[y,N,I]}},3938:(e,t,n)=>{"use strict";n.d(t,{F:()=>F});var r=n(3038),a=n.n(r),s=n(319),i=n.n(s),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(2205),g=n.n(m),y=n(8585),b=n.n(y),v=n(9754),w=n.n(v),_=n(2563),x=n(3346),k=n(697),E=n(1745),C=n(2847),S=n(107),N=n(7737),I=n(9187),D=n(4564),A=n(9365);var T=new k.c,R=new N.z,F=function(e){g()(o,e);var t,n,r,s=(n=o,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=w()(n);if(r){var a=w()(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return b()(this,e)});function o(e,t){var n;return f()(this,o),Array.isArray(e[0])||T.__is_object(e[0])?(e=T.__convert_2D_to_1D(e),n=s.call(this,e,t)):n=s.call(this,e,t),b()(n)}return p()(o,[{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.shape[0]||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(0,e);return new o(t,{columns:this.column_names})}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(this.shape[0]-e),n=this.index.slice(this.shape[0]-e),r=new o(t,{columns:this.column_names,index:n});return r}},{key:"sample",value:(t=c()(l().mark((function e(){var t,n,r,a,s=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:5,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc(r),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"add",value:function(e){return T.__is_number(e)?new o(this.row_data_tensor.add(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.add(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"sub",value:function(e){return T.__is_number(e)?new o(this.tensor.sub(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.sub(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mul",value:function(e){return T.__is_number(e)?new o(this.tensor.mul(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mul(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"div",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(T.__is_number(e)){var n=this.tensor.div(e);return new o(n.arraySync(),{columns:this.column_names,dtypes:[n.dtype]})}if(this.__check_series_op_compactibility){var r;r=t?"float32":"int32";var a=this.tensor.asType(r),s=e.tensor.asType(r),i=a.div(s);return new o(i.arraySync(),{columns:this.column_names,dtypes:[i.dtype]})}}},{key:"pow",value:function(e){return T.__is_number(e)?new o(this.tensor.pow(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.pow(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mod",value:function(e){return T.__is_number(e)?new o(this.tensor.mod(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mod(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mean",value:function(){T._throw_str_dtype_error(this,"mean");var e=T._remove_nans(this.values);return _.tensor(e).mean().arraySync()}},{key:"median",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.C2o)(e)}},{key:"mode",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.xJM)(e)}},{key:"min",value:function(){return T._throw_str_dtype_error(this,"min"),this.row_data_tensor.min().arraySync()}},{key:"max",value:function(){return T._throw_str_dtype_error(this,"max"),this.row_data_tensor.max().arraySync()}},{key:"sum",value:function(){if(T._throw_str_dtype_error(this,"sum"),"boolean"==this.dtypes[0]){var e=this.row_data_tensor.sum().arraySync();return Number(e)}var t=this.row_data_tensor.sum().arraySync();return Number(t.toFixed(5))}},{key:"count",value:function(){return T.__count_nan(this.values,!0,!0)}},{key:"maximum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.maximum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.row_data_tensor,r=e.tensor;return new o(n.maximum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"minimum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.minimum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.tensor,r=e.tensor;return new o(n.minimum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"round",value:function(e){return T.__is_undefined(e)?new o(_.round(this.row_data_tensor).arraySync(),{columns:this.column_names,index:this.index}):new o(T.__round(this.values,e,!0),{columns:this.column_names,index:this.index})}},{key:"std",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.qoR)(e)}},{key:"var",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.CAK)(e)}},{key:"isna",value:function(){return new o(this.__isna(),{index:this.index,columns:this.column_names,dtypes:["boolean"]})}},{key:"fillna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["value","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("value"in e))throw Error("Value Error: Must specify value to replace with");var n=[];if(this.values.forEach((function(t){isNaN(t)&&"string"!=typeof t?n.push(e.value):n.push(t)})),!e.inplace){var r=new o(n,{columns:this.column_names,index:this.index,dtypes:this.dtypes});return r}this.data=n}},{key:"sort_values",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["inplace","ascending"];T._throw_wrong_params_error(t,n),"ascending"in t||(t.ascending=!0),"inplace"in t||(t.inplace=!1);var r=[],a=i()(this.values),s=T.__range(0,this.index.length-1),l=T._sort_arr_with_index(s,a,this.dtypes[0]);if(l.forEach((function(t){r.push(e.values[t])})),t.ascending&&(r=r.reverse(),l=l.reverse()),!t.inplace){var u=new o(r,{columns:this.column_names,index:l});return u}this.data=r,this.__set_index(l)}},{key:"copy",value:function(){return new o(i()(this.values),{columns:i()(this.column_names),index:i()(this.index),dtypes:i()(this.dtypes[0])})}},{key:"describe",value:function(){return"string"==this.dtypes[0]?null:new o([this.count(),this.mean(),this.std(),this.min(),this.median(),this.max(),this.var()],{columns:this.columns,index:["count","mean","std","min","median","max","variance"]})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!e.inplace){var n=this.copy();return n.__reset_index(),n}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["index","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("index"in e))throw Error("Index ValueError: You must specify an array of index");if(e.index.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.index.length," must match lenght of existing index ").concat(this.index.length));if(!e.inplace){var n=this.copy();return n.__set_index(e.index),n}this.index_arr=e.index}},{key:"__check_series_op_compactibility",value:function(e){if(T.__is_undefined(e.series))throw Error("param [other] must be a Series or a single value that can be broadcasted");if(e.values.length!=this.values.length)throw Error("Shape Error: Series shape do not match");if("float"!=this.dtypes[0]||"int"!=this.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(this.dtypes[0]," with type ").concat(e.dtypes[0]));if("float"!=e.dtypes[0]||"int"!=e.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(e.dtypes[0]," with type ").concat(this.dtypes[0]));return!0}},{key:"map",value:function(e){var t=T.__is_function(e);return new o(this.data.map((function(n){if(t)return e(n);if(T.__is_object(e))return n in e?e[n]:NaN;throw new Error("callable must either be a function or an object")})),{columns:this.column_names,index:this.index})}},{key:"apply",value:function(e){if(!T.__is_function(e))throw new Error("the arguement most be a function");return new o(this.data.map((function(t){return e(t)})),{columns:this.column_names,index:this.index})}},{key:"unique",value:function(){var e=new Set(this.values);return new o(Array.from(e))}},{key:"nunique",value:function(){return this.unique().values.length}},{key:"value_counts",value:function(){for(var e=this.values,t={},n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=["replace","with","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("replace"in e))throw Error("Params Error: Must specify param 'replace'");if(!("with"in e))throw Error("Params Error: Must specify param 'with'");var n=[],r=this.values;if(r.forEach((function(t){t==e.replace?n.push(e.with):n.push(t)})),!e.inplace){var a=new o(n,{index:this.index,columns:this.columns,dtypes:this.dtypes});return a}this.data=n}},{key:"dropna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1;var n=this.values,r=this.index,a=[],s=[],i=this.isna().values;if(i.forEach((function(e,t){e||(a.push(n[t]),s.push(r[t]))})),!e.inplace){var l=new o(a,{columns:this.column_names,index:s,dtypes:this.dtypes});return l}this.index_arr=s,this.data=a}},{key:"argsort",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.sort_values({ascending:e}).index,n=new o(t);return n}},{key:"argmax",value:function(){return this.row_data_tensor.argMax().arraySync()}},{key:"argmin",value:function(){return this.row_data_tensor.argMin().arraySync()}},{key:"drop_duplicates",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=["inplace","keep"];T._throw_wrong_params_error(n,r),n.inplace=n.inplace||!1,n.keep=n.keep||"first","last"==n.keep?(e=this.values.reverse(),t=this.index.reverse()):(e=this.values,t=this.index);var a=[],s=[];if(e.forEach((function(e,n){s.includes(e)||(a.push(t[n]),s.push(e))})),"last"==n.keep&&(s=s.reverse(),a=a.reverse()),!n.inplace){var i=new o(s,{index:a,columns:this.column_names,dtypes:this.dtypes});return i}this.data=s,this.index_arr=a}},{key:"toString",value:function(){var e,t,n=R.get_max_row,r=[],a={},s=[""].concat(this.columns);this.values.length>n?(t=this.values.slice(0,n),e=this.index.slice(0,n)):(t=this.values,e=this.index),e.forEach((function(e,n){var a=[e].concat(t[n]);r.push(a)})),a[0]=10,a[1]={width:20,truncate:20};var i=[s].concat(r);return(0,S.Kz)(i,{columns:a})}},{key:"__bool_ops",value:function(e,t){var n,r=this.values;if("number"==typeof e)n=i()(r).fill(e);else{if(!(e instanceof o))throw new Error("Value Error: 'other' must be an instance of Series");n=e.values}if(r.length!==n.length)throw new Error("Length Error: Both series must be of the same length");for(var a=[],s=0;su,a.push(c);break;case"le":c=l<=u,a.push(c);break;case"ge":c=l>=u,a.push(c);break;case"ne":c=l!=u,a.push(c);break;case"eq":c=l===u,a.push(c)}}return new o(a)}},{key:"__cum_ops",value:function(e){for(var t=this.values,n=t[0],r=[n],a=1;an?(r.push(s),n=s):r.push(n);break;case"min":s1&&void 0!==arguments[1]&&arguments[1];if(!t){var n=this.copy();if(Array.isArray(e))e.forEach((function(e,t){n.data.push(e),n.index_arr.push(t)}));else if(e instanceof o){var r=e.values,a=e.index;r.forEach((function(e,t){n.data.push(e),n.index_arr.push(a[t])}))}else n.data.push(e),n.index_arr.push(0);return n}var s=this;if(Array.isArray(e))e.forEach((function(e,t){s.data.push(e),s.index_arr.push(t)}));else if(e instanceof o){var i=e.values,l=e.index;i.forEach((function(e,t){s.data.push(e),s.index_arr.push(l[t])}))}else s.data.push(e),s.index_arr.push(0)}},{key:"tensor",get:function(){return _.tensor(this.values).asType(this.dtypes[0])}},{key:"dtype",get:function(){return this.dtypes[0]}},{key:"str",get:function(){var e=this.values;if("string"!=this.dtypes[0]){var t=[];e.forEach((function(e){t.push(String(e))}));var n=new o(t,{columns:this.column_names,index:this.index});return new E.W(n)}return new E.W(this)}},{key:"dt",get:function(){var e=new I.p({data:this});return e.preprocessed(),e}}]),o}(C.Z)},1745:(e,t,n)=>{"use strict";n.d(t,{W:()=>l});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(3938),l=function(){function e(t){a()(this,e),this.series=t,this.array=t.values}return i()(e,[{key:"toLowerCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toLowerCase())})),this.__create_new_sf_from(e,this.series)}},{key:"toUpperCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toUpperCase())})),this.__create_new_sf_from(e,this.series)}},{key:"capitalize",value:function(){var e=[];return this.array.map((function(t){var n=t.slice(0,1),r=t.slice(1),a="".concat(n.toUpperCase()).concat(r.toLowerCase());e.push(a)})),this.__create_new_sf_from(e,this.series)}},{key:"charAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=[];this.array.map((function(n){t.push(n.charAt(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"concat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(Array.isArray(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.startsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"endsWith",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.endsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"includes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.includes(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"indexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.indexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"lastIndexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.lastIndexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"replace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=[];this.array.map((function(r){n.push(r.replace(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"repeat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];this.array.map((function(n){t.push(n.repeat(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.search(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"slice",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.slice(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"split",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ",t=[];this.array.map((function(n){t.push(n.split(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"substr",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substr(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"substring",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substring(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"trim",value:function(){var e=[];return this.array.map((function(t){e.push(t.trim())})),this.__create_new_sf_from(e,this.series)}},{key:"join",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[];this.array.map((function(r){var a=e,s="".concat(r).concat(t).concat(a);n.push(s)}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"len",value:function(){var e=[];return this.array.map((function(t){e.push(t.length)})),this.__create_new_sf_from(e,this.series)}},{key:"__create_new_sf_from",value:function(e,t){return new o.F(e,{columns:t.column_names,index:t.index})}}]),e}()},9187:(e,t,n)=>{"use strict";n.d(t,{p:()=>c,J:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c,c=function(){function e(t){a()(this,e),u.__in_object(t,"data","specify the data"),t.data instanceof l.F?this.data=t.data.values:this.data=t.data,this.format=t.format||null,this.keys={Y:4,m:2,H:2,M:2,S:2,b:3,d:2,"-":1},this.__in_format=["%Y-m-d%","%m-d-Y%","%m-d-Y H%M%S%"],this.__monthName=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.__weekName=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}return i()(e,[{key:"preprocessed",value:function(){var e=null;this.format&&(e=this.generate_format()),this.date_list=[];for(var t=0;t4?n+=":"+e.slice(r,r+s):4==a?n+=" "+e.slice(r,r+s):a>0&&a<=2&&(n+="-"+e.slice(r,r+s)),r+=s}return n}},{key:"generate_format",value:function(){var e=this.format.split(""),t=this;return e.filter((function(e){return u.__key_in_object(t.keys,e)})).map((function(e){return t.keys[e]}))}},{key:"is_timestamp",value:function(e){var t=parseInt(e),n=String(t);return!(isNaN(t)||n.length{"use strict";n.d(t,{c:()=>d});var r=n(3038),a=n.n(r),s=n(8),i=n.n(s),o=n(4575),l=n.n(o),u=n(3913),c=n.n(u),h=n(2563),f=new(n(7737).z),d=function(){function e(){l()(this,e)}return c()(e,[{key:"remove",value:function(e,t){return e.filter((function(e,n){return n!=t}))}},{key:"__remove_arr",value:function(e,t){return e.filter((function(e,n){return!t.includes(n)}))}},{key:"__is_string",value:function(e){return"string"==typeof e||e instanceof String}},{key:"__is_number",value:function(e){return"number"==typeof e&&isFinite(e)}},{key:"__is_object",value:function(e){return e&&"object"===i()(e)&&e.constructor===Object}},{key:"__is_null",value:function(e){return null===e}},{key:"__is_undefined",value:function(e){return void 0===e}},{key:"__sample_from_iter",value:function(e,t,n){var r=e.length;if(t<0||t>r)throw new RangeError("Sample larger than population or is negative");if(n||r<=(t<=5?21:21+Math.pow(4,Math.ceil(Math.log(3*t,4))))){n||(e=Array.prototype.slice.call(e));for(var a=0;a1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;if(n){var r=0,a=0;return e.forEach((function(e){Number.isNaN(e)?r+=1:a+=1})),t?a:r}var s=[];return e.forEach((function(e){var n=0,r=0;e.forEach((function(e){Number.isNaN(e)?n+=1:r+=1})),t?s.push(r):s.push(n)})),s}},{key:"__median",value:function(e,t){if(t){var n=e.slice().sort((function(e,t){return e-t})),r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}var a=[];return e.map((function(e){var t=e.slice().sort((function(e,t){return e-t})),n=Math.floor(t.length/2);t.length%2==0?a.push((t[n-1]+t[n])/2):a.push(t[n])})),a}},{key:"__mode",value:function(e){var t,n=[],r=[],a=0;for(t in e.forEach((function(e){r[e]=(r[e]||0)+1,r[e]>a&&(a=r[e])})),r)this.__key_in_object(r,t)&&r[t]===a&&n.push(Number(t));return n}},{key:"__round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2?arguments[2]:void 0;if(t<0&&(t=1),n){var r=[];return e.map((function(e){r.push(Number(e.toFixed(t)))})),r}var a=[];return e.map((function(e){var n=[];e.map((function(e){n.push(Number(e.toFixed(t)))})),a.push(n)})),a}},{key:"__is_function",value:function(e){return"function"==typeof e}},{key:"__randgen",value:function(e,t,n){var r=[];function a(e,t){return Math.floor(Math.random()*(t-e)+e)}function s(e,r){if(!r.includes(e))return e;s(e=a(t,n),r)}for(var i=0;i1&&void 0!==arguments[1])||arguments[1],n=e.slice();return n.sort((function(e,n){return t?"string"==typeof e&&"string"==typeof n?e.charCodeAt()-n.charCodeAt():e-n:"string"==typeof e&&"string"==typeof n?n.charCodeAt()-e.charCodeAt():n-e}))}},{key:"__is_browser_env",value:function(){return new Function("try {return this===window;}catch(e){ return false;}")()}},{key:"__is_node_env",value:function(){return new Function("try {return this===global;}catch(e){return false;}")()}},{key:"_throw_str_dtype_error",value:function(e,t){if("string"==e.dtypes[0])throw Error("dtype error: String data type does not support ".concat(t," operation"))}},{key:"_remove_nans",value:function(e){return e.filter((function(e){return!isNaN(e)&&"string"!=typeof e}))}},{key:"__get_duplicate",value:function(e){var t={},n={};for(var r in e.forEach((function(e,n){e in t?(t[e].count+=1,t[e].index.push(n)):(t[e]={},t[e].count=1,t[e].index=[n])})),t)t[r].count>=2&&(n[r]={},n[r].count=t[r].count,n[r].index=t[r].index);return n}},{key:"_sort_arr_with_index",value:function(e,t,n){var r=e.map((function(e,n){return[t[n],e]}));return"string"==n?r.sort():r.sort((function(e,t){var n=a()(e,1)[0];return a()(t,1)[0]-n})),r.map((function(e){return a()(e,2)[1]}))}}]),e}()},2476:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Configs:()=>W.z,DataFrame:()=>s.N,LabelEncoder:()=>D,MinMaxScaler:()=>R,NDframe:()=>r.Z,OneHotEncoder:()=>A,Series:()=>a.F,StandardScaler:()=>F,Str:()=>U.W,Utils:()=>k.c,_version:()=>V,concat:()=>N.z,date_range:()=>B,get_dummies:()=>z,merge:()=>S,read_csv:()=>p,read_excel:()=>g,read_json:()=>m,tf:()=>h,to_datetime:()=>i.J});var r=n(2847),a=n(3938),s=n(3676),i=n(9187),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(2563),f=n(7869),d=n.n(f),p=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.length>1&&void 0!==u[1]?u[1]:{},r=n.start,a=n.end,t.startsWith("https")||t.startsWith("http")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,h.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return o=new s.N(i),e.abrupt("return",o);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(){var e=c()(l().mark((function e(t){var n,r,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"Get"});case 2:return n=e.sent,e.next=5,n.json();case 5:return r=e.sent,a=new s.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u,c,h,f,p,m,g,y,b,v,w=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=w.length>1&&void 0!==w[1]?w[1]:{},r=n.sheet,a=n.header_index,i=n.data_index,a||(a=1),i||(i=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return u=e.sent,e.next=10,u.arrayBuffer();case 10:for(u=e.sent,u=new Uint8Array(u),o=d().read(u,{type:"array"}),c=o.Sheets[r||o.SheetNames[0]],h=d().utils.decode_range(c["!ref"]),f=[],p=[],m=a-1;m<=h.e.r;++m){for(g=[],y=h.s.c;y<=h.e.c;++y)b=void 0,m==a-1&&(b=d().utils.encode_cell({c:y,r:a-1}),c[b]&&f.push(c[b].v)),m>=i-1&&(b=d().utils.encode_cell({c:y,r:m}),c[b]&&g.push(c[b].v));m>=i-1&&p.push(g)}return v=new s.N(p,{columns:f}),e.abrupt("return",v);case 21:throw e.prev=21,e.t0=e.catch(4),new Error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t){return e.apply(this,arguments)}}(),y=n(319),b=n.n(y),v=n(4575),w=n.n(v),_=n(3913),x=n.n(_),k=n(697),E=new k.c,C=function(){function e(t){var n=this;if(w()(this,e),E.__in_object(t,"left"),E.__in_object(t,"right"),E.__in_object(t,"on"),E.__key_in_object(t,"how")?this.how=t.how:(this.how="inner",t.how="inner"),this.left=null,this.right=null,this.on=null,!(t.left instanceof s.N&&t.right instanceof s.N))throw new Error("The left and right key value must be a dataFrame");if(this.left=t.left,this.right=t.right,!Array.isArray(t.on))throw new Error("key 'on' must be a list");if(this.on=t.on,!["outer","inner","left","right"].includes(t.how))throw new Error("".concat(t.how," specify in keyword how is not recognise"));this.how=t.how,this.left_col_index=[],this.right_col_index=[];for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null,s=null,i=null,o=null,l=null;if(e&&t){s=new Date(e),o=this.freq_type(s,this.freq),i=new Date(t),l=this.freq_type(i,this.freq);var u=s.getFullYear(),c=i.getFullYear();u(l=a?n*a-1:n-1)&&(l+=o);var p=O.__range(o,l);a&&(p=this.offset_count(p,a));var m=p.map((function(e){return r.set_dateProps(s,r.freq,e)})),g=this.toLocalString(m);return g}if(t&&!e){i=new Date(t),o=(l=this.freq_type(i,this.freq))-n+1;var y=O.__range(o,l);a&&(y=this.offset_count(y,a));var b=y.map((function(e){return r.set_dateProps(i,r.freq,e)})),v=this.toLocalString(b);return v}}},{key:"freq_type",value:function(e,t){var n=null;switch(t){case"M":n=e.getMonth();break;case"Y":n=e.getFullYear();break;case"s":n=e.getSeconds();break;case"D":n=e.getDate();break;case"H":n=e.getHours();break;case"m":n=e.getMinutes()}return n}},{key:"offset_count",value:function(e,t){for(var n=[],r=0;r11?e%12==0?[n=e/12,e-(t=e)]:[n,e-t]:[n,e]}))}},{key:"day_end",value:function(e,t){for(var n=this.month_end(e,t),r=O.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};P.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,i=null;if(Array.isArray(e.data)?i=e.data:e.data instanceof s.N?(i=e.data,a=!0):i=e.data.values,a){var o=[];if(r?r.forEach((function(e){var t=r.indexOf(e);o.push(t)})):(r=[],i.col_types.map((function(e,t){if("string"==e){var n=i.columns[t];r.push(n),o.push(t)}}))),t){if(!Array.isArray(t))throw new Error("prefix for dataframe must be an array");if(t.length!=r.length)throw new Error("prefix must be the same length with the number of onehot encoding column")}else t=r;var l=i.values,u=i.columns,c=i.col_data,h=[];o.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=L(e,t[r],n),s=$()(a,2),i=s[0],o=s[1];f.push.apply(f,b()(o)),0==d.length?d.push.apply(d,b()(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,b()(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=P.__remove_arr(n,o);return r.push.apply(r,b()(d[t])),r})),m=P.__remove_arr(u,o);return m.push.apply(m,f),new s.N(p,{columns:m})}var g=L(i,t,n),y=$()(g,2),v=y[0],w=y[1];return new s.N(v,{columns:w})},W=n(7737),U=n(1745),V="0.2.4"},4564:(e,t,n)=>{"use strict";n.d(t,{X:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c;try{var c=Plotly.version;console.info("Using Plotly version ".concat(c))}catch(e){console.info("Plotly CDN not found. If you need to make Plots, then add the Plotly CDN to your script")}var h=function(){function e(t,n){a()(this,e),this.div=n,this.ndframe=t}return i()(e,[{key:"line",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="line",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c;var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var s={};a.forEach((function(e){s[e]=t[e]})),u.__key_in_object(r,"x")?(s.x=e.ndframe[r.x].values,s.y=e.ndframe[n].values,s.name=n):(s.y=e.ndframe[r.y].values,s.x=e.ndframe[n].values,s.name=n),p.push(s)})),Plotly.newPlot(this.div,p,r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.x=e.ndframe.index,r.y=e.ndframe[n].values,r.name=n,m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"bar",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="bar",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="bar";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?p.y=this.ndframe[r.x].values:p.y=this.ndframe[r.y].values,p.type="bar",Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe.index,n.y=e.ndframe[t].values,n.name=t,n.type="bar",m.push(n)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"scatter",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.y=this.ndframe.index,s.type="scatter",s.mode="markers",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var i=this.ndframe[r.x].values,o=this.ndframe[r.y].values,c={};c.x=i,c.y=o,c.type="scatter",c.mode="markers";var h={},f={};h.title=r.x,f.title=r.y,r.layout.xaxis=h,r.layout.yaxis=f,Plotly.newPlot(this.div,[c],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var d={};a.forEach((function(e){"layout"==!e&&(d[e]=t[e])})),u.__key_in_object(r,"x")?(d.y=this.ndframe.index,d.x=this.ndframe[r.x].values):(d.x=this.ndframe.index,d.y=this.ndframe[r.y].values),d.type="scatter",d.mode="markers",Plotly.newPlot(this.div,[d],r.layout,r)}else{var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.y=e.ndframe.index,n.x=e.ndframe[t].values,n.name=t,n.type="scatter",n.mode="markers",p.push(n)})),Plotly.newPlot(this.div,p,r.layout,r)}}},{key:"hist",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.type="histogram",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")){var i={};a.forEach((function(e){"layout"==!e&&(i[e]=t[e])})),i.x=this.ndframe[r.y].values,i.type="histogram",Plotly.newPlot(this.div,[i],r.layout,r)}else if(u.__key_in_object(r,"y")){var o={};a.forEach((function(e){"layout"==!e&&(o[e]=t[e])})),o.y=this.ndframe[r.y].values,o.type="histogram",Plotly.newPlot(this.div,[o],r.layout,r)}else{var c=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe[t].values,n.name=t,n.type="histogram",c.push(n)})),Plotly.newPlot(this.div,c,r.layout,r)}}},{key:"pie",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0];if(this.ndframe instanceof l.F){var a=[{values:this.ndframe.values,labels:this.ndframe.index,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,a,r.layout,r)}else if(u.__key_in_object(r,"values")&&u.__key_in_object(r,"labels")){if(!this.ndframe.column_names.includes(r.labels))throw Error("Column Error: ".concat(r.labels," not found in columns. labels name must be one of [ ").concat(this.ndframe.column_names,"]"));if(!this.ndframe.column_names.includes(r.values))throw Error("Column Error: ".concat(r.values," not found in columns. value name must be one of [ ").concat(this.ndframe.column_names,"]"));var s=[{values:this.ndframe[r.values].values,labels:this.ndframe[r.labels].values,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,s,r.layout,r)}else{var i;if(i=u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names,u.__key_in_object(r,"row_pos")){if(r.row_pos.length!=i.length-1)throw Error("Lenght of row_pos array must be equal to number of columns. Got ".concat(r.row_pos.length,", expected ").concat(i.length-1))}else{for(var o=[],c=0;c0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="box",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="box";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="box"):(p.x=this.ndframe.index,p.y=r.y,p.type="box"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="box",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"violin",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="violin",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="violin";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="violin"):(p.x=this.ndframe.index,p.y=r.y,p.type="violin"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="violin",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"table",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this.__get_plot_params(n),a=r[0],s={},i={},o=[];u.__key_in_object(a,"columns")?(a.columns.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"));var n=t.ndframe.column_names.indexOf(e);o.push(t.ndframe.col_data[n])})),e=a.columns):(e=this.ndframe.column_names,o=this.ndframe.col_data),s.values=e,i.values=o,a.header_style&&Object.keys(a.header_style).forEach((function(e){s[e]=a.header_style[e]})),a.cell_style&&Object.keys(a.cell_style).forEach((function(e){i[e]=a.cell_style[e]}));var l=[{type:"table",header:s,cells:i}];Plotly.newPlot(this.div,l,a.layout,a)}},{key:"__get_plot_params",value:function(e){var t=Object.keys(e),n={};return t.forEach((function(t){n[t]=e[t]})),u.__key_in_object(e,"layout")||(n.layout={}),[n,t]}},{key:"____check_if_cols_exist",value:function(e){var t=this;return e.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"))})),e}}]),e}()},1977:function(e,t){var n;!function(r){"use strict";var a=function(e){return.5*(Math.exp(e)+Math.exp(-e))},s=function(e){return.5*(Math.exp(e)-Math.exp(-e))},i=function(){throw SyntaxError("Invalid Param")};function o(e,t){var n=Math.abs(e),r=Math.abs(t);return 0===e?Math.log(r):0===t?Math.log(n):n<3e3&&r<3e3?.5*Math.log(e*e+t*t):Math.log(e/Math.cos(Math.atan2(t,e)))}function l(e,t){if(!(this instanceof l))return new l(e,t);var n=function(e,t){var n={re:0,im:0};if(null==e)n.re=n.im=0;else if(void 0!==t)n.re=e,n.im=t;else switch(typeof e){case"object":if("im"in e&&"re"in e)n.re=e.re,n.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return l.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return l.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else 2===e.length?(n.re=e[0],n.im=e[1]):i();break;case"string":n.im=n.re=0;var r=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),a=1,s=0;null===r&&i();for(var o=0;o0&&i();break;case"number":n.im=0,n.re=e;break;default:i()}return isNaN(n.re)||isNaN(n.im),n}(e,t);this.re=n.re,this.im=n.im}l.prototype={re:0,im:0,sign:function(){var e=this.abs();return new l(this.re/e,this.im/e)},add:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re+n.re,this.im+n.im)},sub:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re-n.re,this.im-n.im)},mul:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:0===n.im&&0===this.im?new l(this.re*n.re,0):new l(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){var n=new l(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return l.NAN;if(this.isInfinite()||n.isZero())return l.INFINITY;if(this.isZero()||n.isInfinite())return l.ZERO;e=this.re,t=this.im;var r,a,s=n.re,i=n.im;return 0===i?new l(e/s,t/s):Math.abs(s)=0)return new l(Math.pow(e,n.re),0);if(0===e)switch((n.re%4+4)%4){case 0:return new l(Math.pow(t,n.re),0);case 1:return new l(0,Math.pow(t,n.re));case 2:return new l(-Math.pow(t,n.re),0);case 3:return new l(0,-Math.pow(t,n.re))}}if(0===e&&0===t&&n.re>0&&n.im>=0)return l.ZERO;var r=Math.atan2(t,e),a=o(e,t);return e=Math.exp(n.re*a-n.im*r),t=n.im*a+n.re*r,new l(e*Math.cos(t),e*Math.sin(t))},sqrt:function(){var e,t,n=this.re,r=this.im,a=this.abs();if(n>=0){if(0===r)return new l(Math.sqrt(n),0);e=.5*Math.sqrt(2*(a+n))}else e=Math.abs(r)/Math.sqrt(2*(a-n));return t=n<=0?.5*Math.sqrt(2*(a-n)):Math.abs(r)/Math.sqrt(2*(a+n)),new l(e,r<0?-t:t)},exp:function(){var e=Math.exp(this.re);return this.im,new l(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,t=this.im;return new l(Math.expm1(e)*Math.cos(t)+function(e){var t=Math.PI/4;if(e<-t||e>t)return Math.cos(e)-1;var n=e*e;return n*(n*(1/24+n*(-1/720+n*(1/40320+n*(-1/3628800+n*(1/4790014600+n*(-1/87178291200+n*(1/20922789888e3)))))))-.5)}(t),Math.exp(e)*Math.sin(t))},log:function(){var e=this.re,t=this.im;return new l(o(e,t),Math.atan2(t,e))},abs:function(){return e=this.re,t=this.im,n=Math.abs(e),r=Math.abs(t),n<3e3&&r<3e3?Math.sqrt(n*n+r*r):(n1&&0===t,r=1-e,a=1+e,s=r*r+t*t,i=0!==s?new l((a*r-t*t)/s,(t*r+a*t)/s):new l(-1!==e?e/0:0,0!==t?t/0:0),u=i.re;return i.re=o(i.re,i.im)/2,i.im=Math.atan2(i.im,u)/2,n&&(i.im=-i.im),i},acoth:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new l(0,Math.PI/2);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).atanh():new l(0!==e?e/0:0,0!==t?-t/0:0).atanh()},acsch:function(){var e=this.re,t=this.im;if(0===t)return new l(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).asinh():new l(0!==e?e/0:0,0!==t?-t/0:0).asinh()},asech:function(){var e=this.re,t=this.im;if(this.isZero())return l.INFINITY;var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).acosh():new l(0!==e?e/0:0,0!==t?-t/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new l(e/n,-t/n)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new l(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new l(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new l(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){var n=new l(e,t);return Math.abs(n.re-this.re)<=l.EPSILON&&Math.abs(n.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isZero()?"0":this.isInfinite()?"Infinity":(0!==e&&(n+=e),0!==t&&(0!==e?n+=t<0?" - ":" + ":t<0&&(n+="-"),1!==(t=Math.abs(t))&&(n+=t),n+="i"),n||"0")},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return!(0!==this.re&&-0!==this.re||0!==this.im&&-0!==this.im)},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-16,void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},3776:function(e,t,n){var r;!function(a){"use strict";var s,i,o,l=9e15,u=1e9,c="0123456789abcdef",h="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",f="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",d={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-l,maxE:l,crypto:!1},p=!0,m="[DecimalError] ",g=m+"Invalid argument: ",y=m+"Precision limit exceeded",b=m+"crypto unavailable",v=Math.floor,w=Math.pow,_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,x=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,k=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,C=1e7,S=h.length-1,N=f.length-1,I={name:"[object Decimal]"};function D(e){var t,n,r,a=e.length-1,s="",i=e[0];if(a>0){for(s+=i,t=1;tn)throw Error(g+e)}function T(e,t,n,r){var a,s,i,o;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=7,a=0):(a=Math.ceil((t+1)/7),t%=7),s=w(10,7-t),o=e[a]%s|0,null==r?t<3?(0==t?o=o/100|0:1==t&&(o=o/10|0),i=n<4&&99999==o||n>3&&49999==o||5e4==o||0==o):i=(n<4&&o+1==s||n>3&&o+1==s/2)&&(e[a+1]/s/100|0)==w(10,t-2)-1||(o==s/2||0==o)&&0==(e[a+1]/s/100|0):t<4?(0==t?o=o/1e3|0:1==t?o=o/100|0:2==t&&(o=o/10|0),i=(r||n<4)&&9999==o||!r&&n>3&&4999==o):i=((r||n<4)&&o+1==s||!r&&n>3&&o+1==s/2)&&(e[a+1]/s/1e3|0)==w(10,t-3)-1,i}function R(e,t,n){for(var r,a,s=[0],i=0,o=e.length;in-1&&(void 0===s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}I.absoluteValue=I.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},I.ceil=function(){return O(new this.constructor(this),this.e+1,2)},I.comparedTo=I.cmp=function(e){var t,n,r,a,s=this,i=s.d,o=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!i||!o)return l&&u?l!==u?l:i===o?0:!i^l<0?1:-1:NaN;if(!i[0]||!o[0])return i[0]?l:o[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=0,n=(r=i.length)<(a=o.length)?r:a;to[t]^l<0?1:-1;return r===a?0:r>a^l<0?1:-1},I.cosine=I.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r,a=t.d.length;a<32?r=(1/Y(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=K(e,1,t.times(r),new e(1));for(var s=n;s--;){var i=t.times(t);t=i.times(i).minus(i).times(8).plus(1)}return e.precision-=n,t}(r,J(r,n)),r.precision=e,r.rounding=t,O(2==o||3==o?n.neg():n,e,t,!0)):new r(1):new r(NaN)},I.cubeRoot=I.cbrt=function(){var e,t,n,r,a,s,i,o,l,u,c=this,h=c.constructor;if(!c.isFinite()||c.isZero())return new h(c);for(p=!1,(s=c.s*w(c.s*c,1/3))&&Math.abs(s)!=1/0?r=new h(s.toString()):(n=D(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=w(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(r=new h(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),i=(e=h.precision)+3;;)if(u=(l=(o=r).times(o).times(o)).plus(c),r=F(u.plus(c).times(o),u.plus(l),i+2,1),D(o.d).slice(0,i)===(n=D(r.d)).slice(0,i)){if("9999"!=(n=n.slice(i-3,i+1))&&(a||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(r,e+1,1),t=!r.times(r).times(r).eq(c));break}if(!a&&(O(o,e+1,0),o.times(o).times(o).eq(c))){r=o;break}i+=4,a=1}return p=!0,O(r,e,h.rounding,t)},I.decimalPlaces=I.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},I.dividedBy=I.div=function(e){return F(this,new this.constructor(e))},I.dividedToIntegerBy=I.divToInt=function(e){var t=this.constructor;return O(F(this,new t(e),0,1,1),t.precision,t.rounding)},I.equals=I.eq=function(e){return 0===this.cmp(e)},I.floor=function(){return O(new this.constructor(this),this.e+1,3)},I.greaterThan=I.gt=function(e){return this.cmp(e)>0},I.greaterThanOrEqualTo=I.gte=function(e){var t=this.cmp(e);return 1==t||0===t},I.hyperbolicCosine=I.cosh=function(){var e,t,n,r,a,s=this,i=s.constructor,o=new i(1);if(!s.isFinite())return new i(s.s?1/0:NaN);if(s.isZero())return o;n=i.precision,r=i.rounding,i.precision=n+Math.max(s.e,s.sd())+4,i.rounding=1,(a=s.d.length)<32?t=(1/Y(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=K(i,1,s.times(t),new i(1),!0);for(var l,u=e,c=new i(8);u--;)l=s.times(s),s=o.minus(l.times(c.minus(l.times(c))));return O(s,i.precision=n,i.rounding=r,!0)},I.hyperbolicSine=I.sinh=function(){var e,t,n,r,a=this,s=a.constructor;if(!a.isFinite()||a.isZero())return new s(a);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(a.e,a.sd())+4,s.rounding=1,(r=a.d.length)<3)a=K(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=K(s,2,a=a.times(1/Y(5,e)),a,!0);for(var i,o=new s(5),l=new s(16),u=new s(20);e--;)i=a.times(a),a=a.times(o.plus(i.times(l.times(i).plus(u))))}return s.precision=t,s.rounding=n,O(a,t,n,!0)},I.hyperbolicTangent=I.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,F(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},I.inverseCosine=I.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),a=n.precision,s=n.rounding;return-1!==r?0===r?t.isNeg()?P(n,a,s):new n(0):new n(NaN):t.isZero()?P(n,a+4,s).times(.5):(n.precision=a+6,n.rounding=1,t=t.asin(),e=P(n,a+4,s).times(.5),n.precision=a,n.rounding=s,e.minus(t))},I.inverseHyperbolicCosine=I.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,p=!1,n=n.times(n).minus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},I.inverseHyperbolicSine=I.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,p=!1,n=n.times(n).plus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln())},I.inverseHyperbolicTangent=I.atanh=function(){var e,t,n,r,a=this,s=a.constructor;return a.isFinite()?a.e>=0?new s(a.abs().eq(1)?a.s/0:a.isZero()?a:NaN):(e=s.precision,t=s.rounding,r=a.sd(),Math.max(r,e)<2*-a.e-1?O(new s(a),e,t,!0):(s.precision=n=r-a.e,a=F(a.plus(1),new s(1).minus(a),n+e,1),s.precision=e+4,s.rounding=1,a=a.ln(),s.precision=e,s.rounding=t,a.times(.5))):new s(NaN)},I.inverseSine=I.asin=function(){var e,t,n,r,a=this,s=a.constructor;return a.isZero()?new s(a):(t=a.abs().cmp(1),n=s.precision,r=s.rounding,-1!==t?0===t?((e=P(s,n+4,r).times(.5)).s=a.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,a=a.div(new s(1).minus(a.times(a)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=r,a.times(2)))},I.inverseTangent=I.atan=function(){var e,t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&h+4<=N)return(i=P(c,h+4,f).times(.25)).s=u.s,i}else{if(!u.s)return new c(NaN);if(h+4<=N)return(i=P(c,h+4,f).times(.5)).s=u.s,i}for(c.precision=o=h+10,c.rounding=1,e=n=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(o/7),r=1,l=u.times(u),i=new c(u),a=u;-1!==e;)if(a=a.times(l),s=i.minus(a.div(r+=2)),a=a.times(l),void 0!==(i=s.plus(a.div(r+=2))).d[t])for(e=t;i.d[e]===s.d[e]&&e--;);return n&&(i=i.times(2<this.d.length-2},I.isNaN=function(){return!this.s},I.isNegative=I.isNeg=function(){return this.s<0},I.isPositive=I.isPos=function(){return this.s>0},I.isZero=function(){return!!this.d&&0===this.d[0]},I.lessThan=I.lt=function(e){return this.cmp(e)<0},I.lessThanOrEqualTo=I.lte=function(e){return this.cmp(e)<1},I.logarithm=I.log=function(e){var t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(a=n[0];a%10==0;)a/=10;s=1!==a}if(p=!1,i=H(u,o=h+5),r=t?$(c,o+10):H(e,o),T((l=F(i,r,o,1)).d,a=h,f))do{if(i=H(u,o+=10),r=t?$(c,o+10):H(e,o),l=F(i,r,o,1),!s){+D(l.d).slice(a+1,a+15)+1==1e14&&(l=O(l,h+1,0));break}}while(T(l.d,a+=10,f));return p=!0,O(l,h,f)},I.minus=I.sub=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.constructor;if(e=new m(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new m(e.d||d.s!==e.s?d:NaN):e=new m(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,f=e.d,o=m.precision,l=m.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else{if(!u[0])return new m(3===l?-0:0);e=new m(d)}return p?O(e,o,l):e}if(n=v(e.e/7),c=v(d.e/7),u=u.slice(),s=c-n){for((h=s<0)?(t=u,s=-s,i=f.length):(t=f,n=c,i=u.length),s>(r=Math.max(Math.ceil(o/7),i)+2)&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for((h=(r=u.length)<(i=f.length))&&(i=r),r=0;r0;--r)u[i++]=0;for(r=f.length;r>s;){if(u[--r](i=(s=Math.ceil(o/7))>i?s+1:i+1)&&(a=i,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for((i=u.length)-(a=c.length)<0&&(a=i,n=c,c=u,u=n),t=0;a;)t=(u[--a]=u[a]+c[a]+t)/C|0,u[a]%=C;for(t&&(u.unshift(t),++r),i=u.length;0==u[--i];)u.pop();return e.d=u,e.e=M(u,r),p?O(e,o,l):e},I.precision=I.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return n.d?(t=L(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},I.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)},I.sine=I.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r=t.d.length;if(r<3)return K(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=K(e,2,t=t.times(1/Y(5,n)),t);for(var a,s=new e(5),i=new e(16),o=new e(20);n--;)a=t.times(t),t=t.times(s.plus(a.times(i.times(a).minus(o))));return t}(r,J(r,n)),r.precision=e,r.rounding=t,O(o>2?n.neg():n,e,t,!0)):new r(NaN)},I.squareRoot=I.sqrt=function(){var e,t,n,r,a,s,i=this,o=i.d,l=i.e,u=i.s,c=i.constructor;if(1!==u||!o||!o[0])return new c(!u||u<0&&(!o||o[0])?NaN:o?i:1/0);for(p=!1,0==(u=Math.sqrt(+i))||u==1/0?(((t=D(o)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),r=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new c(u.toString()),n=(l=c.precision)+3;;)if(r=(s=r).plus(F(i,s,n+2,1)).times(.5),D(s.d).slice(0,n)===(t=D(r.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(a||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(O(r,l+1,1),e=!r.times(r).eq(i));break}if(!a&&(O(s,l+1,0),s.times(s).eq(i))){r=s;break}n+=4,a=1}return p=!0,O(r,l,c.rounding,e)},I.tangent=I.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,(n=n.sin()).s=1,n=F(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,O(2==o||4==o?n.neg():n,e,t,!0)):new r(NaN)},I.times=I.mul=function(e){var t,n,r,a,s,i,o,l,u,c=this,h=c.constructor,f=c.d,d=(e=new h(e)).d;if(e.s*=c.s,!(f&&f[0]&&d&&d[0]))return new h(!e.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:f&&d?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=f.length)<(u=d.length)&&(s=f,f=d,d=s,i=l,l=u,u=i),s=[],r=i=l+u;r--;)s.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)o=s[a]+d[r]*f[a-r-1]+t,s[a--]=o%C|0,t=o/C|0;s[a]=(s[a]+t)%C|0}for(;!s[--i];)s.pop();return t?++n:s.shift(),e.d=s,e.e=M(s,n),p?O(e,h.precision,h.rounding):e},I.toBinary=function(e,t){return Z(this,2,e,t)},I.toDecimalPlaces=I.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(A(e,0,u),void 0===t?t=r.rounding:A(t,0,8),O(n,e+n.e+1,t))},I.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,!0):(A(e,0,u),void 0===t?t=a.rounding:A(t,0,8),n=B(r=O(new a(r),e+1,t),!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return void 0===e?n=B(a):(A(e,0,u),void 0===t?t=s.rounding:A(t,0,8),n=B(r=O(new s(a),e+a.e+1,t),!1,e+r.e+1)),a.isNeg()&&!a.isZero()?"-"+n:n},I.toFraction=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.d,y=d.constructor;if(!m)return new y(d);if(u=n=new y(1),r=l=new y(0),i=(s=(t=new y(r)).e=L(m)-d.e-1)%7,t.d[0]=w(10,i<0?7+i:i),null==e)e=s>0?t:u;else{if(!(o=new y(e)).isInt()||o.lt(u))throw Error(g+o);e=o.gt(t)?s>0?t:u:o}for(p=!1,o=new y(D(m)),c=y.precision,y.precision=s=7*m.length*2;h=F(o,t,0,1,1),1!=(a=n.plus(h.times(r))).cmp(e);)n=r,r=a,a=u,u=l.plus(h.times(a)),l=a,a=t,t=o.minus(h.times(a)),o=a;return a=F(e.minus(n),r,0,1,1),l=l.plus(a.times(u)),n=n.plus(a.times(r)),l.s=u.s=d.s,f=F(u,r,s,1).minus(d).abs().cmp(F(l,n,s,1).minus(d).abs())<1?[u,r]:[l,n],y.precision=c,p=!0,f},I.toHexadecimal=I.toHex=function(e,t){return Z(this,16,e,t)},I.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),null==e){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),void 0===t?t=r.rounding:A(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(p=!1,n=F(n,e,0,t,1).times(e),p=!0,O(n)):(e.s=n.s,n=e),n},I.toNumber=function(){return+this},I.toOctal=function(e,t){return Z(this,8,e,t)},I.toPower=I.pow=function(e){var t,n,r,a,s,i,o=this,l=o.constructor,u=+(e=new l(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new l(w(+o,u));if((o=new l(o)).eq(1))return o;if(r=l.precision,s=l.rounding,e.eq(1))return O(o,r,s);if((t=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return a=W(l,o,n,r),e.s<0?new l(1).div(a):O(a,r,s);if((i=o.s)<0){if(tl.maxE+1||t0?i/0:0):(p=!1,l.rounding=o.s=1,n=Math.min(12,(t+"").length),(a=j(e.times(H(o,r+n)),r)).d&&T((a=O(a,r+5,1)).d,r,s)&&(t=r+10,+D((a=O(j(e.times(H(o,t+n)),t),t+5,1)).d).slice(r+1,r+15)+1==1e14&&(a=O(a,r+1,0))),a.s=i,p=!0,l.rounding=s,O(a,r,s))},I.toPrecision=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(A(e,1,u),void 0===t?t=a.rounding:A(t,0,8),n=B(r=O(new a(r),e,t),e<=r.e||r.e<=a.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toSignificantDigits=I.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(A(e,1,u),void 0===t?t=n.rounding:A(t,0,8)),O(new n(this),e,t)},I.toString=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},I.truncated=I.trunc=function(){return O(new this.constructor(this),this.e+1,1)},I.valueOf=I.toJSON=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var F=function(){function e(e,t,n){var r,a=0,s=e.length;for(e=e.slice();s--;)r=e[s]*t+a,e[s]=r%n|0,a=r/n|0;return a&&e.unshift(a),e}function t(e,t,n,r){var a,s;if(n!=r)s=n>r?1:-1;else for(a=s=0;at[a]?1:-1;break}return s}function n(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;)e.shift()}return function(r,a,s,o,l,u){var c,h,f,d,p,m,g,y,b,w,_,x,k,E,S,N,I,D,A,T,R=r.constructor,F=r.s==a.s?1:-1,B=r.d,M=a.d;if(!(B&&B[0]&&M&&M[0]))return new R(r.s&&a.s&&(B?!M||B[0]!=M[0]:M)?B&&0==B[0]||!M?0*F:F/0:NaN);for(u?(p=1,h=r.e-a.e):(u=C,p=7,h=v(r.e/p)-v(a.e/p)),A=M.length,I=B.length,w=(b=new R(F)).d=[],f=0;M[f]==(B[f]||0);f++);if(M[f]>(B[f]||0)&&h--,null==s?(E=s=R.precision,o=R.rounding):E=l?s+(r.e-a.e)+1:s,E<0)w.push(1),m=!0;else{if(E=E/p+2|0,f=0,1==A){for(d=0,M=M[0],E++;(f1&&(M=e(M,d,u),B=e(B,d,u),A=M.length,I=B.length),N=A,x=(_=B.slice(0,A)).length;x=u/2&&++D;do{d=0,(c=t(M,_,A,x))<0?(k=_[0],A!=x&&(k=k*u+(_[1]||0)),(d=k/D|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(M,d,u),_,y=g.length,x=_.length))&&(d--,n(g,A=10;d/=10)f++;b.e=f+h*p-1,O(b,l?s+b.e+1:s,o,m)}return b}}();function O(e,t,n,r){var a,s,i,o,l,u,c,h,f,d=e.constructor;e:if(null!=t){if(!(h=e.d))return e;for(a=1,o=h[0];o>=10;o/=10)a++;if((s=t-a)<0)s+=7,i=t,l=(c=h[f=0])/w(10,a-i-1)%10|0;else if((f=Math.ceil((s+1)/7))>=(o=h.length)){if(!r)break e;for(;o++<=f;)h.push(0);c=l=0,a=1,i=(s%=7)-7+1}else{for(c=o=h[f],a=1;o>=10;o/=10)a++;l=(i=(s%=7)-7+a)<0?0:c/w(10,a-i-1)%10|0}if(r=r||t<0||void 0!==h[f+1]||(i<0?c:c%w(10,a-i-1)),u=n<4?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(s>0?i>0?c/w(10,a-i):0:h[f-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=w(10,(7-t%7)%7),e.e=-t||0):h[0]=e.e=0,e;if(0==s?(h.length=f,o=1,f--):(h.length=f+1,o=w(10,7-s),h[f]=i>0?(c/w(10,a-i)%w(10,i)|0)*o:0),u)for(;;){if(0==f){for(s=1,i=h[0];i>=10;i/=10)s++;for(i=h[0]+=o,o=1;i>=10;i/=10)o++;s!=o&&(e.e++,h[0]==C&&(h[0]=1));break}if(h[f]+=o,h[f]!=C)break;h[f--]=0,o=1}for(s=h.length;0===h[--s];)h.pop()}return p&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+z(r):i>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):a<0?(s="0."+z(-a-1)+s,n&&(r=n-i)>0&&(s+=z(r))):a>=i?(s+=z(a+1-i),n&&(r=n-a-1)>0&&(s=s+"."+z(r))):((r=a+1)0&&(a+1===i&&(s+="."),s+=z(r))),s}function M(e,t){var n=e[0];for(t*=7;n>=10;n/=10)t++;return t}function $(e,t,n){if(t>S)throw p=!0,n&&(e.precision=n),Error(y);return O(new e(h),t,1,!0)}function P(e,t,n){if(t>N)throw Error(y);return O(new e(f),t,n,!0)}function L(e){var t=e.length-1,n=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function z(e){for(var t="";e--;)t+="0";return t}function W(e,t,n,r){var a,s=new e(1),i=Math.ceil(r/7+4);for(p=!1;;){if(n%2&&Q((s=s.times(t)).d,i)&&(a=!0),0===(n=v(n/2))){n=s.d.length-1,a&&0===s.d[n]&&++s.d[n];break}Q((t=t.times(t)).d,i)}return p=!0,s}function U(e){return 1&e.d[e.d.length-1]}function V(e,t,n){for(var r,a=new e(t[0]),s=0;++s17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,l=m):l=t,o=new f(.03125);e.e>-2;)e=e.times(o),h+=5;for(l+=r=Math.log(w(2,h))/Math.LN10*2+5|0,n=s=i=new f(1),f.precision=l;;){if(s=O(s.times(e),l,1),n=n.times(++c),D((o=i.plus(F(s,n,l,1))).d).slice(0,l)===D(i.d).slice(0,l)){for(a=h;a--;)i=O(i.times(i),l,1);if(null!=t)return f.precision=m,i;if(!(u<3&&T(i.d,l-r,d,u)))return O(i,f.precision=m,d,p=!0);f.precision=l+=10,n=s=o=new f(1),c=0,u++}i=o}}function H(e,t){var n,r,a,s,i,o,l,u,c,h,f,d=1,m=e,g=m.d,y=m.constructor,b=y.rounding,v=y.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new y(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(p=!1,c=v):c=t,y.precision=c+=10,r=(n=D(g)).charAt(0),!(Math.abs(s=m.e)<15e14))return u=$(y,c+2,v).times(s+""),m=H(new y(r+"."+n.slice(1)),c-10).plus(u),y.precision=v,null==t?O(m,v,b,p=!0):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=D((m=m.times(e)).d)).charAt(0),d++;for(s=m.e,r>1?(m=new y("0."+n),s++):m=new y(r+"."+n.slice(1)),h=m,l=i=m=F(m.minus(1),m.plus(1),c,1),f=O(m.times(m),c,1),a=3;;){if(i=O(i.times(f),c,1),D((u=l.plus(F(i,new y(a),c,1))).d).slice(0,c)===D(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus($(y,c+2,v).times(s+""))),l=F(l,new y(d),c,1),null!=t)return y.precision=v,l;if(!T(l.d,c-10,b,o))return O(l,y.precision=v,b,p=!0);y.precision=c+=10,u=i=m=F(h.minus(1),h.plus(1),c,1),f=O(m.times(m),c,1),a=o=1}l=u,a+=2}}function G(e){return String(e.s*e.s/0)}function q(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);r++);for(a=t.length;48===t.charCodeAt(a-1);--a);if(t=t.slice(r,a)){if(a-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%7,n<0&&(r+=7),re.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),o=(i=t.indexOf("."))>=0,r=e.constructor,o&&(i=(l=(t=t.replace(".","")).length)-i,a=W(r,new r(n),i,2*i)),i=h=(c=R(t,n,C)).length-1;0===c[i];--i)c.pop();return i<0?new r(0*e.s):(e.e=M(c,h),e.d=c,p=!1,o&&(e=F(e,a,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):s.pow(2,u))),p=!0,e)}function K(e,t,n,r,a){var s,i,o,l,u=e.precision,c=Math.ceil(u/7);for(p=!1,l=n.times(n),o=new e(r);;){if(i=F(o.times(l),new e(t++*t++),u,1),o=a?r.plus(i):r.minus(i),r=F(i.times(l),new e(t++*t++),u,1),void 0!==(i=o.plus(r)).d[c]){for(s=c;i.d[s]===o.d[s]&&s--;);if(-1==s)break}s=o,o=r,r=i,i=s}return p=!0,i.d.length=c+1,i}function Y(e,t){for(var n=e;--t;)n*=e;return n}function J(e,t){var n,r=t.s<0,a=P(e,e.precision,1),s=a.times(.5);if((t=t.abs()).lte(s))return o=r?4:1,t;if((n=t.divToInt(a)).isZero())o=r?3:2;else{if((t=t.minus(n.times(a))).lte(s))return o=U(n)?r?2:3:r?4:1,t;o=U(n)?r?1:4:r?3:2}return t.minus(a).abs()}function Z(e,t,n,r){var a,s,o,l,h,f,d,p,m,g=e.constructor,y=void 0!==n;if(y?(A(n,1,u),void 0===r?r=g.rounding:A(r,0,8)):(n=g.precision,r=g.rounding),e.isFinite()){for(y?(a=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):a=t,(o=(d=B(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=R(B(m),10,a),m.e=m.d.length),s=h=(p=R(d,10,a)).length;0==p[--h];)p.pop();if(p[0]){if(o<0?s--:((e=new g(e)).d=p,e.e=s,p=(e=F(e,m,n,r,0,a)).d,s=e.e,f=i),o=p[n],l=a/2,f=f||void 0!==p[n+1],f=r<4?(void 0!==o||f)&&(0===r||r===(e.s<0?3:2)):o>l||o===l&&(4===r||f||6===r&&1&p[n-1]||r===(e.s<0?8:7)),p.length=n,f)for(;++p[--n]>a-1;)p[n]=0,n||(++s,p.unshift(1));for(h=p.length;!p[h-1];--h);for(o=0,d="";o1)if(16==t||8==t){for(o=16==t?4:3,--h;h%o;h++)d+="0";for(h=(p=R(d,a,t)).length;!p[h-1];--h);for(o=1,d="1.";oh)for(s-=h;s--;)d+="0";else st)return e.length=t,!0}function ee(e){return new this(e).abs()}function te(e){return new this(e).acos()}function ne(e){return new this(e).acosh()}function re(e,t){return new this(e).plus(t)}function ae(e){return new this(e).asin()}function se(e){return new this(e).asinh()}function ie(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function le(e,t){e=new this(e),t=new this(t);var n,r=this.precision,a=this.rounding,s=r+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?P(this,r,a):new this(0)).s=e.s:!e.d||t.isZero()?(n=P(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(F(e,t,s,1)),t=P(this,s,1),this.precision=r,this.rounding=a,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(F(e,t,s,1)):(n=P(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function ue(e){return new this(e).cbrt()}function ce(e){return O(e=new this(e),e.e+1,2)}function he(e){if(!e||"object"!=typeof e)throw Error(m+"Object expected");var t,n,r,a=!0===e.defaults,s=["precision",1,u,"rounding",0,8,"toExpNeg",-l,0,"toExpPos",0,l,"maxE",0,l,"minE",-l,0,"modulo",0,9];for(t=0;t=s[t+1]&&r<=s[t+2]))throw Error(g+n+": "+r);this[n]=r}if(n="crypto",a&&(this[n]=d[n]),void 0!==(r=e[n])){if(!0!==r&&!1!==r&&0!==r&&1!==r)throw Error(g+n+": "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(b);this[n]=!0}else this[n]=!1}return this}function fe(e){return new this(e).cos()}function de(e){return new this(e).cosh()}function pe(e,t){return new this(e).div(t)}function me(e){return new this(e).exp()}function ge(e){return O(e=new this(e),e.e+1,3)}function ye(){var e,t,n=new this(0);for(p=!1,e=0;e=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=a%1e7;else{if(!crypto.randomBytes)throw Error(b);for(t=crypto.randomBytes(r*=4);s=214e7?crypto.randomBytes(4).copy(t,s):(o.push(a%1e7),s+=4);s=r/4}else for(;s=10;a/=10)r++;r<7&&(n-=7-r)}return i.e=n,i.d=o,i}function De(e){return O(e=new this(e),e.e+1,this.rounding)}function Ae(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Te(e){return new this(e).sin()}function Re(e){return new this(e).sinh()}function Fe(e){return new this(e).sqrt()}function Oe(e,t){return new this(e).sub(t)}function Be(e){return new this(e).tan()}function Me(e){return new this(e).tanh()}function $e(e){return O(e=new this(e),e.e+1,1)}(s=function e(t){var n,r,a;function s(e){var t,n,r,a=this;if(!(a instanceof s))return new s(e);if(a.constructor=s,e instanceof s)return a.s=e.s,void(p?!e.d||e.e>s.maxE?(a.e=NaN,a.d=null):e.e=10;n/=10)t++;return void(p?t>s.maxE?(a.e=NaN,a.d=null):t{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,s[a]))return!1;for(a=r;0!=a--;){var i=s[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},5628:function(e,t){var n;!function(r){"use strict";var a={s:1,n:0,d:1};function s(e){function t(){var t=Error.apply(this,arguments);t.name=this.name=e,this.stack=t.stack,this.message=t.message}function n(){}return n.prototype=Error.prototype,t.prototype=new n,t}var i=f.DivisionByZero=s("DivisionByZero"),o=f.InvalidParameter=s("InvalidParameter");function l(e,t){return isNaN(e=parseInt(e,10))&&u(),e*t}function u(){throw new o}var c=function(e,t){var n,r=0,s=1,o=1,c=0,h=0,f=0,d=1,p=1,m=0,g=1,y=1,b=1,v=1e7;if(null==e);else if(void 0!==t)o=(r=e)*(s=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(r=e.n,s=e.d,"s"in e&&(r*=e.s)):0 in e?(r=e[0],1 in e&&(s=e[1])):u(),o=r*s;break;case"number":if(e<0&&(o=e,e=-e),e%1==0)r=e;else if(e>0){for(e>=1&&(e/=p=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));g<=v&&b<=v;){if(e===(n=(m+y)/(g+b))){g+b<=v?(r=m+y,s=g+b):b>g?(r=y,s=b):(r=m,s=g);break}e>n?(m+=y,g+=b):(y+=m,b+=g),g>v?(r=y,s=b):(r=m,s=g)}r*=p}else(isNaN(e)||isNaN(t))&&(s=r=NaN);break;case"string":if(null===(g=e.match(/\d+|./g))&&u(),"-"===g[m]?(o=-1,m++):"+"===g[m]&&m++,g.length===m+1?h=l(g[m++],o):"."===g[m+1]||"."===g[m]?("."!==g[m]&&(c=l(g[m++],o)),(1+ ++m===g.length||"("===g[m+1]&&")"===g[m+3]||"'"===g[m+1]&&"'"===g[m+3])&&(h=l(g[m],o),d=Math.pow(10,g[m].length),m++),("("===g[m]&&")"===g[m+2]||"'"===g[m]&&"'"===g[m+2])&&(f=l(g[m+1],o),p=Math.pow(10,g[m+1].length)-1,m+=3)):"/"===g[m+1]||":"===g[m+1]?(h=l(g[m],o),d=l(g[m+2],1),m+=3):"/"===g[m+3]&&" "===g[m+1]&&(c=l(g[m],o),h=l(g[m+2],o),d=l(g[m+4],1),m+=5),g.length<=m){o=r=f+(s=d*p)*c+p*h;break}default:u()}if(0===s)throw new i;a.s=o<0?-1:1,a.n=Math.abs(r),a.d=Math.abs(s)};function h(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function f(e,t){if(!(this instanceof f))return new f(e,t);c(e,t),e=f.REDUCE?h(a.d,a.n):1,this.s=a.s,this.n=a.n/e,this.d=a.d/e}f.REDUCE=1,f.prototype={s:1,n:0,d:1,abs:function(){return new f(this.n,this.d)},neg:function(){return new f(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),new f(this.s*this.n*a.d+a.s*this.d*a.n,this.d*a.d)},sub:function(e,t){return c(e,t),new f(this.s*this.n*a.d-a.s*this.d*a.n,this.d*a.d)},mul:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.n,this.d*a.d)},div:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.d,this.d*a.n)},clone:function(){return new f(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new f(NaN):void 0===e?new f(this.s*this.n%this.d,1):(c(e,t),0===a.n&&0===this.d&&f(0,0),new f(this.s*(a.d*this.n)%(a.n*this.d),a.d*this.d))},gcd:function(e,t){return c(e,t),new f(h(a.n,this.n)*h(a.d,this.d),a.d*this.d)},lcm:function(e,t){return c(e,t),0===a.n&&0===this.n?new f:new f(a.n*this.n,h(a.n,this.n)*h(a.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new f(this.s*this.d,this.n)},pow:function(e){return e<0?new f(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new f(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return c(e,t),this.s*this.n*a.d==a.s*a.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*a.d-a.s*a.n*this.d;return(00&&(n+=t,n+=" ",r%=a),n+=r,n+="/",n+=a),n},toLatex:function(e){var t,n="",r=this.n,a=this.d;return this.s<0&&(n+="-"),1===a?n+=r:(e&&(t=Math.floor(r/a))>0&&(n+=t,r%=a),n+="\\frac{",n+=r,n+="}{",n+=a,n+="}"),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do{r.push(Math.floor(t/n)),e=t%n,t=n,n=e}while(1!==t);return r},toString:function(e){var t,n=this.n,r=this.d;if(isNaN(n)||isNaN(r))return"NaN";f.REDUCE||(n/=t=h(n,r),r/=t),e=e||15;var a=function(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(1===t)return 0;for(var n=10%t,r=1;1!==n;r++)if(n=10*n%t,r>2e3)return 0;return r}(0,r),s=function(e,t,n){for(var r=1,a=function(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)1&t&&(r=r*e%n);return r}(10,n,t),s=0;s<300;s++){if(r===a)return s;r=10*r%t,a=10*a%t}return 0}(0,r,a),i=-1===this.s?"-":"";if(i+=n/r|0,n%=r,(n*=10)&&(i+="."),a){for(var o=s;o--;)i+=n/r|0,n%=r,n*=10;for(i+="(",o=a;o--;)i+=n/r|0,n%=r,n*=10;i+=")"}else for(o=e;n&&o--;)i+=n/r|0,n%=r,n*=10;return i}},void 0===(n=function(){return f}.apply(t,[]))||(e.exports=n)}()},1903:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)},3228:e=>{e.exports=function e(t,n){"use strict";var r,a,s=/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,i=/(^[ ]*|[ ]*$)/g,o=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,u=/^0/,c=function(t){return e.insensitive&&(""+t).toLowerCase()||""+t},h=c(t).replace(i,"")||"",f=c(n).replace(i,"")||"",d=h.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),p=f.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=parseInt(h.match(l),16)||1!==d.length&&h.match(o)&&Date.parse(h),g=parseInt(f.match(l),16)||m&&f.match(o)&&Date.parse(f)||null;if(g){if(mg)return 1}for(var y=0,b=Math.max(d.length,p.length);ya)return 1}return 0}},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),a=n(401),s=n(7667),i=n(1327),o=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7040),a=n(4125),s=n(2117),i=n(7518),o=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),a=n(1285),s=n(6e3),i=n(9916),o=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),a=n(619),s=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(8407),a=n(7465),s=n(3779),i=n(7599),o=n(4758),l=n(4309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=s,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,e.exports=u},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n{var r=n(2545),a=n(5694),s=n(1469),i=n(4144),o=n(5776),l=n(6719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=s(e),c=!n&&a(e),h=!n&&!c&&i(e),f=!n&&!c&&!h&&l(e),d=n||c||h||f,p=d?r(e.length,String):[],m=p.length;for(var g in e)!t&&!u.call(e,g)||d&&("length"==g||h&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||o(g,m))||p.push(g);return p}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(371)("length");e.exports=r},4286:e=>{e.exports=function(e){return e.split("")}},4865:(e,t,n)=>{var r=n(9465),a=n(7813),s=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];s.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},3886:(e,t,n)=>{var r=n(8363),a=n(1704);e.exports=function(e,t){return e&&r(t,a(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),a=n(7412),s=n(4865),i=n(4037),o=n(3886),l=n(4626),u=n(278),c=n(8805),h=n(1911),f=n(8234),d=n(6904),p=n(4160),m=n(3824),g=n(9148),y=n(8517),b=n(1469),v=n(4144),w=n(6688),_=n(3218),x=n(2928),k=n(3674),E=n(1704),C="[object Arguments]",S="[object Function]",N="[object Object]",I={};I[C]=I["[object Array]"]=I["[object ArrayBuffer]"]=I["[object DataView]"]=I["[object Boolean]"]=I["[object Date]"]=I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Map]"]=I["[object Number]"]=I[N]=I["[object RegExp]"]=I["[object Set]"]=I["[object String]"]=I["[object Symbol]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I["[object Error]"]=I[S]=I["[object WeakMap]"]=!1,e.exports=function e(t,n,D,A,T,R){var F,O=1&n,B=2&n,M=4&n;if(D&&(F=T?D(t,A,T,R):D(t)),void 0!==F)return F;if(!_(t))return t;var $=b(t);if($){if(F=m(t),!O)return u(t,F)}else{var P=p(t),L=P==S||"[object GeneratorFunction]"==P;if(v(t))return l(t,O);if(P==N||P==C||L&&!T){if(F=B||L?{}:y(t),!O)return B?h(t,o(F,t)):c(t,i(F,t))}else{if(!I[P])return T?t:{};F=g(t,P,O)}}R||(R=new r);var z=R.get(t);if(z)return z;R.set(t,F),x(t)?t.forEach((function(r){F.add(e(r,n,D,r,t,R))})):w(t)&&t.forEach((function(r,a){F.set(a,e(r,n,D,a,t,R))}));var W=$?void 0:(M?B?d:f:B?E:k)(t);return a(W||t,(function(r,a){W&&(r=t[a=r]),s(F,a,e(r,n,D,a,t,R))})),F}},3118:(e,t,n)=>{var r=n(3218),a=Object.create,s=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=s},6029:(e,t,n)=>{var r=n(3448);e.exports=function(e,t,n){for(var a=-1,s=e.length;++a{e.exports=function(e,t,n,r){for(var a=e.length,s=n+(r?1:-1);r?s--:++s{var r=n(2488),a=n(7285);e.exports=function e(t,n,s,i,o){var l=-1,u=t.length;for(s||(s=a),o||(o=[]);++l0&&s(c)?n>1?e(c,n-1,s,i,o):r(o,c):i||(o[o.length]=c)}return o}},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},7786:(e,t,n)=>{var r=n(1811),a=n(327);e.exports=function(e,t){for(var n=0,s=(t=r(t,e)).length;null!=e&&n{var r=n(2488),a=n(1469);e.exports=function(e,t,n){var s=t(e);return a(e)?s:r(s,n(e))}},4239:(e,t,n)=>{var r=n(2705),a=n(9607),s=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):s(e)}},3325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,n)=>{var r=n(1848),a=n(2722),s=n(2351);e.exports=function(e,t,n){return t==t?s(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),a=n(7005);e.exports=function e(t,n,s,i,o){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,s,i,e,o))}},2492:(e,t,n)=>{var r=n(6384),a=n(7114),s=n(8351),i=n(6096),o=n(4160),l=n(1469),u=n(4144),c=n(6719),h="[object Arguments]",f="[object Array]",d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,y){var b=l(e),v=l(t),w=b?f:o(e),_=v?f:o(t),x=(w=w==h?d:w)==d,k=(_=_==h?d:_)==d,E=w==_;if(E&&u(e)){if(!u(t))return!1;b=!0,x=!1}if(E&&!x)return y||(y=new r),b||c(e)?a(e,t,n,m,g,y):s(e,t,w,n,m,g,y);if(!(1&n)){var C=x&&p.call(e,"__wrapped__"),S=k&&p.call(t,"__wrapped__");if(C||S){var N=C?e.value():e,I=S?t.value():t;return y||(y=new r),g(N,I,n,m,y)}}return!!E&&(y||(y=new r),i(e,t,n,m,g,y))}},5588:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(6384),a=n(939);e.exports=function(e,t,n,s){var i=n.length,o=i,l=!s;if(null==e)return!o;for(e=Object(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i{e.exports=function(e){return e!=e}},8458:(e,t,n)=>{var r=n(3560),a=n(5346),s=n(3218),i=n(346),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,h=u.hasOwnProperty,f=RegExp("^"+c.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||a(e))&&(r(e)?f:o).test(i(e))}},3933:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object RegExp]"==r(e)}},9221:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),a=n(1780),s=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return s(e)&&a(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),a=n(6432),s=n(6557),i=n(1469),o=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):o(e)}},280:(e,t,n)=>{var r=n(5726),a=n(6916),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))s.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),a=n(5726),s=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return s(e);var t=a(e),n=[];for(var o in e)("constructor"!=o||!t&&i.call(e,o))&&n.push(o);return n}},1573:(e,t,n)=>{var r=n(2958),a=n(1499),s=n(2634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),a=n(7361),s=n(9095),i=n(5403),o=n(9162),l=n(2634),u=n(327);e.exports=function(e,t){return i(e)&&o(t)?l(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?s(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},4259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(a);++r{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(2705),a=n(9932),s=n(1469),i=n(3448),o=r?r.prototype:void 0,l=o?o.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(s(t))return a(t,e)+"";if(i(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,n)=>{var r=n(9932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},1811:(e,t,n)=>{var r=n(1469),a=n(5403),s=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:s(i(e))}},180:(e,t,n)=>{var r=n(4259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(2118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a?r.Buffer:void 0,o=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),a=r?r.prototype:void 0,s=a?a.valueOf:void 0;e.exports=function(e){return s?Object(s.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(4865),a=n(9465);e.exports=function(e,t,n,s){var i=!n;n||(n={});for(var o=-1,l=t.length;++o{var r=n(8363),a=n(9551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(8363),a=n(1442);e.exports=function(e,t){return r(e,a(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},5063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,s=Object(t),i=r(t),o=i.length;o--;){var l=i[e?o:++a];if(!1===n(s[l],l,s))break}return t}}},8777:(e,t,n)=>{var r=n(852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},7114:(e,t,n)=>{var r=n(8668),a=n(2908),s=n(4757);e.exports=function(e,t,n,i,o,l){var u=1&n,c=e.length,h=t.length;if(c!=h&&!(u&&h>c))return!1;var f=l.get(e),d=l.get(t);if(f&&d)return f==t&&d==e;var p=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++p{var r=n(2705),a=n(1149),s=n(7813),i=n(7114),o=n(8776),l=n(1814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,h,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!h(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return s(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=o;case"[object Set]":var p=1&r;if(d||(d=l),e.size!=t.size&&!p)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(d(e),d(t),r,u,h,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,s,i,o){var l=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!l)return!1;for(var h=c;h--;){var f=u[h];if(!(l?f in t:a.call(t,f)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=l;++h{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),a=n(9551),s=n(3674);e.exports=function(e){return r(e,s,a)}},6904:(e,t,n)=>{var r=n(8866),a=n(1442),s=n(1704);e.exports=function(e){return r(e,s,a)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var s=t[n],i=e[s];t[n]=[s,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),a=n(7801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),a=Object.prototype,s=a.hasOwnProperty,i=a.toString,o=r?r.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[o]=n:delete e[o]),a}},9551:(e,t,n)=>{var r=n(4963),a=n(479),s=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,o=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return s.call(e,t)})))}:a;e.exports=o},1442:(e,t,n)=>{var r=n(2488),a=n(5924),s=n(9551),i=n(479),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,s(e)),e=a(e);return t}:i;e.exports=o},4160:(e,t,n)=>{var r=n(8552),a=n(7071),s=n(3818),i=n(8525),o=n(577),l=n(4239),u=n(346),c="[object Map]",h="[object Promise]",f="[object Set]",d="[object WeakMap]",p="[object DataView]",m=u(r),g=u(a),y=u(s),b=u(i),v=u(o),w=l;(r&&w(new r(new ArrayBuffer(1)))!=p||a&&w(new a)!=c||s&&w(s.resolve())!=h||i&&w(new i)!=f||o&&w(new o)!=d)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return p;case g:return c;case y:return h;case b:return f;case v:return d}return t}),e.exports=w},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),a=n(5694),s=n(1469),i=n(5776),o=n(1780),l=n(327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,h=!1;++u{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},1789:(e,t,n)=>{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),a=n(7157),s=n(3147),i=n(419),o=n(7133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return s(e);case"[object Set]":return new l;case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),a=n(5924),s=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||s(e)?{}:r(a(e))}},7285:(e,t,n)=>{var r=n(2705),a=n(5694),s=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||a(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(1469),a=n(3448),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!s.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,a=n(4429),s=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!s&&s in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),a=n(8407),s=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(s||a),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a&&r.process,o=function(){try{return s&&s.require&&s.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=o},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var r=n(1957),a="object"==typeof self&&self&&self.Object===Object&&self,s=r||a||Function("return this")();e.exports=s},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),a=n(7071),s=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new s(i)}return n.set(e,t),this.size=n.size,this}},2351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r{var r=n(8983),a=n(2689),s=n(8816);e.exports=function(e){return a(e)?s(e):r(e)}},3140:(e,t,n)=>{var r=n(4286),a=n(2689),s=n(676);e.exports=function(e){return a(e)?s(e):r(e)}},5514:(e,t,n)=>{var r=n(4523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(s,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},8816:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){for(var t=c.lastIndex=0;c.test(e);)++t;return t}},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){return e.match(c)||[]}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5564:(e,t,n)=>{var r=n(1078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},9095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),a=n(7005),s=Object.prototype,i=s.hasOwnProperty,o=s.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),a=n(1780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},1584:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return!0===e||!1===e||a(e)&&"[object Boolean]"==r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=n(5062),s=t&&!t.nodeType&&t,i=s&&e&&!e.nodeType&&e,o=i&&i.exports===s?r.Buffer:void 0,l=(o?o.isBuffer:void 0)||a;e.exports=l},3560:(e,t,n)=>{var r=n(4239),a=n(3218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),a=n(1717),s=n(1167),i=s&&s.isMap,o=i?a(i):r;e.exports=o},1763:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"number"==typeof e||a(e)&&"[object Number]"==r(e)}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},6347:(e,t,n)=>{var r=n(3933),a=n(1717),s=n(1167),i=s&&s.isRegExp,o=i?a(i):r;e.exports=o},2928:(e,t,n)=>{var r=n(9221),a=n(1717),s=n(1167),i=s&&s.isSet,o=i?a(i):r;e.exports=o},7037:(e,t,n)=>{var r=n(4239),a=n(1469),s=n(7005);e.exports=function(e){return"string"==typeof e||!a(e)&&s(e)&&"[object String]"==r(e)}},3448:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),a=n(1717),s=n(1167),i=s&&s.isTypedArray,o=i?a(i):r;e.exports=o},2353:e=>{e.exports=function(e){return void 0===e}},3674:(e,t,n)=>{var r=n(4636),a=n(280),s=n(8612);e.exports=function(e){return s(e)?r(e):a(e)}},1704:(e,t,n)=>{var r=n(4636),a=n(313),s=n(8612);e.exports=function(e){return s(e)?r(e,!0):a(e)}},6604:(e,t,n)=>{var r=n(9465),a=n(7816),s=n(7206);e.exports=function(e,t){var n={};return t=s(t,3),a(e,(function(e,a,s){r(n,a,t(e,a,s))})),n}},6162:(e,t,n)=>{var r=n(6029),a=n(3325),s=n(6557);e.exports=function(e){return e&&e.length?r(e,s,a):void 0}},8306:(e,t,n)=>{var r=n(3369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=n.cache;if(s.has(a))return s.get(a);var i=e.apply(this,r);return n.cache=s.set(a,i)||s,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},9601:(e,t,n)=>{var r=n(371),a=n(9152),s=n(5403),i=n(327);e.exports=function(e){return s(e)?r(i(e)):a(e)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8913:(e,t,n)=>{var r=n(2545),a=n(4290),s=n(554),i=4294967295,o=Math.min;e.exports=function(e,t){if((e=s(e))<1||e>9007199254740991)return[];var n=i,l=o(e,i);t=a(t),e-=i;for(var u=r(l,t);++n{var r=n(4841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,n)=>{var r=n(8601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},4841:(e,t,n)=>{var r=n(3218),a=n(3448),s=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var n=o.test(e);return n||l.test(e)?u(e.slice(2),n?2:8):i.test(e)?NaN:+e}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},691:(e,t,n)=>{var r=n(531),a=n(180),s=n(5512),i=n(3140),o=n(9833),l=/\s+$/;e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.replace(l,"");if(!e||!(t=r(t)))return e;var u=i(e),c=s(u,i(t))+1;return a(u,0,c).join("")}},9138:(e,t,n)=>{var r=n(531),a=n(180),s=n(2689),i=n(3218),o=n(6347),l=n(8016),u=n(3140),c=n(554),h=n(9833),f=/\w*$/;e.exports=function(e,t){var n=30,d="...";if(i(t)){var p="separator"in t?t.separator:p;n="length"in t?c(t.length):n,d="omission"in t?r(t.omission):d}var m=(e=h(e)).length;if(s(e)){var g=u(e);m=g.length}if(n>=m)return e;var y=n-l(d);if(y<1)return d;var b=g?a(g,0,y).join(""):e.slice(0,y);if(void 0===p)return b+d;if(g&&(y+=b.length-y),o(p)){if(e.slice(y).search(p)){var v,w=b;for(p.global||(p=RegExp(p.source,h(f.exec(p))+"g")),p.lastIndex=0;v=p.exec(w);)var _=v.index;b=b.slice(0,void 0===_?y:_)}}else if(e.indexOf(r(p),y)!=y){var x=b.lastIndexOf(p);x>-1&&(b=b.slice(0,x))}return b+d}},2628:(e,t,n)=>{var r=n(7415),a=n(3674);e.exports=function(e){return null==e?[]:r(e,a(e))}},3346:(e,t,n)=>{"use strict";n.d(t,{C2o:()=>kn,xJM:()=>nn,qoR:()=>xn,CAK:()=>_n});var r={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function a(){return(a=Object.assign||function(e){for(var t=1;tt.re?1:e.ret.im?1:e.im=0?"+":"")+r.toString()}(e,n);case"auto":var a=t&&void 0!==t.lowerExp?t.lowerExp:-3,s=t&&void 0!==t.upperExp?t.upperExp:5;if(e.isZero())return"0";var i=e.toSignificantDigits(n),o=i.e;return(o>=a&&o=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function $(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function P(e,t,n){var r,a=e.length;if(a!==t[n])throw new B(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new B(e.length,0)}else P(e,t,0)}function z(e,t){if(!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&e>=t)throw new M(e,t)}function W(e,t,n){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach((function(e){if(!(0,i.hj)(e)||!(0,g.U)(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+F(t)+")")})),U(e,t,0,void 0!==n?n:0),e}function U(e,t,n,r){var a,s,i=e.length,o=t[n],l=Math.min(i,o);if(e.length=o,n");h(e,t.max().map((function(e){return e+1})),r);var d=s.length;o(e._data,t,n,d,0)}return e}function o(e,t,n,r,a){var s=a===r-1,i=t.dimension(a);s?i.forEach((function(t,r){z(t),e[t]=n[r[0]]})):i.forEach((function(s,i){z(s),o(e[s],t,n[i[0]],r,a+1)}))}function u(e,t,n){if(0===t.length){for(var r=e._data;(0,i.kJ)(r);)r=r[0];return r}return e._size=t.slice(0),e._data=W(e._data,e._size,n),e}function h(e,t,n){for(var r=e._size.slice(0),a=!1;r.lengthr[s]&&(r[s]=t[s],a=!0);a&&u(e,r,n)}function f(e){for(var t=0,n=e.length;t0?e:0,r=e<0?-e:0,a=this._size[0],s=this._size[1],o=Math.min(a-r,s-t),l=[],u=0;u0?r:0,l=r<0?-r:0,u=e[0],c=e[1],h=Math.min(u-l,c-o);if((0,i.kJ)(t)){if(t.length!==h)throw new Error("Invalid value array length");s=function(e){return t[e]}}else if((0,i.SW)(t)){var f=t.size();if(1!==f.length||f[0]!==h)throw new Error("Invalid matrix length");s=function(e){return t.get([e])}}else s=function(){return t};a||(a=(0,i.l9)(s(0))?s(0).mul(0):0);var d=[];if(e.length>0){d=W(d,e,a);for(var p=0;p15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new t(e)}},{from:"number",to:"Complex",convert:function(e){return n||Q(e),new n(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return n||Q(e),new n(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(e){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return n||Q(e),new n(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){a||ee(e);var t=new a(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(e){t||Z(e);try{return new t(e)}catch(t){throw new Error('Cannot convert "'+e+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(e){a||ee(e);try{return new a(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(e){n||Q(e);try{return new n(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return t||Z(e),new t(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return a||ee(e),new a(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return r||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new r(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],s}));function Z(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function Q(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function ee(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}function te(e,t){(0,i.SW)(e)&&(e=e.valueOf());for(var n=0,r=e.length;nMath.pow(2,32)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));2147483648&t&&(t=-1*~(t-1))}return t},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(e){throw new Error("Second argument with valueless unit expected")},null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return ne(e,this)}});return t.fromJSON=function(e){return parseFloat(e.value)},t}))),pe="number",me="number, number";function ge(e){return Math.abs(e)}function ye(e,t){return e+t}function be(e,t){return e*t}function ve(e){return-e}ge.signature=pe,ye.signature=me,be.signature=me,ve.signature=pe;var we="apply",_e=f(we,["typed","isInteger"],(function(e){var t=e.typed,n=e.isInteger;return t(we,{"Array | Matrix, number | BigNumber, function":function(e,t,r){if(!n(t))throw new TypeError("Integer number expected for dimension");var a=Array.isArray(e)?$(e):e.size();if(t<0||t>=a.length)throw new M(t,a.length);return(0,i.SW)(e)?e.create(xe(e.valueOf(),t,r)):xe(e,t,r)}})}));function xe(e,t,n){var r,a,s;if(t<=0){if(Array.isArray(e[0])){for(s=function(e){var t,n,r=e.length,a=e[0].length,s=[];for(n=0;nMath.pow(2,31)-1||n<-Math.pow(2,31))throw new Error("Value must be in range [-2^31, 2^31-1]");if(!(0,g.U)(n))throw new Error("Value must be an integer");return n<0&&(n+=Math.pow(2,32)),"".concat(t).concat(n.toString(e))}}Math.pow(2,53);var Ce=["typed"];function Se(e,t){return f(e,Ce,(function(n){return(0,n.typed)(e,{number:Ee(t)})}))}Se("oct",8);n(2424);n(7905);var Ne=f("fraction",["typed","Fraction"],(function(e){var t=e.typed,n=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new n(e)},string:function(e){return new n(e)},"number, number":function(e,t){return new n(e,t)},null:function(e){return new n(0)},BigNumber:function(e){return new n(e.toString())},Fraction:function(e){return e},Object:function(e){return new n(e)},"Array | Matrix":function(e){return ne(e,this)}})})),Ie="unaryMinus",De=f(Ie,["typed"],(function(e){return(0,e.typed)(Ie,{number:ve,Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=this(e.value),t},"Array | Matrix":function(e){return ne(e,this,!0)}})})),Ae="addScalar",Te=f(Ae,["typed"],(function(e){return(0,e.typed)(Ae,{"number, number":ye,"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null===e.value||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n}})})),Re=f("sqrt",["config","typed","Complex"],(function(e){var t=e.config,n=e.typed,r=e.Complex;return n("sqrt",{number:a,Complex:function(e){return e.sqrt()},BigNumber:function(e){return!e.isNegative()||t.predictable?e.sqrt():a(e.toNumber())},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.pow(.5)}});function a(e){return isNaN(e)?NaN:e>=0||t.predictable?Math.sqrt(e):new r(e,0).sqrt()}})),Fe="conj",Oe=f(Fe,["typed"],(function(e){return(0,e.typed)(Fe,{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.conjugate()},"Array | Matrix":function(e){return ne(e,this)}})})),Be="mode",Me=f(Be,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Be,{"Array | Matrix":a,"...":function(e){return a(e)}});function a(e){if(0===(e=H(e.valueOf())).length)throw new Error("Cannot calculate mode of an empty array");for(var t={},a=[],s=0,i=0;is&&(s=t[o],a=[o])}return a}}));Se("bin",2);var $e=f("SparseMatrix",["typed","equalScalar","Matrix"],(function(e){var t=e.typed,n=e.equalScalar,r=e.Matrix;function a(e,t){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!(0,i.HD)(t))throw new Error("Invalid datatype: "+t);if((0,i.SW)(e))!function(e,t,n){"SparseMatrix"===t.type?(e._values=t._values?l(t._values):void 0,e._index=l(t._index),e._ptr=l(t._ptr),e._size=l(t._size),e._datatype=n||t._datatype):s(e,t.valueOf(),n||t._datatype)}(this,e,t);else if(e&&(0,i.kJ)(e.index)&&(0,i.kJ)(e.ptr)&&(0,i.kJ)(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if((0,i.kJ)(e))s(this,e,t);else{if(e)throw new TypeError("Unsupported type of data ("+(0,i.kM)(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}function s(e,r,a){e._values=[],e._index=[],e._ptr=[],e._datatype=a;var s=r.length,o=0,l=n,u=0;if((0,i.HD)(a)&&(l=t.find(n,[a,a])||n,u=t.convert(0,a)),s>0){var c=0;do{e._ptr.push(e._index.length);for(var h=0;h");for(var h=t.min()[0],f=t.min()[1],d=a[0],p=a[1],m=0;mm){for(h=m;hp){if(d){var g=0;for(h=0;hr-1&&(e._values.splice(f,1),e._index.splice(f,1),b++)}e._ptr[h]=e._values.length}return e._size[0]=r,e._size[1]=a,e}function p(e,t,n,r,a){var s,i,o=r[0],u=r[1],c=[];for(s=0;sl-1||o>u-1)&&(d(this,Math.max(s+1,l),Math.max(o+1,u),a),l=this._size[0],u=this._size[1]),z(s,l),z(o,u);var m=h(s,this._ptr[o],this._ptr[o+1],this._index);return m=0&&_<=s&&g(e._values[w],_-0,y-0)}else{for(var x={},k=b;k "+(this._values?F(this._values[l],e):"X");return a},a.prototype.toString=function(){return F(this.toArray())},a.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(e){if(e){if((0,i.l9)(e)&&(e=e.toNumber()),!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=e>0?e:0,n=e<0?-e:0,r=this._size[0],s=this._size[1],o=Math.min(r-n,s-t),l=[],u=[],c=[];c[0]=0;for(var h=t;h0?s:0,d=s<0?-s:0,p=e[0],m=e[1],y=Math.min(p-d,m-f);if((0,i.kJ)(r)){if(r.length!==y)throw new Error("Invalid value array length");h=function(e){return r[e]}}else if((0,i.SW)(r)){var b=r.size();if(1!==b.length||b[0]!==y)throw new Error("Invalid matrix length");h=function(e){return r.get([e])}}else h=function(){return r};for(var v=[],w=[],_=[],x=0;x=0&&k=l||a[c]!==t)){var d=r?r[u]:void 0;a.splice(c,0,t),r&&r.splice(c,0,d),a.splice(c<=u?u+1:u,1),r&&r.splice(c<=u?u+1:u,1)}else if(c=l||a[u]!==e)){var p=r?r[c]:void 0;a.splice(u,0,e),r&&r.splice(u,0,p),a.splice(u<=c?c+1:c,1),r&&r.splice(u<=c?c+1:c,1)}}},a}),{isClass:!0}),Pe="matrix",Le=f(Pe,["typed","Matrix","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,n=(e.Matrix,e.DenseMatrix),r=e.SparseMatrix;return t(Pe,{"":function(){return a([])},string:function(e){return a([],e)},"string, string":function(e,t){return a([],e,t)},Array:function(e){return a(e)},Matrix:function(e){return a(e,e.storage())},"Array | Matrix, string":a,"Array | Matrix, string, string":a});function a(e,t,a){if("dense"===t||"default"===t||void 0===t)return new n(e,a);if("sparse"===t)return new r(e,a);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}})),ze=f("algorithm01",["typed"],(function(e){var t=e.typed;return function(e,n,r,a){var s=e._data,i=e._size,o=e._datatype,l=n._values,u=n._index,c=n._ptr,h=n._size,f=n._datatype;if(i.length!==h.length)throw new B(i.length,h.length);if(i[0]!==h[0]||i[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+i+") must match Matrix B ("+h+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,p,m=i[0],g=i[1],y="string"==typeof o&&o===f?o:void 0,b=y?t.find(r,[y,y]):r,v=[];for(d=0;d0?n(p,0,f,f[0],i,u):[];return e.createDenseMatrix({data:m,size:f,datatype:s})};function n(e,t,r,a,s,i){var o=[];if(t===r.length-1)for(var l=0;l0?n(h,0,u,u[0],o,r,s):[];return e.createDenseMatrix({data:f,size:l(u),datatype:i})};function n(e,t,r,a,s,i,o){var l=[];if(t===r.length-1)for(var u=0;ut?1:-1},"number, number":function(e,t){return(0,g.RI)(e,t,n.epsilon)?0:e>t?1:-1},"BigNumber, BigNumber":function(e,t){return ce(e,t,n.epsilon)?new s(0):new s(e.cmp(t))},"Fraction, Fraction":function(e,t){return new i(e.compare(t))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return l(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return h(e,t,this)},"Array, Array":function(e,t){return this(a(e),a(t)).valueOf()},"Array, Matrix":function(e,t){return this(a(e),t)},"Matrix, Array":function(e,t){return this(e,a(t))},"SparseMatrix, any":function(e,t){return c(e,t,this,!1)},"DenseMatrix, any":function(e,t){return f(e,t,this,!1)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(a(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(a(t),e,this,!0).valueOf()}})})),at="smaller",st=f(at,["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,n=e.config,r=e.matrix,a=e.DenseMatrix,s=He({typed:t}),i=Ke({typed:t,DenseMatrix:a}),o=Xe({typed:t,DenseMatrix:a}),l=Ve({typed:t}),u=je({typed:t});return t(at,{"boolean, boolean":function(e,t){return et},"number, number":function(e,t){return e>t&&!(0,g.RI)(e,t,n.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!ce(e,t,n.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return i(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return o(e,t,this,!1)},"DenseMatrix, any":function(e,t){return u(e,t,this,!1)},"any, SparseMatrix":function(e,t){return o(t,e,this,!0)},"any, DenseMatrix":function(e,t){return u(t,e,this,!0)},"Array, any":function(e,t){return u(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return u(r(t),e,this,!0).valueOf()}})})),lt="unequal",ut=(f(lt,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(lt,{"any, any":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:!n(e,t)}})})),f("FibonacciHeap",["smaller","larger"],(function(e){var t=e.smaller,n=e.larger,r=1/Math.log((1+Math.sqrt(5))/2);function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function s(e,t,n){t.left.right=t.right,t.right.left=t.left,n.degree--,n.child===t&&(n.child=t.right),0===n.degree&&(n.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1}function i(e,t){var n=t.parent;n&&(t.mark?(s(e,t,n),i(n)):t.mark=!0)}a.prototype.type="FibonacciHeap",a.prototype.isFibonacciHeap=!0,a.prototype.insert=function(e,n){var r={key:e,value:n,degree:0};if(this._minimum){var a=this._minimum;r.left=a,r.right=a.right,a.right=r,r.right.left=r,t(e,a.key)&&(this._minimum=r)}else r.left=r,r.right=r,this._minimum=r;return this._size++,r},a.prototype.size=function(){return this._size},a.prototype.clear=function(){this._minimum=null,this._size=0},a.prototype.isEmpty=function(){return 0===this._size},a.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var a=this._minimum,s=e.degree,i=e.child;s>0;){var l=i.right;i.left.right=i.right,i.right.left=i.left,i.left=a,i.right=a.right,a.right=i,i.right.left=i,i.parent=null,i=l,s--}return e.left.right=e.right,e.right.left=e.left,a=e===e.right?null:function(e,a){var s,i=Math.floor(Math.log(a)*r)+1,l=new Array(i),u=0,c=e;if(c)for(u++,c=c.right;c!==e;)u++,c=c.right;for(;u>0;){for(var h=c.degree,f=c.right;s=l[h];){if(n(c.key,s.key)){var d=s;s=c,c=d}o(s,c),l[h]=null,h++}l[h]=c,c=f,u--}e=null;for(var p=0;pm?d++:p===m&&(u=c(u,h(s[f],l[d])),f++,d++)}return u}});function o(e,t){var n,r,a=l(e),s=l(t);if(1===a.length)n=a[0];else{if(2!==a.length||1!==a[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+a.join(", ")+")");n=a[0]}if(1===s.length)r=s[0];else{if(2!==s.length||1!==s[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+s.join(", ")+")");r=s[0]}if(n!==r)throw new RangeError("Vectors must have equal length ("+n+" != "+r+")");if(0===n)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function l(e){return(0,i.SW)(e)?e.size():s(e)}})),ft=f("abs",["typed"],(function(e){return(0,e.typed)("abs",{number:ge,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.abs()}})})),dt="multiply",pt=f(dt,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],(function(e){var t=e.typed,n=e.matrix,r=e.addScalar,a=e.multiplyScalar,s=e.equalScalar,o=e.dot,l=qe({typed:t,equalScalar:s}),c=je({typed:t});function h(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}}var f=t("_multiplyMatrixVector",{"DenseMatrix, any":function(e,n){var s,i=e._data,o=e._size,l=e._datatype,u=n._data,c=n._datatype,h=o[0],f=o[1],d=r,p=a;l&&c&&l===c&&"string"==typeof l&&(s=l,d=t.find(r,[s,s]),p=t.find(a,[s,s]));for(var m=[],g=0;gS)for(var I=0,D=0;D1)throw new Error("Only one dimensional matrices supported");return u(e.valueOf(),t,n)}if(Array.isArray(e))return u(e,t,n)}function u(e,t,a){if(t>=e.length)throw new Error("k out of bounds");for(var s=0;s=0){var h=e[u];e[u]=e[l],e[l]=h,--u}else++l;a(e[l],c)>0&&--l,t<=l?o=l:i=l+1}return e[t]}})),bt=f("bignumber",["typed","BigNumber"],(function(e){var t=e.typed,n=e.BigNumber;return t("bignumber",{"":function(){return new n(0)},number:function(e){return new n(e+"")},string:function(e){return new n(e)},BigNumber:function(e){return e},Fraction:function(e){return new n(e.n).div(e.d).times(e.s)},null:function(e){return new n(0)},"Array | Matrix":function(e){return ne(e,this)}})})),vt=f("numeric",["number","?bignumber","?fraction"],(function(e){var t=e.number,n=e.bignumber,r=e.fraction,a={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:function(e){return t(e)},BigNumber:n?function(e){return n(e)}:Ze,Fraction:r?function(e){return r(e)}:Qe};return function(e,t){var n=(0,i.kM)(e);if(!(n in a))throw new TypeError("Cannot convert "+e+' of type "'+n+'"; valid input types are '+Object.keys(a).join(", "));if(!(t in s))throw new TypeError("Cannot convert "+e+' to type "'+t+'"; valid output types are '+Object.keys(s).join(", "));return t===n?e:s[t](e)}}));function wt(e,t,n){var r;return-1!==String(e).indexOf("Unexpected type")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):-1!==String(e).indexOf("complex numbers")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):e}var _t="subtract",xt=f(_t,["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],(function(e){var t=e.typed,n=e.matrix,r=e.equalScalar,a=e.addScalar,s=e.unaryMinus,i=e.DenseMatrix,o=ze({typed:t}),l=He({typed:t}),u=Ge({typed:t,equalScalar:r}),c=Ue({typed:t,DenseMatrix:i}),h=Ve({typed:t}),f=je({typed:t});return t(_t,{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n},"SparseMatrix, SparseMatrix":function(e,t){return kt(e,t),u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return kt(e,t),l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return kt(e,t),o(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return kt(e,t),h(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return c(e,s(t),a)},"DenseMatrix, any":function(e,t){return f(e,t,this)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(n(t),e,this,!0).valueOf()}})}));function kt(e,t){var n=e.size(),r=t.size();if(n.length!==r.length)throw new B(n.length,r.length)}var Et="equal",Ct=(f(Et,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(Et,{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:n(e,t)}})})),"divideScalar"),St=f(Ct,["typed","numeric"],(function(e){var t=e.typed,n=e.numeric;return t(Ct,{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var r=e.clone(),a=n(1,(0,i.kM)(t));return r.value=this(null===r.value?r._normalize(a):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.clone();r=r.pow(-1);var a=n(1,(0,i.kM)(e));return r.value=this(e,null===t.value?t._normalize(a):t.value),r},"Unit, Unit":function(e,t){return e.divide(t)}})})),Nt=f("Spa",["addScalar","equalScalar","FibonacciHeap"],(function(e){var t=e.addScalar,n=e.equalScalar,r=e.FibonacciHeap;function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new r}return a.prototype.type="Spa",a.prototype.isSpa=!0,a.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var n=this._heap.insert(e,t);this._values[e]=n}},a.prototype.get=function(e){var t=this._values[e];return t?t.value:0},a.prototype.accumulate=function(e,n){var r=this._values[e];r?r.value=t(r.value,n):(r=this._heap.insert(e,n),this._values[e]=r)},a.prototype.forEach=function(e,t,r){var a=this._heap,s=this._values,i=[],o=a.extractMinimum();for(o&&i.push(o);o&&o.key<=t;)o.key>=e&&(n(o.value,0)||r(o.key,o.value,this)),(o=a.extractMinimum())&&i.push(o);for(var l=0;l0&&e.forEach(0,n-1,(function(t,n){d._forEachRow(t,b,v,w,(function(r,a){r>t&&e.accumulate(r,h(i(a,n)))}))}));var I,D,A,T,R=n,F=e.get(n),O=r(F);e.forEach(n+1,o-1,(function(e,t){var n=r(t);u(n,O)&&(R=e,O=n,F=t)})),n!==R&&(d._swapRows(n,R,_[1],b,v,w),d._swapRows(n,R,C[1],x,k,E),e.swap(n,R),D=R,A=N[I=n],T=N[D],S[A]=D,S[T]=I,N[I]=T,N[D]=A),e.forEach(0,o-1,(function(e,t){e<=n?(x.push(t),k.push(e)):(t=s(t,F),c(t,0)||(b.push(t),v.push(e)))}))};for(n=0;n0)for(t=0;t=t)break;for(var p=f,m=0;!d[i.p[p]];)d[i.p[p]]=!0,p=i.p[p],m++;m%2==0&&h++}return h%2==0?u:s(u)}(e.clone().valueOf(),u);throw new RangeError("Matrix must be square (size: "+F(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+F(t)+")")}}})})),At=f("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],(function(e){var t=e.typed,n=e.matrix,r=e.divideScalar,a=e.addScalar,s=e.multiply,o=e.unaryMinus,l=e.det,u=e.identity,c=e.abs;return t("inv",{"Array | Matrix":function(e){var t=(0,i.SW)(e)?e.size():$(e);switch(t.length){case 1:if(1===t[0])return(0,i.SW)(e)?n([r(1,e.valueOf()[0])]):[r(1,e[0])];throw new RangeError("Matrix must be square (size: "+F(t)+")");case 2:var a=t[0],s=t[1];if(a===s)return(0,i.SW)(e)?n(h(e.valueOf(),a,s),e.storage()):h(e,a,s);throw new RangeError("Matrix must be square (size: "+F(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+F(t)+")")}},any:function(e){return r(1,e)}});function h(e,t,n){var i,h,f,d,p;if(1===t){if(0===(d=e[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,d)]]}if(2===t){var m=l(e);if(0===m)throw Error("Cannot calculate inverse, determinant is zero");return[[r(e[1][1],m),r(o(e[0][1]),m)],[r(o(e[1][0]),m),r(e[0][0],m)]]}var g=e.concat();for(i=0;iv&&(v=c(g[i][b]),w=i),i++;if(0===v)throw Error("Cannot calculate inverse, determinant is zero");(i=w)!==b&&(p=g[b],g[b]=g[i],g[i]=p,p=y[b],y[b]=y[i],y[i]=p);var _=g[b],x=y[b];for(i=0;i0&&(i=e[o]);return u(i,r)}var c=s(e,(t-1)/2);return l(c)}catch(e){throw wt(e,"median")}}var l=t({"number | BigNumber | Complex | Unit":function(e){return e}}),u=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(e,t){return r(n(e,t),2)}});return t(Mt,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":function(e,t){throw new Error("median(A, dim) is not yet supported")},"...":function(e){if(function(e){for(var t=0;t{"use strict";n.d(t,{gammaG:()=>a.Yc,gammaNumber:()=>a.wZ,gammaP:()=>a.lG,acoshNumber:()=>s.cw,acotNumber:()=>s.y,acothNumber:()=>s.LJ,acscNumber:()=>s.VL,acschNumber:()=>s.F4,asecNumber:()=>s.zq,asechNumber:()=>s.Pe,asinhNumber:()=>s.Rm,atanhNumber:()=>s.Sz,cotNumber:()=>s.Nw,cothNumber:()=>s.ws,cscNumber:()=>s.c$,cschNumber:()=>s.zr,secNumber:()=>s.wX,sechNumber:()=>s.pL,sinhNumber:()=>s.T$,isNaNNumber:()=>i.kU,isNegativeNumber:()=>i.Tk,isPositiveNumber:()=>i.r,isZeroNumber:()=>i.hG});var r=n(6802);n.o(r,"acoshNumber")&&n.d(t,{acoshNumber:function(){return r.acoshNumber}}),n.o(r,"acotNumber")&&n.d(t,{acotNumber:function(){return r.acotNumber}}),n.o(r,"acothNumber")&&n.d(t,{acothNumber:function(){return r.acothNumber}}),n.o(r,"acscNumber")&&n.d(t,{acscNumber:function(){return r.acscNumber}}),n.o(r,"acschNumber")&&n.d(t,{acschNumber:function(){return r.acschNumber}}),n.o(r,"asecNumber")&&n.d(t,{asecNumber:function(){return r.asecNumber}}),n.o(r,"asechNumber")&&n.d(t,{asechNumber:function(){return r.asechNumber}}),n.o(r,"asinhNumber")&&n.d(t,{asinhNumber:function(){return r.asinhNumber}}),n.o(r,"atanhNumber")&&n.d(t,{atanhNumber:function(){return r.atanhNumber}}),n.o(r,"cotNumber")&&n.d(t,{cotNumber:function(){return r.cotNumber}}),n.o(r,"cothNumber")&&n.d(t,{cothNumber:function(){return r.cothNumber}}),n.o(r,"cscNumber")&&n.d(t,{cscNumber:function(){return r.cscNumber}}),n.o(r,"cschNumber")&&n.d(t,{cschNumber:function(){return r.cschNumber}}),n.o(r,"gammaG")&&n.d(t,{gammaG:function(){return r.gammaG}}),n.o(r,"gammaNumber")&&n.d(t,{gammaNumber:function(){return r.gammaNumber}}),n.o(r,"gammaP")&&n.d(t,{gammaP:function(){return r.gammaP}}),n.o(r,"isNaNNumber")&&n.d(t,{isNaNNumber:function(){return r.isNaNNumber}}),n.o(r,"isNegativeNumber")&&n.d(t,{isNegativeNumber:function(){return r.isNegativeNumber}}),n.o(r,"isPositiveNumber")&&n.d(t,{isPositiveNumber:function(){return r.isPositiveNumber}}),n.o(r,"isZeroNumber")&&n.d(t,{isZeroNumber:function(){return r.isZeroNumber}}),n.o(r,"secNumber")&&n.d(t,{secNumber:function(){return r.secNumber}}),n.o(r,"sechNumber")&&n.d(t,{sechNumber:function(){return r.sechNumber}}),n.o(r,"sinhNumber")&&n.d(t,{sinhNumber:function(){return r.sinhNumber}});var a=n(9065),s=n(333),i=n(6493)},9065:(e,t,n)=>{"use strict";n.d(t,{wZ:()=>s,Yc:()=>i,lG:()=>o});var r=n(4008),a=n(2424);function s(e){var t;if((0,r.U)(e))return e<=0?isFinite(e)?1/0:NaN:e>171?1/0:(0,a.O)(1,e-1);if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*s(1-e));if(e>=171.35)return 1/0;if(e>85){var n=e*e,l=n*e,u=l*e,c=u*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*n)-139/(51840*l)-571/(2488320*u)+163879/(209018880*c)+5246819/(75246796800*c*e))}--e,t=o[0];for(var h=1;h{},333:(e,t,n)=>{"use strict";n.d(t,{cw:()=>s,y:()=>i,LJ:()=>o,VL:()=>l,F4:()=>u,zq:()=>c,Pe:()=>h,Rm:()=>f,Sz:()=>d,Nw:()=>p,ws:()=>m,c$:()=>g,zr:()=>y,wX:()=>b,pL:()=>v,T$:()=>w});var r=n(4008),a="number";function s(e){return(0,r.__)(e)}function i(e){return Math.atan(1/e)}function o(e){return isFinite(e)?(Math.log((e+1)/e)+Math.log(e/(e-1)))/2:0}function l(e){return Math.asin(1/e)}function u(e){var t=1/e;return Math.log(t+Math.sqrt(t*t+1))}function c(e){return Math.acos(1/e)}function h(e){var t=1/e,n=Math.sqrt(t*t-1);return Math.log(n+t)}function f(e){return(0,r.Vf)(e)}function d(e){return(0,r.C8)(e)}function p(e){return 1/Math.tan(e)}function m(e){var t=Math.exp(2*e);return(t+1)/(t-1)}function g(e){return 1/Math.sin(e)}function y(e){return 0===e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*(0,r.Xx)(e)}function b(e){return 1/Math.cos(e)}function v(e){return 2/(Math.exp(e)+Math.exp(-e))}function w(e){return(0,r.R_)(e)}s.signature=a,i.signature=a,o.signature=a,l.signature=a,u.signature=a,c.signature=a,h.signature=a,f.signature=a,d.signature=a,p.signature=a,m.signature=a,g.signature=a,y.signature=a,b.signature=a,v.signature=a,w.signature=a},6493:(e,t,n)=>{"use strict";n.d(t,{Tk:()=>a,r:()=>s,hG:()=>i,kU:()=>o}),n(4008);var r="number";function a(e){return e<0}function s(e){return e>0}function i(e){return 0===e}function o(e){return Number.isNaN(e)}a.signature=r,s.signature=r,i.signature=r,o.signature=r},4080:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return"number"==typeof e}function s(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function i(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isComplex||!1}function o(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isFraction||!1}function l(e){return e&&!0===e.constructor.prototype.isUnit||!1}function u(e){return"string"==typeof e}n.d(t,{hj:()=>a,l9:()=>s,Mc:()=>i,yQ:()=>o,wr:()=>l,HD:()=>u,kJ:()=>c,SW:()=>h,uZ:()=>f,jH:()=>d,sA:()=>p,bR:()=>m,dh:()=>g,jn:()=>y,cB:()=>b,x1:()=>v,mf:()=>w,J_:()=>_,Kj:()=>x,Kn:()=>k,Ft:()=>E,o8:()=>C,Yz:()=>S,j0:()=>N,Bp:()=>I,zh:()=>D,tS:()=>A,nu:()=>T,l7:()=>R,VO:()=>F,Cl:()=>O,UG:()=>B,Lr:()=>M,bV:()=>$,Ig:()=>P,ex:()=>L,FG:()=>z,qg:()=>W,kM:()=>U});var c=Array.isArray;function h(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function f(e){return Array.isArray(e)||h(e)}function d(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function p(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function m(e){return e&&!0===e.constructor.prototype.isRange||!1}function g(e){return e&&!0===e.constructor.prototype.isIndex||!1}function y(e){return"boolean"==typeof e}function b(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function v(e){return e&&!0===e.constructor.prototype.isHelp||!1}function w(e){return"function"==typeof e}function _(e){return e instanceof Date}function x(e){return e instanceof RegExp}function k(e){return!(!e||"object"!==r(e)||e.constructor!==Object||i(e)||o(e))}function E(e){return null===e}function C(e){return void 0===e}function S(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function N(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function I(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function A(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function O(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function B(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function M(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function $(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function P(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function L(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function z(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function W(e){return e&&!0===e.constructor.prototype.isChain||!1}function U(e){var t=r(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":s(e)?"BigNumber":i(e)?"Complex":o(e)?"Fraction":h(e)?"Matrix":l(e)?"Unit":g(e)?"Index":m(e)?"Range":b(e)?"ResultSet":B(e)?e.type:W(e)?"Chain":v(e)?"Help":"Object":"function"===t?"Function":t}},4008:(e,t,n)=>{"use strict";n.d(t,{U:()=>a,Xx:()=>s,k3:()=>i,mv:()=>o,Kr:()=>l,eK:()=>u,t$:()=>c,WU:()=>h,FH:()=>d,nz:()=>y,RI:()=>v,__:()=>w,Vf:()=>_,C8:()=>x,f9:()=>k,R_:()=>E,AE:()=>C});var r=n(4080);function a(e){return"boolean"==typeof e||!!isFinite(e)&&e===Math.round(e)}var s=Math.sign||function(e){return e>0?1:e<0?-1:0},i=Math.log2||function(e){return Math.log(e)/Math.LN2},o=Math.log10||function(e){return Math.log(e)/Math.LN10},l=Math.log1p||function(e){return Math.log(e+1)},u=Math.cbrt||function(e){if(0===e)return e;var t,n=e<0;return n&&(e=-e),t=isFinite(e)?(e/((t=Math.exp(Math.log(e)/3))*t)+2*t)/3:e,n?-t:t},c=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function h(e,t){if("function"==typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n,a="auto";switch(t&&(t.notation&&(a=t.notation),(0,r.hj)(t)?n=t:(0,r.hj)(t.precision)&&(n=t.precision)),a){case"fixed":return d(e,n);case"exponential":return p(e,n);case"engineering":return function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=m(f(e),t),a=n.exponent,s=n.coefficients,i=a%3==0?a:a<0?a-3-a%3:a-a%3;if((0,r.hj)(t))for(;t>s.length||a-i+1>s.length;)s.push(0);else for(var o=Math.abs(a-i)-(s.length-1),l=0;l0;)c++,u--;var h=s.slice(c).join(""),d=(0,r.hj)(t)&&h.length||h.match(/[1-9]/)?"."+h:"",p=s.slice(0,c).join("")+d+"e"+(a>=0?"+":"")+i.toString();return n.sign+p}(e,n);case"auto":return function(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&void 0!==n.lowerExp?n.lowerExp:-3,a=n&&void 0!==n.upperExp?n.upperExp:5,s=f(e),i=t?m(s,t):s;if(i.exponent=a)return p(e,t);var o=i.coefficients,l=i.exponent;o.length0?l:0;return u<(o=g(-l).concat(o)).length-1&&o.splice(u+1,0,"."),i.sign+o.join("")}(e,n,t&&t).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", or "fixed".')}}function f(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var n=t[1],r=t[2],a=parseFloat(t[4]||"0"),s=r.indexOf(".");a+=-1!==s?s-1:r.length-1;var i=r.replace(".","").replace(/^0*/,(function(e){return a-=e.length,""})).replace(/0*$/,"").split("").map((function(e){return parseInt(e)}));return 0===i.length&&(i.push(0),a++),{sign:n,coefficients:i,exponent:a}}function d(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=f(e),r="number"==typeof t?m(n,n.exponent+1+t):n,a=r.coefficients,s=r.exponent+1,i=s+(t||0);return a.length0?"."+a.join(""):"")+"e"+(s>=0?"+":"")+s}function m(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t&&r.splice(t,r.length-t)[0]>=5){var a=t-1;for(r[a]++;10===r[a];)r.pop(),0===a&&(r.unshift(0),n.exponent++,a++),r[--a]++}return n}function g(e){for(var t=[],n=0;n{"use strict";function r(e,t){if(t>1;return r(e,n)*r(n+1,t)}n.d(t,{O:()=>r})},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",o=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,s=Object.create(a.prototype),i=new I(r||[]);return s._invoke=function(e,t,n){var r=h;return function(a,s){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===a)throw s;return A()}for(n.method=a,n.arg=s;;){var i=n.delegate;if(i){var o=C(i,n);if(o){if(o===m)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(e,n,i),s}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",m={};function g(){}function y(){}function b(){}var v={};v[s]=function(){return this};var w=Object.getPrototypeOf,_=w&&w(w(D([])));_&&_!==n&&r.call(_,s)&&(v=_);var x=b.prototype=g.prototype=Object.create(v);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,s,i,o){var l=c(e[a],e,s);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,i,o)}),(function(e){n("throw",e,i,o)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,o)}))}o(l.arg)}var a;this._invoke=function(e,r){function s(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(s,s):s()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=c(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var s=a.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function D(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function n(){for(;++a=0;--s){var i=this.tryEntries[s],o=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:D(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},7905:(e,t,n)=>{"use strict";var r=256,a=[],s=void 0===n.g?window:n.g,i=Math.pow(r,6),o=Math.pow(2,52),l=2*o,u=255,c=Math.random;function h(e){var t,n=e.length,a=this,s=0,i=a.i=a.j=0,o=a.S=[];for(n||(e=[n++]);s=l;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=c},d(Math.random(),a)},6377:(e,t,n)=>{var r=n(4832),a=n(8652),s=n(801),i=n(2030),o=n(3618),l=n(9049),u=n(1971);u.alea=r,u.xor128=a,u.xorwow=s,u.xorshift7=i,u.xor4096=o,u.tychei=l,e.exports=u},4832:function(e,t,n){var r;!function(e,a,s){function i(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},9049:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},8652:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},3618:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,s=t.i;return t.w=r=r+1640531527|0,n=a[s+34&127],e=a[s=s+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[s]=n^e,t.i=s,n+(r^r>>>16)|0},function(e,t){var n,r,a,s,i,o=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,s=-32;s>>15,r^=r<<4,r^=r>>>13,s>=0&&(i=i+1640531527|0,a=0==(n=o[127&s]^=r+i)?a+1:0);for(a>=128&&(o[127&(t&&t.length||0)]=-1),a=127,s=512;s>0;--s)r=o[a+34&127],n=o[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,o[a]=r^n;e.w=i,e.X=o,e.i=a}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},2030:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},801:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},1971:(e,t,n)=>{var r;!function(a,s){var i,o=this,l=256,u=s.pow(l,6),c=s.pow(2,52),h=2*c,f=255;function d(e,t,n){var r=[],f=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),d=new p(r),v=function(){for(var e=d.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return v.int32=function(){return 0|d.g(4)},v.quick=function(){return d.g(4)/4294967296},v.double=v,y(b(d.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,d),e.state=function(){return m(d,{})}),n?(s.random=e,t):e})(v,f,"global"in t?t.global:this==s,t.state)}function p(e){var t,n=e.length,r=this,a=0,s=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);a{"use strict";const r=n(1903),a=n(4658),s=n(5413),i=["","›"],o=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=[...e.normalize()];n="number"==typeof n?n:l.length;let u=!1,c=null,h=0,f="";for(const[d,p]of l.entries()){let l=!1;if(i.includes(p)){u=!0;const t=/\d[^m]*/.exec(e.slice(d,d+18));c=39===t?null:t}else u&&"m"===p&&(u=!1,l=!0);if(u||l||++h,!a({exact:!0}).test(p)&&r(p.codePointAt())&&++h,h>t&&h<=n)f+=p;else if(h!==t||u||null===c||39===c){if(h>=n){null!==c&&(f+=o(s.codes.get(parseInt(c,10))||39));break}}else f+=o(c)}return f}},5413:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(6465),a=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},s=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const a=r[n];t[n]={open:`[${a[0]}m`,close:`[${a[1]}m`},r[n]=t[n],e.set(a[0],a[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,o=(e,t,n)=>[e,t,n];t.color.close="",t.bgColor.close="",t.color.ansi={ansi:a(n,0)},t.color.ansi256={ansi256:s(n,0)},t.color.ansi16m={rgb:i(o,0)},t.bgColor.ansi={ansi:a(n,10)},t.bgColor.ansi256={ansi256:s(n,10)},t.bgColor.ansi16m={rgb:i(o,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=a(n.ansi16,0),t.bgColor.ansi[e]=a(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=s(n.ansi256,0),t.bgColor.ansi256[e]=s(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=i(n.rgb,0),t.bgColor.ansi16m[e]=i(n.rgb,10))}return t}})},1025:(e,t,n)=>{var r=n(3645),a={};for(var s in r)r.hasOwnProperty(s)&&(a[r[s]]=s);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in i)if(i.hasOwnProperty(o)){if(!("channels"in i[o]))throw new Error("missing channels property: "+o);if(!("labels"in i[o]))throw new Error("missing channel labels property: "+o);if(i[o].labels.length!==i[o].channels)throw new Error("channel and label counts mismatch: "+o);var l=i[o].channels,u=i[o].labels;delete i[o].channels,delete i[o].labels,Object.defineProperty(i[o],"channels",{value:l}),Object.defineProperty(i[o],"labels",{value:u})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,a=e[1]/255,s=e[2]/255,i=Math.min(r,a,s),o=Math.max(r,a,s),l=o-i;return o===i?t=0:r===o?t=(a-s)/l:a===o?t=2+(s-r)/l:s===o&&(t=4+(r-a)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(i+o)/2,[t,100*(o===i?0:n<=.5?l/(o+i):l/(2-o-i)),100*n]},i.rgb.hsv=function(e){var t,n,r,a,s,i=e[0]/255,o=e[1]/255,l=e[2]/255,u=Math.max(i,o,l),c=u-Math.min(i,o,l),h=function(e){return(u-e)/6/c+.5};return 0===c?a=s=0:(s=c/u,t=h(i),n=h(o),r=h(l),i===u?a=r-n:o===u?a=1/3+t-r:l===u&&(a=2/3+n-t),a<0?a+=1:a>1&&(a-=1)),[360*a,100*s,100*u]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-a)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-a-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var t=a[e];if(t)return t;var n,s,i,o=1/0;for(var l in r)if(r.hasOwnProperty(l)){var u=(s=e,i=r[l],Math.pow(s[0]-i[0],2)+Math.pow(s[1]-i[1],2)+Math.pow(s[2]-i[2],2));u.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},i.hsl.rgb=function(e){var t,n,r,a,s,i=e[0]/360,o=e[1]/100,l=e[2]/100;if(0===o)return[s=255*l,s,s];t=2*l-(n=l<.5?l*(1+o):l+o-l*o),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,s=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,a[u]=255*s;return a},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,a=n,s=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=s<=1?s:2-s,[t,100*(0===r?2*a/(s+a):2*n/(r+n)),(r+n)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,a=Math.floor(t)%6,s=t-Math.floor(t),i=255*r*(1-n),o=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,a){case 0:return[r,l,i];case 1:return[o,r,i];case 2:return[i,r,l];case 3:return[i,o,r];case 4:return[l,i,r];case 5:return[r,i,o]}},i.hsv.hsl=function(e){var t,n,r,a=e[0],s=e[1]/100,i=e[2]/100,o=Math.max(i,.01);return r=(2-s)*i,n=s*o,[a,100*(n=(n/=(t=(2-s)*o)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,a,s,i,o,l=e[0]/360,u=e[1]/100,c=e[2]/100,h=u+c;switch(h>1&&(u/=h,c/=h),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),a=u+r*((n=1-c)-u),t){default:case 6:case 0:s=n,i=a,o=u;break;case 1:s=a,i=n,o=u;break;case 2:s=u,i=n,o=a;break;case 3:s=u,i=a,o=n;break;case 4:s=a,i=u,o=n;break;case 5:s=n,i=u,o=a}return[255*s,255*i,255*o]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,a=e[3]/100;return[255*(1-Math.min(1,t*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},i.xyz.rgb=function(e){var t,n,r,a=e[0]/100,s=e[1]/100,i=e[2]/100;return n=-.9689*a+1.8758*s+.0415*i,r=.0557*a+-.204*s+1.057*i,t=(t=3.2406*a+-1.5372*s+-.4986*i)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,a=e[0];t=e[1]/500+(n=(a+16)/116),r=n-e[2]/200;var s=Math.pow(n,3),i=Math.pow(t,3),o=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,r=o>.008856?o:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],a=e[2];return(t=360*Math.atan2(a,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+a*a),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],a=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(a=Math.round(a/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255,s=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),o=s-i;return t=o<=0?0:s===n?(r-a)/o%6:s===r?2+(a-n)/o:4+(n-r)/o+4,t/=6,[360*(t%=1),100*o,100*(o<1?i/(1-o):0)]},i.hsl.hcg=function(e){var t,n=e[1]/100,r=e[2]/100,a=0;return(t=r<.5?2*n*r:2*n*(1-r))<1&&(a=(r-.5*t)/(1-t)),[e[0],100*t,100*a]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var a,s=[0,0,0],i=t%1*6,o=i%1,l=1-o;switch(Math.floor(i)){case 0:s[0]=1,s[1]=o,s[2]=0;break;case 1:s[0]=l,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=o;break;case 3:s[0]=0,s[1]=l,s[2]=1;break;case 4:s[0]=o,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=l}return a=(1-n)*r,[255*(n*s[0]+a),255*(n*s[1]+a),255*(n*s[2]+a)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},6465:(e,t,n)=>{var r=n(1025),a=n(3340),s={};Object.keys(r).forEach((function(e){s[e]={},Object.defineProperty(s[e],"channels",{value:r[e].channels}),Object.defineProperty(s[e],"labels",{value:r[e].labels});var t=a(e);Object.keys(t).forEach((function(n){var r=t[n];s[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,a=0;a1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=s},3340:(e,t,n)=>{var r=n(1025);function a(e,t){return function(n){return t(e(n))}}function s(e,t){for(var n=[t[e].parent,e],s=r[t[e].parent][e],i=t[e].parent;t[i].parent;)n.unshift(t[i].parent),s=a(r[t[i].parent][i],s),i=t[i].parent;return s.conversion=n,s}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,a=0;a{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},6484:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(1763)),a=i(n(7037)),s=i(n(3393));function i(e){return e&&e.__esModule?e:{default:e}}const o=["left","right","center"];t.default=(e,t,n)=>{if(!(0,a.default)(e))throw new TypeError("Subject parameter value must be a string.");if(!(0,r.default)(t))throw new TypeError("Container width parameter value must be a number.");const i=(0,s.default)(e);if(i>t)throw new Error("Subject parameter value width cannot be greater than the container width.");if(!(0,a.default)(n))throw new TypeError("Alignment parameter value must be a string.");if(!o.includes(n))throw new Error("Alignment parameter value must be a known alignment parameter value (left, right, center).");if(0===i)return" ".repeat(t);const l=t-i;return"left"===n?((e,t)=>e+" ".repeat(t))(e,l):"right"===n?((e,t)=>" ".repeat(t)+e)(e,l):((e,t)=>{let n;return n=t/2,n%2==0?" ".repeat(n)+e+" ".repeat(n):(n=Math.floor(n)," ".repeat(n)+e+" ".repeat(n+1))})(e,l)}},6411:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(3393)),a=s(n(6484));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const s=t.columns[n];return(0,r.default)(e)===s.width?e:(0,a.default)(e,s.width,s.alignment)}))))},8247:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(7037)),a=s(n(7810));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n=!1)=>{if(!(0,r.default)(e))throw new TypeError("Value must be a string.");if(!Number.isInteger(t))throw new TypeError("Column width must be an integer.");if(t<1)throw new Error("Column width must be greater than 0.");return(0,a.default)(e,t,n).length}},6078:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(3393))&&r.__esModule?r:{default:r};t.default=e=>e.map((e=>Math.max(...e.split("\n").map((e=>(0,a.default)(e))))))},3819:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(6078))&&r.__esModule?r:{default:r};t.default=e=>{if(!e[0])throw new Error("Dataset must have at least one row.");const t=new Array(e[0].length).fill(0);return e.forEach((e=>{(0,a.default)(e).forEach(((e,n)=>{t[n]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(6162)),a=o(n(1584)),s=o(n(1763)),i=o(n(8247));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{const n=e[0].length,o=[];return e.forEach((e=>{const l=new Array(n).fill(1);e.forEach(((e,n)=>{if(!(0,s.default)(t.columns[n].width))throw new TypeError("column[index].width must be a number.");if(!(0,a.default)(t.columns[n].wrapWord))throw new TypeError("column[index].wrapWord must be a boolean.");l[n]=(0,i.default)(e,t.columns[n].width,t.columns[n].wrapWord)})),o.push((0,r.default)(l))})),o}},6955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(6604)),a=m(n(2628)),s=m(n(691)),i=m(n(7884)),o=m(n(9045)),l=n(8417),u=m(n(9466)),c=m(n(8381)),h=m(n(1741)),f=m(n(6411)),d=m(n(4220)),p=m(n(5970));function m(e){return e&&e.__esModule?e:{default:e}}const g=(e,t)=>{let n;n=(0,u.default)(e),n=(0,c.default)(e,t);const r=(0,p.default)(n,t);return n=(0,h.default)(n,r,t),n=(0,f.default)(n,t),n=(0,d.default)(n,t),n};t.default=(e={})=>{const t=(0,i.default)(e),n=(0,a.default)((0,r.default)(t.columns,(e=>e.width+e.paddingLeft+e.paddingRight)));let u;return u=!0,{write:e=>{if(e.length!==t.columnCount)throw new Error("Row cell count does not match the config.columnCount.");return u?(u=!1,((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a;a="",a+=(0,l.drawBorderTop)(t,n.border),a+=r,a+=(0,l.drawBorderBottom)(t,n.border),a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)):((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a="";const i=(0,l.drawBorderBottom)(t,n.border);"\n"!==i&&(a="\r"),a+=(0,l.drawBorderJoin)(t,n.border),a+=r,a+=i,a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)}}}},8417:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawBorderTop=t.drawBorderJoin=t.drawBorderBottom=t.drawBorder=void 0;const n=(e,t)=>{const n=e.map((e=>t.body.repeat(e))).join(t.join);return t.left+n+t.right+"\n"};t.drawBorder=n,t.drawBorderTop=(e,t)=>{const r=n(e,{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight});return"\n"===r?"":r},t.drawBorderJoin=(e,t)=>n(e,{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight}),t.drawBorderBottom=(e,t)=>n(e,{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight})},9045:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>t.bodyLeft+e.join(t.bodyJoin)+t.bodyRight+"\n"},9658:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=n(8417),s=(r=n(9045))&&r.__esModule?r:{default:r};t.default=(e,t,n,r,i,o)=>{let l,u,c;const h=e.length;return u=0,l="",i(u,h)&&(l+=(0,a.drawBorderTop)(n,t)),e.forEach(((e,f)=>{l+=(0,s.default)(e,t),c||(c=r[u],u++),c--,!o&&0===c&&f!==h-1&&i(u,h)&&(l+=(0,a.drawBorderJoin)(n,t))})),i(u,h)&&(l+=(0,a.drawBorderBottom)(n,t)),l}},9487:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if("honeywell"===e)return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼"};if("norc"===e)return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼"};if("ramac"===e)return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|"};if("void"===e)return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:""};throw new Error('Unknown border template "'+e+'".')}},107:(e,t,n)=>{"use strict";Object.defineProperty(t,"Kz",{enumerable:!0,get:function(){return r.default}});var r=a(n(3848));a(n(6955)),a(n(9487));function a(e){return e&&e.__esModule?e:{default:e}}},6482:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(361)),a=u(n(2353)),s=u(n(8913)),i=u(n(9487)),o=u(n(11)),l=u(n(3819));function u(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{(0,o.default)("config.json",t);const n=(0,r.default)(t);return n.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(n.border),n.columns=((e,t={},n={})=>{const r=(0,l.default)(e);return(0,s.default)(e[0].length,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,width:r[e],wrapWord:!1},n,t[e])})),t})(e,n.columns,n.columnDefault),n.drawHorizontalLine||(n.drawHorizontalLine=()=>!0),void 0===n.singleLine&&(n.singleLine=!1),n}},7884:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(361)),a=l(n(2353)),s=l(n(8913)),i=l(n(9487)),o=l(n(11));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e={})=>{(0,o.default)("streamConfig.json",e);const t=(0,r.default)(e);if(!t.columnDefault||!t.columnDefault.width)throw new Error("Must provide config.columnDefault.width when creating a stream.");if(!t.columnCount)throw new Error("Must provide config.columnCount.");return t.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(t.border),t.columns=((e,t={},n={})=>((0,s.default)(e,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,wrapWord:!1},n,t[e])})),t))(t.columnCount,t.columns,t.columnDefault),t}},1741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(5564)),a=i(n(8913)),s=i(n(7810));function i(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const i=e[0].length,o=e.map(((e,r)=>{const o=(0,a.default)(t[r],(()=>new Array(i).fill("")));return e.forEach(((e,t)=>{(0,s.default)(e,n.columns[t].width,n.columns[t].wrapWord).forEach(((e,n)=>{o[n][t]=e}))})),o}));return(0,r.default)(o)}},4220:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const r=t.columns[n];return" ".repeat(r.paddingLeft)+e+" ".repeat(r.paddingRight)}))))},9466:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.map((e=>e.map(String)))},3848:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(9658)),a=d(n(6078)),s=d(n(6482)),i=d(n(5970)),o=d(n(1741)),l=d(n(6411)),u=d(n(4220)),c=d(n(3522)),h=d(n(9466)),f=d(n(8381));function d(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{let n;(0,c.default)(e),n=(0,h.default)(e);const d=(0,s.default)(n,t);n=(0,f.default)(e,d);const p=(0,i.default)(n,d);n=(0,o.default)(n,p,d),n=(0,l.default)(n,d),n=(0,u.default)(n,d);const m=(0,a.default)(n[0]);return(0,r.default)(n,d.border,m,p,d.drawHorizontalLine,d.singleLine)}},8381:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(9138))&&r.__esModule?r:{default:r};t.default=(e,t)=>e.map((e=>e.map(((e,n)=>(0,a.default)(e,{length:t.columns[n].truncate})))))},11:(e,t,n)=>{"use strict";var r=n(4538),a=function(){new RegExp("^[0-9]+$");var e=[],t=(new RegExp("^[0-9]+$"),function t(r,a,s,i,o){var l=null,u=0;if(void 0===o&&(o=r),r&&"object"==typeof r&&!Array.isArray(r)){for(var c in r)if(!t.schema.properties.hasOwnProperty(c)){var h={keyword:"additionalProperties",dataPath:(a||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}void 0!==r.topBody&&(n(r.topBody,(a||"")+".topBody",r,"topBody",o)||(u=(l=null===l?n.errors:l.concat(n.errors)).length)),void 0!==r.topJoin&&(e[2](r.topJoin,(a||"")+".topJoin",r,"topJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topLeft&&(e[2](r.topLeft,(a||"")+".topLeft",r,"topLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topRight&&(e[2](r.topRight,(a||"")+".topRight",r,"topRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomBody&&(e[2](r.bottomBody,(a||"")+".bottomBody",r,"bottomBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomJoin&&(e[2](r.bottomJoin,(a||"")+".bottomJoin",r,"bottomJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomLeft&&(e[2](r.bottomLeft,(a||"")+".bottomLeft",r,"bottomLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomRight&&(e[2](r.bottomRight,(a||"")+".bottomRight",r,"bottomRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyLeft&&(e[2](r.bodyLeft,(a||"")+".bodyLeft",r,"bodyLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyRight&&(e[2](r.bodyRight,(a||"")+".bodyRight",r,"bodyRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyJoin&&(e[2](r.bodyJoin,(a||"")+".bodyJoin",r,"bodyJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinBody&&(e[2](r.joinBody,(a||"")+".joinBody",r,"joinBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinLeft&&(e[2](r.joinLeft,(a||"")+".joinLeft",r,"joinLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinRight&&(e[2](r.joinRight,(a||"")+".joinRight",r,"joinRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinJoin&&(e[2](r.joinJoin,(a||"")+".joinJoin",r,"joinJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length))}else h={keyword:"type",dataPath:(a||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return t.errors=l,0===u});t.schema={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"}},additionalProperties:!1},t.errors=null,e[1]=t;var n=(new RegExp("^[0-9]+$"),function e(t,n,r,a,s){var i=null,o=0;if("string"!=typeof t){var l={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"string"},message:"should be string"};null===i?i=[l]:i.push(l),o++}return e.errors=i,0===o});n.schema={type:"string"},n.errors=null,e[2]=n;var a,s=(a=new RegExp("^[0-9]+$"),function e(t,n,r,s,o){var l=null,u=0;if(void 0===o&&(o=t),t&&"object"==typeof t&&!Array.isArray(t)){for(var c in t)if(!a.test(c)){var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}for(var c in t)a.test(c)&&(i(t[c],(n||"")+"['"+c+"']",t,c,o)||(u=(l=null===l?i.errors:l.concat(i.errors)).length))}else h={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return e.errors=l,0===u});s.schema={type:"object",patternProperties:{"^[0-9]+$":{$ref:"#/definitions/column"}},additionalProperties:!1},s.errors=null,e[3]=s;var i=(new RegExp("^[0-9]+$"),function e(t,n,a,s,i){var o=null,l=0;if(t&&"object"==typeof t&&!Array.isArray(t)){var u=!0;for(var c in t)if("alignment"!=c&&"width"!=c&&"wrapWord"!=c&&"truncate"!=c&&"paddingLeft"!=c&&"paddingRight"!=c){u=!1;var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===o?o=[h]:o.push(h),l++}var f=t.alignment;if(void 0!==f){var d=l;"string"!=typeof f&&(h={keyword:"type",dataPath:(n||"")+".alignment",schemaPath:"#/properties/alignment/type",params:{type:"string"},message:"should be string"},null===o?o=[h]:o.push(h),l++);var p=e.schema.properties.alignment.enum;u=!1;for(var m=0;m{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if(!Array.isArray(e))throw new TypeError("Table data must be an array.");if(0===e.length)throw new Error("Table must define at least one row.");if(0===e[0].length)throw new Error("Table must define at least one column.");const t=e[0].length;var n=!0,r=!1,a=void 0;try{for(var s,i=e[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){const e=s.value;if(!Array.isArray(e))throw new TypeError("Table row data must be an array.");if(e.length!==t)throw new Error("Table must have a consistent number of cells.");var o=!0,l=!1,u=void 0;try{for(var c,h=e[Symbol.iterator]();!(o=(c=h.next()).done);o=!0){const e=c.value;if(/[\u0001-\u0006\u0008-\u0009\u000B-\u001A]/.test(e))throw new Error("Table data must not contain control characters.")}}catch(e){l=!0,u=e}finally{try{o||null==h.return||h.return()}finally{if(l)throw u}}}}catch(e){r=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw a}}}},7810:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(6213)),a=s(n(8624));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const s=e.split("\n");for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[];do{s.push((0,r.default)(n,0,t)),n=(0,r.default)(n,t).trim()}while((0,a.default)(n));return s}},8624:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[],i=new RegExp("(^.{1,"+t+"}(\\s+|$))|(^.{1,"+(t-1)+"}(\\\\|/|_|\\.|,|;|-))");do{let e;e=n.match(i),e?(e=e[0],n=(0,r.default)(n,(0,a.default)(e)),e=e.trim()):(e=(0,r.default)(n,0,t),n=(0,r.default)(n,t)),s.push(e)}while((0,a.default)(n));return s}},5113:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},8175:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},3393:(e,t,n)=>{"use strict";const r=n(3377),a=n(1903),s=n(8175)();e.exports=e=>{if("string"!=typeof(e=e.replace(s," "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||r>=768&&r<=879||(r>65535&&n++,t+=a(r)?2:1)}return t}},3377:(e,t,n)=>{"use strict";const r=n(5113),a=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=a,e.exports.default=a},2287:function(e,t){"use strict";var n,r;void 0===(r="function"==typeof(n=function(){function e(){return!0}function t(){return!1}function n(){}return function r(){var a=[{name:"number",test:function(e){return"number"==typeof e}},{name:"string",test:function(e){return"string"==typeof e}},{name:"boolean",test:function(e){return"boolean"==typeof e}},{name:"Function",test:function(e){return"function"==typeof e}},{name:"Array",test:Array.isArray},{name:"Date",test:function(e){return e instanceof Date}},{name:"RegExp",test:function(e){return e instanceof RegExp}},{name:"Object",test:function(e){return"object"==typeof e&&null!==e&&e.constructor===Object}},{name:"null",test:function(e){return null===e}},{name:"undefined",test:function(e){return void 0===e}}],s={name:"any",test:e},i=[],o=[],l={types:a,conversions:o,ignore:i};function u(e){var t=L(l.types,(function(t){return t.name===e}));if(t)return t;if("any"===e)return s;var n=L(l.types,(function(t){return t.name.toLowerCase()===e.toLowerCase()}));throw new TypeError('Unknown type "'+e+'"'+(n?'. Did you mean "'+n.name+'"?':""))}function c(e){return e===s?999:l.types.indexOf(e)}function h(e){var t=L(l.types,(function(t){return t.test(e)}));if(t)return t.name;throw new TypeError("Value has unknown type. Value: "+e)}function f(e){return e.map((function(e){var t=e.types.map(w);return(e.restParam?"...":"")+t.join("|")})).join(",")}function d(e,t){var n=0===e.indexOf("..."),r=(n?e.length>3?e.slice(3):"any":e).split("|").map(R).filter(F).filter(T),a=function(e,t){var n={};return e.forEach((function(e){-1!==t.indexOf(e.from)||-1===t.indexOf(e.to)||n[e.from]||(n[e.from]=e)})),Object.keys(n).map((function(e){return n[e]}))}(t,r),s=r.map((function(e){var t=u(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}})),i=a.map((function(e){var n=u(e.from);return{name:e.from,typeIndex:c(n),test:n.test,conversion:e,conversionIndex:t.indexOf(e)}}));return{types:s.concat(i),restParam:n}}function p(e){var t=M(e);return!!t&&t.restParam}function m(e){return e.types.some((function(e){return null!=e.conversion}))}function g(t){if(t&&0!==t.types.length){if(1===t.types.length)return u(t.types[0].name).test;if(2===t.types.length){var n=u(t.types[0].name).test,r=u(t.types[1].name).test;return function(e){return n(e)||r(e)}}var a=t.types.map((function(e){return u(e.name).test}));return function(e){for(var t=0;t=s+1}}return 0===e.length?function(e){return 0===e.length}:1===e.length?(n=g(e[0]),function(e){return n(e[0])&&1===e.length}):2===e.length?(n=g(e[0]),r=g(e[1]),function(e){return n(e[0])&&r(e[1])&&2===e.length}):(t=e.map(g),function(e){for(var n=0;n0){var u=h(t[s]);return(r=new TypeError("Unexpected type of argument in function "+i+" (expected: "+a.join(" or ")+", actual: "+u+", index: "+s+")")).data={category:"wrongType",fn:i,index:s,actual:u,expected:a},r}}else o=l}var c=o.map((function(e){return p(e.params)?1/0:e.params.length}));if(t.lengthf?((r=new TypeError("Too many arguments in function "+i+" (expected: "+f+", actual: "+t.length+")")).data={category:"tooManyArgs",fn:i,index:t.length,expectedLength:f},r):((r=new TypeError('Arguments of type "'+t.join(", ")+'" do not match any of the defined signatures of function '+i+".")).data={category:"mismatch",actual:t.map(h)},r)}function E(e){for(var t=999,n=0;n=a:o?a>=s:a===s}(t,e)}));if(t)throw new TypeError('Conflicting signatures "'+f(t.params)+'" and "'+f(e.params)+'".');a.push(e)}));var s=z(a,(function(e){return(e?D(e.params,!1):[]).map((function(t){return{params:t,fn:e.fn}}))})).filter(O);s.sort(N);var i=s[0]&&s[0].params.length<=2&&!p(s[0].params),o=s[1]&&s[1].params.length<=2&&!p(s[1].params),u=s[2]&&s[2].params.length<=2&&!p(s[2].params),c=s[3]&&s[3].params.length<=2&&!p(s[3].params),h=s[4]&&s[4].params.length<=2&&!p(s[4].params),b=s[5]&&s[5].params.length<=2&&!p(s[5].params),w=i&&o&&u&&c&&h&&b,_=s.map((function(e){return y(e.params)})),x=i?g(s[0].params[0]):t,E=o?g(s[1].params[0]):t,C=u?g(s[2].params[0]):t,S=c?g(s[3].params[0]):t,A=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,F=i?g(s[0].params[1]):t,M=o?g(s[1].params[1]):t,W=u?g(s[2].params[1]):t,U=c?g(s[3].params[1]):t,V=h?g(s[4].params[1]):t,j=b?g(s[5].params[1]):t,H=s.map((function(e){return function(e,t){var n=t;if(e.some(m)){var r=p(e),a=e.map(I);n=function(){for(var e=[],n=r?arguments.length-1:arguments.length,s=0;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[620]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖܢ٥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[737]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[850]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[852]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[857]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[861]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[865]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[866]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[874]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[895]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[932]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[250]="����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);return{enc:n,dec:t}}(),t[936]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);for(r[254]="����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[254].length;++e)65533!==r[254][e].charCodeAt(0)&&(n[r[254][e]]=65024+e,t[65024+e]=r[254][e]);return{enc:n,dec:t}}(),t[949]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);return{enc:n,dec:t}}(),t[950]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);return{enc:n,dec:t}}(),t[1250]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1251]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1252]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1253]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1254]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1255]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1256]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1257]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1258]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1e4]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10006]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10007]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10008]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);return{enc:n,dec:t}}(),t[10029]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10079]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10081]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE&&(e.exports=t),function(n,r){"use strict";if(void 0===t){var a=t;e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE?e.exports=r(a):n.cptable=r(a)}else t=r(t)}(this,(function(e){"use strict";var t={1200:"utf16le",1201:"utf16be",12e3:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65e3:"utf7",65001:"utf8"},n=[874,1250,1251,1252,1253,1254,1255,1256,1e4],r=[932,936,949,950],a=[65001],s={},i={},o={},l={},u=function(e){return String.fromCharCode(e)},c=function(e){return e.charCodeAt(0)},h="undefined"!=typeof Buffer,f=function(){};if(h){var d=!Buffer.from;if(!d)try{Buffer.from("foo","utf8")}catch(e){d=!0}f=d?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)});var p=1024,m=Buffer.allocUnsafe(p),g=function(t){var n=function(e){for(var t=Buffer.allocUnsafe(65536),n=0;n<65536;++n)t[n]=0;for(var r=Object.keys(e),a=r.length,s=0,i=r[s];s>10&1023)],r[i++]=n[56320+(1023&l)]));r=r.slice(0,i)}else for(r=Buffer.allocUnsafe(a),s=0;s>8}return function(e){var t=e.length,n=0,a=0;if(2*t>p&&(p=2*t,m=Buffer.allocUnsafe(p)),Buffer.isBuffer(e))for(n=0;n>8}return function(e,t){var n=e.length,a=Buffer.allocUnsafe(2*n),s=0,i=0,o=0,l=0,u=0;if("string"==typeof e){for(s=l=0;s0&&(a[l++]=r[i]);a=a.slice(0,l)}else if(Buffer.isBuffer(e)){for(s=l=0;s0&&(a[l++]=r[i])):(i=2*(55296+((o=i-65536)>>10&1023)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]),i=2*(56320+(1023&o)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]));a=a.slice(0,l)}else for(s=l=0;s0&&(a[l++]=r[i]);return t&&"buf"!==t?"arr"!==t?a.toString("binary"):[].slice.call(a):a}},v=function(t){var n,r=e[t].dec,a=Buffer.allocUnsafe(131072),s=0,i=0,o=0,l=0;for(l=0;l<65536;++l)a[2*l]=255,a[2*l+1]=253;for(s=0;s>8);return function(e){var t=e.length,n=Buffer.allocUnsafe(2*t),r=0,s=0,i=0;if(Buffer.isBuffer(e))for(r=0;rp&&(p=4*n,m=Buffer.allocUnsafe(p));var s=0;n>=3&&239==t[0]&&187==t[1]&&191==t[2]&&(s=3);for(var i=1,o=0,l=0;s>8):(a=55296+((r-=65536)>>10&1023),r=56320+(1023&r),m[o++]=255&a,m[o++]=a>>>8,m[o++]=255&r,m[o++]=r>>>8&255);return m.slice(0,o).toString("ucs2")},i[65001]=function(e,t){if(h&&Buffer.isBuffer(e))return t&&"buf"!==t?"arr"!==t?e.toString("binary"):[].slice.call(e):e;var n=e.length,r=0,a=0,s=0,i="string"==typeof e;4*n>p&&(p=4*n,m=Buffer.allocUnsafe(p));for(var o=0;o>6),m[s++]=128+(63&r)):r>=55296&&r<=57343?(r-=55296,++o,a=(i?e.charCodeAt(o):e[o].charCodeAt(0))-56320+(r<<10),m[s++]=240+(a>>>18&7),m[s++]=144+(a>>>12&63),m[s++]=128+(a>>>6&63),m[s++]=128+(63&a)):(m[s++]=224+(r>>12),m[s++]=128+(r>>6&63),m[s++]=128+(63&r));return t&&"buf"!==t?"arr"!==t?m.slice(0,s).toString("binary"):[].slice.call(m,0,s):m.slice(0,s)}}var w=function(){if(h){if(o[n[0]])return;var t=0,u=0;for(t=0;t=3&&239==a[0]&&187==a[1]&&191==a[2]&&(p=3);p>10&1023),d=56320+(1023&d),u[g++]=String.fromCharCode(y)),u[g++]=String.fromCharCode(d);break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(v);for(p=0;p=2&&255==a[0]&&254==a[1]&&(p=2),h&&Buffer.isBuffer(a))return a.toString(v);for(m=2;p+1=2&&254==a[0]&&255==a[1]&&(p=2),m=2;p+1=4&&255==a[0]&&254==a[1]&&0===a[2]&&0===a[3]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf32be":for(l>=4&&255==a[3]&&254==a[2]&&0===a[1]&&0===a[0]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf7":for(l>=4&&43==a[0]&&47==a[1]&&118==a[2]&&(l>=5&&56==a[3]&&45==a[4]?p=5:56!=a[3]&&57!=a[3]&&43!=a[3]&&47!=a[3]||(p=4));p>4,_.push(k),-1!==(I=E.indexOf(String.fromCharCode(a[p+A++]))))&&(C=(15&N)<<4|I>>2,_.push(C),-1!==(D=E.indexOf(String.fromCharCode(a[p+A++]))));)S=(3&I)<<6|D,D<64&&_.push(S);for(x=n(1201,_),A=0;A255?(c[m]=d>>8,c[++m]=255&d):c[m]=255&d;else{if(!(b=t[r]))throw new Error("Unrecognized CP: "+r);switch(b){case"utf8":if(h&&v){m=(c=f(a,b)).length;break}for(p=0;p>6),c[++m]=128+(63&d)):d>=55296&&d<=57343?(d-=55296,g=(v?a.charCodeAt(++p):a[++p].charCodeAt(0))-56320+(d<<10),c[m]=240+(g>>>18&7),c[++m]=144+(g>>>12&63),c[++m]=128+(g>>>6&63),c[++m]=128+(63&g)):(c[m]=224+(d>>12),c[++m]=128+(d>>6&63),c[++m]=128+(63&d));break;case"ascii":if(h&&"string"==typeof a){m=(c=f(a,b)).length;break}for(p=0;p>8;break;case"utf16be":for(p=0;p>8,c[m++]=255&d;break;case"utf32le":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d;break;case"utf32be":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m+3]=255&d,d>>=8,c[m+2]=255&d,d>>=8,c[m+1]=255&d,d>>=8,c[m]=255&d,m+=4;break;case"utf7":for(p=0;p-1)c[m++]=w.charCodeAt(0);else{var _=n(1201,w);c[m++]=43,c[m++]=E.charCodeAt(_[0]>>2),c[m++]=E.charCodeAt(((3&_[0])<<4)+((_[1]||0)>>4)),c[m++]=E.charCodeAt(((15&_[1])<<2)+((_[2]||0)>>6)),c[m++]=45}else c[m++]=43,c[m++]=45}break;default:throw new Error("Unsupported magic: "+r+" "+t[r])}}return c=c.slice(0,m),h?s&&"buf"!==s?"arr"!==s?c.toString("binary"):[].slice.call(c):c:"str"==s?c.map(u).join(""):c},hascp:function(n){return!(!e[n]&&!t[n])},magic:t,cache:k},e}))},2903:(e,t,n)=>{var r,a,s;!function(i){if("undefined"==typeof DO_NOT_EXPORT_JSZIP)e.exports=i();else if("undefined"==typeof DO_NOT_EXPORT_JSZIP)JSZipSync=i(),a=[],void 0===(s="function"==typeof(r=i)?r.apply(t,a):r)||(e.exports=s);else{var o;"undefined"!=typeof globalThis?o=globalThis:"undefined"!=typeof window?o=window:void 0!==n.g?o=n.g:"undefined"!=typeof $&&$.global?o=$.global:"undefined"!=typeof self&&(o=self),o.JSZipSync=i()}}((function(){return function e(t,n,r){function a(i,o){if(!n[i]){if(!t[i]){if(s)return s(i,!0);throw new Error("Cannot find module '"+i+"'")}var l=n[i]={exports:{}};t[i][0].call(l.exports,(function(e){return a(t[i][1][e]||e)}),l,l.exports,e,t,n,r)}return n[i].exports}for(var s=void 0,i=0;i>2,o=(3&n)<<4|(a=e.charCodeAt(h++))>>4,l=(15&a)<<2|(s=e.charCodeAt(h++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),c=c+r.charAt(i)+r.charAt(o)+r.charAt(l)+r.charAt(u);return c},n.decode=function(e,t){var n,a,s,i,o,l,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c>4,a=(15&i)<<4|(o=r.indexOf(e.charAt(c++)))>>2,s=(3&o)<<6|(l=r.indexOf(e.charAt(c++))),u+=String.fromCharCode(n),64!=o&&(u+=String.fromCharCode(a)),64!=l&&(u+=String.fromCharCode(s));return u}},{}],2:[function(e,t,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},t.exports=r},{}],3:[function(e,t,n){"use strict";n.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null},n.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,t,n){"use strict";var r=e("./utils"),a=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];t.exports=function(e,t){if(void 0===e||!e.length)return 0;var n="string"!==r.getTypeOf(e);void 0===t&&(t=0);var s=0;t^=-1;for(var i=0,o=e.length;i>>8^a[255&(t^s)];return-1^t}},{"./utils":21}],5:[function(e,t,n){"use strict";var r=e("./utils");function a(e){this.data=null,this.length=0,this.index=0}a.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1)}},t.exports=a},{"./utils":21}],6:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.comment=null},{}],7:[function(e,t,n){"use strict";var r=e("./utils");n.string2binary=function(e){return r.string2binary(e)},n.string2Uint8Array=function(e){return r.transformTo("uint8array",e)},n.uint8Array2String=function(e){return r.transformTo("string",e)},n.string2Blob=function(e){var t=r.transformTo("arraybuffer",e);return r.arrayBuffer2Blob(t)},n.arrayBuffer2Blob=function(e){return r.arrayBuffer2Blob(e)},n.transformTo=function(e,t){return r.transformTo(e,t)},n.getTypeOf=function(e){return r.getTypeOf(e)},n.checkSupport=function(e){return r.checkSupport(e)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(e){return r.pretty(e)},n.findCompression=function(e){return r.findCompression(e)},n.isRegExp=function(e){return r.isRegExp(e)}},{"./utils":21}],8:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,a=e("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\0",n.compress=function(e){return a.deflateRaw(e)},n.uncompress=function(e){return a.inflateRaw(e)}},{pako:24}],9:[function(e,t,n){"use strict";var r=e("./base64");function a(e,t){if(!(this instanceof a))return new a(e,t);this.files={},this.comment=null,this.root="",e&&this.load(e,t),this.clone=function(){var e=new a;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}a.prototype=e("./object"),a.prototype.load=e("./load"),a.support=e("./support"),a.defaults=e("./defaults"),a.utils=e("./deprecatedPublicUtils"),a.base64={encode:function(e){return r.encode(e)},decode:function(e){return r.decode(e)}},a.compressions=e("./compressions"),t.exports=a},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,t,n){"use strict";var r=e("./base64"),a=e("./zipEntries");t.exports=function(e,t){var n,s,i,o;for((t=t||{}).base64&&(e=r.decode(e)),n=(s=new a(e,t)).files,i=0;i>>=8;return r},w=function(){var e,t,n={};for(e=0;e0?e.substring(0,t):""},k=function(e,t){return"/"!=e.slice(-1)&&(e+="/"),t=void 0!==t&&t,this.files[e]||_.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]},E=function(e,t){var n,r=new c;return e._data instanceof c?(r.uncompressedSize=e._data.uncompressedSize,r.crc32=e._data.crc32,0===r.uncompressedSize||e.dir?(t=u.STORE,r.compressedContent="",r.crc32=0):e._data.compressionMethod===t.magic?r.compressedContent=e._data.getCompressedContent():(n=e._data.getContent(),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n)))):((n=g(e))&&0!==n.length&&!e.dir||(t=u.STORE,n=""),r.uncompressedSize=n.length,r.crc32=s(n),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n))),r.compressedSize=r.compressedContent.length,r.compressionMethod=t.magic,r},C=function(e,t,n,r){n.compressedContent;var o,l,u,c,h=a.transformTo("string",f.utf8encode(t.name)),d=t.comment||"",p=a.transformTo("string",f.utf8encode(d)),m=h.length!==t.name.length,g=p.length!==d.length,y=t.options,b="",w="",_="";u=t._initialMetadata.dir!==t.dir?t.dir:y.dir,o=(c=t._initialMetadata.date!==t.date?t.date:y.date).getHours(),o<<=6,o|=c.getMinutes(),o<<=5,o|=c.getSeconds()/2,l=c.getFullYear()-1980,l<<=4,l|=c.getMonth()+1,l<<=5,l|=c.getDate(),m&&(w=v(1,1)+v(s(h),4)+h,b+="up"+v(w.length,2)+w),g&&(_=v(1,1)+v(this.crc32(p),4)+p,b+="uc"+v(_.length,2)+_);var x="";return x+="\n\0",x+=m||g?"\0\b":"\0\0",x+=n.compressionMethod,x+=v(o,2),x+=v(l,2),x+=v(n.crc32,4),x+=v(n.compressedSize,4),x+=v(n.uncompressedSize,4),x+=v(h.length,2),x+=v(b.length,2),{fileRecord:i.LOCAL_FILE_HEADER+x+h+b,dirRecord:i.CENTRAL_FILE_HEADER+"\0"+x+v(p.length,2)+"\0\0\0\0"+(!0===u?"\0\0\0":"\0\0\0\0")+v(r,4)+h+b+p,compressedObject:n}},S={load:function(e,t){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var t,n,r,a,s=[];for(t in this.files)this.files.hasOwnProperty(t)&&(r=this.files[t],a=new b(r.name,r._data,w(r.options)),n=t.slice(this.root.length,t.length),t.slice(0,this.root.length)===this.root&&e(n,a)&&s.push(a));return s},file:function(e,t,n){if(1===arguments.length){if(a.isRegExp(e)){var r=e;return this.filter((function(e,t){return!t.dir&&r.test(e)}))}return this.filter((function(t,n){return!n.dir&&t===e}))[0]||null}return e=this.root+e,_.call(this,e,t,n),this},folder:function(e){if(!e)return this;if(a.isRegExp(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=k.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!=e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r=0;--s)if(this.data[s]===t&&this.data[s+1]===n&&this.data[s+2]===r&&this.data[s+3]===a)return s;return-1},a.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.index,this.index+e);return this.index+=e,t},t.exports=a},{"./dataReader":5}],19:[function(e,t,n){"use strict";var r=e("./utils"),a=function(e){this.data=new Uint8Array(e),this.index=0};a.prototype={append:function(e){0!==e.length&&(e=r.transformTo("uint8array",e),this.data.set(e,this.index),this.index+=e.length)},finalize:function(){return this.data}},t.exports=a},{"./utils":21}],20:[function(e,t,n){"use strict";for(var r=e("./utils"),a=e("./support"),s=e("./nodeBuffer"),i=new Array(256),o=0;o<256;o++)i[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;i[254]=i[254]=1;var l=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t},u=function(e){var t,n,a,s,o=e.length,l=new Array(2*o);for(n=0,t=0;t4)l[n++]=65533,t+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&t1?l[n++]=65533:a<65536?l[n++]=a:(a-=65536,l[n++]=55296|a>>10&1023,l[n++]=56320|1023&a)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)};n.utf8encode=function(e){return a.nodebuffer?s(e,"utf-8"):function(e){var t,n,r,s,i,o=e.length,l=0;for(s=0;s>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){if(a.nodebuffer)return r.transformTo("nodebuffer",e).toString("utf-8");for(var t=[],n=0,s=(e=r.transformTo(a.uint8array?"uint8array":"array",e)).length;n1;)try{"array"===i||"nodebuffer"===i?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+t,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+t,a)))),o+=t}catch(e){t=Math.floor(t/2)}return r.join("")}function u(e,t){for(var n=0;n1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==n)throw new Error(i[n]);t.header&&r.deflateSetHeader(this.strm,t.header)};function u(e,t){var n=new l(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}l.prototype.push=function(e,t){var n,i,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,o.input="string"==typeof e?s.string2buf(e):e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(l),o.next_out=0,o.avail_out=l),1!==(n=r.deflate(o,i))&&0!==n)return this.onEnd(n),this.ended=!0,!1;(0===o.avail_out||0===o.avail_in&&4===i)&&("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==n);return 4!==i||(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n)},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=l,n.deflate=u,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,t,n){"use strict";var r=e("./zlib/inflate.js"),a=e("./utils/common"),s=e("./utils/strings"),i=e("./zlib/constants"),o=e("./zlib/messages"),l=e("./zlib/zstream"),u=e("./zlib/gzheader"),c=function(e){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(o[n]);this.header=new u,r.inflateGetHeader(this.strm,this.header)};function h(e,t){var n=new c(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}c.prototype.push=function(e,t){var n,o,l,u,c,h=this.strm,f=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,h.input="string"==typeof e?s.binstring2buf(e):e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new a.Buf8(f),h.next_out=0,h.avail_out=f),(n=r.inflate(h,i.Z_NO_FLUSH))!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),this.ended=!0,!1;h.next_out&&(0===h.avail_out||n===i.Z_STREAM_END||0===h.avail_in&&o===i.Z_FINISH)&&("string"===this.options.to?(l=s.utf8border(h.output,h.next_out),u=h.next_out-l,c=s.buf2string(h.output,l),h.next_out=u,h.avail_out=f-u,u&&a.arraySet(h.output,h.output,l,u,0),this.onData(c)):this.onData(a.shrinkBuf(h.output,h.next_out)))}while(h.avail_in>0&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(o=i.Z_FINISH),o!==i.Z_FINISH||(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK)},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=c,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var a={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var s=0;s=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&a))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,a=t.length;n4)u[r++]=65533,n+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&n1?u[r++]=65533:a<65536?u[r++]=a:(a-=65536,u[r++]=55296|a>>10&1023,u[r++]=56320|1023&a)}return l(u,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":27}],29:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var a=65535&e|0,s=e>>>16&65535|0,i=0;0!==n;){n-=i=n>2e3?2e3:n;do{s=s+(a=a+t[r++]|0)|0}while(--i);a%=65521,s%=65521}return a|s<<16|0}},{}],30:[function(e,t,n){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,a){var s=r,i=a+n;e^=-1;for(var o=a;o>>8^s[255&(e^t[o])];return-1^e}},{}],32:[function(e,t,n){"use strict";var r=e("../utils/common"),a=e("./trees"),s=e("./adler32"),i=e("./crc32"),o=e("./messages"),l=-2,u=258,c=262,h=103,f=113,d=666;function p(e,t){return e.msg=o[t],t}function m(e){return(e<<1)-(e>4?9:0)}function g(e){for(var t=e.length;--t>=0;)e[t]=0}function y(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(r.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function b(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,y(e.strm)}function v(e,t){e.pending_buf[e.pending++]=t}function w(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function _(e,t){var n,r,a=e.max_chain_length,s=e.strstart,i=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-c?e.strstart-(e.w_size-c):0,h=e.window,f=e.w_mask,d=e.prev,p=e.strstart+u,m=h[s+i-1],g=h[s+i];e.prev_length>=e.good_match&&(a>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(n=t)+i]===g&&h[n+i-1]===m&&h[n]===h[s]&&h[++n]===h[s+1]){s+=2,n++;do{}while(h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&si){if(e.match_start=t,i=r,r>=o)break;m=h[s+i-1],g=h[s+i]}}}while((t=d[t&f])>l&&0!=--a);return i<=e.lookahead?i:e.lookahead}function x(e){var t,n,a,o,l,u,h,f,d,p,m=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-c)){r.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;do{a=e.head[--t],e.head[t]=a>=m?a-m:0}while(--n);t=n=m;do{a=e.prev[--t],e.prev[t]=a>=m?a-m:0}while(--n);o+=m}if(0===e.strm.avail_in)break;if(u=e.strm,h=e.window,f=e.strstart+e.lookahead,d=o,p=void 0,(p=u.avail_in)>d&&(p=d),n=0===p?0:(u.avail_in-=p,r.arraySet(h,u.input,u.next_in,p,f),1===u.state.wrap?u.adler=s(u.adler,h,p,f):2===u.state.wrap&&(u.adler=i(u.adler,h,p,f)),u.next_in+=p,u.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=(e.ins_h<15&&(o=2,a-=16),s<1||s>9||8!==n||a<8||a>15||t<0||t>9||i<0||i>4)return p(e,l);8===a&&(a=9);var u=new N;return e.state=u,u.strm=e,u.wrap=o,u.gzhead=null,u.w_bits=a,u.w_size=1<>1,u.l_buf=3*u.lit_bufsize,u.level=t,u.strategy=i,u.method=n,D(e)}C=[new S(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(x(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,b(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-c&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(b(e,!1),e.strm.avail_out),1)})),new S(4,4,8,4,k),new S(4,5,16,8,k),new S(4,6,32,32,k),new S(4,4,16,16,E),new S(8,16,32,32,E),new S(8,16,128,128,E),new S(8,32,128,256,E),new S(32,128,258,1024,E),new S(32,258,258,4096,E)],n.deflateInit=function(e,t){return A(e,t,8,15,8,0)},n.deflateInit2=A,n.deflateReset=D,n.deflateResetKeep=I,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=t,0):l},n.deflate=function(e,t){var n,r,s,o;if(!e||!e.state||t>5||t<0)return e?p(e,l):l;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===d&&4!==t)return p(e,0===e.avail_out?-5:l);if(r.strm=e,n=r.last_flush,r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,v(r,31),v(r,139),v(r,8),r.gzhead?(v(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),v(r,255&r.gzhead.time),v(r,r.gzhead.time>>8&255),v(r,r.gzhead.time>>16&255),v(r,r.gzhead.time>>24&255),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(v(r,255&r.gzhead.extra.length),v(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=i(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(v(r,0),v(r,0),v(r,0),v(r,0),v(r,0),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,3),r.status=f);else{var c=8+(r.w_bits-8<<4)<<8;c|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(c|=32),c+=31-c%31,r.status=f,w(r,c),0!==r.strstart&&(w(r,e.adler>>>16),w(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(s=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending!==r.pending_buf_size));)v(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.status=h)}else r.status=h;if(r.status===h&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&y(e),r.pending+2<=r.pending_buf_size&&(v(r,255&e.adler),v(r,e.adler>>8&255),e.adler=0,r.status=f)):r.status=f),0!==r.pending){if(y(e),0===e.avail_out)return r.last_flush=-1,0}else if(0===e.avail_in&&m(t)<=m(n)&&4!==t)return p(e,-5);if(r.status===d&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==r.lookahead||0!==t&&r.status!==d){var _=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(x(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,s,i,o=e.window;;){if(e.lookahead<=u){if(x(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=o[s=e.strstart-1])===o[++s]&&r===o[++s]&&r===o[++s]){i=e.strstart+u;do{}while(r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&se.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):C[r.level].func(r,t);if(3!==_&&4!==_||(r.status=d),1===_||3===_)return 0===e.avail_out&&(r.last_flush=-1),0;if(2===_&&(1===t?a._tr_align(r):5!==t&&(a._tr_stored_block(r,0,0,!1),3===t&&(g(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),y(e),0===e.avail_out))return r.last_flush=-1,0}return 4!==t?0:r.wrap<=0?1:(2===r.wrap?(v(r,255&e.adler),v(r,e.adler>>8&255),v(r,e.adler>>16&255),v(r,e.adler>>24&255),v(r,255&e.total_in),v(r,e.total_in>>8&255),v(r,e.total_in>>16&255),v(r,e.total_in>>24&255)):(w(r,e.adler>>>16),w(r,65535&e.adler)),y(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},n.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==h&&t!==f&&t!==d?p(e,l):(e.state=null,t===f?p(e,-3):0):l},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],34:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,a,s,i,o,l,u,c,h,f,d,p,m,g,y,b,v,w,_,x,k,E,C,S;n=e.state,r=e.next_in,C=e.input,a=r+(e.avail_in-5),s=e.next_out,S=e.output,i=s-(t-e.avail_out),o=s+(e.avail_out-257),l=n.dmax,u=n.wsize,c=n.whave,h=n.wnext,f=n.window,d=n.hold,p=n.bits,m=n.lencode,g=n.distcode,y=(1<>>=w=v>>>24,p-=w,0==(w=v>>>16&255))S[s++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=m[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=C[r++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<l){e.msg="invalid distance too far back",n.mode=30;break e}if(d>>>=w,p-=w,x>(w=s-i)){if((w=x-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(k=0,E=f,0===h){if(k+=u-w,w<_){_-=w;do{S[s++]=f[k++]}while(--w);k=s-x,E=S}}else if(h2;)S[s++]=E[k++],S[s++]=E[k++],S[s++]=E[k++],_-=3;_&&(S[s++]=E[k++],_>1&&(S[s++]=E[k++]))}else{k=s-x;do{S[s++]=S[k++],S[s++]=S[k++],S[s++]=S[k++],_-=3}while(_>2);_&&(S[s++]=S[k++],_>1&&(S[s++]=S[k++]))}break}}break}}while(r>3,d&=(1<<(p-=_<<3))-1,e.next_in=r,e.next_out=s,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function p(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,d(e)):l}function m(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?l:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,p(e))):l}function g(e,t){var n,r;return e?(r=new f,e.state=r,r.window=null,0!==(n=m(e,t))&&(e.state=null),n):l}var y,b,v=!0;function w(e){if(v){var t;for(y=new r.Buf32(512),b=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(2,e.lens,0,32,b,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=b,e.distbits=5}n.inflateReset=p,n.inflateReset2=m,n.inflateResetKeep=d,n.inflateInit=function(e){return g(e,15)},n.inflateInit2=g,n.inflate=function(e,t){var n,f,d,p,m,g,y,b,v,_,x,k,E,C,S,N,I,D,A,T,R,F,O,B,M=0,$=new r.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;(n=e.state).mode===u&&(n.mode=13),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,_=g,x=y,F=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0),b=0,v=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",n.mode=c;break}if(8!=(15&b)){e.msg="unknown compression method",n.mode=c;break}if(v-=4,R=8+(15&(b>>>=4)),0===n.wbits)n.wbits=R;else if(R>n.wbits){e.msg="invalid window size",n.mode=c;break}n.dmax=1<>8&1),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=3;case 3:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>8&255,$[2]=b>>>16&255,$[3]=b>>>24&255,n.check=s(n.check,$,4,0)),b=0,v=0,n.mode=4;case 4:for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>8),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((k=n.length)>g&&(k=g),k&&(n.head&&(R=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,p,k,R)),512&n.flags&&(n.check=s(n.check,f,k,p)),g-=k,p+=k,n.length-=k),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===g)break e;k=0;do{R=f[p+k++],n.head&&R&&n.length<65536&&(n.head.name+=String.fromCharCode(R))}while(R&&k>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=u;break;case 10:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===g)break e;g--,b+=f[p++]<>>=1)){case 0:n.mode=14;break;case 1:if(w(n),n.mode=20,6===t){b>>>=2,v-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=c}b>>>=2,v-=2;break;case 14:for(b>>>=7&v,v-=7&v;v<32;){if(0===g)break e;g--,b+=f[p++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=c;break}if(n.length=65535&b,b=0,v=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(k=n.length){if(k>g&&(k=g),k>y&&(k=y),0===k)break e;r.arraySet(d,f,p,k,m),g-=k,p+=k,y-=k,m+=k,n.length-=k;break}n.mode=u;break;case 17:for(;v<14;){if(0===g)break e;g--,b+=f[p++]<>>=5,v-=5,n.ndist=1+(31&b),b>>>=5,v-=5,n.ncode=4+(15&b),b>>>=4,v-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=c;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,v-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},F=o(0,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,F){e.msg="invalid code lengths set",n.mode=c;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(B=S+2;v>>=S,v-=S,0===n.have){e.msg="invalid bit length repeat",n.mode=c;break}R=n.lens[n.have-1],k=3+(3&b),b>>>=2,v-=2}else if(17===I){for(B=S+3;v>>=S)),b>>>=3,v-=3}else{for(B=S+7;v>>=S)),b>>>=7,v-=7}if(n.have+k>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=c;break}for(;k--;)n.lens[n.have++]=R}}if(n.mode===c)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=c;break}if(n.lenbits=9,O={bits:n.lenbits},F=o(1,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,F){e.msg="invalid literal/lengths set",n.mode=c;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},F=o(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,F){e.msg="invalid distances set",n.mode=c;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(g>=6&&y>=258){e.next_out=m,e.avail_out=y,e.next_in=p,e.avail_in=g,n.hold=b,n.bits=v,i(e,x),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,n.mode===u&&(n.back=-1);break}for(n.back=0;N=(M=n.lencode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>D)])>>>16&255,I=65535&M,!(D+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=D,v-=D,n.back+=D}if(b>>>=S,v-=S,n.back+=S,n.length=I,0===N){n.mode=26;break}if(32&N){n.back=-1,n.mode=u;break}if(64&N){e.msg="invalid literal/length code",n.mode=c;break}n.extra=15&N,n.mode=22;case 22:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(M=n.distcode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>D)])>>>16&255,I=65535&M,!(D+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=D,v-=D,n.back+=D}if(b>>>=S,v-=S,n.back+=S,64&N){e.msg="invalid distance code",n.mode=c;break}n.offset=I,n.extra=15&N,n.mode=24;case 24:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=c;break}n.mode=25;case 25:if(0===y)break e;if(k=x-y,n.offset>k){if((k=n.offset-k)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=c;break}k>n.wnext?(k-=n.wnext,E=n.wsize-k):E=n.wnext-k,k>n.length&&(k=n.length),C=n.window}else C=d,E=m-n.offset,k=n.length;k>y&&(k=y),y-=k,n.length-=k;do{d[m++]=C[E++]}while(--k);0===n.length&&(n.mode=21);break;case 26:if(0===y)break e;d[m++]=n.length,y--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===g)break e;g--,b|=f[p++]<=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((s=i.wsize-i.wnext)>a&&(s=a),r.arraySet(i.window,t,n-a,s,i.wnext),(a-=s)?(r.arraySet(i.window,t,n-a,a,0),i.wnext=a,i.whave=i.wsize):(i.wnext+=s,i.wnext===i.wsize&&(i.wnext=0),i.whave=1&&0===B[S];S--);if(N>S&&(N=S),0===S)return u[c++]=20971520,u[c++]=20971520,f.bits=1,0;for(C=1;C0&&(0===e||1!==S))return-1;for(M[1]=0,k=1;k<15;k++)M[k+1]=M[k]+B[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-D,h[E]b?(w=$[P+h[E]],_=F[O+h[E]]):(w=96,_=0),d=1<>D)+(p-=d)]=v<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(R&=d-1,R+=d):R=0,E++,0==--B[k]){if(k===S)break;k=t[n+h[E]]}if(k>N&&(R&g)!==m){for(0===D&&(D=N),y+=C,A=1<<(I=k-D);I+D852||2===e&&T>592)return 1;u[m=R&g]=N<<24|I<<16|y-c|0}}return 0!==R&&(u[y+R]=k-D<<24|64<<16|0),f.bits=N,0}},{"../utils/common":27}],37:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,t,n){"use strict";var r=e("../utils/common");function a(e){for(var t=e.length;--t>=0;)e[t]=0}var s=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],i=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],u=new Array(576);a(u);var c=new Array(60);a(c);var h=new Array(512);a(h);var f=new Array(256);a(f);var d=new Array(29);a(d);var p=new Array(30);a(p);var m,g,y,b=function(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length},v=function(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t};function w(e){return e<256?h[e]:h[256+(e>>>7)]}function _(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function x(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<>>=1,n<<=1}while(--t>0);return n>>>1}function C(e,t,n){var r,a,s=new Array(16),i=0;for(r=1;r<=15;r++)s[r]=i=i+n[r-1]<<1;for(a=0;a<=t;a++){var o=e[2*a+1];0!==o&&(e[2*a]=E(s[o]++,o))}}function S(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function I(e,t,n,r){var a=2*t,s=2*n;return e[a]>1;n>=1;n--)D(e,s,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],D(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,s[2*a]=s[2*n]+s[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,s[2*n+1]=s[2*r+1]=a,e.heap[1]=a++,D(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,s,i,o,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,h=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=15;s++)e.bl_count[s]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(s=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(s=p,m++),l[2*r+1]=s,r>u||(e.bl_count[s]++,i=0,r>=d&&(i=f[r-d]),o=l[2*r],e.opt_len+=o*(s+i),h&&(e.static_len+=o*(c[2*r+1]+i)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)(a=e.heap[--n])>u||(l[2*a+1]!==s&&(e.opt_len+=(s-l[2*a+1])*l[2*a],l[2*a+1]=s),r--)}}(e,t),C(s,u,e.bl_count)}function R(e,t,n){var r,a,s=-1,i=t[1],o=0,l=7,u=4;for(0===i&&(l=138,u=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=i,i=t[2*(r+1)+1],++o>=7;r<30;r++)for(p[r]=a<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),T(e,e.l_desc),T(e,e.d_desc),i=function(e){var t;for(R(e,e.dyn_ltree,e.l_desc.max_code),R(e,e.dyn_dtree,e.d_desc.max_code),T(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*l[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),a=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=a&&(a=s)):a=s=n+5,n+4<=a&&-1!==t?B(e,t,n,r):4===e.strategy||s===a?(x(e,2+(r?1:0),3),A(e,u,c)):(x(e,4+(r?1:0),3),function(e,t,n,r){var a;for(x(e,t-257,5),x(e,n-1,5),x(e,r-4,4),a=0;a>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(f[n]+256+1)]++,e.dyn_dtree[2*w(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){x(e,2,3),k(e,256,u),function(e){16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":27}],39:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}]},{},[9])(9)}))},7869:(e,t,n)=>{!function(t){t.version="0.16.9";var r=1200,a=1252;"undefined"==typeof cptable&&(void 0!==n.g?n.g.cptable=n(6113):"undefined"!=typeof window&&(window.cptable=n(6113)));for(var s=[874,932,936,949,950],i=0;i<=8;++i)s.push(1250+i);var o={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},l=function(e){-1!=s.indexOf(e)&&(a=o[0]=e)},u=function(e){r=e,l(e)};function c(){u(1200),l(1252)}function h(e){for(var t=[],n=0,r=e.length;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n)+(e.charCodeAt(2*n+1)<<8));return t.join("")}(e.slice(2)):254==t&&255==n?function(e){for(var t=[],n=0;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n+1)+(e.charCodeAt(2*n)<<8));return t.join("")}(e.slice(2)):65279==t?e.slice(1):e},d=function(e){return String.fromCharCode(e)},p=function(e){return String.fromCharCode(e)};"undefined"!=typeof cptable&&(u=function(e){r=e,l(e)},f=function(e){return 255===e.charCodeAt(0)&&254===e.charCodeAt(1)?cptable.utils.decode(1200,h(e.slice(2))):e},d=function(e){return 1200===r?String.fromCharCode(e):cptable.utils.decode(r,[255&e,e>>8])[0]},p=function(e){return cptable.utils.decode(a,[e])[0]});var m,g=(m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",{encode:function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0,l=0,u=0;u>2,i=(3&n)<<4|(r=e.charCodeAt(u++))>>4,o=(15&r)<<2|(a=e.charCodeAt(u++))>>6,l=63&a,isNaN(r)?o=l=64:isNaN(a)&&(l=64),t+=m.charAt(s)+m.charAt(i)+m.charAt(o)+m.charAt(l);return t},decode:function(e){var t="",n=0,r=0,a=0,s=0,i=0,o=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var l=0;l>4,t+=String.fromCharCode(n),r=(15&s)<<4|(i=m.indexOf(e.charAt(l++)))>>2,64!==i&&(t+=String.fromCharCode(r)),a=(3&i)<<6|(o=m.indexOf(e.charAt(l++))),64!==o&&(t+=String.fromCharCode(a));return t}}),y="undefined"!=typeof Buffer&&"undefined"!=typeof process&&void 0!==process.versions&&!!process.versions.node,b=function(){};if("undefined"!=typeof Buffer){var v=!Buffer.from;if(!v)try{Buffer.from("foo","utf8")}catch(e){v=!0}b=v?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.alloc||(Buffer.alloc=function(e){return new Buffer(e)}),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)})}function w(e){return y?Buffer.alloc(e):new Array(e)}function _(e){return y?Buffer.allocUnsafe(e):new Array(e)}var x=function(e){return y?b(e,"binary"):e.split("").map((function(e){return 255&e.charCodeAt(0)}))};function k(e){if("undefined"==typeof ArrayBuffer)return x(e);for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r!=e.length;++r)n[r]=255&e.charCodeAt(r);return t}function E(e){if(Array.isArray(e))return e.map((function(e){return String.fromCharCode(e)})).join("");for(var t=[],n=0;n=0;)t+=e.charAt(n--);return t}function n(e,t){for(var n="";n.length=t?r:n("0",t-r.length)+r}function a(e,t){var r=""+e;return r.length>=t?r:n(" ",t-r.length)+r}function s(e,t){var r=""+e;return r.length>=t?r:r+n(" ",t-r.length)}e.version="0.11.2";var i=Math.pow(2,32);function o(e,t){return e>i||e<-i?function(e,t){var r=""+Math.round(e);return r.length>=t?r:n("0",t-r.length)+r}(e,t):function(e,t){var r=""+e;return r.length>=t?r:n("0",t-r.length)+r}(Math.round(e),t)}function l(e,t){return t=t||0,e.length>=7+t&&103==(32|e.charCodeAt(t))&&101==(32|e.charCodeAt(t+1))&&110==(32|e.charCodeAt(t+2))&&101==(32|e.charCodeAt(t+3))&&114==(32|e.charCodeAt(t+4))&&97==(32|e.charCodeAt(t+5))&&108==(32|e.charCodeAt(t+6))}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],c=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function h(e){e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var f={};h(f);var d=[],p=0;for(p=5;p<=8;++p)d[p]=32+p;for(p=23;p<=26;++p)d[p]=0;for(p=27;p<=31;++p)d[p]=14;for(p=50;p<=58;++p)d[p]=14;for(p=59;p<=62;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-58;for(p=72;p<=75;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-57;for(p=76;p<=78;++p)d[p]=p-56;for(p=79;p<=81;++p)d[p]=p-34;var m=[];function g(e,t,n){for(var r=e<0?-1:1,a=e*r,s=0,i=1,o=0,l=1,u=0,c=0,h=Math.floor(a);ut&&(u>t?(c=l,o=s):(c=u,o=i)),!n)return[0,r*o,c];var f=Math.floor(r*o/c);return[f,r*o-f*c,c]}function y(e,t,n){if(e>2958465||e<0)return null;var r=0|e,a=Math.floor(86400*(e-r)),s=0,i=[],o={D:r,T:a,u:86400*(e-r)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6&&(o.u=0),t&&t.date1904&&(r+=1462),o.u>.9999&&(o.u=0,86400==++a&&(o.T=a=0,++r,++o.D)),60===r)i=n?[1317,10,29]:[1900,2,29],s=3;else if(0===r)i=n?[1317,8,29]:[1900,1,0],s=6;else{r>60&&--r;var l=new Date(1900,0,1);l.setDate(l.getDate()+r-1),i=[l.getFullYear(),l.getMonth()+1,l.getDate()],s=l.getDay(),r<60&&(s=(s+6)%7),n&&(s=function(e,t){t[0]-=581;var n=e.getDay();return e<60&&(n=(n+6)%7),n}(l,i))}return o.y=i[0],o.m=i[1],o.d=i[2],o.S=a%60,a=Math.floor(a/60),o.M=a%60,a=Math.floor(a/60),o.H=a,o.q=s,o}m[5]=m[63]='"$"#,##0_);\\("$"#,##0\\)',m[6]=m[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',m[7]=m[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',m[8]=m[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',m[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',m[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',m[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',m[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)',e.parse_date_code=y;var b=new Date(1899,11,31,0,0,0),v=b.getTime(),w=new Date(1900,2,1,0,0,0);function _(e,t){var n=e.getTime();return t?n-=1262304e5:e>=w&&(n+=864e5),(n-(v+6e4*(e.getTimezoneOffset()-b.getTimezoneOffset())))/864e5}e._general_int=function(e){return e.toString(10)};var x=function(){var e=/(?:\.0*|(\.\d*[1-9])0+)$/;function t(t){return-1==t.indexOf(".")?t:t.replace(e,"$1")}var n=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,r=/(E[+-])(\d)$/;return function(e){var a,s=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return a=s>=-4&&s<=-1?e.toPrecision(10+s):Math.abs(s)<=9?function(e){var n=e<0?12:11,r=t(e.toFixed(12));return r.length<=n||(r=e.toPrecision(10)).length<=n?r:e.toExponential(5)}(e):10===s?e.toFixed(10).substr(0,12):function(e){var n=t(e.toFixed(11));return n.length>(e<0?12:11)||"0"===n||"-0"===n?e.toPrecision(6):n}(e),t(function(e){return-1==e.indexOf("E")?e:e.replace(n,"$1E").replace(r,"$10$2")}(a.toUpperCase()))}}();function k(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):x(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return O(14,_(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function E(e,t,n,a){var s,i="",o=0,l=0,h=n.y,f=0;switch(e){case 98:h=n.y+543;case 121:switch(t.length){case 1:case 2:s=h%100,f=2;break;default:s=h%1e4,f=4}break;case 109:switch(t.length){case 1:case 2:s=n.m,f=t.length;break;case 3:return c[n.m-1][1];case 5:return c[n.m-1][0];default:return c[n.m-1][2]}break;case 100:switch(t.length){case 1:case 2:s=n.d,f=t.length;break;case 3:return u[n.q][0];default:return u[n.q][1]}break;case 104:switch(t.length){case 1:case 2:s=1+(n.H+11)%12,f=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:s=n.H,f=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:s=n.M,f=t.length;break;default:throw"bad minute format: "+t}break;case 115:if("s"!=t&&"ss"!=t&&".0"!=t&&".00"!=t&&".000"!=t)throw"bad second format: "+t;return 0!==n.u||"s"!=t&&"ss"!=t?(l=a>=2?3===a?1e3:100:1===a?10:1,(o=Math.round(l*(n.S+n.u)))>=60*l&&(o=0),"s"===t?0===o?"0":""+o/l:(i=r(o,2+a),"ss"===t?i.substr(0,2):"."+i.substr(2,t.length-1))):r(n.S,t.length);case 90:switch(t){case"[h]":case"[hh]":s=24*n.D+n.H;break;case"[m]":case"[mm]":s=60*(24*n.D+n.H)+n.M;break;case"[s]":case"[ss]":s=60*(60*(24*n.D+n.H)+n.M)+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+t}f=3===t.length?1:2;break;case 101:s=h,f=1}return f>0?r(s,f):""}function C(e){if(e.length<=3)return e;for(var t=e.length%3,n=e.substr(0,t);t!=e.length;t+=3)n+=(n.length>0?",":"")+e.substr(t,3);return n}e._general_num=x,e._general=k;var S=function(){var e=/%/g;function i(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+i(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),-1===(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).indexOf("e")){var o=Math.floor(Math.log(t)*Math.LOG10E);for(-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(o-n.length+s):n+="E+"+(o-s);"0."===n.substr(0,2);)n=(n=n.charAt(0)+n.substr(2,a)+"."+n.substr(2+a)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}var l=/# (\?+)( ?)\/( ?)(\d+)/,u=/^#*0*\.([0#]+)/,c=/\).*[0#]/,h=/\(###\) ###\\?-####/;function f(e){for(var t,n="",r=0;r!=e.length;++r)switch(t=e.charCodeAt(r)){case 35:break;case 63:n+=" ";break;case 48:n+="0";break;default:n+=String.fromCharCode(t)}return n}function d(e,t){var n=Math.pow(10,t);return""+Math.round(e*n)/n}function p(e,t){var n=e-Math.floor(e),r=Math.pow(10,t);return t<(""+Math.round(n*r)).length?0:Math.round(n*r)}function m(y,b,v){if(40===y.charCodeAt(0)&&!b.match(c)){var w=b.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return v>=0?m("n",w,v):"("+m("n",w,-v)+")"}if(44===b.charCodeAt(b.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(y,b,v);if(-1!==b.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(y,b,v);if(-1!==b.indexOf("E"))return i(b,v);if(36===b.charCodeAt(0))return"$"+m(y,b.substr(" "==b.charAt(1)?2:1),v);var _,x,k,E,N=Math.abs(v),I=v<0?"-":"";if(b.match(/^00+$/))return I+o(N,b.length);if(b.match(/^[#?]+$/))return"0"===(_=o(v,0))&&(_=""),_.length>b.length?_:f(b.substr(0,b.length-_.length))+_;if(x=b.match(l))return function(e,t,s){var i=parseInt(e[4],10),o=Math.round(t*i),l=Math.floor(o/i),u=o-l*i,c=i;return s+(0===l?"":""+l)+" "+(0===u?n(" ",e[1].length+1+e[4].length):a(u,e[1].length)+e[2]+"/"+e[3]+r(c,e[4].length))}(x,N,I);if(b.match(/^#+0+$/))return I+o(N,b.length-b.indexOf("0"));if(x=b.match(u))return _=d(v,x[1].length).replace(/^([^\.]+)$/,"$1."+f(x[1])).replace(/\.$/,"."+f(x[1])).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(x[1]).length-t.length)})),-1!==b.indexOf("0.")?_:_.replace(/^0\./,".");if(b=b.replace(/^#+([0.])/,"$1"),x=b.match(/^(0*)\.(#*)$/))return I+d(N,x[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,x[1].length?"0.":".");if(x=b.match(/^#{1,3},##0(\.?)$/))return I+C(o(N,0));if(x=b.match(/^#,##0\.([#0]*0)$/))return v<0?"-"+m(y,b,-v):C(""+(Math.floor(v)+function(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}(v,x[1].length)))+"."+r(p(v,x[1].length),x[1].length);if(x=b.match(/^#,#*,#0/))return m(y,b.replace(/^#,#*,/,""),v);if(x=b.match(/^([0#]+)(\\?-([0#]+))+$/))return _=t(m(y,b.replace(/[\\-]/g,""),v)),k=0,t(t(b.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return k<_.length?_.charAt(k++):"0"===e?"0":""})));if(b.match(h))return"("+(_=m(y,"##########",v)).substr(0,3)+") "+_.substr(3,3)+"-"+_.substr(6);var D="";if(x=b.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return k=Math.min(x[4].length,7),E=g(N,Math.pow(10,k)-1,!1),_=""+I," "==(D=S("n",x[1],E[1])).charAt(D.length-1)&&(D=D.substr(0,D.length-1)+"0"),_+=D+x[2]+"/"+x[3],(D=s(E[2],k)).length-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(v)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,(function(e){return"00,"+(e.length<3?r(0,3-e.length):"")+e}))+"."+r(k,x[1].length);switch(b){case"###,##0.00":return m(y,"#,##0.00",v);case"###,###":case"##,###":case"#,###":var R=C(o(N,0));return"0"!==R?I+R:"";case"###,###.00":return m(y,"###,##0.00",v).replace(/^0\./,".");case"#,###.00":return m(y,"#,##0.00",v).replace(/^0\./,".")}throw new Error("unsupported format |"+b+"|")}function y(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+y(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),!(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).match(/[Ee]/)){var i=Math.floor(Math.log(t)*Math.LOG10E);-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(i-n.length+s):n+="E+"+(i-s),n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}function b(i,o,d){if(40===i.charCodeAt(0)&&!o.match(c)){var p=o.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return d>=0?b("n",p,d):"("+b("n",p,-d)+")"}if(44===o.charCodeAt(o.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(i,o,d);if(-1!==o.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(i,o,d);if(-1!==o.indexOf("E"))return y(o,d);if(36===o.charCodeAt(0))return"$"+b(i,o.substr(" "==o.charAt(1)?2:1),d);var m,v,w,_,x=Math.abs(d),k=d<0?"-":"";if(o.match(/^00+$/))return k+r(x,o.length);if(o.match(/^[#?]+$/))return m=""+d,0===d&&(m=""),m.length>o.length?m:f(o.substr(0,o.length-m.length))+m;if(v=o.match(l))return function(e,t,r){return r+(0===t?"":""+t)+n(" ",e[1].length+2+e[4].length)}(v,x,k);if(o.match(/^#+0+$/))return k+r(x,o.length-o.indexOf("0"));if(v=o.match(u))return m=(m=(""+d).replace(/^([^\.]+)$/,"$1."+f(v[1])).replace(/\.$/,"."+f(v[1]))).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(v[1]).length-t.length)})),-1!==o.indexOf("0.")?m:m.replace(/^0\./,".");if(o=o.replace(/^#+([0.])/,"$1"),v=o.match(/^(0*)\.(#*)$/))return k+(""+x).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,v[1].length?"0.":".");if(v=o.match(/^#{1,3},##0(\.?)$/))return k+C(""+x);if(v=o.match(/^#,##0\.([#0]*0)$/))return d<0?"-"+b(i,o,-d):C(""+d)+"."+n("0",v[1].length);if(v=o.match(/^#,#*,#0/))return b(i,o.replace(/^#,#*,/,""),d);if(v=o.match(/^([0#]+)(\\?-([0#]+))+$/))return m=t(b(i,o.replace(/[\\-]/g,""),d)),w=0,t(t(o.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return w-1||"\\"==n&&"-"==e.charAt(t+1)&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===n;);break;case"*":++t," "!=e.charAt(t)&&"*"!=e.charAt(t)||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;case" ":default:++t}return!1}function A(e,t,n,r){for(var a,s,i,o=[],u="",c=0,h="",f="t",d="H";c=12?"P":"A"),g.t="T",d="h",c+=3):"AM/PM"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"PM":"AM"),g.t="T",c+=5,d="h"):"上午/下午"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"下午":"上午"),g.t="T",c+=5,d="h"):(g.t="t",++c),null==a&&"T"===g.t)return"";o[o.length]=g,f=h;break;case"[":for(u=h;"]"!==e.charAt(c++)&&c-1&&(u=(u.match(/\$([^-\[\]]*)/)||[])[1]||"$",D(e)||(o[o.length]={t:"t",v:u}));break;case".":if(null!=a){for(u=h;++c-1;)u+=h;o[o.length]={t:"n",v:u};break;case"?":for(u=h;e.charAt(++c)===h;)u+=h;o[o.length]={t:h,v:u},f=h;break;case"*":++c," "!=e.charAt(c)&&"*"!=e.charAt(c)||++c;break;case"(":case")":o[o.length]={t:1===r?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(u=h;c-1;)u+=e.charAt(c);o[o.length]={t:"D",v:u};break;case" ":o[o.length]={t:h,v:h},++c;break;case"$":o[o.length]={t:"t",v:"$"},++c;break;default:if(-1===",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h))throw new Error("unrecognized character "+h+" in "+e);o[o.length]={t:"t",v:h},++c}var b,v=0,w=0;for(c=o.length-1,f="t";c>=0;--c)switch(o[c].t){case"h":case"H":o[c].t=d,f="h",v<1&&(v=1);break;case"s":(b=o[c].v.match(/\.0+$/))&&(w=Math.max(w,b[0].length-1)),v<3&&(v=3);case"d":case"y":case"M":case"e":f=o[c].t;break;case"m":"s"===f&&(o[c].t="M",v<2&&(v=2));break;case"X":break;case"Z":v<1&&o[c].v.match(/[Hh]/)&&(v=1),v<2&&o[c].v.match(/[Mm]/)&&(v=2),v<3&&o[c].v.match(/[Ss]/)&&(v=3)}switch(v){case 0:break;case 1:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H);break;case 2:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M)}var _,x="";for(c=0;c0){40==x.charCodeAt(0)?(C=t<0&&45===x.charCodeAt(0)?-t:t,N=S("n",x,C)):(N=S("n",x,C=t<0&&r>1?-t:t),C<0&&o[0]&&"t"==o[0].t&&(N=N.substr(1),o[0].v="-"+o[0].v)),_=N.length-1;var T=o.length;for(c=0;c-1){T=c;break}var R=o.length;if(T===o.length&&-1===N.indexOf("E")){for(c=o.length-1;c>=0;--c)null!=o[c]&&-1!=="n?".indexOf(o[c].t)&&(_>=o[c].v.length-1?(_-=o[c].v.length,o[c].v=N.substr(_+1,o[c].v.length)):_<0?o[c].v="":(o[c].v=N.substr(0,_+1),_=-1),o[c].t="t",R=c);_>=0&&R=0;--c)if(null!=o[c]&&-1!=="n?".indexOf(o[c].t)){for(s=o[c].v.indexOf(".")>-1&&c===T?o[c].v.indexOf(".")-1:o[c].v.length-1,A=o[c].v.substr(s+1);s>=0;--s)_>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(A=N.charAt(_--)+A);o[c].v=A,o[c].t="t",R=c}for(_>=0&&R-1&&c===T?o[c].v.indexOf(".")+1:0,A=o[c].v.substr(0,s);s-1&&(C=r>1&&t<0&&c>0&&"-"===o[c-1].v?-t:t,o[c].v=S(o[c].t,o[c].v,C),o[c].t="t");var F="";for(c=0;c!==o.length;++c)null!=o[c]&&(F+=o[c].v);return F}e.is_date=D,e._eval=A;var T=/\[[=<>]/,R=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function F(e,t){if(null==t)return!1;var n=parseFloat(t[2]);switch(t[1]){case"=":if(e==n)return!0;break;case">":if(e>n)return!0;break;case"<":if(e":if(e!=n)return!0;break;case">=":if(e>=n)return!0;break;case"<=":if(e<=n)return!0}return!1}function O(e,t,n){null==n&&(n={});var r="";switch(typeof e){case"string":r="m/d/yy"==e&&n.dateNF?n.dateNF:e;break;case"number":null==(r=14==e&&n.dateNF?n.dateNF:(null!=n.table?n.table:f)[e])&&(r=n.table&&n.table[d[e]]||f[d[e]]),null==r&&(r=m[e]||"General")}if(l(r,0))return k(t,n);t instanceof Date&&(t=_(t,n.date1904));var a=function(e,t){var n=N(e),r=n.length,a=n[r-1].indexOf("@");if(r<4&&a>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if("number"!=typeof t)return[4,4===n.length||a>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=a>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=a>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=a>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"]}var s=t>0?n[0]:t<0?n[1]:n[2];if(-1===n[0].indexOf("[")&&-1===n[1].indexOf("["))return[r,s];if(null!=n[0].match(T)||null!=n[1].match(T)){var i=n[0].match(R),o=n[1].match(R);return F(t,i)?[r,n[0]]:F(t,o)?[r,n[1]]:[r,n[null!=i&&null!=o?2:1]]}return[r,s]}(r,t);if(l(a[1]))return k(t,n);if(!0===t)t="TRUE";else if(!1===t)t="FALSE";else if(""===t||null==t)return"";return A(a[1],t,n,a[0])}function B(e,t){if("number"!=typeof t){t=+t||-1;for(var n=0;n<392;++n)if(null!=f[n]){if(f[n]==e){t=n;break}}else t<0&&(t=n);t<0&&(t=391)}return f[t]=e,t}e.load=B,e._table=f,e.get_table=function(){return f},e.load_table=function(e){for(var t=0;392!=t;++t)void 0!==e[t]&&B(e[t],t)},e.init_table=h,e.format=O};A(D);var T,R={"General Number":"General","General Date":D._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":D._table[15],"Short Date":D._table[14],"Long Time":D._table[19],"Medium Time":D._table[18],"Short Time":D._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:D._table[2],Standard:D._table[4],Percent:D._table[10],Scientific:D._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'},F={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},O=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;!function(e){e.version="1.2.0";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!=typeof Int32Array?new Int32Array(t):t}();e.table=t,e.bstr=function(e,n){for(var r=-1^n,a=e.length-1,s=0;s>>8^t[255&(r^e.charCodeAt(s++))])>>>8^t[255&(r^e.charCodeAt(s++))];return s===a&&(r=r>>>8^t[255&(r^e.charCodeAt(s))]),-1^r},e.buf=function(e,n){if(e.length>1e4)return function(e,n){for(var r=-1^n,a=e.length-7,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r}(e,n);for(var r=-1^n,a=e.length-3,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r},e.str=function(e,n){for(var r,a,s=-1^n,i=0,o=e.length;i>>8^t[255&(s^r)]:r<2048?s=(s=s>>>8^t[255&(s^(192|r>>6&31))])>>>8^t[255&(s^(128|63&r))]:r>=55296&&r<57344?(r=64+(1023&r),a=1023&e.charCodeAt(i++),s=(s=(s=(s=s>>>8^t[255&(s^(240|r>>8&7))])>>>8^t[255&(s^(128|r>>2&63))])>>>8^t[255&(s^(128|a>>6&15|(3&r)<<4))])>>>8^t[255&(s^(128|63&a))]):s=(s=(s=s>>>8^t[255&(s^(224|r>>12&15))])>>>8^t[255&(s^(128|r>>6&63))])>>>8^t[255&(s^(128|63&r))];return-1^s}}(T={});var B,M=function(){var e,t={};function r(e){if("/"==e.charAt(e.length-1))return-1===e.slice(0,-1).indexOf("/")?e:r(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(0,t+1)}function a(e){if("/"==e.charAt(e.length-1))return a(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(t+1)}function s(e,t){"string"==typeof t&&(t=new Date(t));var n=t.getHours();n=(n=n<<6|t.getMinutes())<<5|t.getSeconds()>>>1,e.write_shift(2,n);var r=t.getFullYear()-1980;r=(r=r<<4|t.getMonth()+1)<<5|t.getDate(),e.write_shift(2,r)}function i(e){Bt(e,0);for(var t={},n=0;e.l<=e.length-4;){var r=e.read_shift(2),a=e.read_shift(2),s=e.l+a,i={};switch(r){case 21589:1&(n=e.read_shift(1))&&(i.mtime=e.read_shift(4)),a>5&&(2&n&&(i.atime=e.read_shift(4)),4&n&&(i.ctime=e.read_shift(4))),i.mtime&&(i.mt=new Date(1e3*i.mtime))}e.l=s,t[r]=i}return t}function o(){return e||(e=n(2993))}function l(e,t){if(80==e[0]&&75==e[1])return he(e,t);if(e.length<512)throw new Error("CFB file size "+e.length+" < 512");var n,r,a,s,i,o,l=512,d=[],p=e.slice(0,512);Bt(p,0);var m=function(e){if(80==e[e.l]&&75==e[e.l+1])return[0,0];e.chk(E,"Header Signature: "),e.l+=16;var t=e.read_shift(2,"u");return[e.read_shift(2,"u"),t]}(p);switch(n=m[0]){case 3:l=512;break;case 4:l=4096;break;case 0:if(0==m[1])return he(e,t);default:throw new Error("Major Version: Expected 3 or 4 saw "+n)}512!==l&&Bt(p=e.slice(0,l),28);var g=e.slice(0,l);!function(e,t){var n;switch(e.l+=2,n=e.read_shift(2)){case 9:if(3!=t)throw new Error("Sector Shift: Expected 9 saw "+n);break;case 12:if(4!=t)throw new Error("Sector Shift: Expected 12 saw "+n);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+n)}e.chk("0600","Mini Sector Shift: "),e.chk("000000000000","Reserved: ")}(p,n);var y=p.read_shift(4,"i");if(3===n&&0!==y)throw new Error("# Directory Sectors: Expected 0 saw "+y);p.l+=4,s=p.read_shift(4,"i"),p.l+=4,p.chk("00100000","Mini Stream Cutoff Size: "),i=p.read_shift(4,"i"),r=p.read_shift(4,"i"),o=p.read_shift(4,"i"),a=p.read_shift(4,"i");for(var b=-1,v=0;v<109&&!((b=p.read_shift(4,"i"))<0);++v)d[v]=b;var w=function(e,t){for(var n=Math.ceil(e.length/t)-1,r=[],a=1;a=a&&(f-=a),!i[f]){l=[];var p=[];for(h=f;h>=0;){p[h]=!0,i[h]=!0,o[o.length]=h,l.push(e[h]);var m=n[Math.floor(4*h/r)];if(r<4+(d=4*h&u))throw new Error("FAT boundary crossed: "+h+" 4 "+r);if(!e[m])break;if(p[h=Dt(e[m],d)])break}s[f]={nodes:o,data:it([l])}}return s}(w,s,d,l);_[s].name="!Directory",r>0&&i!==k&&(_[i].name="!MiniFAT"),_[d[0]].name="!FAT",_.fat_addrs=d,_.ssz=l;var x=[],C=[],S=[];!function(e,t,n,r,a,s,i,o){for(var l,c=0,d=r.length?2:0,p=t[e].data,m=0,g=0;m0&&c!==k&&(t[c].name="!StreamData")):b.size>=4096?(b.storage="fat",void 0===t[b.start]&&(t[b.start]=h(n,b.start,t.fat_addrs,t.ssz)),t[b.start].name=b.name,b.content=t[b.start].data.slice(0,b.size)):(b.storage="minifat",b.size<0?b.size=0:c!==k&&b.start!==k&&t[c]&&(b.content=u(b,t[c].data,(t[o]||{}).data))),b.content&&Bt(b.content,0),s[l]=b,i.push(b)}}(s,_,w,x,r,{},C,i),function(e,t,n){for(var r=0,a=0,s=0,i=0,o=0,l=n.length,u=[],c=[];r0&&i>=0;)s.push(t.slice(i*v,i*v+v)),a-=v,i=Dt(n,4*i);return 0===s.length?$t(0):S(s).slice(0,e.size)}function c(e,t,n,r,a){var s=k;if(e===k){if(0!==t)throw new Error("DIFAT chain shorter than expected")}else if(-1!==e){var i=n[e],o=(r>>>2)-1;if(!i)return;for(var l=0;l=0;){a[l]=!0,s[s.length]=l,i.push(e[l]);var c=n[Math.floor(4*l/r)];if(r<4+(u=4*l&o))throw new Error("FAT boundary crossed: "+l+" 4 "+r);if(!e[c])break;l=Dt(e[c],u)}return{nodes:s,data:it([i])}}function f(e,t){return new Date(1e3*(It(e,t+4)/1e7*Math.pow(2,32)+It(e,t)/1e7-11644473600))}function d(e,t){var n=t||{},r=n.root||"Root Entry";if(e.FullPaths||(e.FullPaths=[]),e.FileIndex||(e.FileIndex=[]),e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");0===e.FullPaths.length&&(e.FullPaths[0]=r+"/",e.FileIndex[0]={name:r,type:5}),n.CLSID&&(e.FileIndex[0].clsid=n.CLSID),function(e){var t="Sh33tJ5";if(!M.find(e,"/"+t)){var n=$t(4);n[0]=55,n[1]=n[3]=50,n[2]=54,e.FileIndex.push({name:t,type:2,content:n,size:4,L:69,R:69,C:69}),e.FullPaths.push(e.FullPaths[0]+t),p(e)}}(e)}function p(e,t){d(e);for(var n=!1,s=!1,i=e.FullPaths.length-1;i>=0;--i){var o=e.FileIndex[i];switch(o.type){case 0:s?n=!0:(e.FileIndex.pop(),e.FullPaths.pop());break;case 1:case 2:case 5:s=!0,isNaN(o.R*o.L*o.C)&&(n=!0),o.R>-1&&o.L>-1&&o.R==o.L&&(n=!0);break;default:n=!0}}if(n||t){var l=new Date(1987,1,19),u=0,c=[];for(i=0;i1?1:-1,f.size=0,f.type=5;else if("/"==p.slice(-1)){for(u=i+1;u=c.length?-1:u,u=i+1;u=c.length?-1:u,f.type=1}else r(e.FullPaths[i+1]||"")==r(p)&&(f.R=i+1),f.type=2}}}function m(e,t){var n=t||{};if(p(e),"zip"==n.fileType)return function(e,t){var n=t||{},r=[],a=[],i=$t(1),o=n.compression?8:0,l=0,u=0,c=0,h=0,f=e.FullPaths[0],d=f,p=e.FileIndex[0],m=[],g=0;for(l=1;l0&&(s<4096?t+=s+63>>6:n+=s+511>>9)}}for(var i=e.FullPaths.length+3>>2,o=t+127>>7,l=(t+7>>3)+n+i+o,u=l+127>>7,c=u<=109?0:Math.ceil((u-109)/127);l+u+c+127>>7>u;)c=++u<=109?0:Math.ceil((u-109)/127);var h=[1,c,u,o,i,n,t,0];return e.FileIndex[0].size=t<<6,h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3),h}(e),a=$t(r[7]<<9),i=0,o=0;for(i=0;i<8;++i)a.write_shift(1,C[i]);for(i=0;i<8;++i)a.write_shift(2,0);for(a.write_shift(2,62),a.write_shift(2,3),a.write_shift(2,65534),a.write_shift(2,9),a.write_shift(2,6),i=0;i<3;++i)a.write_shift(2,0);for(a.write_shift(4,0),a.write_shift(4,r[2]),a.write_shift(4,r[0]+r[1]+r[2]+r[3]-1),a.write_shift(4,0),a.write_shift(4,4096),a.write_shift(4,r[3]?r[0]+r[1]+r[2]-1:k),a.write_shift(4,r[3]),a.write_shift(-4,r[1]?r[0]-1:k),a.write_shift(4,r[1]),i=0;i<109;++i)a.write_shift(-4,i>9)));for(l(r[6]+7>>3);511&a.l;)a.write_shift(-4,A.ENDOFCHAIN);for(o=i=0,u=0;u=4096||(h.start=o,l(c+63>>6)));for(;511&a.l;)a.write_shift(-4,A.ENDOFCHAIN);for(i=0;i=4096){for(a.l=h.start+1<<9,u=0;u0&&h.size<4096){for(u=0;u>16|B>>8|B));function V(e,t){var n=W[255&e];return t<=8?n>>>8-t:(n=n<<8|W[e>>8&255],t<=16?n>>>16-t:(n=n<<8|W[e>>16&255])>>>24-t)}function j(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=6?0:e[r+1]<<8))>>>n&3}function H(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=5?0:e[r+1]<<8))>>>n&7}function G(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=3?0:e[r+1]<<8))>>>n&31}function q(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=1?0:e[r+1]<<8))>>>n&127}function X(e,t,n){var r=7&t,a=t>>>3,s=(1<>>r;return n<8-r?i&s:(i|=e[a+1]<<8-r,n<16-r?i&s:(i|=e[a+2]<<16-r,n<24-r?i&s:(i|=e[a+3]<<24-r)&s))}function K(e,t){var n=e.length,r=2*n>t?2*n:t+5,a=0;if(n>=t)return e;if(y){var s=_(r);if(e.copy)e.copy(s);else for(;a0;)t[t.l++]=e[n++]}return t.l},function(e){var t=$t(50+Math.floor(1.1*e.length)),n=J(e,t);return t.slice(0,n)});function Q(e,t,n){var r=1,a=0,s=0,i=0,o=0,l=e.length,u=z?new Uint16Array(32):Y(32);for(s=0;s<32;++s)u[s]=0;for(s=l;s>r-h,i=(1<=0;--i)t[o|i<>>3;return(e[r]|(n<=4?0:e[r+1]<<8))>>>n&15}(e,t+=5)+4;t+=4;for(var s=0,i=z?new Uint8Array(19):Y(19),o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=1,u=z?new Uint8Array(8):Y(8),c=z?new Uint8Array(8):Y(8),h=i.length,f=0;f>8-p;for(var m=(1<<7-p)-1;m>=0;--m)se[d|m<>>=3){case 16:for(s=3+j(e,t),t+=2,d=g[g.length-1];s-- >0;)g.push(d);break;case 17:for(s=3+H(e,t),t+=3;s-- >0;)g.push(0);break;case 18:for(s=11+q(e,t),t+=7;s-- >0;)g.push(0);break;default:g.push(d),l>>0,o=0,l=0;0==(1&r);)if(r=H(e,n),n+=3,r>>>1!=0)for(r>>>1==1?(o=9,l=5):(n=le(e,n),o=ie,l=oe),!t&&i>>1==1?ee[u]:re[u];if(n+=15&c,0==((c>>>=4)>>>8&255))a[s++]=c;else{if(256==c)break;var h=(c-=257)<8?0:c-4>>2;h>5&&(h=0);var f=s+P[c];h>0&&(f+=X(e,n,h),n+=h),u=X(e,n,l),n+=15&(c=r>>>1==1?te[u]:ae[u]);var d=(c>>>=4)<4?0:c-2>>1,p=L[c];for(d>0&&(p+=X(e,n,d),n+=d),!t&&i>>3]|e[1+(n>>>3)]<<8;if(n+=32,!t&&i>>3,(n>>>3)+m),s+=m,n+=8*m;else for(;m-- >0;)a[s++]=e[n>>>3],n+=8}return[t?a:a.slice(0,s),n+7>>>3]}(e.slice(e.l||0),t);return e.l+=n[1],n[0]}function ce(e,t){if(!e)throw new Error(t);"undefined"!=typeof console&&console.error(t)}function he(e,t){var n=e;Bt(n,0);var r={FileIndex:[],FullPaths:[]};d(r,{root:t.root});for(var a=n.length-4;(80!=n[a]||75!=n[a+1]||5!=n[a+2]||6!=n[a+3])&&a>=0;)--a;n.l=a+4,n.l+=4;var s=n.read_shift(2);n.l+=6;var o=n.read_shift(4);for(n.l=o,a=0;a>>=5);n>>>=4,r.setMilliseconds(0),r.setFullYear(n+1980),r.setMonth(s-1),r.setDate(a);var i=31&t,o=63&(t>>>=5);return t>>>=6,r.setHours(t),r.setMinutes(o),r.setSeconds(i<<1),r}(e);if(8257&s)throw new Error("Unsupported ZIP encryption");for(var u=e.read_shift(4),c=e.read_shift(4),h=e.read_shift(4),f=e.read_shift(2),d=e.read_shift(2),p="",m=0;m3&&(r=!0),a[s].slice(a[s].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+a[s].slice(a[s].length-1));case"D":n*=24;case"H":n*=60;case"M":if(!r)throw new Error("Unsupported ISO Duration Field: M");n*=60}t+=n*parseInt(a[s],10)}return t}var J=new Date("2017-02-19T19:06:09.000Z");isNaN(J.getFullYear())&&(J=new Date("2/19/17"));var Z=2017==J.getFullYear();function Q(e,t){var n=new Date(e);if(Z)return t>0?n.setTime(n.getTime()+60*n.getTimezoneOffset()*1e3):t<0&&n.setTime(n.getTime()-60*n.getTimezoneOffset()*1e3),n;if(e instanceof Date)return e;if(1917==J.getFullYear()&&!isNaN(n.getFullYear())){var r=n.getFullYear();return e.indexOf(""+r)>-1||n.setFullYear(n.getFullYear()+100),n}var a=e.match(/\d+/g)||["2017","2","19","0","0","0"],s=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf("Z")>-1&&(s=new Date(s.getTime()-60*s.getTimezoneOffset()*1e3)),s}function ee(e){for(var t="",n=0;n!=e.length;++n)t+=String.fromCharCode(e[n]);return t}function te(e){if("undefined"!=typeof JSON&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=te(e[n]));return t}function ne(e,t){for(var n="";n.length8099?n:(a>0||s>1)&&101!=r||e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)?t:e.match(/[^-0-9:,\/\\]/)?n:t}var se,ie=5=="abacaba".split(/(:?b)/i).length;function oe(e){return e?e.data?f(e.data):e.asNodeBuffer&&y?f(e.asNodeBuffer().toString("binary")):e.asBinary?f(e.asBinary()):e._data&&e._data.getContent?f(ee(Array.prototype.slice.call(e._data.getContent(),0))):e.content&&e.type?f(ee(e.content)):null:null}function le(e,t){for(var n=e.FullPaths||z(e.files),r=t.toLowerCase(),a=r.replace(/\//g,"\\"),s=0;s\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,ye=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s?[\/\?]?>/gm;me.match(ye)||(ye=/<[^>]*>/g);var be=/<\w*:/,ve=/<(\/?)\w+:/;function we(e,t,n){for(var r={},a=0,s=0;a!==e.length&&32!==(s=e.charCodeAt(a))&&10!==s&&13!==s;++a);if(t||(r[0]=e.slice(0,a)),a===e.length)return r;var i=e.match(ge),o=0,l="",u=0,c="",h="",f=1;if(i)for(u=0;u!=i.length;++u){for(h=i[u],s=0;s!=h.length&&61!==h.charCodeAt(s);++s);for(c=h.slice(0,s).trim();32==h.charCodeAt(s+1);)++s;for(f=34==(a=h.charCodeAt(s+1))||39==a?1:0,l=h.slice(s+1+f,h.length-f),o=0;o!=c.length&&58!==c.charCodeAt(o);++o);if(o===c.length)c.indexOf("_")>0&&(c=c.slice(0,c.indexOf("_"))),r[c]=l,n||(r[c.toLowerCase()]=l);else{var d=(5===o&&"xmlns"===c.slice(0,5)?"xmlns":"")+c.slice(o+1);if(r[d]&&"ext"==c.slice(o-3,o))continue;r[d]=l,n||(r[d.toLowerCase()]=l)}}return r}function _e(e){return e.replace(ve,"<$1")}var xe,ke,Ee={""":'"',"'":"'",">":">","<":"<","&":"&"},Ce=U(Ee),Se=(xe=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi,ke=/_x([\da-fA-F]{4})_/gi,function e(t){var n=t+"",r=n.indexOf("-1?16:10))||e})).replace(ke,(function(e,t){return String.fromCharCode(parseInt(t,16))}));var a=n.indexOf("]]>");return e(n.slice(0,r))+n.slice(r+9,a)+e(n.slice(a+3))}),Ne=/[&<>'"]/g,Ie=/[\u0000-\u0008\u000b-\u001f]/g;function De(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(Ie,(function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"}))}function Ae(e){return De(e).replace(/ /g,"_x0020_")}var Te=/[\u0000-\u001f]/g;function Re(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(/\n/g,"
").replace(Te,(function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"}))}var Fe=function(){var e=/&#(\d+);/g;function t(e,t){return String.fromCharCode(parseInt(t,10))}return function(n){return n.replace(e,t)}}();function Oe(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}var Be=function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0;n191&&r<224?(i=(31&r)<<6,i|=63&a,t+=String.fromCharCode(i)):(s=e.charCodeAt(n++),r<240?t+=String.fromCharCode((15&r)<<12|(63&a)<<6|63&s):(o=((7&r)<<18|(63&a)<<12|(63&s)<<6|63&(i=e.charCodeAt(n++)))-65536,t+=String.fromCharCode(55296+(o>>>10&1023)),t+=String.fromCharCode(56320+(1023&o)))));return t},Me=function(e){for(var t=[],n=0,r=0,a=0;n>6))),t.push(String.fromCharCode(128+(63&r)));break;case r>=55296&&r<57344:r-=55296,a=e.charCodeAt(n++)-56320+(r<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(63&a)));break;default:t.push(String.fromCharCode(224+(r>>12))),t.push(String.fromCharCode(128+(r>>6&63))),t.push(String.fromCharCode(128+(63&r)))}return t.join("")};if(y){var $e=function(e){var t,n,r,a=Buffer.alloc(2*e.length),s=1,i=0,o=0;for(n=0;n>>10&1023),t=56320+(1023&t)),0!==o&&(a[i++]=255&o,a[i++]=o>>>8,o=0),a[i++]=t%256,a[i++]=t>>>8;return a.slice(0,i).toString("ucs2")},Pe="foo bar baz☃🍣";Be(Pe)==$e(Pe)&&(Be=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Be(Pe)==Le(Pe)&&(Be=Le),Me=function(e){return b(e,"utf8").toString("binary")}}var ze,We,Ue,Ve=(ze={},function(e,t){var n=e+"|"+(t||"");return ze[n]?ze[n]:ze[n]=new RegExp("<(?:\\w+:)?"+e+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",t||"")}),je=(We=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map((function(e){return[new RegExp("&"+e[0]+";","ig"),e[1]]})),function(e){for(var t=e.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,"\n").replace(/<[^>]*>/g,""),n=0;n([\\s\\S]*?)","g")}),Ge=/<\/?(?:vt:)?variant>/g,qe=/<(?:vt:)([^>]*)>([\s\S]*)"+t+""}function Je(e){return z(e).map((function(t){return" "+t+'="'+e[t]+'"'})).join("")}function Ze(e,t,n){return"<"+e+(null!=n?Je(n):"")+(null!=t?(t.match(Ke)?' xml:space="preserve"':"")+">"+t+""}function Qe(e,t){try{return e.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}return""}var et,tt,nt={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",main:["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"]},rt="urn:schemas-microsoft-com:office:office",at="urn:schemas-microsoft-com:office:excel",st="urn:schemas-microsoft-com:office:spreadsheet",it=function(e){for(var t=[],n=0;n0?ft(e,t+4,t+4+n-1):""},mt=pt,gt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},yt=gt,bt=function(e,t){var n=2*It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},vt=bt;et=tt=function(e,t){var n=It(e,t);return n>0?lt(e,t+4,t+4+n):""};var wt,_t,xt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n):""},kt=xt;wt=_t=function(e,t){return function(e,t){for(var n=1-2*(e[t+7]>>>7),r=((127&e[t+7])<<4)+(e[t+6]>>>4&15),a=15&e[t+6],s=5;s>=0;--s)a=256*a+e[t+s];return 2047==r?0==a?n*(1/0):NaN:(0==r?r=-1022:(r-=1023,a+=Math.pow(2,52)),n*Math.pow(2,r-52)*a)}(e,t)};var Et=function(e){return Array.isArray(e)};y&&(lt=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf16le",t,n).replace(N,""):ut(e,t,n)},ct=function(e,t,n){return Buffer.isBuffer(e)?e.toString("hex",t,t+n):ht(e,t,n)},pt=function(e,t){if(!Buffer.isBuffer(e))return mt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},gt=function(e,t){if(!Buffer.isBuffer(e))return yt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},bt=function(e,t){if(!Buffer.isBuffer(e))return vt(e,t);var n=2*e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n-1)},et=function(e,t){if(!Buffer.isBuffer(e))return tt(e,t);var n=e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n)},xt=function(e,t){if(!Buffer.isBuffer(e))return kt(e,t);var n=e.readUInt32LE(t);return e.toString("utf8",t+4,t+4+n)},ft=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf8",t,n):dt(e,t,n)},it=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):ot(e)},S=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)},wt=function(e,t){return Buffer.isBuffer(e)?e.readDoubleLE(t):_t(e,t)},Et=function(e){return Buffer.isBuffer(e)||Array.isArray(e)}),"undefined"!=typeof cptable&&(lt=function(e,t,n){return cptable.utils.decode(1200,e.slice(t,n)).replace(N,"")},ft=function(e,t,n){return cptable.utils.decode(65001,e.slice(t,n))},pt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(a,e.slice(t+4,t+4+n-1)):""},gt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(r,e.slice(t+4,t+4+n-1)):""},bt=function(e,t){var n=2*It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n-1)):""},et=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n)):""},xt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(65001,e.slice(t+4,t+4+n)):""});var Ct=function(e,t){return e[t]},St=function(e,t){return 256*e[t+1]+e[t]},Nt=function(e,t){var n=256*e[t+1]+e[t];return n<32768?n:-1*(65535-n+1)},It=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},Dt=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},At=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function Tt(e,t){var n,a,s,i,o,l,u="",c=[];switch(t){case"dbcs":if(l=this.l,y&&Buffer.isBuffer(this))u=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o0?Dt:At)(this,this.l),this.l+=4,n):(a=It(this,this.l),this.l+=4,a);case 8:case-8:if("f"===t)return a=8==e?wt(this,this.l):wt([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,a;e=8;case 16:u=ct(this,this.l,e)}}return this.l+=e,u}var Rt=function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255};function Ft(e,t,n){var r=0,s=0;if("dbcs"===n){for(s=0;s!=t.length;++s)Rt(this,t.charCodeAt(s),this.l+2*s);r=2*t.length}else if("sbcs"===n){if("undefined"!=typeof cptable&&874==a)for(s=0;s!=t.length;++s){var i=cptable.utils.encode(a,t.charAt(s));this[this.l+s]=i[0]}else for(t=t.replace(/[^\x00-\x7F]/g,"_"),s=0;s!=t.length;++s)this[this.l+s]=255&t.charCodeAt(s);r=t.length}else{if("hex"===n){for(;s>8}for(;this.l>>=8,this[this.l+1]=255&t;break;case 3:r=3,this[this.l]=255&t,t>>>=8,this[this.l+1]=255&t,t>>>=8,this[this.l+2]=255&t;break;case 4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24&255}(this,t,this.l);break;case 8:if(r=8,"f"===n){!function(e,t,n){var r=(t<0||1/t==-1/0?1:0)<<7,a=0,s=0,i=r?-t:t;isFinite(i)?0==i?a=s=0:(a=Math.floor(Math.log(i)/Math.LN2),s=i*Math.pow(2,52-a),a<=-1023&&(!isFinite(s)||s>4|r}(this,t,this.l);break}case 16:break;case-4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>8&255,e[n+2]=t>>16&255,e[n+3]=t>>24&255}(this,t,this.l)}}return this.l+=r,this}function Ot(e,t){var n=ct(this,this.l,e.length>>1);if(n!==e)throw new Error(t+"Expected "+e+" saw "+n);this.l+=e.length>>1}function Bt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Ft}function Mt(e,t){e.l+=t}function $t(e){var t=w(e);return Bt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Bt(e,e.l||0);for(var i=e.length,o=0,l=0;e.lr.l&&((r=r.slice(0,r.l)).l=r.length),r.length>0&&e.push(r),r=null)},s=function(e){return r&&e=128?1:0)+1,r>=128&&++a,r>=16384&&++a,r>=2097152&&++a;var i=e.next(a);s<=127?i.write_shift(1,s):(i.write_shift(1,128+(127&s)),i.write_shift(1,s>>7));for(var o=0;4!=o;++o){if(!(r>=128)){i.write_shift(1,r);break}i.write_shift(1,128+(127&r)),r>>=7}r>0&&Et(n)&&e.push(n)}}function Wt(e,t,n){var r=te(e);if(t.s?(r.cRel&&(r.c+=t.s.c),r.rRel&&(r.r+=t.s.r)):(r.cRel&&(r.c+=t.c),r.rRel&&(r.r+=t.r)),!n||n.biff<12){for(;r.c>=256;)r.c-=256;for(;r.r>=65536;)r.r-=65536}return r}function Ut(e,t,n){var r=te(e);return r.s=Wt(r.s,t.s,n),r.e=Wt(r.e,t.s,n),r}function Vt(e,t){if(e.cRel&&e.c<0)for(e=te(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=te(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var n=Yt(e);return e.cRel||null==e.cRel||(n=n.replace(/^([A-Z])/,"$$$1")),e.rRel||null==e.rRel||(n=n.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")),n}function jt(e,t){return 0!=e.s.r||e.s.rRel||e.e.r!=(t.biff>=12?1048575:t.biff>=8?65536:16384)||e.e.rRel?0!=e.s.c||e.s.cRel||e.e.c!=(t.biff>=12?16383:255)||e.e.cRel?Vt(e.s,t.biff)+":"+Vt(e.e,t.biff):(e.s.rRel?"":"$")+Gt(e.s.r)+":"+(e.e.rRel?"":"$")+Gt(e.e.r):(e.s.cRel?"":"$")+Xt(e.s.c)+":"+(e.e.cRel?"":"$")+Xt(e.e.c)}function Ht(e){return parseInt(e.replace(/\$(\d+)$/,"$1"),10)-1}function Gt(e){return""+(e+1)}function qt(e){for(var t=e.replace(/^\$([A-Z])/,"$1"),n=0,r=0;r!==t.length;++r)n=26*n+t.charCodeAt(r)-64;return n-1}function Xt(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function Kt(e){for(var t=0,n=0,r=0;r=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(n=26*n+(a-64))}return{c:n-1,r:t-1}}function Yt(e){for(var t=e.c+1,n="";t;t=(t-1)/26|0)n=String.fromCharCode((t-1)%26+65)+n;return n+(e.r+1)}function Jt(e){var t=e.indexOf(":");return-1==t?{s:Kt(e),e:Kt(e)}:{s:Kt(e.slice(0,t)),e:Kt(e.slice(t+1))}}function Zt(e,t){return void 0===t||"number"==typeof t?Zt(e.s,e.e):("string"!=typeof e&&(e=Yt(e)),"string"!=typeof t&&(t=Yt(t)),e==t?e:e+":"+t)}function Qt(e){var t={s:{c:0,r:0},e:{c:0,r:0}},n=0,r=0,a=0,s=e.length;for(n=0;r26);++r)n=26*n+a;for(t.s.c=--n,n=0;r9);++r)n=10*n+a;if(t.s.r=--n,r===s||58===e.charCodeAt(++r))return t.e.c=t.s.c,t.e.r=t.s.r,t;for(n=0;r!=s&&!((a=e.charCodeAt(r)-64)<1||a>26);++r)n=26*n+a;for(t.e.c=--n,n=0;r!=s&&!((a=e.charCodeAt(r)-48)<0||a>9);++r)n=10*n+a;return t.e.r=--n,t}function en(e,t,n){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&n&&n.dateNF&&(e.z=n.dateNF),function(e,t){var n="d"==e.t&&t instanceof Date;if(null!=e.z)try{return e.w=D.format(e.z,n?H(t):t)}catch(e){}try{return e.w=D.format((e.XF||{}).numFmtId||(n?14:0),n?H(t):t)}catch(e){return""+t}}(e,null==t?e.v:t))}function tn(e,t){var n=t&&t.sheet?t.sheet:"Sheet1",r={};return r[n]=e,{SheetNames:[n],Sheets:r}}function nn(e,t,n){var r=n||{},a=e?Array.isArray(e):r.dense,s=e||(a?[]:{}),i=0,o=0;if(s&&null!=r.origin){if("number"==typeof r.origin)i=r.origin;else{var l="string"==typeof r.origin?Kt(r.origin):r.origin;i=l.r,o=l.c}s["!ref"]||(s["!ref"]="A1:A1")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(s["!ref"]){var c=Qt(s["!ref"]);u.s.c=c.s.c,u.s.r=c.s.r,u.e.c=Math.max(u.e.c,c.e.c),u.e.r=Math.max(u.e.r,c.e.r),-1==i&&(u.e.r=i=c.e.r+1)}for(var h=0;h!=t.length;++h)if(t[h]){if(!Array.isArray(t[h]))throw new Error("aoa_to_sheet expects an array of arrays");for(var f=0;f!=t[h].length;++f)if(void 0!==t[h][f]){var d={v:t[h][f]},p=i+h,m=o+f;if(u.s.r>p&&(u.s.r=p),u.s.c>m&&(u.s.c=m),u.e.r0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}function ln(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function un(e,t){var n=e.l,r=e.read_shift(1),a=sn(e),s=[],i={t:a,h:a};if(0!=(1&r)){for(var o=e.read_shift(4),l=0;l!=o;++l)s.push(ln(e));i.r=s}else i.r=[{ich:0,ifnt:0}];return e.l=n+t,i}!function(e,t){var r;if(void 0!==t)r=t;else try{r=n(3906)}catch(e){r=null}e.rc4=function(e,t){var n=new Array(256),r=0,a=0,s=0,i=0;for(a=0;256!=a;++a)n[a]=a;for(a=0;256!=a;++a)s=s+n[a]+e[a%e.length].charCodeAt(0)&255,i=n[a],n[a]=n[s],n[s]=i;a=s=0;var o=w(t.length);for(r=0;r!=t.length;++r)s=(s+n[a=a+1&255])%256,i=n[a],n[a]=n[s],n[s]=i,o[r]=t[r]^n[n[a]+n[s]&255];return o},e.md5=function(e){if(!r)throw new Error("Unsupported crypto");return r.createHash("md5").update(e).digest("hex")}}({},"undefined"!=typeof crypto?crypto:void 0);var cn=un;function hn(e){var t=e.read_shift(4),n=e.read_shift(2);return n+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:n}}function fn(e,t){return null==t&&(t=$t(8)),t.write_shift(-4,e.c),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}var dn=sn,pn=on;function mn(e){var t=e.read_shift(4);return 0===t||4294967295===t?"":e.read_shift(t,"dbcs")}function gn(e,t){var n=!1;return null==t&&(n=!0,t=$t(127)),t.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}var yn=sn,bn=mn,vn=gn;function wn(e){var t=e.slice(e.l,e.l+4),n=1&t[0],r=2&t[0];e.l+=4,t[0]&=252;var a=0===r?wt([0,0,0,0,t[0],t[1],t[2],t[3]],0):Dt(t,0)>>2;return n?a/100:a}function _n(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}var xn=_n,kn=function(e,t){return t||(t=$t(16)),t.write_shift(4,e.s.r),t.write_shift(4,e.e.r),t.write_shift(4,e.s.c),t.write_shift(4,e.e.c),t};function En(e){return e.read_shift(8,"f")}function Cn(e,t){return(t||$t(8)).write_shift(8,e,"f")}function Sn(e,t){if(t||(t=$t(8)),!e||e.auto)return t.write_shift(4,0),t.write_shift(4,0),t;null!=e.index?(t.write_shift(1,2),t.write_shift(1,e.index)):null!=e.theme?(t.write_shift(1,6),t.write_shift(1,e.theme)):(t.write_shift(1,5),t.write_shift(1,0));var n=e.tint||0;if(n>0?n*=32767:n<0&&(n*=32768),t.write_shift(2,n),e.rgb&&null==e.theme){var r=e.rgb||"FFFFFF";"number"==typeof r&&(r=("000000"+r.toString(16)).slice(-6)),t.write_shift(1,parseInt(r.slice(0,2),16)),t.write_shift(1,parseInt(r.slice(2,4),16)),t.write_shift(1,parseInt(r.slice(4,6),16)),t.write_shift(1,255)}else t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);return t}function Nn(e,t){var n=e.read_shift(4);switch(n){case 0:return"";case 4294967295:case 4294967294:return{2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"}[e.read_shift(4)]||""}if(n>400)throw new Error("Unsupported Clipboard: "+n.toString(16));return e.l-=4,e.read_shift(0,1==t?"lpstr":"lpwstr")}var In=80,Dn=[In,81],An={1:{n:"CodePage",t:2},2:{n:"Category",t:In},3:{n:"PresentationFormat",t:In},4:{n:"ByteCount",t:3},5:{n:"LineCount",t:3},6:{n:"ParagraphCount",t:3},7:{n:"SlideCount",t:3},8:{n:"NoteCount",t:3},9:{n:"HiddenCount",t:3},10:{n:"MultimediaClipCount",t:3},11:{n:"ScaleCrop",t:11},12:{n:"HeadingPairs",t:4108},13:{n:"TitlesOfParts",t:4126},14:{n:"Manager",t:In},15:{n:"Company",t:In},16:{n:"LinksUpToDate",t:11},17:{n:"CharacterCount",t:3},19:{n:"SharedDoc",t:11},22:{n:"HyperlinksChanged",t:11},23:{n:"AppVersion",t:3,p:"version"},24:{n:"DigSig",t:65},26:{n:"ContentType",t:In},27:{n:"ContentStatus",t:In},28:{n:"Language",t:In},29:{n:"Version",t:In},255:{}},Tn={1:{n:"CodePage",t:2},2:{n:"Title",t:In},3:{n:"Subject",t:In},4:{n:"Author",t:In},5:{n:"Keywords",t:In},6:{n:"Comments",t:In},7:{n:"Template",t:In},8:{n:"LastAuthor",t:In},9:{n:"RevNumber",t:In},10:{n:"EditTime",t:64},11:{n:"LastPrinted",t:64},12:{n:"CreatedDate",t:64},13:{n:"ModifiedDate",t:64},14:{n:"PageCount",t:3},15:{n:"WordCount",t:3},16:{n:"CharCount",t:3},17:{n:"Thumbnail",t:71},18:{n:"Application",t:In},19:{n:"DocSecurity",t:3},255:{}},Rn={2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}};!function(){for(var e in Rn)Object.prototype.hasOwnProperty.call(Rn,e)&&(An[e]=Tn[e]=Rn[e])}();var Fn,On=W(An,"n"),Bn=W(Tn,"n"),Mn={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},$n=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Pn=te([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].map((function(e){return[e>>16&255,e>>8&255,255&e]}))),Ln={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},zn=V(Ln),Wn={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Un=(z(Fn={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}}).forEach((function(e){["xlsm","xlam"].forEach((function(t){Fn[e][t]||(Fn[e][t]=Fn[e].xlsx)}))})),z(Fn).forEach((function(e){z(Fn[e]).forEach((function(t){Wn[Fn[e][t]]=e}))})),Fn),Vn=function(e){for(var t=[],n=z(e),r=0;r!==n.length;++r)null==t[e[n[r]]]&&(t[e[n[r]]]=[]),t[e[n[r]]].push(n[r]);return t}(Wn);nt.CT="http://schemas.openxmlformats.org/package/2006/content-types";var jn=Ze("Types",null,{xmlns:nt.CT,"xmlns:xsd":nt.xsd,"xmlns:xsi":nt.xsi}),Hn=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",Vn.rels[0]]].map((function(e){return Ze("Default",null,{Extension:e[0],ContentType:e[1]})})),Gn={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function qn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Xn(e,t){var n={"!id":{}};if(!e)return n;"/"!==t.charAt(0)&&(t="/"+t);var r={};return(e.match(ye)||[]).forEach((function(e){var a=we(e);if("2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Jn=[Gn.HLINK,Gn.XPATH,Gn.XMISS];function Zn(e,t,n,r,a,s){if(a||(a={}),e["!id"]||(e["!id"]={}),t<0)for(t=1;e["!id"]["rId"+t];++t);if(a.Id="rId"+t,a.Type=r,a.Target=n,s?a.TargetMode=s:Jn.indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+t);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,t}function Qn(e,t,n){return[' \n',' \n'," \n"].join("")}var er,tr=(er='SheetJS '+t.version+"",function(){return er}),nr=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];nt.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties",Gn.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var rr=function(){for(var e=new Array(nr.length),t=0;t]*>([\\s\\S]*?)")}return e}();function ar(e){var t={};e=Be(e);for(var n=0;n0&&(t[r[1]]=Se(a[1])),"date"===r[2]&&t[r[1]]&&(t[r[1]]=Q(t[r[1]]))}return t}var sr=Ze("cp:coreProperties",null,{"xmlns:cp":nt.CORE_PROPS,"xmlns:dc":nt.dc,"xmlns:dcterms":nt.dcterms,"xmlns:dcmitype":nt.dcmitype,"xmlns:xsi":nt.xsi});function ir(e,t,n,r,a){null==a[e]&&null!=t&&""!==t&&(a[e]=t,t=De(t),r[r.length]=n?Ze(e,t,n):Ye(e,t))}var or=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function lr(e,t,n,r){var a=[];if("string"==typeof e)a=Xe(e,r);else for(var s=0;s0)for(var u=0;u!==a.length;u+=2){switch(l=+a[u+1].v,a[u].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":n.Worksheets=l,n.SheetNames=i.slice(o,o+l);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":n.NamedRanges=l,n.DefinedNames=i.slice(o,o+l);break;case"Charts":case"Diagramme":n.Chartsheets=l,n.ChartNames=i.slice(o,o+l)}o+=l}}nt.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",Gn.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";var ur=Ze("Properties",null,{xmlns:nt.EXT_PROPS,"xmlns:vt":nt.vt});nt.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",Gn.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var cr=/<[^>]+>[^<]*/g,hr=Ze("Properties",null,{xmlns:nt.CUST_PROPS,"xmlns:vt":nt.vt});var fr={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},dr=U(fr);function pr(e,t,n){e[t=dr[t]||t]=n}function mr(e){var t=e.read_shift(4),n=e.read_shift(4);return new Date(1e3*(n/1e7*Math.pow(2,32)+t/1e7-11644473600)).toISOString().replace(/\.000/,"")}function gr(e,t,n){var r=e.l,a=e.read_shift(0,"lpstr-cp");if(n)for(;e.l-r&3;)++e.l;return a}function yr(e,t,n){var r=e.read_shift(0,"lpwstr");return n&&(e.l+=4-(r.length+1&3)&3),r}function br(e,t,n){return 31===t?yr(e):gr(e,0,n)}function vr(e,t,n){return br(e,t,!1===n?0:4)}function wr(e){return[kr(e,81),kr(e,3)]}function _r(e,t){for(var n=e.read_shift(4),r={},a=0;a!=n;++a){var s=e.read_shift(4),i=e.read_shift(4);r[s]=e.read_shift(i,1200===t?"utf16le":"utf8").replace(N,"").replace(I,"!"),1200===t&&i%2&&(e.l+=2)}return 3&e.l&&(e.l=e.l>>3<<2),r}function xr(e){var t=e.read_shift(4),n=e.slice(e.l,e.l+t);return e.l+=t,(3&t)>0&&(e.l+=4-(3&t)&3),n}function kr(e,t,n){var r,a=e.read_shift(2),s=n||{};if(e.l+=2,12!==t&&a!==t&&-1===Dn.indexOf(t))throw new Error("Expected type "+t+" saw "+a);switch(12===t?a:t){case 2:return r=e.read_shift(2,"i"),s.raw||(e.l+=2),r;case 3:return e.read_shift(4,"i");case 11:return 0!==e.read_shift(4);case 19:return e.read_shift(4);case 30:return gr(e,0,4).replace(N,"");case 31:return yr(e);case 64:return mr(e);case 65:return xr(e);case 71:return function(e){var t={};return t.Size=e.read_shift(4),e.l+=t.Size+3-(t.Size-1)%4,t}(e);case 80:return vr(e,a,!s.raw).replace(N,"");case 81:return function(e,t){if(!t)throw new Error("VtUnalignedString must have positive length");return br(e,t,0)}(e,a).replace(N,"");case 4108:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t/2;++r)n.push(wr(e));return n}(e)}(e);case 4126:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t;++r)n[r]=e.read_shift(0,"lpstr-cp").replace(N,"");return n}(e)}(e);default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+a)}}function Er(e,t){var n=$t(4),r=$t(4);switch(n.write_shift(4,80==e?31:e),e){case 3:r.write_shift(-4,t);break;case 5:(r=$t(8)).write_shift(8,t,"f");break;case 11:r.write_shift(4,t?1:0);break;case 64:r=function(e){var t=("string"==typeof e?new Date(Date.parse(e)):e).getTime()/1e3+11644473600,n=t%Math.pow(2,32),r=(t-n)/Math.pow(2,32);r*=1e7;var a=(n*=1e7)/Math.pow(2,32)|0;a>0&&(n%=Math.pow(2,32),r+=a);var s=$t(8);return s.write_shift(4,n),s.write_shift(4,r),s}(t);break;case 31:case 80:for((r=$t(4+2*(t.length+1)+(t.length%2?0:2))).write_shift(4,t.length+1),r.write_shift(0,t,"dbcs");r.l!=r.length;)r.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+e+" "+t)}return S([n,r])}function Cr(e,t){var n=e.l,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0,o=0,l=-1,c={};for(i=0;i!=a;++i){var h=e.read_shift(4),f=e.read_shift(4);s[i]=[h,f+n]}s.sort((function(e,t){return e[1]-t[1]}));var d={};for(i=0;i!=a;++i){if(e.l!==s[i][1]){var p=!0;if(i>0&&t)switch(t[s[i-1][0]].t){case 2:e.l+2===s[i][1]&&(e.l+=2,p=!1);break;case 80:case 4108:e.l<=s[i][1]&&(e.l=s[i][1],p=!1)}if((!t||0==i)&&e.l<=s[i][1]&&(p=!1,e.l=s[i][1]),p)throw new Error("Read Error: Expected address "+s[i][1]+" at "+e.l+" :"+i)}if(t){var m=t[s[i][0]];if(d[m.n]=kr(e,m.t,{raw:!0}),"version"===m.p&&(d[m.n]=String(d[m.n]>>16)+"."+("0000"+String(65535&d[m.n])).slice(-4)),"CodePage"==m.n)switch(d[m.n]){case 0:d[m.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:u(o=d[m.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[m.n])}}else if(1===s[i][0]){if(o=d.CodePage=kr(e,2),u(o),-1!==l){var g=e.l;e.l=s[l][1],c=_r(e,o),e.l=g}}else if(0===s[i][0]){if(0===o){l=i,e.l=s[i+1][1];continue}c=_r(e,o)}else{var y,b=c[s[i][0]];switch(e[e.l]){case 65:e.l+=4,y=xr(e);break;case 30:case 31:e.l+=4,y=vr(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,y=e.read_shift(4,"i");break;case 19:e.l+=4,y=e.read_shift(4);break;case 5:e.l+=4,y=e.read_shift(8,"f");break;case 11:e.l+=4,y=Rr(e,4);break;case 64:e.l+=4,y=Q(mr(e));break;default:throw new Error("unparsed value: "+e[e.l])}d[b]=y}}return e.l=n+r,d}var Sr=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"].concat(["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"]);function Nr(e){switch(typeof e){case"boolean":return 11;case"number":return(0|e)==e?3:5;case"string":return 31;case"object":if(e instanceof Date)return 64}return-1}function Ir(e,t,n){var r=$t(8),a=[],s=[],i=8,o=0,l=$t(8),u=$t(8);if(l.write_shift(4,2),l.write_shift(4,1200),u.write_shift(4,1),s.push(l),a.push(u),i+=8+l.length,!t){(u=$t(8)).write_shift(4,0),a.unshift(u);var c=[$t(4)];for(c[0].write_shift(4,e.length),o=0;o-1)&&null!=e[o][1]){var f=e[o][1],d=0;if(t){var p=n[d=+t[e[o][0]]];if("version"==p.p&&"string"==typeof f){var m=f.split(".");f=(+m[0]<<16)+(+m[1]||0)}l=Er(p.t,f)}else{var g=Nr(f);-1==g&&(g=31,f=String(f)),l=Er(g,f)}s.push(l),(u=$t(8)).write_shift(4,t?d:2+o),a.push(u),i+=8+l.length}var y=8*(s.length+1);for(o=0;o=12?2:1),s="sbcs-cont",i=r;n&&n.biff>=8&&(r=1200),n&&8!=n.biff?12==n.biff&&(s="wstr"):e.read_shift(1)&&(s="dbcs-cont"),n.biff>=2&&n.biff<=5&&(s="cpstr");var o=a?e.read_shift(a,s):"";return r=i,o}function Pr(e){var t=r;r=1200;var n,a=e.read_shift(2),s=e.read_shift(1),i=4&s,o=8&s,l=1+(1&s),u=0,c={};o&&(u=e.read_shift(2)),i&&(n=e.read_shift(4));var h=2==l?"dbcs-cont":"sbcs-cont",f=0===a?"":e.read_shift(a,h);return o&&(e.l+=4*u),i&&(e.l+=n),c.t=f,o||(c.raw=""+c.t+"",c.r=c.t),r=t,c}function Lr(e){var t=e.t||"",n=$t(3);n.write_shift(2,t.length),n.write_shift(1,1);var r=$t(2*t.length);return r.write_shift(2*t.length,t,"utf16le"),S([n,r])}function zr(e,t,n){if(n){if(n.biff>=2&&n.biff<=5)return e.read_shift(t,"cpstr");if(n.biff>=12)return e.read_shift(t,"dbcs-cont")}return 0===e.read_shift(1)?e.read_shift(t,"sbcs-cont"):e.read_shift(t,"dbcs-cont")}function Wr(e,t,n){var r=e.read_shift(n&&2==n.biff?1:2);return 0===r?(e.l++,""):zr(e,r,n)}function Ur(e,t,n){if(n.biff>5)return Wr(e,0,n);var r=e.read_shift(1);return 0===r?(e.l++,""):e.read_shift(r,n.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function Vr(e,t,n){return n||(n=$t(3+2*e.length)),n.write_shift(2,e.length),n.write_shift(1,1),n.write_shift(31,e,"utf16le"),n}function jr(e){var t=e.read_shift(4);return t>0?e.read_shift(t,"utf16le").replace(N,""):""}function Hr(e){var t=$t(512),n=0,r=e.Target,a=r.indexOf("#")>-1?31:23;switch(r.charAt(0)){case"#":a=28;break;case".":a&=-3}t.write_shift(4,2),t.write_shift(4,a);var s=[8,6815827,6619237,4849780,83];for(n=0;n8?4:2;return[e.read_shift(r),e.read_shift(r,"i"),e.read_shift(r,"i")]}function Jr(e){return[e.read_shift(2),wn(e)]}function Zr(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(2),r:t},e:{c:e.read_shift(2),r:n}}}function Qr(e,t){return t||(t=$t(8)),t.write_shift(2,e.s.r),t.write_shift(2,e.e.r),t.write_shift(2,e.s.c),t.write_shift(2,e.e.c),t}function ea(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(1),r:t},e:{c:e.read_shift(1),r:n}}}var ta=ea;function na(e){e.l+=4;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(2);return e.l+=12,[n,t,r]}function ra(e){e.l+=2,e.l+=e.read_shift(2)}var aa={0:ra,4:ra,5:ra,6:ra,7:function(e){return e.l+=4,e.cf=e.read_shift(2),{}},8:ra,9:ra,10:ra,11:ra,12:ra,13:function(e){var t={};return e.l+=4,e.l+=16,t.fSharedNote=e.read_shift(2),e.l+=4,t},14:ra,15:ra,16:ra,17:ra,18:ra,19:ra,20:ra,21:na};function sa(e,t){var n={BIFFVer:0,dt:0};switch(n.BIFFVer=e.read_shift(2),(t-=2)>=2&&(n.dt=e.read_shift(2),e.l-=2),n.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(t>6)throw new Error("Unexpected BIFF Ver "+n.BIFFVer)}return e.read_shift(t),n}function ia(e,t,n){var r=1536,a=16;switch(n.bookType){case"biff8":break;case"biff5":r=1280,a=8;break;case"biff4":r=4,a=6;break;case"biff3":r=3,a=6;break;case"biff2":r=2,a=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var s=$t(a);return s.write_shift(2,r),s.write_shift(2,t),a>4&&s.write_shift(2,29282),a>6&&s.write_shift(2,1997),a>8&&(s.write_shift(2,49161),s.write_shift(2,1),s.write_shift(2,1798),s.write_shift(2,0)),s}function oa(e,t){var n=!t||t.biff>=8?2:1,r=$t(8+n*e.name.length);r.write_shift(4,e.pos),r.write_shift(1,e.hs||0),r.write_shift(1,e.dt),r.write_shift(1,e.name.length),t.biff>=8&&r.write_shift(1,1),r.write_shift(n*e.name.length,e.name,t.biff<8?"sbcs":"utf16le");var a=r.slice(0,r.l);return a.l=r.l,a}function la(e,t,n){var r=0;n&&2==n.biff||(r=e.read_shift(2));var a=e.read_shift(2);return n&&2==n.biff&&(r=1-(a>>15),a&=32767),[{Unsynced:1&r,DyZero:(2&r)>>1,ExAsc:(4&r)>>2,ExDsc:(8&r)>>3},a]}function ua(e,t,n,r){var a=n&&5==n.biff;r||(r=$t(a?3+t.length:5+2*t.length)),r.write_shift(2,e),r.write_shift(a?1:2,t.length),a||r.write_shift(1,1),r.write_shift((a?1:2)*t.length,t,a?"sbcs":"utf16le");var s=r.length>r.l?r.slice(0,r.l):r;return null==s.l&&(s.l=s.length),s}var ca=Ur;function ha(e,t,n){var r=e.l+t,a=8!=n.biff&&n.biff?2:4,s=e.read_shift(a),i=e.read_shift(a),o=e.read_shift(2),l=e.read_shift(2);return e.l=r,{s:{r:s,c:o},e:{r:i,c:l}}}function fa(e,t,n,r){var a=n&&5==n.biff;return r||(r=$t(a?16:20)),r.write_shift(2,0),e.style?(r.write_shift(2,e.numFmtId||0),r.write_shift(2,65524)):(r.write_shift(2,e.numFmtId||0),r.write_shift(2,t<<4)),r.write_shift(4,0),r.write_shift(4,0),a||r.write_shift(4,0),r.write_shift(2,0),r}function da(e,t,n){var r=Xr(e);2==n.biff&&++e.l;var a=function(e){var t=e.read_shift(1);return 1===e.read_shift(1)?t:1===t}(e);return r.val=a,r.t=!0===a||!1===a?"b":"e",r}var pa=function(e,t,n){return 0===t?"":Ur(e,0,n)};function ma(e,t,n){var r,a=e.read_shift(2),s={fBuiltIn:1&a,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};return 14849===n.sbcch&&(r=function(e,t,n){e.l+=4,t-=4;var r=e.l+t,a=$r(e,0,n),s=e.read_shift(2);if(s!==(r-=e.l))throw new Error("Malformed AddinUdf: padding = "+r+" != "+s);return e.l+=s,a}(e,t-2,n)),s.body=r||e.read_shift(t-2),"string"==typeof r&&(s.Name=r),s}var ga=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function ya(e,t,n){var r=e.l+t,a=e.read_shift(2),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(n&&2==n.biff?1:2),l=0;(!n||n.biff>=5)&&(5!=n.biff&&(e.l+=2),l=e.read_shift(2),5==n.biff&&(e.l+=2),e.l+=4);var u=zr(e,i,n);32&a&&(u=ga[u.charCodeAt(0)]);var c=r-e.l;return n&&2==n.biff&&--c,{chKey:s,Name:u,itab:l,rgce:r==e.l||0===o?[]:function(e,t,n,r){var a,s=e.l+t,i=Oi(e,r,n);return s!==e.l&&(a=Fi(e,s-e.l,i,n)),[i,a]}(e,c,n,o)}}function ba(e,t,n){if(n.biff<8)return function(e,t,n){3==e[e.l+1]&&e[e.l]++;var r=$r(e,0,n);return 3==r.charCodeAt(0)?r.slice(1):r}(e,0,n);for(var r=[],a=e.l+t,s=e.read_shift(n.biff>8?4:2);0!=s--;)r.push(Yr(e,n.biff,n));if(e.l!=a)throw new Error("Bad ExternSheet: "+e.l+" != "+a);return r}function va(e,t,n){var r=ta(e,6);switch(n.biff){case 2:e.l++,t-=7;break;case 3:case 4:e.l+=2,t-=8;break;default:e.l+=6,t-=12}return[r,Wi(e,t,n)]}var wa=[];function _a(e){var t=$t(24),n=Kt(e[0]);t.write_shift(2,n.r),t.write_shift(2,n.r),t.write_shift(2,n.c),t.write_shift(2,n.c);for(var r="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" "),a=0;a<16;++a)t.write_shift(1,parseInt(r[a],16));return S([t,Hr(e[1])])}function xa(e){var t=e[1].Tooltip,n=$t(10+2*(t.length+1));n.write_shift(2,2048);var r=Kt(e[0]);n.write_shift(2,r.r),n.write_shift(2,r.r),n.write_shift(2,r.c),n.write_shift(2,r.c);for(var a=0;a=12?4:2,a=e.read_shift(r),s=e.read_shift(r),i=e.read_shift(r),o=e.read_shift(r),l=e.read_shift(2);2==r&&(e.l+=2);var u={s:a,e:s,w:i,ixfe:o,flags:l};return(n.biff>=5||!n.biff)&&(u.level=l>>8&7),u}wa[8]=function(e,t){var n=e.l+t;e.l+=10;var r=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var a=e.read_shift(1);return e.l+=a,e.l=n,{fmt:r}};var Ea=Xr,Ca=Mr,Sa=Wr,Na=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,255:16969},t=U({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function n(t,n){var r=n||{};return r.dateNF||(r.dateNF="yyyymmdd"),rn(function(t,n){var r=[],a=w(1);switch(n.type){case"base64":a=x(g.decode(t));break;case"binary":a=x(t);break;case"buffer":case"array":a=t}Bt(a,0);var s=a.read_shift(1),i=!1,o=!1,l=!1;switch(s){case 2:case 3:break;case 48:o=!0,i=!0;break;case 49:o=!0;break;case 131:case 139:i=!0;break;case 140:i=!0,l=!0;break;case 245:i=!0;break;default:throw new Error("DBF Unsupported Version: "+s.toString(16))}var u=0,c=0;2==s&&(u=a.read_shift(2)),a.l+=3,2!=s&&(u=a.read_shift(4)),2!=s&&(c=a.read_shift(2));var h=a.read_shift(2),f=1252;2!=s&&(a.l+=16,a.read_shift(1),0!==a[a.l]&&(f=e[a[a.l]]),a.l+=1,a.l+=2),l&&(a.l+=36);for(var d=[],p={},m=c-10-(o?264:0),y=l?32:11;2==s?a.l0;)if(42!==a[a.l])for(++a.l,r[++b]=[],v=0,v=0;v!=d.length;++v){var _=a.slice(a.l,a.l+d[v].len);a.l+=d[v].len,Bt(_,0);var k=cptable.utils.decode(f,_);switch(d[v].type){case"C":r[b][v]=cptable.utils.decode(f,_),r[b][v]=r[b][v].trim();break;case"D":8===k.length?r[b][v]=new Date(+k.slice(0,4),+k.slice(4,6)-1,+k.slice(6,8)):r[b][v]=k;break;case"F":r[b][v]=parseFloat(k.trim());break;case"+":case"I":r[b][v]=l?2147483648^_.read_shift(-4,"i"):_.read_shift(4,"i");break;case"L":switch(k.toUpperCase()){case"Y":case"T":r[b][v]=!0;break;case"N":case"F":r[b][v]=!1;break;case" ":case"?":r[b][v]=!1;break;default:throw new Error("DBF Unrecognized L:|"+k+"|")}break;case"M":if(!i)throw new Error("DBF Unexpected MEMO for type "+s.toString(16));r[b][v]="##MEMO##"+(l?parseInt(k.trim(),10):_.read_shift(4));break;case"N":r[b][v]=+k.replace(/\u0000/g,"").trim();break;case"@":r[b][v]=new Date(_.read_shift(-8,"f")-621356832e5);break;case"T":r[b][v]=new Date(864e5*(_.read_shift(4)-2440588)+_.read_shift(4));break;case"Y":r[b][v]=_.read_shift(4,"i")/1e4;break;case"O":r[b][v]=-_.read_shift(-8,"f");break;case"B":if(o&&8==d[v].len){r[b][v]=_.read_shift(8,"f");break}case"G":case"P":_.l+=d[v].len;break;case"0":if("_NullFlags"===d[v].name)break;default:throw new Error("DBF Unsupported data type "+d[v].type)}}else a.l+=h;if(2!=s&&a.l=0&&u(+s.codepage),"string"==s.type)throw new Error("Cannot write DBF to JS string");var i=Lt(),o=Du(e,{header:1,raw:!0,cellDates:!0}),l=o[0],c=o.slice(1),h=0,f=0,d=0,p=1;for(h=0;h":190,"?":191,"{":223},t=new RegExp("N("+z(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),n=function(t,n){var r=e[n];return"number"==typeof r?p(r):r},r=function(e,t,n){var r=t.charCodeAt(0)-32<<4|n.charCodeAt(0)-48;return 59==r?e:p(r)};function a(e,a){var s,i=e.split(/[\n\r]+/),o=-1,l=-1,c=0,h=0,f=[],d=[],p=null,m={},g=[],y=[],b=[],v=0;for(+a.codepage>=0&&u(+a.codepage);c!==i.length;++c){v=0;var w,_=i[c].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,r).replace(t,n),x=_.replace(/;;/g,"\0").split(";").map((function(e){return e.replace(/\u0000/g,";")})),k=x[0];if(_.length>0)switch(k){case"ID":case"E":case"B":case"O":break;case"P":"P"==x[1].charAt(0)&&d.push(_.slice(3).replace(/;;/g,";"));break;case"C":var E=!1,C=!1;for(h=1;h0?(g[o].hpt=v,g[o].hpx=ys(v)):0===v&&(g[o].hidden=!0);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}N<1&&(p=null);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}}return g.length>0&&(m["!rows"]=g),y.length>0&&(m["!cols"]=y),a&&a.sheetRows&&(f=f.slice(0,a.sheetRows)),[f,m]}function s(e,t){var n=function(e,t){switch(t.type){case"base64":return a(g.decode(e),t);case"binary":return a(e,t);case"buffer":return a(e.toString("binary"),t);case"array":return a(ee(e),t)}throw new Error("Unrecognized type "+t.type)}(e,t),r=n[0],s=n[1],i=rn(r,t);return z(s).forEach((function(e){i[e]=s[e]})),i}function i(e,t,n,r){var a="C;Y"+(n+1)+";X"+(r+1)+";K";switch(e.t){case"n":a+=e.v||0,e.f&&!e.F&&(a+=";E"+ri(e.f,{r:n,c:r}));break;case"b":a+=e.v?"TRUE":"FALSE";break;case"e":a+=e.w||e.v;break;case"d":a+='"'+(e.w||e.v)+'"';break;case"s":a+='"'+e.v.replace(/"/g,"")+'"'}return a}return e["|"]=254,{to_workbook:function(e,t){return tn(s(e,t),t)},to_sheet:s,from_sheet:function(e,t){var n,r,a=["ID;PWXL;N;E"],s=[],o=Qt(e["!ref"]),l=Array.isArray(e),u="\r\n";a.push("P;PGeneral"),a.push("F;P0;DG0G8;M255"),e["!cols"]&&(r=a,e["!cols"].forEach((function(e,t){var n="F;W"+(t+1)+" "+(t+1)+" ";e.hidden?n+="0":("number"==typeof e.width&&(e.wpx=cs(e.width)),"number"==typeof e.wpx&&(e.wch=hs(e.wpx)),"number"==typeof e.wch&&(n+=Math.round(e.wch)))," "!=n.charAt(n.length-1)&&r.push(n)}))),e["!rows"]&&function(e,t){t.forEach((function(t,n){var r="F;";t.hidden?r+="M0;":t.hpt?r+="M"+20*t.hpt+";":t.hpx&&(r+="M"+20*gs(t.hpx)+";"),r.length>2&&e.push(r+"R"+(n+1))}))}(a,e["!rows"]),a.push("B;Y"+(o.e.r-o.s.r+1)+";X"+(o.e.c-o.s.c+1)+";D"+[o.s.c,o.s.r,o.e.c,o.e.r].join(" "));for(var c=o.s.r;c<=o.e.r;++c)for(var h=o.s.c;h<=o.e.c;++h){var f=Yt({r:c,c:h});(n=l?(e[c]||[])[h]:e[f])&&(null!=n.v||n.f&&!n.F)&&s.push(i(n,0,c,h))}return a.join(u)+u+s.join(u)+u+"E"+u}}}(),Da=function(){function e(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s)if("BOT"!==n[s].trim()){if(!(r<0)){var o=n[s].trim().split(","),l=o[0],u=o[1],c=n[++s].trim();switch(+l){case-1:if("BOT"===c){i[++r]=[],a=0;continue}if("EOD"!==c)throw new Error("Unrecognized DIF special command "+c);break;case 0:"TRUE"===c?i[r][a]=!0:"FALSE"===c?i[r][a]=!1:isNaN(re(u))?isNaN(ae(u).getDate())?i[r][a]=u:i[r][a]=Q(u):i[r][a]=re(u),++a;break;case 1:c=c.slice(1,c.length-1),i[r][a++]=""!==c?c:null}if("EOD"===c)break}}else i[++r]=[],a=0;return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}function t(t,n){return rn(function(t,n){switch(n.type){case"base64":return e(g.decode(t),n);case"binary":return e(t,n);case"buffer":return e(t.toString("binary"),n);case"array":return e(ee(t),n)}throw new Error("Unrecognized type "+n.type)}(t,n),n)}var n,r;return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:(n=function(e,t,n,r,a){e.push(t),e.push(n+","+r),e.push('"'+a.replace(/"/g,'""')+'"')},r=function(e,t,n,r){e.push(t+","+n),e.push(1==t?'"'+r.replace(/"/g,'""')+'"':r)},function(e){var t,a=[],s=Qt(e["!ref"]),i=Array.isArray(e);n(a,"TABLE",0,1,"sheetjs"),n(a,"VECTORS",0,s.e.r-s.s.r+1,""),n(a,"TUPLES",0,s.e.c-s.s.c+1,""),n(a,"DATA",0,0,"");for(var o=s.s.r;o<=s.e.r;++o){r(a,-1,0,"BOT");for(var l=s.s.c;l<=s.e.c;++l){var u=Yt({r:o,c:l});if(t=i?(e[o]||[])[l]:e[u])switch(t.t){case"n":var c=t.w;c||null==t.v||(c=t.v),null==c?t.f&&!t.F?r(a,1,0,"="+t.f):r(a,1,0,""):r(a,0,c,"V");break;case"b":r(a,0,t.v?1:0,t.v?"TRUE":"FALSE");break;case"s":r(a,1,0,isNaN(t.v)?t.v:'="'+t.v+'"');break;case"d":t.w||(t.w=D.format(t.z||D._table[14],H(Q(t.v)))),r(a,0,t.w,"V");break;default:r(a,1,0,"")}else r(a,1,0,"")}}return r(a,-1,0,"EOD"),a.join("\r\n")})}}(),Aa=function(){function e(e){return e.replace(/\\/g,"\\b").replace(/:/g,"\\c").replace(/\n/g,"\\n")}function t(e,t){return rn(function(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s){var o=n[s].trim().split(":");if("cell"===o[0]){var l=Kt(o[1]);if(i.length<=l.r)for(r=i.length;r<=l.r;++r)i[r]||(i[r]=[]);switch(r=l.r,a=l.c,o[2]){case"t":i[r][a]=o[3].replace(/\\b/g,"\\").replace(/\\c/g,":").replace(/\\n/g,"\n");break;case"v":i[r][a]=+o[3];break;case"vtf":var u=o[o.length-1];case"vtc":switch(o[3]){case"nl":i[r][a]=!!+o[4];break;default:i[r][a]=+o[4]}"vtf"==o[2]&&(i[r][a]=[i[r][a],u])}}}return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}(e,t),t)}var n=["socialcalc:version:1.5","MIME-Version: 1.0","Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join("\n"),r=["--SocialCalcSpreadsheetControlSave","Content-type: text/plain; charset=UTF-8"].join("\n")+"\n",a=["# SocialCalc Spreadsheet Control Save","part:sheet"].join("\n"),s="--SocialCalcSpreadsheetControlSave--";function i(t){if(!t||!t["!ref"])return"";for(var n,r=[],a=[],s="",i=Jt(t["!ref"]),o=Array.isArray(t),l=i.s.r;l<=i.e.r;++l)for(var u=i.s.c;u<=i.e.c;++u)if(s=Yt({r:l,c:u}),(n=o?(t[l]||[])[u]:t[s])&&null!=n.v&&"z"!==n.t){switch(a=["cell",s,"t"],n.t){case"s":case"str":a.push(e(n.v));break;case"n":n.f?(a[2]="vtf",a[3]="n",a[4]=n.v,a[5]=e(n.f)):(a[2]="v",a[3]=n.v);break;case"b":a[2]="vt"+(n.f?"f":"c"),a[3]="nl",a[4]=n.v?"1":"0",a[5]=e(n.f||(n.v?"TRUE":"FALSE"));break;case"d":var c=H(Q(n.v));a[2]="vtc",a[3]="nd",a[4]=""+c,a[5]=n.w||D.format(n.z||D._table[14],c);break;case"e":continue}r.push(a.join(":"))}return r.push("sheet:c:"+(i.e.c-i.s.c+1)+":r:"+(i.e.r-i.s.r+1)+":tvf:1"),r.push("valueformat:1:text-wiki"),r.join("\n")}return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:function(e){return[n,r,a,r,i(e),s].join("\n")}}}(),Ta=function(){function e(e,t,n,r,a){a.raw?t[n][r]=e:"TRUE"===e?t[n][r]=!0:"FALSE"===e?t[n][r]=!1:""===e||(isNaN(re(e))?isNaN(ae(e).getDate())?t[n][r]=e:t[n][r]=Q(e):t[n][r]=re(e))}var t={44:",",9:"\t",59:";"},n={44:3,9:2,59:1};function r(e,r){var a=r||{},s="",i=a.dense?[]:{},o={s:{c:0,r:0},e:{c:0,r:0}};"sep="==e.slice(0,4)?13==e.charCodeAt(5)&&10==e.charCodeAt(6)?(s=e.charAt(4),e=e.slice(7)):13!=e.charCodeAt(5)&&10!=e.charCodeAt(5)||(s=e.charAt(4),e=e.slice(6)):s=function(e){for(var r={},a=!1,s=0,i=0;s=0?o=u:a=u}})),l>=0&&-1==o&&a>=0&&(o=a,a=-1);var u=(""+(r>=0?r:(new Date).getFullYear())).slice(-4)+"-"+("00"+(a>=1?a:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);7==u.length&&(u="0"+u),8==u.length&&(u="20"+u);var c=("00"+(i>=0?i:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);return-1==i&&-1==o&&-1==l?u:-1==r&&-1==a&&-1==s?c:u+"T"+c}(0,a.dateNF,t.match(b)||[]),r=1),a.cellDates?(n.t="d",n.v=Q(t,r)):(n.t="n",n.v=H(Q(t,r))),!1!==a.cellText&&(n.w=D.format(n.z,n.v instanceof Date?H(n.v):n.v)),a.cellNF||delete n.z}else n.t="s",n.v=t;else n.t="n",!1!==a.cellText&&(n.w=t),n.v=c;if("z"==n.t||(a.dense?(i[l]||(i[l]=[]),i[l][u]=n):i[Yt({c:u,r:l})]=n),h=f+1,o.e.c0&&v(),i["!ref"]=Zt(o),i}function a(t,n){var a="",s="string"==n.type?[0,0,0,0]:yu(t,n);switch(n.type){case"base64":a=g.decode(t);break;case"binary":a=t;break;case"buffer":a=65001==n.codepage?t.toString("utf8"):n.codepage&&"undefined"!=typeof cptable?cptable.utils.decode(n.codepage,t):t.toString("binary");break;case"array":a=ee(t);break;case"string":a=t;break;default:throw new Error("Unrecognized type "+n.type)}return 239==s[0]&&187==s[1]&&191==s[2]?a=Be(a.slice(3)):"binary"==n.type&&"undefined"!=typeof cptable&&n.codepage&&(a=cptable.utils.decode(n.codepage,cptable.utils.encode(1252,a))),"socialcalc:version:"==a.slice(0,19)?Aa.to_sheet("string"==n.type?a:Be(a),n):function(t,n){return n&&n.PRN?"sep="==t.slice(0,4)||t.indexOf("\t")>=0||t.indexOf(",")>=0||t.indexOf(";")>=0?r(t,n):rn(function(t,n){var r=n||{},a=[];if(!t||0===t.length)return a;for(var s=t.split(/[\r\n]/),i=s.length-1;i>=0&&0===s[i].length;)--i;for(var o=10,l=0,u=0;u<=i;++u)-1==(l=s[u].indexOf(" "))?l=s[u].length:l++,o=Math.max(o,l);for(u=0;u<=i;++u){a[u]=[];var c=0;for(e(s[u].slice(0,o).trim(),a,u,c,r),c=1;c<=(s[u].length-o)/10+1;++c)e(s[u].slice(o+10*(c-1),o+10*c).trim(),a,u,c,r)}return r.sheetRows&&(a=a.slice(0,r.sheetRows)),a}(t,n),n):r(t,n)}(a,n)}return{to_workbook:function(e,t){return tn(a(e,t),t)},to_sheet:a,from_sheet:function(e){for(var t,n=[],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){for(var i=[],o=r.s.c;o<=r.e.c;++o){var l=Yt({r:s,c:o});if((t=a?(e[s]||[])[o]:e[l])&&null!=t.v){for(var u=(t.w||(en(t),t.w)||"").slice(0,10);u.length<10;)u+=" ";i.push(u+(0===o?" ":""))}else i.push(" ")}n.push(i.join(""))}return n.join("\n")}}}(),Ra=function(){function e(e,t){if(!e)return e;var n=t||{},r=n.dense?[]:{},a="Sheet1",s=0,l={},u=[a],c={s:{r:0,c:0},e:{r:0,c:0}},h=n.sheetRows||0;if(2==e[2])n.Enum=i;else if(26==e[2])n.Enum=o;else{if(14!=e[2])throw new Error("Unrecognized LOTUS BOF "+e[2]);n.Enum=o,n.qpro=!0,e.l=0}return function(e,t,n){if(e){Bt(e,e.l||0);for(var r=n.Enum||i;e.l=4096&&(n.qpro=!0);break;case 6:c=t;break;case 15:n.qpro||(t[1].v=t[1].v.slice(1));case 13:case 14:case 16:case 51:14==o&&112==(112&t[2])&&(15&t[2])>1&&(15&t[2])<15&&(t[1].z=n.dateNF||D._table[14],n.cellDates&&(t[1].t="d",t[1].v=K(t[1].v))),n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1]}else switch(o){case 22:t[1].v=t[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(t[3]>s&&(r["!ref"]=Zt(c),l[a]=r,r=n.dense?[]:{},c={s:{r:0,c:0},e:{r:0,c:0}},s=t[3],a="Sheet"+(s+1),u.push(a)),h>0&&t[0].r>=h)break;n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1],c.e.c0?s<>>-i)+(i>-32?a<>>-(i+32))),n}function s(e,t){var n=r(e),a=e.read_shift(8,"f");return n[1].v=a,n}var i={0:{n:"BOF",f:Or},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:function(e){var t={s:{c:0,r:0},e:{c:0,r:0}};return t.s.c=e.read_shift(2),t.s.r=e.read_shift(2),t.e.c=e.read_shift(2),t.e.r=e.read_shift(2),65535==t.s.c&&(t.s.c=t.e.c=t.s.r=t.e.r=0),t}},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(2,"i"),a}},14:{n:"NUMBER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(8,"f"),a}},15:{n:"LABEL",f:n},16:{n:"FORMULA",f:function(e,n,r){var a=e.l+n,s=t(e,0,r);if(s[1].v=e.read_shift(8,"f"),r.qpro)e.l=a;else{var i=e.read_shift(2);e.l+=i}return s}},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:n},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},255:{n:"",f:Mt}},o={0:{n:"BOF"},1:{n:"EOF"},3:{n:"??"},4:{n:"??"},5:{n:"??"},6:{n:"??"},7:{n:"??"},9:{n:"??"},10:{n:"??"},11:{n:"??"},12:{n:"??"},14:{n:"??"},15:{n:"??"},16:{n:"??"},17:{n:"??"},18:{n:"??"},19:{n:"??"},21:{n:"??"},22:{n:"LABEL16",f:function(e,t){var n=r(e);return n[1].t="s",n[1].v=e.read_shift(t-4,"cstr"),n}},23:{n:"NUMBER17",f:a},24:{n:"NUMBER18",f:function(e,t){var n=r(e);n[1].v=e.read_shift(2);var a=n[1].v>>1;if(1&n[1].v)switch(7&a){case 1:a=500*(a>>3);break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(7&a)}return n[1].v=a,n}},25:{n:"FORMULA19",f:function(e,t){var n=a(e);return e.l+=t-14,n}},26:{n:"??"},27:{n:"??"},28:{n:"??"},29:{n:"??"},30:{n:"??"},31:{n:"??"},33:{n:"??"},37:{n:"NUMBER25",f:function(e,t){var n=r(e),a=e.read_shift(4);return n[1].v=a>>6,n}},39:{n:"NUMBER27",f:s},40:{n:"FORMULA28",f:function(e,t){var n=s(e);return e.l+=t-10,n}},255:{n:"",f:Mt}};return{to_workbook:function(t,n){switch(n.type){case"base64":return e(x(g.decode(t)),n);case"binary":return e(x(t),n);case"buffer":case"array":return e(t,n)}throw"Unsupported type "+n.type}}}(),Fa=function(){var e=Ve("t"),t=Ve("rPr");function n(n){var r=n.match(e);if(!r)return{t:"s",v:""};var a={t:"s",v:Se(r[1])},s=n.match(t);return s&&(a.s=function(e){var t={},n=e.match(ye),r=0,a=!1;if(n)for(;r!=n.length;++r){var s=we(n[r]);switch(s[0].replace(/\w*:/g,"")){case"":case"":t.shadow=1;break;case"":break;case"":case"":t.outline=1;break;case"":break;case"":case"":t.strike=1;break;case"":break;case"":case"":t.u=1;break;case"":break;case"":case"":t.b=1;break;case"":break;case"":case"":t.i=1;break;case"":break;case"":case"":break;case"":a=!1;break;default:if(47!==s[0].charCodeAt(1)&&!a)throw new Error("Unrecognized rich format "+s[0])}}return t}(s[1])),a}var r=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/;return function(e){return e.replace(r,"").split(a).map(n).filter((function(e){return e.v}))}}(),Oa=function(){var e=/(\r\n|\n)/g;function t(t){var n=[[],t.v,[]];return t.v?(t.s&&function(e,t,n){var r=[];e.u&&r.push("text-decoration: underline;"),e.uval&&r.push("text-underline-style:"+e.uval+";"),e.sz&&r.push("font-size:"+e.sz+"pt;"),e.outline&&r.push("text-effect: outline;"),e.shadow&&r.push("text-shadow: auto;"),t.push(''),e.b&&(t.push(""),n.push("")),e.i&&(t.push(""),n.push("")),e.strike&&(t.push(""),n.push(""));var a=e.valign||"";"superscript"==a||"super"==a?a="sup":"subscript"==a&&(a="sub"),""!=a&&(t.push("<"+a+">"),n.push("")),n.push("")}(t.s,n[0],n[2]),n[0].join("")+n[1].replace(e,"
")+n[2].join("")):""}return function(e){return e.map(t).join("")}}(),Ba=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ma=/<(?:\w+:)?r>/,$a=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Pa(e,t){var n=!t||t.cellHTML,r={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(r.t=Se(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Be(e),n&&(r.h=Re(r.t))):e.match(Ma)&&(r.r=Be(e),r.t=Se(Be((e.replace($a,"").match(Ba)||[]).join("").replace(ye,""))),n&&(r.h=Oa(Fa(r.r)))),r):{t:""}}var La=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,za=/<(?:\w+:)?(?:si|sstItem)>/g,Wa=/<\/(?:\w+:)?(?:si|sstItem)>/;Gn.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Ua=/^\s|\s$|[\t\n\r]/;function Va(e,t){if(!t.bookSST)return"";var n=[me];n[n.length]=Ze("sst",null,{xmlns:nt.main[0],count:e.Count,uniqueCount:e.Unique});for(var r=0;r!=e.length;++r)if(null!=e[r]){var a=e[r],s="";a.r?s+=a.r:(s+=""),s+="",n[n.length]=s}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var ja=function(e,t){var n=!1;return null==t&&(n=!0,t=$t(15+4*e.t.length)),t.write_shift(1,0),on(e.t,t),n?t.slice(0,t.l):t};function Ha(e){var t=Lt();zt(t,"BrtBeginSst",function(e,t){return t||(t=$t(8)),t.write_shift(4,e.Count),t.write_shift(4,e.Unique),t}(e));for(var n=0;n=4&&(e.l+=t-4),n}function Xa(e){for(var t=e.read_shift(4),n=e.l+t-4,r={},a=e.read_shift(4),s=[];a-- >0;)s.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(r.name=e.read_shift(0,"lpp4"),r.comps=s,e.l!=n)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+n);return r}function Ka(e,t){var n=e.l+t,r={};r.Flags=63&e.read_shift(4),e.l+=4,r.AlgID=e.read_shift(4);var a=!1;switch(r.AlgID){case 26126:case 26127:case 26128:a=36==r.Flags;break;case 26625:a=4==r.Flags;break;case 0:a=16==r.Flags||4==r.Flags||36==r.Flags;break;default:throw"Unrecognized encryption algorithm: "+r.AlgID}if(!a)throw new Error("Encryption Flags/AlgID mismatch");return r.AlgIDHash=e.read_shift(4),r.KeySize=e.read_shift(4),r.ProviderType=e.read_shift(4),e.l+=8,r.CSPName=e.read_shift(n-e.l>>1,"utf16le"),e.l=n,r}function Ya(e,t){var n={},r=e.l+t;return e.l+=4,n.Salt=e.slice(e.l,e.l+16),e.l+=16,n.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),n.VerifierHash=e.slice(e.l,r),e.l=r,n}function Ja(e){if(36!=(63&e.read_shift(4)))throw new Error("EncryptionInfo mismatch");var t=e.read_shift(4);return{t:"Std",h:Ka(e,t),v:Ya(e,e.length-e.l)}}function Za(){throw new Error("File is password-protected: ECMA-376 Extensible")}function Qa(e){var t=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var n=e.read_shift(e.length-e.l,"utf8"),r={};return n.replace(ye,(function(e){var n=we(e);switch(_e(n[0])){case"":break;case"":case"":break;case"":break;case"=0;--n)r=((0==(16384&r)?0:1)|r<<1&32767)^t[n];return 52811^r}var ts,ns,rs,as,ss=(ts=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],ns=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],rs=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],as=function(e,t){return 255&((n=e^t)/2|128*n);var n},function(e){for(var t,n,r,a=Ga(e),s=function(e){for(var t=ns[e.length-1],n=104,r=e.length-1;r>=0;--r)for(var a=e[r],s=0;7!=s;++s)64&a&&(t^=rs[n]),a*=2,--n;return t}(a),i=a.length,o=w(16),l=0;16!=l;++l)o[l]=0;for(1==(1&i)&&(t=s>>8,o[i]=as(ts[0],t),--i,t=255&s,n=a[a.length-1],o[i]=as(n,t));i>0;)t=s>>8,o[--i]=as(a[i],t),t=255&s,o[--i]=as(a[i],t);for(i=15,r=15-a.length;r>0;)t=s>>8,o[i]=as(ts[r],t),--r,t=255&s,o[--i]=as(a[i],t),--i,--r;return o});var is=function(){function e(e,n){switch(n.type){case"base64":return t(g.decode(e),n);case"binary":return t(e,n);case"buffer":return t(e.toString("binary"),n);case"array":return t(ee(e),n)}throw new Error("Unrecognized type "+n.type)}function t(e,t){var n=(t||{}).dense?[]:{};if(!e.match(/\\trowd/))throw new Error("RTF missing table");return n["!ref"]=Zt({s:{c:0,r:0},e:{c:0,r:0}}),n}return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,from_sheet:function(e){for(var t,n=["{\\rtf1\\ansi"],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){n.push("\\trowd\\trautofit1");for(var i=r.s.c;i<=r.e.c;++i)n.push("\\cellx"+(i+1));for(n.push("\\pard\\intbl"),i=r.s.c;i<=r.e.c;++i){var o=Yt({r:s,c:i});(t=a?(e[s]||[])[i]:e[o])&&(null!=t.v||t.f&&!t.F)&&(n.push(" "+(t.w||(en(t),t.w))),n.push("\\cell"))}n.push("\\pard\\intbl\\row")}return n.join("")+"}"}}}();function os(e){for(var t=0,n=1;3!=t;++t)n=256*n+(e[t]>255?255:e[t]<0?0:e[t]);return n.toString(16).toUpperCase().slice(1)}function ls(e,t){if(0===t)return e;var n=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,a=Math.max(t,n,r),s=Math.min(t,n,r),i=a-s;if(0===i)return[0,0,t];var o,l=0,u=a+s;switch(o=i/(u>1?2-u:u),a){case t:l=((n-r)/i+6)%6;break;case n:l=(r-t)/i+2;break;case r:l=(t-n)/i+4}return[l/6,o,u/2]}(function(e){var t=e.slice("#"===e[0]?1:0).slice(0,6);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}(e));return n[2]=t<0?n[2]*(1+t):1-(1-n[2])*(1-t),os(function(e){var t,n=e[0],r=e[1],a=e[2],s=2*r*(a<.5?a:1-a),i=a-s/2,o=[i,i,i],l=6*n;if(0!==r)switch(0|l){case 0:case 6:t=s*l,o[0]+=s,o[1]+=t;break;case 1:t=s*(2-l),o[0]+=t,o[1]+=s;break;case 2:t=s*(l-2),o[1]+=s,o[2]+=t;break;case 3:t=s*(4-l),o[1]+=t,o[2]+=s;break;case 4:t=s*(l-4),o[2]+=s,o[0]+=t;break;case 5:t=s*(6-l),o[2]+=t,o[0]+=s}for(var u=0;3!=u;++u)o[u]=Math.round(255*o[u]);return o}(n))}var us=6;function cs(e){return Math.floor((e+Math.round(128/us)/256)*us)}function hs(e){return Math.floor((e-5)/us*100+.5)/100}function fs(e){return Math.round((e*us+5)/us*256)/256}function ds(e){return fs(hs(cs(e)))}function ps(e){var t=Math.abs(e-ds(e)),n=us;if(t>.005)for(us=1;us<15;++us)Math.abs(e-ds(e))<=t&&(t=Math.abs(e-ds(e)),n=us);us=n}function ms(e){e.width?(e.wpx=cs(e.width),e.wch=hs(e.wpx),e.MDW=us):e.wpx?(e.wch=hs(e.wpx),e.width=fs(e.wch),e.MDW=us):"number"==typeof e.wch&&(e.width=fs(e.wch),e.wpx=cs(e.width),e.MDW=us),e.customWidth&&delete e.customWidth}function gs(e){return 96*e/96}function ys(e){return 96*e/96}var bs,vs,ws,_s,xs,ks={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"},Es=["numFmtId","fillId","fontId","borderId","xfId"],Cs=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"],Ss=(bs=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,vs=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,ws=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,_s=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,xs=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/,function(e,t,n){var r,a={};return e?((r=(e=e.replace(//gm,"").replace(//gm,"")).match(bs))&&function(e,t,n){t.NumberFmt=[];for(var r=z(D._table),a=0;a":case"":case"":break;case"0){if(l>392){for(l=392;l>60&&null!=t.NumberFmt[l];--l);t.NumberFmt[l]=o}D.load(o,l)}break;case"":break;default:if(n.WTF)throw new Error("unrecognized "+i[0]+" in numFmts")}}}(r,a,n),(r=e.match(_s))&&function(e,t,n,r){t.Fonts=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var i=we(e);switch(_e(i[0])){case"":case"":break;case"":break;case"
":case"":t.Fonts.push(a),a={};break;case"":case"":break;case"":a.bold=1;break;case"":a.italic=1;break;case"":a.underline=1;break;case"":a.strike=1;break;case"":a.outline=1;break;case"":a.shadow=1;break;case"":a.condense=1;break;case"":a.extend=1;break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+i[0]+" in fonts")}}))}(r,a,t,n),(r=e.match(ws))&&function(e,t,n,r){t.Fills=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},t.Fills.push(a);break;case"":case"":break;case"":t.Fills.push(a),a={};break;case"":n.patternType&&(a.patternType=n.patternType);break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in fills")}}))}(r,a,0,n),(r=e.match(xs))&&function(e,t,n,r){t.Borders=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},n.diagonalUp&&(a.diagonalUp=Oe(n.diagonalUp)),n.diagonalDown&&(a.diagonalDown=Oe(n.diagonalDown)),t.Borders.push(a);break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in borders")}}))}(r,a,0,n),(r=e.match(vs))&&function(e,t,n){var r;t.CellXf=[];var a=!1;(e[0].match(ye)||[]).forEach((function(e){var s=we(e),i=0;switch(_e(s[0])){case"":case"":case"":break;case"":for(delete(r=s)[0],i=0;i392)for(i=392;i>60;--i)if(t.NumberFmt[r.numFmtId]==t.NumberFmt[i]){r.numFmtId=i;break}t.CellXf.push(r);break;case"":break;case"":var o={};s.vertical&&(o.vertical=s.vertical),s.horizontal&&(o.horizontal=s.horizontal),null!=s.textRotation&&(o.textRotation=s.textRotation),s.indent&&(o.indent=s.indent),s.wrapText&&(o.wrapText=Oe(s.wrapText)),r.alignment=o;break;case"":case"":case"":break;case"":a=!1;break;case"":case"":break;case"":a=!1;break;default:if(n&&n.WTF&&!a)throw new Error("unrecognized "+s[0]+" in cellXfs")}}))}(r,a,n),a):a}),Ns=Ze("styleSheet",null,{xmlns:nt.main[0],"xmlns:vt":nt.vt});function Is(e,t){var n,r=[me,Ns];return e.SSF&&null!=(n=function(e){var t=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=e[r]&&(t[t.length]=Ze("numFmt",null,{numFmtId:r,formatCode:De(e[r])}))})),1===t.length?"":(t[t.length]="",t[0]=Ze("numFmts",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(e.SSF))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',(n=function(e){var t=[];return t[t.length]=Ze("cellXfs",null),e.forEach((function(e){t[t.length]=Ze("xf",null,e)})),t[t.length]="",2===t.length?"":(t[0]=Ze("cellXfs",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(t.cellXfs))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function Ds(e,t,n){n||(n=$t(6+4*t.length)),n.write_shift(2,e),on(t,n);var r=n.length>n.l?n.slice(0,n.l):n;return null==n.l&&(n.l=n.length),r}Gn.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";var As=U(["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"]),Ts=Mt;function Rs(e,t){t||(t=$t(84));var n=As[e.patternType];null==n&&(n=40),t.write_shift(4,n);var r=0;if(40!=n)for(Sn({auto:1},t),Sn({auto:1},t);r<12;++r)t.write_shift(4,0);else{for(;r<4;++r)t.write_shift(4,0);for(;r<12;++r)t.write_shift(4,0)}return t.length>t.l?t.slice(0,t.l):t}function Fs(e,t,n){return n||(n=$t(16)),n.write_shift(2,t||0),n.write_shift(2,e.numFmtId||0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n}function Os(e,t){return t||(t=$t(10)),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(4,0),t.write_shift(4,0),t}var Bs=Mt;function Ms(e,t){var n=Lt();return zt(n,"BrtBeginStyleSheet"),function(e,t){if(t){var n=0;[[5,8],[23,26],[41,44],[50,392]].forEach((function(e){for(var r=e[0];r<=e[1];++r)null!=t[r]&&++n})),0!=n&&(zt(e,"BrtBeginFmts",an(n)),[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=t[r]&&zt(e,"BrtFmt",Ds(r,t[r]))})),zt(e,"BrtEndFmts"))}}(n,e.SSF),function(e){zt(e,"BrtBeginFonts",an(1)),zt(e,"BrtFont",function(e,t){t||(t=$t(153)),t.write_shift(2,20*e.sz),function(e,t){t||(t=$t(2));var n=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);t.write_shift(1,n),t.write_shift(1,0)}(e,t),t.write_shift(2,e.bold?700:400);var n=0;"superscript"==e.vertAlign?n=1:"subscript"==e.vertAlign&&(n=2),t.write_shift(2,n),t.write_shift(1,e.underline||0),t.write_shift(1,e.family||0),t.write_shift(1,e.charset||0),t.write_shift(1,0),Sn(e.color,t);var r=0;return"major"==e.scheme&&(r=1),"minor"==e.scheme&&(r=2),t.write_shift(1,r),on(e.name,t),t.length>t.l?t.slice(0,t.l):t}({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),zt(e,"BrtEndFonts")}(n),function(e){zt(e,"BrtBeginFills",an(2)),zt(e,"BrtFill",Rs({patternType:"none"})),zt(e,"BrtFill",Rs({patternType:"gray125"})),zt(e,"BrtEndFills")}(n),function(e){zt(e,"BrtBeginBorders",an(1)),zt(e,"BrtBorder",function(e,t){return t||(t=$t(51)),t.write_shift(1,0),Os(0,t),Os(0,t),Os(0,t),Os(0,t),Os(0,t),t.length>t.l?t.slice(0,t.l):t}()),zt(e,"BrtEndBorders")}(n),function(e){zt(e,"BrtBeginCellStyleXFs",an(1)),zt(e,"BrtXF",Fs({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),zt(e,"BrtEndCellStyleXFs")}(n),function(e,t){zt(e,"BrtBeginCellXFs",an(t.length)),t.forEach((function(t){zt(e,"BrtXF",Fs(t,0))})),zt(e,"BrtEndCellXFs")}(n,t.cellXfs),function(e){zt(e,"BrtBeginStyles",an(1)),zt(e,"BrtStyle",function(e,t){return t||(t=$t(52)),t.write_shift(4,e.xfId),t.write_shift(2,1),t.write_shift(1,+e.builtinId),t.write_shift(1,0),gn(e.name||"",t),t.length>t.l?t.slice(0,t.l):t}({xfId:0,builtinId:0,name:"Normal"})),zt(e,"BrtEndStyles")}(n),function(e){zt(e,"BrtBeginDXFs",an(0)),zt(e,"BrtEndDXFs")}(n),function(e){zt(e,"BrtBeginTableStyles",function(e,t,n){var r=$t(2052);return r.write_shift(4,0),gn("TableStyleMedium9",r),gn("PivotStyleMedium4",r),r.length>r.l?r.slice(0,r.l):r}()),zt(e,"BrtEndTableStyles")}(n),zt(n,"BrtEndStyleSheet"),n.end()}Gn.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";var $s=["","","","","","","","","","","",""];function Ps(e,t,n){t.themeElements.clrScheme=[];var r={};(e[0].match(ye)||[]).forEach((function(e){var a=we(e);switch(a[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":"/"===a[0].charAt(1)?(t.themeElements.clrScheme[$s.indexOf(a[0])]=r,r={}):r.name=a[0].slice(3,a[0].length-1);break;default:if(n&&n.WTF)throw new Error("Unrecognized "+a[0]+" in clrScheme")}}))}function Ls(){}function zs(){}var Ws=/]*)>[\s\S]*<\/a:clrScheme>/,Us=/]*)>[\s\S]*<\/a:fontScheme>/,Vs=/]*)>[\s\S]*<\/a:fmtScheme>/,js=/]*)>[\s\S]*<\/a:themeElements>/;function Hs(e,t){if(!e||0===e.length)return Hs(Gs());var n,r={};if(!(n=e.match(js)))throw new Error("themeElements not found in theme");return function(e,t,n){var r;t.themeElements={},[["clrScheme",Ws,Ps],["fontScheme",Us,Ls],["fmtScheme",Vs,zs]].forEach((function(a){if(!(r=e.match(a[1])))throw new Error(a[0]+" not found in themeElements");a[2](r,t,n)}))}(n[0],r,t),r.raw=e,r}function Gs(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var n=[me];return n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n.join("")}function qs(e){var t=e.read_shift(2),n=e.read_shift(2)-4,r=[t];switch(t){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:r[1]=function(e){var t={};switch(t.xclrType=e.read_shift(2),t.nTintShade=e.read_shift(2),t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=function(e,t){return Mt(e,4)}(e);break;case 2:t.xclrValue=Gr(e);break;case 3:t.xclrValue=function(e){return e.read_shift(4)}(e);break;case 4:e.l+=4}return e.l+=8,t}(e);break;case 6:r[1]=function(e,t){return Mt(e,t)}(e,n);break;case 14:case 15:r[1]=e.read_shift(1===n?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+n)}return r}Gn.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Gn.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";var Xs=1024;function Ks(e,t){for(var n=[21600,21600],r=["m0,0l0",n[1],n[0],n[1],n[0],"0xe"].join(","),a=[Ze("xml",null,{"xmlns:v":"urn:schemas-microsoft-com:vml","xmlns:o":rt,"xmlns:x":at,"xmlns:mv":"http://macVmlSchemaUri"}).replace(/\/>/,">"),Ze("o:shapelayout",Ze("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ze("v:shapetype",[Ze("v:stroke",null,{joinstyle:"miter"}),Ze("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:n.join(","),path:r})];Xs<1e3*e;)Xs+=1e3;return t.forEach((function(e){var t=Kt(e[0]),n={color2:"#BEFF82",type:"gradient"};"gradient"==n.type&&(n.angle="-180");var r="gradient"==n.type?Ze("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}):null,s=Ze("v:fill",r,n);++Xs,a=a.concat(["",s,Ze("v:shadow",null,{on:"t",obscured:"t"}),Ze("v:path",null,{"o:connecttype":"none"}),'
','',"","",Ye("x:Anchor",[t.c+1,0,t.r+1,0,t.c+3,20,t.r+5,20].join(",")),Ye("x:AutoFill","False"),Ye("x:Row",String(t.r)),Ye("x:Column",String(t.c)),e[1].hidden?"":"","",""])})),a.push(""),a.join("")}Gn.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";var Ys=Ze("comments",null,{xmlns:nt.main[0]});function Js(e){var t=[me,Ys],n=[];return t.push(""),e.forEach((function(e){e[1].forEach((function(e){var r=De(e.a);n.indexOf(r)>-1||(n.push(r),t.push(""+r+""))}))})),t.push(""),t.push(""),e.forEach((function(e){e[1].forEach((function(r){t.push(''),t.push(Ye("t",null==r.t?"":De(r.t))),t.push("")}))})),t.push(""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Zs=sn;function Qs(e){var t=Lt(),n=[];return zt(t,"BrtBeginComments"),zt(t,"BrtBeginCommentAuthors"),e.forEach((function(e){e[1].forEach((function(e){n.indexOf(e.a)>-1||(n.push(e.a.slice(0,54)),zt(t,"BrtCommentAuthor",function(e){return on(e.slice(0,54))}(e.a)))}))})),zt(t,"BrtEndCommentAuthors"),zt(t,"BrtBeginCommentList"),e.forEach((function(e){e[1].forEach((function(r){r.iauthor=n.indexOf(r.a);var a={s:Kt(e[0]),e:Kt(e[0])};zt(t,"BrtBeginComment",function(e,t){return null==t&&(t=$t(36)),t.write_shift(4,e[1].iauthor),kn(e[0],t),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t}([a,r])),r.t&&r.t.length>0&&zt(t,"BrtCommentText",function(e,t){var n=!1;return null==t&&(n=!0,t=$t(23+4*e.t.length)),t.write_shift(1,1),on(e.t,t),t.write_shift(4,1),function(e,t){t||(t=$t(4)),t.write_shift(2,e.ich||0),t.write_shift(2,e.ifnt||0)}({ich:0,ifnt:0},t),n?t.slice(0,t.l):t}(r)),zt(t,"BrtEndComment"),delete r.iauthor}))})),zt(t,"BrtEndCommentList"),zt(t,"BrtEndComments"),t.end()}var ei=["xlsb","xlsm","xlam","biff8","xla"];Gn.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",Gn.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";var ti=function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function n(e,n,r,a){var s=!1,i=!1;0==r.length?i=!0:"["==r.charAt(0)&&(i=!0,r=r.slice(1,-1)),0==a.length?s=!0:"["==a.charAt(0)&&(s=!0,a=a.slice(1,-1));var o=r.length>0?0|parseInt(r,10):0,l=a.length>0?0|parseInt(a,10):0;return s?l+=t.c:--l,i?o+=t.r:--o,n+(s?"":"$")+Xt(l)+(i?"":"$")+Gt(o)}return function(r,a){return t=a,r.replace(e,n)}}(),ni=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,ri=function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){var o=qt(a)-(r?0:t.c),l=Ht(i)-(s?0:t.r);return n+"R"+(0==l?"":s?l+1:"["+l+"]")+"C"+(0==o?"":r?o+1:"["+o+"]")}))};function ai(e,t,n){var r=Jt(t).s,a=Kt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:Xt(qt(a)+t.c))+("$"==s?s+i:Gt(Ht(i)+t.r))}))}(e,{r:a.r-r.r,c:a.c-r.c})}function si(e){return e.replace(/_xlfn\./g,"")}function ii(e){e.l+=1}function oi(e,t){var n=e.read_shift(1==t?1:2);return[16383&n,n>>14&1,n>>15&1]}function li(e,t,n){var r=2;if(n){if(n.biff>=2&&n.biff<=5)return ui(e);12==n.biff&&(r=4)}var a=e.read_shift(r),s=e.read_shift(r),i=oi(e,2),o=oi(e,2);return{s:{r:a,c:i[0],cRel:i[1],rRel:i[2]},e:{r:s,c:o[0],cRel:o[1],rRel:o[2]}}}function ui(e){var t=oi(e,2),n=oi(e,2),r=e.read_shift(1),a=e.read_shift(1);return{s:{r:t[0],c:r,cRel:t[1],rRel:t[2]},e:{r:n[0],c:a,cRel:n[1],rRel:n[2]}}}function ci(e,t,n){if(n&&n.biff>=2&&n.biff<=5)return function(e){var t=oi(e,2),n=e.read_shift(1);return{r:t[0],c:n,cRel:t[1],rRel:t[2]}}(e);var r=e.read_shift(n&&12==n.biff?4:2),a=oi(e,2);return{r,c:a[0],cRel:a[1],rRel:a[2]}}function hi(e){var t=e.read_shift(2),n=e.read_shift(2);return{r:t,c:255&n,fQuoted:!!(16384&n),cRel:n>>15,rRel:n>>15}}function fi(e){return[e.read_shift(1),e.read_shift(1)]}function di(e,t){var n=[e.read_shift(1)];if(12==t)switch(n[0]){case 2:n[0]=4;break;case 4:n[0]=16;break;case 0:n[0]=1;break;case 1:n[0]=2}switch(n[0]){case 4:n[1]=Rr(e,1)?"TRUE":"FALSE",12!=t&&(e.l+=7);break;case 37:case 16:n[1]=Ln[e[e.l]],e.l+=12==t?4:8;break;case 0:e.l+=8;break;case 1:n[1]=En(e);break;case 2:n[1]=Ur(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error("Bad SerAr: "+n[0])}return n}function pi(e,t,n){for(var r=e.read_shift(12==n.biff?4:2),a=[],s=0;s!=r;++s)a.push((12==n.biff?xn:Zr)(e,8));return a}function mi(e,t,n){var r=0,a=0;12==n.biff?(r=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),r=1+e.read_shift(2)),n.biff>=2&&n.biff<8&&(--r,0==--a&&(a=256));for(var s=0,i=[];s!=r&&(i[s]=[]);++s)for(var o=0;o!=a;++o)i[s][o]=di(e,n.biff);return i}function gi(e,t,n){return e.l+=2,[hi(e)]}function yi(e){return e.l+=6,[]}var bi=gi,vi=yi,wi=yi,_i=gi;function xi(e){return e.l+=2,[Or(e),1&e.read_shift(2)]}var ki=gi,Ei=xi,Ci=yi,Si=gi,Ni=gi,Ii=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"],Di={1:{n:"PtgExp",f:function(e,t,n){return e.l++,n&&12==n.biff?[e.read_shift(4,"i"),0]:[e.read_shift(2),e.read_shift(n&&2==n.biff?1:2)]}},2:{n:"PtgTbl",f:Mt},3:{n:"PtgAdd",f:ii},4:{n:"PtgSub",f:ii},5:{n:"PtgMul",f:ii},6:{n:"PtgDiv",f:ii},7:{n:"PtgPower",f:ii},8:{n:"PtgConcat",f:ii},9:{n:"PtgLt",f:ii},10:{n:"PtgLe",f:ii},11:{n:"PtgEq",f:ii},12:{n:"PtgGe",f:ii},13:{n:"PtgGt",f:ii},14:{n:"PtgNe",f:ii},15:{n:"PtgIsect",f:ii},16:{n:"PtgUnion",f:ii},17:{n:"PtgRange",f:ii},18:{n:"PtgUplus",f:ii},19:{n:"PtgUminus",f:ii},20:{n:"PtgPercent",f:ii},21:{n:"PtgParen",f:ii},22:{n:"PtgMissArg",f:ii},23:{n:"PtgStr",f:function(e,t,n){return e.l++,$r(e,0,n)}},26:{n:"PtgSheet",f:function(e,t,n){return e.l+=5,e.l+=2,e.l+=2==n.biff?1:4,["PTGSHEET"]}},27:{n:"PtgEndSheet",f:function(e,t,n){return e.l+=2==n.biff?4:5,["PTGENDSHEET"]}},28:{n:"PtgErr",f:function(e){return e.l++,Ln[e.read_shift(1)]}},29:{n:"PtgBool",f:function(e){return e.l++,0!==e.read_shift(1)}},30:{n:"PtgInt",f:function(e){return e.l++,e.read_shift(2)}},31:{n:"PtgNum",f:function(e){return e.l++,En(e)}},32:{n:"PtgArray",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=2==n.biff?6:12==n.biff?14:7,[r]}},33:{n:"PtgFunc",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(n&&n.biff<=3?1:2);return[Ji[a],Yi[a],r]}},34:{n:"PtgFuncVar",f:function(e,t,n){var r=e[e.l++],a=e.read_shift(1),s=n&&n.biff<=3?[88==r?-1:0,e.read_shift(1)]:function(e){return[e[e.l+1]>>7,32767&e.read_shift(2)]}(e);return[a,(0===s[0]?Yi:Ki)[s[1]]]}},35:{n:"PtgName",f:function(e,t,n){var r=e.read_shift(1)>>>5&3,a=!n||n.biff>=8?4:2,s=e.read_shift(a);switch(n.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12}return[r,0,s]}},36:{n:"PtgRef",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,ci(e,0,n)]}},37:{n:"PtgArea",f:function(e,t,n){return[(96&e[e.l++])>>5,li(e,n.biff>=2&&n.biff,n)]}},38:{n:"PtgMemArea",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=n&&2==n.biff?3:4,[r,e.read_shift(n&&2==n.biff?1:2)]}},39:{n:"PtgMemErr",f:Mt},40:{n:"PtgMemNoMem",f:Mt},41:{n:"PtgMemFunc",f:function(e,t,n){return[e.read_shift(1)>>>5&3,e.read_shift(n&&2==n.biff?1:2)]}},42:{n:"PtgRefErr",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=4,n.biff<8&&e.l--,12==n.biff&&(e.l+=2),[r]}},43:{n:"PtgAreaErr",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=n&&n.biff>8?12:n.biff<8?6:8,[r]}},44:{n:"PtgRefN",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,function(e,t,n){var r=n&&n.biff?n.biff:8;if(r>=2&&r<=5)return function(e){var t=e.read_shift(2),n=e.read_shift(1),r=(32768&t)>>15,a=(16384&t)>>14;return t&=16383,1==r&&t>=8192&&(t-=16384),1==a&&n>=128&&(n-=256),{r:t,c:n,cRel:a,rRel:r}}(e);var a=e.read_shift(r>=12?4:2),s=e.read_shift(2),i=(16384&s)>>14,o=(32768&s)>>15;if(s&=16383,1==o)for(;a>524287;)a-=1048576;if(1==i)for(;s>8191;)s-=16384;return{r:a,c:s,cRel:i,rRel:o}}(e,0,n)]}},45:{n:"PtgAreaN",f:function(e,t,n){return[(96&e[e.l++])>>5,function(e,t,n){if(n.biff<8)return ui(e);var r=e.read_shift(12==n.biff?4:2),a=e.read_shift(12==n.biff?4:2),s=oi(e,2),i=oi(e,2);return{s:{r,c:s[0],cRel:s[1],rRel:s[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}(e,0,n)]}},46:{n:"PtgMemAreaN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},47:{n:"PtgMemNoMemN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},57:{n:"PtgNameX",f:function(e,t,n){return 5==n.biff?function(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2,"i");e.l+=8;var r=e.read_shift(2);return e.l+=12,[t,n,r]}(e):[e.read_shift(1)>>>5&3,e.read_shift(2),e.read_shift(4)]}},58:{n:"PtgRef3d",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(2);return n&&5==n.biff&&(e.l+=12),[r,a,ci(e,0,n)]}},59:{n:"PtgArea3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2,"i");if(n)switch(n.biff){case 5:e.l+=12}return[r,a,li(e,0,n)]}},60:{n:"PtgRefErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=4;if(n)switch(n.biff){case 5:s=15;break;case 12:s=6}return e.l+=s,[r,a]}},61:{n:"PtgAreaErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=8;if(n)switch(n.biff){case 5:e.l+=12,s=6;break;case 12:s=12}return e.l+=s,[r,a]}},255:{}},Ai={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};!function(){for(var e in Ai)Di[e]=Di[Ai[e]]}();var Ti={1:{n:"PtgElfLel",f:xi},2:{n:"PtgElfRw",f:Si},3:{n:"PtgElfCol",f:bi},6:{n:"PtgElfRwV",f:Ni},7:{n:"PtgElfColV",f:_i},10:{n:"PtgElfRadical",f:ki},11:{n:"PtgElfRadicalS",f:Ci},13:{n:"PtgElfColS",f:vi},15:{n:"PtgElfColSV",f:wi},16:{n:"PtgElfRadicalLel",f:Ei},25:{n:"PtgList",f:function(e){e.l+=2;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a=e.read_shift(2),s=e.read_shift(2);return{ixti:t,coltype:3&n,rt:Ii[n>>2&31],idx:r,c:a,C:s}}},29:{n:"PtgSxName",f:function(e){return e.l+=2,[e.read_shift(4)]}},255:{}},Ri={0:{n:"PtgAttrNoop",f:function(e){return e.l+=4,[0,0]}},1:{n:"PtgAttrSemi",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=n&&2==n.biff?3:4,[r]}},2:{n:"PtgAttrIf",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},4:{n:"PtgAttrChoose",f:function(e,t,n){e.l+=2;for(var r=e.read_shift(n&&2==n.biff?1:2),a=[],s=0;s<=r;++s)a.push(e.read_shift(n&&2==n.biff?1:2));return a}},8:{n:"PtgAttrGoto",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},16:{n:"PtgAttrSum",f:function(e,t,n){e.l+=n&&2==n.biff?3:4}},32:{n:"PtgAttrBaxcel",f:function(e){var t=1&e[e.l+1];return e.l+=4,[t,1]}},64:{n:"PtgAttrSpace",f:function(e){return e.read_shift(2),fi(e)}},65:{n:"PtgAttrSpaceSemi",f:function(e){return e.read_shift(2),fi(e)}},128:{n:"PtgAttrIfError",f:function(e){var t=255&e[e.l+1]?1:0;return e.l+=2,[t,e.read_shift(2)]}},255:{}};function Fi(e,t,n,r){if(r.biff<8)return Mt(e,t);for(var a=e.l+t,s=[],i=0;i!==n.length;++i)switch(n[i][0]){case"PtgArray":n[i][1]=mi(e,0,r),s.push(n[i][1]);break;case"PtgMemArea":n[i][2]=pi(e,n[i][1],r),s.push(n[i][2]);break;case"PtgExp":r&&12==r.biff&&(n[i][1][1]=e.read_shift(4),s.push(n[i][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+n[i][0]}return 0!=(t=a-e.l)&&s.push(Mt(e,t)),s}function Oi(e,t,n){for(var r,a,s=e.l+t,i=[];s!=e.l;)t=s-e.l,a=e[e.l],r=Di[a],24!==a&&25!==a||(r=(24===a?Ti:Ri)[e[e.l+1]]),r&&r.f?i.push([r.n,r.f(e,t,n)]):Mt(e,t);return i}function Bi(e){for(var t=[],n=0;n=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"},$i=new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/);function Pi(e,t,n){if(!e)return"SH33TJSERR0";if(n.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return"SH33TJSERR6";var r=e.XTI[t];if(n.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),0==t?"":e.XTI[t-1];if(!r)return"SH33TJSERR1";var a="";if(n.biff>8)switch(e[r[0]][0]){case 357:return a=-1==r[1]?"#REF":e.SheetNames[r[1]],r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 358:return null!=n.SID?e.SheetNames[n.SID]:"SH33TJSSAME"+e[r[0]][0];case 355:default:return"SH33TJSSRC"+e[r[0]][0]}switch(e[r[0]][0][0]){case 1025:return a=-1==r[1]?"#REF":e.SheetNames[r[1]]||"SH33TJSERR3",r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 14849:return e[r[0]].slice(1).map((function(e){return e.Name})).join(";;");default:return e[r[0]][0][3]?(a=-1==r[1]?"#REF":e[r[0]][0][3][r[1]]||"SH33TJSERR4",r[1]==r[2]?a:a+":"+e[r[0]][0][3][r[2]]):"SH33TJSERR2"}}function Li(e,t,n){return function(e,t){if(!(e||t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return $i.test(e)?"'"+e+"'":e}(Pi(e,t,n),n)}function zi(e,t,n,r,a){var s,i,o,l,u=a&&a.biff||8,c={s:{c:0,r:0},e:{c:0,r:0}},h=[],f=0,d=0,p="";if(!e[0]||!e[0][0])return"";for(var m=-1,g="",y=0,b=e[0].length;y=0){switch(e[0][m][1][0]){case 0:g=ne(" ",e[0][m][1][1]);break;case 1:g=ne("\r",e[0][m][1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}i+=g,m=-1}h.push(i+Mi[v[0]]+s);break;case"PtgIsect":s=h.pop(),i=h.pop(),h.push(i+" "+s);break;case"PtgUnion":s=h.pop(),i=h.pop(),h.push(i+","+s);break;case"PtgRange":s=h.pop(),i=h.pop(),h.push(i+":"+s);break;case"PtgAttrChoose":case"PtgAttrGoto":case"PtgAttrIf":case"PtgAttrIfError":break;case"PtgRef":o=Wt(v[1][1],c,a),h.push(Vt(o,u));break;case"PtgRefN":o=n?Wt(v[1][1],n,a):v[1][1],h.push(Vt(o,u));break;case"PtgRef3d":f=v[1][1],o=Wt(v[1][2],c,a),p=Li(r,f,a),h.push(p+"!"+Vt(o,u));break;case"PtgFunc":case"PtgFuncVar":var w=v[1][0],_=v[1][1];w||(w=0);var x=0==(w&=127)?[]:h.slice(-w);h.length-=w,"User"===_&&(_=x.shift()),h.push(_+"("+x.join(",")+")");break;case"PtgBool":h.push(v[1]?"TRUE":"FALSE");break;case"PtgInt":h.push(v[1]);break;case"PtgNum":h.push(String(v[1]));break;case"PtgStr":h.push('"'+v[1].replace(/"/g,'""')+'"');break;case"PtgErr":h.push(v[1]);break;case"PtgAreaN":l=Ut(v[1][1],n?{s:n}:c,a),h.push(jt(l,a));break;case"PtgArea":l=Ut(v[1][1],c,a),h.push(jt(l,a));break;case"PtgArea3d":f=v[1][1],l=v[1][2],p=Li(r,f,a),h.push(p+"!"+jt(l,a));break;case"PtgAttrSum":h.push("SUM("+h.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":d=v[1][2];var k=(r.names||[])[d-1]||(r[0]||[])[d],E=k?k.Name:"SH33TJSNAME"+String(d);E in Zi&&(E=Zi[E]),h.push(E);break;case"PtgNameX":var C,S=v[1][1];if(d=v[1][2],!(a.biff<=5)){var N="";if(14849==((r[S]||[])[0]||[])[0]||(1025==((r[S]||[])[0]||[])[0]?r[S][d]&&r[S][d].itab>0&&(N=r.SheetNames[r[S][d].itab-1]+"!"):N=r.SheetNames[d-1]+"!"),r[S]&&r[S][d])N+=r[S][d].Name;else if(r[0]&&r[0][d])N+=r[0][d].Name;else{var I=Pi(r,S,a).split(";;");I[d-1]?N=I[d-1]:N+="SH33TJSERRX"}h.push(N);break}S<0&&(S=-S),r[S]&&(C=r[S][d]),C||(C={Name:"SH33TJSERRY"}),h.push(C.Name);break;case"PtgParen":var D="(",A=")";if(m>=0){switch(g="",e[0][m][1][0]){case 2:D=ne(" ",e[0][m][1][1])+D;break;case 3:D=ne("\r",e[0][m][1][1])+D;break;case 4:A=ne(" ",e[0][m][1][1])+A;break;case 5:A=ne("\r",e[0][m][1][1])+A;break;default:if(a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}m=-1}h.push(D+h.pop()+A);break;case"PtgRefErr":case"PtgRefErr3d":h.push("#REF!");break;case"PtgExp":o={c:v[1][1],r:v[1][0]};var T={c:n.c,r:n.r};if(r.sharedf[Yt(o)]){var R=r.sharedf[Yt(o)];h.push(zi(R,0,T,r,a))}else{var F=!1;for(s=0;s!=r.arrayf.length;++s)if(i=r.arrayf[s],!(o.ci[0].e.c||o.ri[0].e.r)){h.push(zi(i[1],0,T,r,a)),F=!0;break}F||h.push(v[1])}break;case"PtgArray":h.push("{"+Bi(v[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":m=y;break;case"PtgTbl":case"PtgMemErr":break;case"PtgMissArg":h.push("");break;case"PtgAreaErr":case"PtgAreaErr3d":h.push("#REF!");break;case"PtgList":h.push("Table"+v[1].idx+"[#"+v[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":case"PtgMemFunc":case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":default:throw new Error("Unrecognized Formula Token: "+String(v))}if(3!=a.biff&&m>=0&&-1==["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"].indexOf(e[0][y][0])){var O=!0;switch((v=e[0][m])[1][0]){case 4:O=!1;case 0:g=ne(" ",v[1][1]);break;case 5:O=!1;case 1:g=ne("\r",v[1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+v[1][0])}h.push((O?g:"")+h.pop()+(O?"":g)),m=-1}}if(h.length>1&&a.WTF)throw new Error("bad formula stack");return h[0]}function Wi(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Fi(e,t-i-s,o,n)),e.l=a,[o,r]}function Ui(e,t,n){var r,a=e.l+t,s=e.read_shift(2),i=Oi(e,s,n);return 65535==s?[[],Mt(e,t-2)]:(t!==s+2&&(r=Fi(e,a-s-2,i,n)),[i,r])}function Vi(e,t,n){var r=e.l+t,a=Xr(e);2==n.biff&&++e.l;var s=function(e){var t;if(65535!==St(e,e.l+6))return[En(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return t=1===e[e.l+2],e.l+=8,[t,"b"];case 2:return t=e[e.l+2],e.l+=8,[t,"e"];case 3:return e.l+=8,["","s"]}return[]}(e),i=e.read_shift(1);2!=n.biff&&(e.read_shift(1),n.biff>=5&&e.read_shift(4));var o=function(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Fi(e,t-i-s,o,n)),e.l=a,[o,r]}(e,r-e.l,n);return{cell:a,val:s[0],formula:o,shared:i>>3&1,tt:s[1]}}function ji(e,t,n){var r=e.read_shift(4),a=Oi(e,r,n),s=e.read_shift(4);return[a,s>0?Fi(e,s,a,n):null]}var Hi=ji,Gi=ji,qi=ji,Xi=ji,Ki={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},Yi={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Ji={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0},Zi={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONCAT":"CONCAT","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORECAST.ETS":"FORECAST.ETS","_xlfn.FORECAST.ETS.CONFINT":"FORECAST.ETS.CONFINT","_xlfn.FORECAST.ETS.SEASONALITY":"FORECAST.ETS.SEASONALITY","_xlfn.FORECAST.ETS.STAT":"FORECAST.ETS.STAT","_xlfn.FORECAST.LINEAR":"FORECAST.LINEAR","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFERROR":"IFERROR","_xlfn.IFNA":"IFNA","_xlfn.IFS":"IFS","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MAXIFS":"MAXIFS","_xlfn.MINIFS":"MINIFS","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.SWITCH":"SWITCH","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.TEXTJOIN":"TEXTJOIN","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Qi(e){return"of:"==e.slice(0,3)&&(e=e.slice(3)),61==e.charCodeAt(0)&&61==(e=e.slice(1)).charCodeAt(0)&&(e=e.slice(1)),(e=(e=(e=e.replace(/COM\.MICROSOFT\./g,"")).replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,(function(e,t){return t.replace(/\./g,"")}))).replace(/\[.(#[A-Z]*[?!])\]/g,"$1")).replace(/[;~]/g,",").replace(/\|/g,";")}function eo(e){var t=e.split(":");return[t[0].split(".")[0],t[0].split(".")[1]+(t.length>1?":"+(t[1].split(".")[1]||t[1].split(".")[0]):"")]}var to={},no={};Gn.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];var ro="undefined"!=typeof Map;function ao(e,t,n){var r=0,a=e.length;if(n){if(ro?n.has(t):Object.prototype.hasOwnProperty.call(n,t))for(var s=ro?n.get(t):n[t];r-1?(n.width=fs(r),n.customWidth=1):null!=t.width&&(n.width=t.width),t.hidden&&(n.hidden=!0),n}function io(e,t){if(e){var n=[.7,.7,.75,.75,.3,.3];"xlml"==t&&(n=[1,1,1,1,.5,.5]),null==e.left&&(e.left=n[0]),null==e.right&&(e.right=n[1]),null==e.top&&(e.top=n[2]),null==e.bottom&&(e.bottom=n[3]),null==e.header&&(e.header=n[4]),null==e.footer&&(e.footer=n[5])}}function oo(e,t,n){var r=n.revssf[null!=t.z?t.z:"General"],a=60,s=e.length;if(null==r&&n.ssf)for(;a<392;++a)if(null==n.ssf[a]){D.load(t.z,a),n.ssf[a]=t.z,n.revssf[t.z]=r=a;break}for(a=0;a!=s;++a)if(e[a].numFmtId===r)return a;return e[s]={numFmtId:r,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function lo(e,t,n,r,a,s){try{r.cellNF&&(e.z=D._table[t])}catch(e){if(r.WTF)throw e}if("z"!==e.t){if("d"===e.t&&"string"==typeof e.v&&(e.v=Q(e.v)),!r||!1!==r.cellText)try{if(null==D._table[t]&&D.load(F[t]||"General",t),"e"===e.t)e.w=e.w||Ln[e.v];else if(0===t)if("n"===e.t)(0|e.v)===e.v?e.w=D._general_int(e.v):e.w=D._general_num(e.v);else if("d"===e.t){var i=H(e.v);e.w=(0|i)===i?D._general_int(i):D._general_num(i)}else{if(void 0===e.v)return"";e.w=D._general(e.v,no)}else"d"===e.t?e.w=D.format(t,H(e.v),no):e.w=D.format(t,e.v,no)}catch(e){if(r.WTF)throw e}if(r.cellStyles&&null!=n)try{e.s=s.Fills[n],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=ls(a.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),r.WTF&&(e.s.fgColor.raw_rgb=a.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=ls(a.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),r.WTF&&(e.s.bgColor.raw_rgb=a.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(e){if(r.WTF&&s.Fills)throw e}}}function uo(e,t,n){if(e&&e["!ref"]){var r=Qt(e["!ref"]);if(r.e.c/g,ho=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,fo=/<(?:\w:)?hyperlink [^>]*>/gm,po=/"(\w*:\w*)"/,mo=/<(?:\w:)?col\b[^>]*[\/]?>/g,go=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,yo=/<(?:\w:)?pageMargins[^>]*\/>/g,bo=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,vo=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function wo(e,t,n,r){var a=we(e);n.Sheets[r]||(n.Sheets[r]={}),a.codeName&&(n.Sheets[r].CodeName=Se(Be(a.codeName)))}var _o=["objects","scenarios","selectLockedCells","selectUnlockedCells"],xo=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"],ko=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;function Eo(e,t,n,r){if(void 0===e.v&&"string"!=typeof e.f||"z"===e.t)return"";var a="",s=e.t,i=e.v;if("z"!==e.t)switch(e.t){case"b":a=e.v?"1":"0";break;case"n":a=""+e.v;break;case"e":a=Ln[e.v];break;case"d":r&&r.cellDates?a=Q(e.v,-1).toISOString():((e=te(e)).t="n",a=""+(e.v=H(Q(e.v)))),void 0===e.z&&(e.z=D._table[14]);break;default:a=e.v}var o=Ye("v",De(a)),l={r:t},u=oo(r.cellXfs,e,r);switch(0!==u&&(l.s=u),e.t){case"n":break;case"d":l.t="d";break;case"b":l.t="b";break;case"e":l.t="e";break;case"z":break;default:if(null==e.v){delete e.t;break}if(r&&r.bookSST){o=Ye("v",""+ao(r.Strings,e.v,r.revStrings)),l.t="s";break}l.t="str"}if(e.t!=s&&(e.t=s,e.v=i),"string"==typeof e.f&&e.f){var c=e.F&&e.F.slice(0,t.length)==t?{t:"array",ref:e.F}:null;o=Ze("f",De(e.f),c)+(null!=e.v?o:"")}return e.l&&n["!links"].push([t,e.l]),e.c&&n["!comments"].push([t,e.c]),Ze("c",o,l)}var Co,So,No,Io,Do,Ao,To,Ro=(Co=/<(?:\w+:)?c[ \/>]/,So=/<\/(?:\w+:)?row>/,No=/r=["']([^"']*)["']/,Io=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,Do=/ref=["']([^"']*)["']/,Ao=Ve("v"),To=Ve("f"),function(e,t,n,r,a,s){for(var i,o,l,u,c,h=0,f="",d=[],p=[],m=0,g=0,y=0,b="",v=0,w=0,_=0,x=0,k=Array.isArray(s.CellXf),E=[],C=[],S=Array.isArray(t),N=[],I={},A=!1,T=!!n.sheetStubs,R=e.split(So),F=0,O=R.length;F!=O;++F){var B=(f=R[F].trim()).length;if(0!==B){for(h=0;hv-1&&(r.s.r=v-1),r.e.r":"")+f,null!=p&&2===p.length){for(m=0,b=p[1],g=0;g!=b.length&&!((y=b.charCodeAt(g)-64)<1||y>26);++g)m=26*m+y;w=--m}else++w;for(g=0;g!=f.length&&62!==f.charCodeAt(g);++g);if(++g,(o=we(f.slice(0,g),!0)).r||(o.r=Yt({r:v-1,c:w})),i={t:""},null!=(p=(b=f.slice(g)).match(Ao))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Be(p[1])).replace(/\r\n/g,"\n"),n.xlfn||(i.f=si(i.f)),p[0].indexOf('t="array"')>-1)i.F=(b.match(Do)||[])[1],i.F.indexOf(":")>-1&&E.push([Qt(i.F),i.F]);else if(p[0].indexOf('t="shared"')>-1){u=we(p[0]);var $=Se(Be(p[1]));n.xlfn||($=si($)),C[parseInt(u.si,10)]=[u,$,o.r]}}else(p=b.match(/]*\/>/))&&C[(u=we(p[0])).si]&&(i.f=ai(C[u.si][1],C[u.si][2],o.r));var P=Kt(o.r);for(g=0;g=E[g][0].s.r&&P.r<=E[g][0].e.r&&P.c>=E[g][0].s.c&&P.c<=E[g][0].e.c&&(i.F=E[g][1])}if(null==o.t&&void 0===i.v)if(i.f||i.F)i.v=0,i.t="n";else{if(!T)continue;i.t="z"}else i.t=o.t||"n";switch(r.s.c>w&&(r.s.c=w),r.e.c0&&(t["!rows"]=N)}),Fo=Ze("worksheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function Oo(e,t,n,r){var a,s=[me,Fo],i=n.SheetNames[e],o="",l=n.Sheets[i];null==l&&(l={});var u=l["!ref"]||"A1",c=Qt(u);if(c.e.c>16383||c.e.r>1048575){if(t.WTF)throw new Error("Range "+u+" exceeds format limit A1:XFD1048576");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575),u=Zt(c)}r||(r={}),l["!comments"]=[];var h=[];!function(e,t,n,r,a){var s=!1,i={},o=null;if("xlsx"!==r.bookType&&t.vbaraw){var l=t.SheetNames[n];try{t.Workbook&&(l=t.Workbook.Sheets[n].CodeName||l)}catch(e){}s=!0,i.codeName=Me(De(l))}if(e&&e["!outline"]){var u={summaryBelow:1,summaryRight:1};e["!outline"].above&&(u.summaryBelow=0),e["!outline"].left&&(u.summaryRight=0),o=(o||"")+Ze("outlinePr",null,u)}(s||o)&&(a[a.length]=Ze("sheetPr",o,i))}(l,n,e,t,s),s[s.length]=Ze("dimension",null,{ref:u}),s[s.length]=function(e,t,n,r){var a={workbookViewId:"0"};return(((r||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=r.Workbook.Views[0].RTL?"1":"0"),Ze("sheetViews",Ze("sheetView",null,a),{})}(0,0,0,n),t.sheetFormat&&(s[s.length]=Ze("sheetFormatPr",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||"16",baseColWidth:t.sheetFormat.baseColWidth||"10",outlineLevelRow:t.sheetFormat.outlineLevelRow||"7"})),null!=l["!cols"]&&l["!cols"].length>0&&(s[s.length]=function(e,t){for(var n,r=[""],a=0;a!=t.length;++a)(n=t[a])&&(r[r.length]=Ze("col",null,so(a,n)));return r[r.length]="",r.join("")}(0,l["!cols"])),s[a=s.length]="",l["!links"]=[],null!=l["!ref"]&&(o=function(e,t,n,r){var a,s,i=[],o=[],l=Qt(e["!ref"]),u="",c="",h=[],f=0,d=0,p=e["!rows"],m=Array.isArray(e),g={r:c},y=-1;for(d=l.s.c;d<=l.e.c;++d)h[d]=Xt(d);for(f=l.s.r;f<=l.e.r;++f){for(o=[],c=Gt(f),d=l.s.c;d<=l.e.c;++d){a=h[d]+c;var b=m?(e[f]||[])[d]:e[a];void 0!==b&&null!=(u=Eo(b,a,e,t))&&o.push(u)}(o.length>0||p&&p[f])&&(g={r:c},p&&p[f]&&((s=p[f]).hidden&&(g.hidden=1),y=-1,s.hpx?y=gs(s.hpx):s.hpt&&(y=s.hpt),y>-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level)),i[i.length]=Ze("row",o.join(""),g))}if(p)for(;f-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level),i[i.length]=Ze("row","",g));return i.join("")}(l,t)).length>0&&(s[s.length]=o),s.length>a+1&&(s[s.length]="",s[a]=s[a].replace("/>",">")),null!=l["!protect"]&&(s[s.length]=function(e){var t={sheet:1};return _o.forEach((function(n){null!=e[n]&&e[n]&&(t[n]="1")})),xo.forEach((function(n){null==e[n]||e[n]||(t[n]="0")})),e.password&&(t.password=es(e.password).toString(16).toUpperCase()),Ze("sheetProtection",null,t)}(l["!protect"])),null!=l["!autofilter"]&&(s[s.length]=function(e,t,n,r){var a="string"==typeof e.ref?e.ref:Zt(e.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var s=n.Workbook.Names,i=Jt(a);i.s.r==i.e.r&&(i.e.r=Jt(t["!ref"]).e.r,a=Zt(i));for(var o=0;o0&&(s[s.length]=function(e){if(0===e.length)return"";for(var t='',n=0;n!=e.length;++n)t+='';return t+""}(l["!merges"]));var f,d,p=-1,m=-1;return l["!links"].length>0&&(s[s.length]="",l["!links"].forEach((function(e){e[1].Target&&(f={ref:e[0]},"#"!=e[1].Target.charAt(0)&&(m=Zn(r,-1,De(e[1].Target).replace(/#.*$/,""),Gn.HLINK),f["r:id"]="rId"+m),(p=e[1].Target.indexOf("#"))>-1&&(f.location=De(e[1].Target.slice(p+1))),e[1].Tooltip&&(f.tooltip=De(e[1].Tooltip)),s[s.length]=Ze("hyperlink",null,f))})),s[s.length]=""),delete l["!links"],null!=l["!margins"]&&(s[s.length]=(io(d=l["!margins"]),Ze("pageMargins",null,d))),t&&!t.ignoreEC&&null!=t.ignoreEC||(s[s.length]=Ye("ignoredErrors",Ze("ignoredError",null,{numberStoredAsText:1,sqref:u}))),h.length>0&&(m=Zn(r,-1,"../drawings/drawing"+(e+1)+".xml",Gn.DRAW),s[s.length]=Ze("drawing",null,{"r:id":"rId"+m}),l["!drawing"]=h),l["!comments"].length>0&&(m=Zn(r,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Gn.VML),s[s.length]=Ze("legacyDrawing",null,{"r:id":"rId"+m}),l["!legacy"]=m),s.length>1&&(s[s.length]="",s[1]=s[1].replace("/>",">")),s.join("")}function Bo(e,t,n,r){var a=function(e,t,n){var r=$t(145),a=(n["!rows"]||[])[e]||{};r.write_shift(4,e),r.write_shift(4,0);var s=320;a.hpx?s=20*gs(a.hpx):a.hpt&&(s=20*a.hpt),r.write_shift(2,s),r.write_shift(1,0);var i=0;a.level&&(i|=a.level),a.hidden&&(i|=16),(a.hpx||a.hpt)&&(i|=32),r.write_shift(1,i),r.write_shift(1,0);var o=0,l=r.l;r.l+=4;for(var u={r:e,c:0},c=0;c<16;++c)if(!(t.s.c>c+1<<10||t.e.cr.l?r.slice(0,r.l):r}(r,n,t);(a.length>17||(t["!rows"]||[])[r])&&zt(e,"BrtRowHdr",a)}var Mo=xn,$o=kn;var Po=xn,Lo=kn,zo=["left","right","top","bottom","header","footer"];function Wo(e,t,n,r,a,s){if(void 0!==t.v){var i="";switch(t.t){case"b":i=t.v?"1":"0";break;case"d":(t=te(t)).z=t.z||D._table[14],t.v=H(Q(t.v)),t.t="n";break;case"n":case"e":i=""+t.v;break;default:i=t.v}var o={r:n,c:r};switch(o.s=oo(a.cellXfs,t,a),t.l&&s["!links"].push([Yt(o),t.l]),t.c&&s["!comments"].push([Yt(o),t.c]),t.t){case"s":case"str":return void(a.bookSST?(i=ao(a.Strings,t.v,a.revStrings),o.t="s",o.v=i,zt(e,"BrtCellIsst",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),n.write_shift(4,t.v),n}(0,o))):(o.t="str",zt(e,"BrtCellSt",function(e,t,n){return null==n&&(n=$t(12+4*e.v.length)),fn(t,n),on(e.v,n),n.length>n.l?n.slice(0,n.l):n}(t,o))));case"n":return void(t.v==(0|t.v)&&t.v>-1e3&&t.v<1e3?zt(e,"BrtCellRk",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),function(e,t){null==t&&(t=$t(4));var n=0,r=0,a=100*e;if(e==(0|e)&&e>=-(1<<29)&&e<1<<29?r=1:a==(0|a)&&a>=-(1<<29)&&a<1<<29&&(r=1,n=1),!r)throw new Error("unsupported RkNumber "+e);t.write_shift(-4,((n?a:e)<<2)+(n+2))}(e.v,n),n}(t,o)):zt(e,"BrtCellReal",function(e,t,n){return null==n&&(n=$t(16)),fn(t,n),Cn(e.v,n),n}(t,o)));case"b":return o.t="b",void zt(e,"BrtCellBool",function(e,t,n){return null==n&&(n=$t(9)),fn(t,n),n.write_shift(1,e.v?1:0),n}(t,o));case"e":o.t="e"}zt(e,"BrtCellBlank",function(e,t,n){return null==n&&(n=$t(8)),fn(t,n)}(0,o))}}function Uo(e,t,n,r){var a=Lt(),s=n.SheetNames[e],i=n.Sheets[s]||{},o=s;try{n&&n.Workbook&&(o=n.Workbook.Sheets[e].CodeName||o)}catch(e){}var l=Qt(i["!ref"]||"A1");if(l.e.c>16383||l.e.r>1048575){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");l.e.c=Math.min(l.e.c,16383),l.e.r=Math.min(l.e.c,1048575)}return i["!links"]=[],i["!comments"]=[],zt(a,"BrtBeginSheet"),n.vbaraw&&zt(a,"BrtWsProp",function(e,t){null==t&&(t=$t(84+4*e.length));for(var n=0;n<3;++n)t.write_shift(1,0);return Sn({auto:1},t),t.write_shift(-4,-1),t.write_shift(-4,-1),pn(e,t),t.slice(0,t.l)}(o)),zt(a,"BrtWsDim",$o(l)),function(e,t,n){zt(e,"BrtBeginWsViews"),zt(e,"BrtBeginWsView",function(e,t,n){null==n&&(n=$t(30));var r=924;return(((t||{}).Views||[])[0]||{}).RTL&&(r|=32),n.write_shift(2,r),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(2,0),n.write_shift(2,100),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(4,0),n}(0,n)),zt(e,"BrtEndWsView"),zt(e,"BrtEndWsViews")}(a,0,n.Workbook),function(e,t){t&&t["!cols"]&&(zt(e,"BrtBeginColInfos"),t["!cols"].forEach((function(t,n){t&&zt(e,"BrtColInfo",function(e,t,n){null==n&&(n=$t(18));var r=so(e,t);n.write_shift(-4,e),n.write_shift(-4,e),n.write_shift(4,256*(r.width||10)),n.write_shift(4,0);var a=0;return t.hidden&&(a|=1),"number"==typeof r.width&&(a|=2),t.level&&(a|=t.level<<8),n.write_shift(2,a),n}(n,t))})),zt(e,"BrtEndColInfos"))}(a,i),function(e,t,n,r){var a,s=Qt(t["!ref"]||"A1"),i="",o=[];zt(e,"BrtBeginSheetData");var l=Array.isArray(t),u=s.e.r;t["!rows"]&&(u=Math.max(s.e.r,t["!rows"].length-1));for(var c=s.s.r;c<=u;++c)if(i=Gt(c),Bo(e,t,s,c),c<=s.e.r)for(var h=s.s.c;h<=s.e.c;++h){c===s.s.r&&(o[h]=Xt(h)),a=o[h]+i;var f=l?(t[c]||[])[h]:t[a];f&&Wo(e,f,c,h,r,t)}zt(e,"BrtEndSheetData")}(a,i,0,t),function(e,t){t["!protect"]&&zt(e,"BrtSheetProtection",function(e,t){return null==t&&(t=$t(66)),t.write_shift(2,e.password?es(e.password):0),t.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach((function(n){n[1]?t.write_shift(4,null==e[n[0]]||e[n[0]]?0:1):t.write_shift(4,null!=e[n[0]]&&e[n[0]]?0:1)})),t}(t["!protect"]))}(a,i),function(e,t,n,r){if(t["!autofilter"]){var a=t["!autofilter"],s="string"==typeof a.ref?a.ref:Zt(a.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var i=n.Workbook.Names,o=Jt(s);o.s.r==o.e.r&&(o.e.r=Jt(t["!ref"]).e.r,s=Zt(o));for(var l=0;l0){var a=Zn(r,-1,"../drawings/vmlDrawing"+(n+1)+".vml",Gn.VML);zt(e,"BrtLegacyDrawing",vn("rId"+a)),t["!legacy"]=a}}(a,i,e,r),zt(a,"BrtEndSheet"),a.end()}Gn.CHART="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",Gn.CHARTEX="http://schemas.microsoft.com/office/2014/relationships/chartEx",Gn.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",Ze("chartsheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});var Vo=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],jo=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],Ho=[],Go=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function qo(e,t){for(var n=0;n!=e.length;++n)for(var r=e[n],a=0;a!=t.length;++a){var s=t[a];if(null==r[s[0]])r[s[0]]=s[1];else switch(s[2]){case"bool":"string"==typeof r[s[0]]&&(r[s[0]]=Oe(r[s[0]]));break;case"int":"string"==typeof r[s[0]]&&(r[s[0]]=parseInt(r[s[0]],10))}}}function Xo(e,t){for(var n=0;n!=t.length;++n){var r=t[n];if(null==e[r[0]])e[r[0]]=r[1];else switch(r[2]){case"bool":"string"==typeof e[r[0]]&&(e[r[0]]=Oe(e[r[0]]));break;case"int":"string"==typeof e[r[0]]&&(e[r[0]]=parseInt(e[r[0]],10))}}}function Ko(e){Xo(e.WBProps,Vo),Xo(e.CalcPr,Go),qo(e.WBView,jo),qo(e.Sheets,Ho),no.date1904=Oe(e.WBProps.date1904)}var Yo="][*?/\\".split("");function Jo(e,t){if(e.length>31){if(t)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var n=!0;return Yo.forEach((function(r){if(-1!=e.indexOf(r)){if(!t)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");n=!1}})),n}var Zo=/<\w+:workbook/,Qo=Ze("workbook",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function el(e){var t=[me];t[t.length]=Qo;var n=e.Workbook&&(e.Workbook.Names||[]).length>0,r={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(Vo.forEach((function(t){null!=e.Workbook.WBProps[t[0]]&&e.Workbook.WBProps[t[0]]!=t[1]&&(r[t[0]]=e.Workbook.WBProps[t[0]])})),e.Workbook.WBProps.CodeName&&(r.codeName=e.Workbook.WBProps.CodeName,delete r.CodeName)),t[t.length]=Ze("workbookPr",null,r);var a=e.Workbook&&e.Workbook.Sheets||[],s=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]="",s=0;s!=e.SheetNames.length&&a[s]&&a[s].Hidden;++s);s==e.SheetNames.length&&(s=0),t[t.length]='',t[t.length]=""}for(t[t.length]="",s=0;s!=e.SheetNames.length;++s){var i={name:De(e.SheetNames[s].slice(0,31))};if(i.sheetId=""+(s+1),i["r:id"]="rId"+(s+1),a[s])switch(a[s].Hidden){case 1:i.state="hidden";break;case 2:i.state="veryHidden"}t[t.length]=Ze("sheet",null,i)}return t[t.length]="",n&&(t[t.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach((function(e){var n={name:e.Name};e.Comment&&(n.comment=e.Comment),null!=e.Sheet&&(n.localSheetId=""+e.Sheet),e.Hidden&&(n.hidden="1"),e.Ref&&(t[t.length]=Ze("definedName",De(e.Ref),n))})),t[t.length]=""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function tl(e,t){return t||(t=$t(127)),t.write_shift(4,e.Hidden),t.write_shift(4,e.iTabID),vn(e.strRelID,t),on(e.name.slice(0,31),t),t.length>t.l?t.slice(0,t.l):t}function nl(e,n){var r=Lt();return zt(r,"BrtBeginBook"),zt(r,"BrtFileVersion",function(e,n){n||(n=$t(127));for(var r=0;4!=r;++r)n.write_shift(4,0);return on("SheetJS",n),on(t.version,n),on(t.version,n),on("7262",n),n.length=n.l,n.length>n.l?n.slice(0,n.l):n}()),zt(r,"BrtWbProp",function(e,t){t||(t=$t(72));var n=0;return e&&e.filterPrivacy&&(n|=8),t.write_shift(4,n),t.write_shift(4,0),pn(e&&e.CodeName||"ThisWorkbook",t),t.slice(0,t.l)}(e.Workbook&&e.Workbook.WBProps||null)),function(e,t){if(t.Workbook&&t.Workbook.Sheets){for(var n=t.Workbook.Sheets,r=0,a=-1,s=-1;ra||(zt(e,"BrtBeginBookViews"),zt(e,"BrtBookView",function(e,t){return t||(t=$t(29)),t.write_shift(-4,0),t.write_shift(-4,460),t.write_shift(4,28800),t.write_shift(4,17600),t.write_shift(4,500),t.write_shift(4,e),t.write_shift(4,e),t.write_shift(1,120),t.length>t.l?t.slice(0,t.l):t}(a)),zt(e,"BrtEndBookViews"))}}(r,e),function(e,t){zt(e,"BrtBeginBundleShs");for(var n=0;n!=t.SheetNames.length;++n)zt(e,"BrtBundleSh",tl({Hidden:t.Workbook&&t.Workbook.Sheets&&t.Workbook.Sheets[n]&&t.Workbook.Sheets[n].Hidden||0,iTabID:n+1,strRelID:"rId"+(n+1),name:t.SheetNames[n]}));zt(e,"BrtEndBundleShs")}(r,e),zt(r,"BrtEndBook"),r.end()}function rl(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a,s,i){if(!e)return e;var o=t||{};r||(r={"!id":{}});var l,u,c,h,f,d,p,m,g,y,b=o.dense?[]:{},v={s:{r:2e6,c:2e6},e:{r:0,c:0}},w=[],_=!1,x=!1,k=[];o.biff=12,o["!row"]=0;var E=0,C=!1,S=[],N={},I=o.supbooks||a.supbooks||[[]];if(I.sharedf=N,I.arrayf=S,I.SheetNames=a.SheetNames||a.Sheets.map((function(e){return e.name})),!o.supbooks&&(o.supbooks=I,a.Names))for(var A=0;A=O[0].s.r&&u.r<=O[0].e.r&&d>=O[0].s.c&&d<=O[0].e.c&&(c.F=Zt(O[0]),C=!0)}!C&&e.length>3&&(c.f=e[3])}if(v.s.r>u.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.ru.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.r=e.s;)T[e.e--]={width:e.w/256,hidden:!!(1&e.flags),level:e.level},F||(F=!0,ps(e.w/256)),ms(T[e.e+1]);break;case 161:b["!autofilter"]={ref:Zt(e)};break;case 476:b["!margins"]=e;break;case 147:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 137:a.Views||(a.Views=[{}]),a.Views[0]||(a.Views[0]={}),e.RTL&&(a.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:case 151:break;case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 49:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 152:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:_=!0;break;case 36:_=!1;break;case 37:w.push(t),_=!0;break;case 38:w.pop(),_=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!_||o.WTF)throw new Error("Unexpected record "+A+" "+t)}}),o),delete o.supbooks,delete o["!row"],!b["!ref"]&&(v.s.r<2e6||l&&(l.e.r>0||l.e.c>0||l.s.r>0||l.s.c>0))&&(b["!ref"]=Zt(l||v)),o.sheetRows&&b["!ref"]){var O=Qt(b["!ref"]);o.sheetRows<=+O.e.r&&(O.e.r=o.sheetRows-1,O.e.r>v.e.r&&(O.e.r=v.e.r),O.e.rv.e.c&&(O.e.c=v.e.c),O.e.c0&&(b["!merges"]=k),T.length>0&&(b["!cols"]=T),R.length>0&&(b["!rows"]=R),b}(e,r,n,a,s,i,o):function(e,t,n,r,a,s,i){if(!e)return e;r||(r={"!id":{}});var o=t.dense?[]:{},l={s:{r:2e6,c:2e6},e:{r:0,c:0}},u="",c="",h=e.match(ho);h?(u=e.slice(0,h.index),c=e.slice(h.index+h[0].length)):u=c=e;var f=u.match(bo);f&&wo(f[0],0,a,n);var d=(u.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(d>0){var p=u.slice(d,d+50).match(po);p&&function(e,t){var n=Qt(t);n.s.r<=n.e.r&&n.s.c<=n.e.c&&n.s.r>=0&&n.s.c>=0&&(e["!ref"]=Zt(n))}(o,p[1])}var m=u.match(vo);m&&m[1]&&function(e,t){t.Views||(t.Views=[{}]),(e.match(ko)||[]).forEach((function(e,n){var r=we(e);t.Views[n]||(t.Views[n]={}),Oe(r.rightToLeft)&&(t.Views[n].RTL=!0)}))}(m[1],a);var g=[];if(t.cellStyles){var y=u.match(mo);y&&function(e,t){for(var n=!1,r=0;r!=t.length;++r){var a=we(t[r],!0);a.hidden&&(a.hidden=Oe(a.hidden));var s=parseInt(a.min,10)-1,i=parseInt(a.max,10)-1;for(delete a.min,delete a.max,a.width=+a.width,!n&&a.width&&(n=!0,ps(a.width)),ms(a);s<=i;)e[s++]=te(a)}}(g,y)}h&&Ro(h[1],o,t,l,s,i);var b=c.match(go);b&&(o["!autofilter"]=function(e){return{ref:(e.match(/ref="([^"]*)"/)||[])[1]}}(b[0]));var v=[],w=c.match(co);if(w)for(d=0;d!=w.length;++d)v[d]=Qt(w[d].slice(w[d].indexOf('"')+1));var _=c.match(fo);_&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Be(t[a]),!0);if(!s.ref)return;var i=((n||{})["!id"]||[])[s.id];i?(s.Target=i.Target,s.location&&(s.Target+="#"+s.location)):(s.Target="#"+s.location,i={Target:s.Target,TargetMode:"Internal"}),s.Rel=i,s.tooltip&&(s.Tooltip=s.tooltip,delete s.tooltip);for(var o=Qt(s.ref),l=o.s.r;l<=o.e.r;++l)for(var u=o.s.c;u<=o.e.c;++u){var c=Yt({c:u,r:l});r?(e[l]||(e[l]=[]),e[l][u]||(e[l][u]={t:"z",v:void 0}),e[l][u].l=s):(e[c]||(e[c]={t:"z",v:void 0}),e[c].l=s)}}}(o,_,r);var x=c.match(yo);if(x&&(o["!margins"]=function(e){var t={};return["left","right","top","bottom","header","footer"].forEach((function(n){e[n]&&(t[n]=parseFloat(e[n]))})),t}(we(x[0]))),!o["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r&&(o["!ref"]=Zt(l)),t.sheetRows>0&&o["!ref"]){var k=Qt(o["!ref"]);t.sheetRows<=+k.e.r&&(k.e.r=t.sheetRows-1,k.e.r>l.e.r&&(k.e.r=l.e.r),k.e.rl.e.c&&(k.e.c=l.e.c),k.e.c0&&(o["!cols"]=g),v.length>0&&(o["!merges"]=v),o}(e,r,n,a,s,i,o)}function al(e,t,n){return(".bin"===t.slice(-4)?nl:el)(e,n)}function sl(e,t,n,r,a){return(".bin"===t.slice(-4)?Uo:Oo)(e,n,r,a)}function il(e,t,n){return(".bin"===t.slice(-4)?Ha:Va)(e,n)}function ol(e,t,n){return(".bin"===t.slice(-4)?Qs:Js)(e,n)}var ll=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,ul=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function cl(e,t){var n=e.split(/\s+/),r=[];if(t||(r[0]=n[0]),1===n.length)return r;var a,s,i,o=e.match(ll);if(o)for(i=0;i!=o.length;++i)-1===(s=(a=o[i].match(ul))[1].indexOf(":"))?r[a[1]]=a[2].slice(1,a[2].length-1):r["xmlns:"===a[1].slice(0,6)?"xmlns"+a[1].slice(6):a[1].slice(s+1)]=a[2].slice(1,a[2].length-1);return r}function hl(e){var t={};if(1===e.split(/\s+/).length)return t;var n,r,a,s=e.match(ll);if(s)for(a=0;a!=s.length;++a)-1===(r=(n=s[a].match(ul))[1].indexOf(":"))?t[n[1]]=n[2].slice(1,n[2].length-1):t["xmlns:"===n[1].slice(0,6)?"xmlns"+n[1].slice(6):n[1].slice(r+1)]=n[2].slice(1,n[2].length-1);return t}function fl(e,t,n,r){var a=r;switch((n[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":a=Oe(r);break;case"i2":case"int":a=parseInt(r,10);break;case"r4":case"float":a=parseFloat(r);break;case"date":case"dateTime.tz":a=Q(r);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+n[0])}e[Se(t)]=a}function dl(e,t,n){if(n.cellStyles&&t.Interior){var r=t.Interior;r.Pattern&&(r.patternType=ks[r.Pattern]||r.Pattern)}e[t.ID]=t}function pl(e,t,n,r,a,s,i,o,l,u){var c="General",h=r.StyleID,f={};u=u||{};var d=[],p=0;for(void 0===h&&o&&(h=o.StyleID),void 0===h&&i&&(h=i.StyleID);void 0!==s[h]&&(s[h].nf&&(c=s[h].nf),s[h].Interior&&d.push(s[h].Interior),s[h].Parent);)h=s[h].Parent;switch(n.Type){case"Boolean":r.t="b",r.v=Oe(e);break;case"String":r.t="s",r.r=Fe(Se(e)),r.v=e.indexOf("<")>-1?Se(t||e).replace(/<.*?>/g,""):r.r;break;case"DateTime":"Z"!=e.slice(-1)&&(e+="Z"),r.v=(Q(e)-new Date(Date.UTC(1899,11,30)))/864e5,r.v!=r.v?r.v=Se(e):r.v<60&&(r.v=r.v-1),c&&"General"!=c||(c="yyyy-mm-dd");case"Number":void 0===r.v&&(r.v=+e),r.t||(r.t="n");break;case"Error":r.t="e",r.v=zn[e],!1!==u.cellText&&(r.w=e);break;default:""==e&&""==t?r.t="z":(r.t="s",r.v=Fe(t||e))}if(function(e,t,n){if("z"!==e.t){if(!n||!1!==n.cellText)try{"e"===e.t?e.w=e.w||Ln[e.v]:"General"===t?"n"===e.t?(0|e.v)===e.v?e.w=D._general_int(e.v):e.w=D._general_num(e.v):e.w=D._general(e.v):e.w=(r=t||"General",a=e.v,"General"===(s=R[r]||Se(r))?D._general(a):D.format(s,a))}catch(e){if(n.WTF)throw e}var r,a,s;try{var i=R[t]||t||"General";if(n.cellNF&&(e.z=i),n.cellDates&&"n"==e.t&&D.is_date(i)){var o=D.parse_date_code(e.v);o&&(e.t="d",e.v=new Date(o.y,o.m-1,o.d,o.H,o.M,o.S,o.u))}}catch(e){if(n.WTF)throw e}}}(r,c,u),!1!==u.cellFormula)if(r.Formula){var m=Se(r.Formula);61==m.charCodeAt(0)&&(m=m.slice(1)),r.f=ti(m,a),delete r.Formula,"RC"==r.ArrayRange?r.F=ti("RC:RC",a):r.ArrayRange&&(r.F=ti(r.ArrayRange,a),l.push([Qt(r.F),r.F]))}else for(p=0;p=l[p][0].s.r&&a.r<=l[p][0].e.r&&a.c>=l[p][0].s.c&&a.c<=l[p][0].e.c&&(r.F=l[p][1]);u.cellStyles&&(d.forEach((function(e){!f.patternType&&e.patternType&&(f.patternType=e.patternType)})),r.s=f),void 0!==r.StyleID&&(r.ixfe=r.StyleID)}function ml(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),e.v=e.w=e.ixfe=void 0}function gl(e){if(y&&Buffer.isBuffer(e))return e.toString("utf8");if("string"==typeof e)return e;if("undefined"!=typeof Uint8Array&&e instanceof Uint8Array)return Be(E(C(e)));throw new Error("Bad input format: expected Buffer or string")}var yl=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/gm;function bl(e,t){var n=t||{};A(D);var r=f(gl(e));"binary"!=n.type&&"array"!=n.type&&"base64"!=n.type||(r="undefined"!=typeof cptable?cptable.utils.decode(65001,h(r)):Be(r));var a,s=r.slice(0,1024).toLowerCase(),i=!1;if(-1==s.indexOf("=0&&(i=!0)})),i)return Ul.to_workbook(r,n);var o,l,u=[],c={},d=[],p=n.dense?[]:{},m="",g={},y={},b=cl(''),v=0,w=0,_=0,x={s:{r:2e6,c:2e6},e:{r:0,c:0}},k={},E={},C="",S=0,N=[],I={},T={},F=0,O=[],B=[],M={},$=[],P=!1,L=[],z=[],W={},U=0,V=0,j={Sheets:[],WBProps:{date1904:!1}},H={};yl.lastIndex=0,r=r.replace(//gm,"");for(var G="";a=yl.exec(r);)switch(a[3]=(G=a[3]).toLowerCase()){case"data":if("data"==G){if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break}if(u[u.length-1][1])break;"/"===a[1]?pl(r.slice(v,a.index),C,b,"comment"==u[u.length-1][0]?M:g,{c:w,r:_},k,$[w],y,L,n):(C="",b=cl(a[0]),v=a.index+a[0].length);break;case"cell":if("/"===a[1])if(B.length>0&&(g.c=B),(!n.sheetRows||n.sheetRows>_)&&void 0!==g.v&&(n.dense?(p[_]||(p[_]=[]),p[_][w]=g):p[Xt(w)+Gt(_)]=g),g.HRef&&(g.l={Target:g.HRef},g.HRefScreenTip&&(g.l.Tooltip=g.HRefScreenTip),delete g.HRef,delete g.HRefScreenTip),(g.MergeAcross||g.MergeDown)&&(U=w+(0|parseInt(g.MergeAcross,10)),V=_+(0|parseInt(g.MergeDown,10)),N.push({s:{c:w,r:_},e:{c:U,r:V}})),n.sheetStubs)if(g.MergeAcross||g.MergeDown){for(var q=w;q<=U;++q)for(var X=_;X<=V;++X)(q>w||X>_)&&(n.dense?(p[X]||(p[X]=[]),p[X][q]={t:"z"}):p[Xt(q)+Gt(X)]={t:"z"});w=U+1}else++w;else g.MergeAcross?w=U+1:++w;else(g=hl(a[0])).Index&&(w=+g.Index-1),wx.e.c&&(x.e.c=w),"/>"===a[0].slice(-2)&&++w,B=[];break;case"row":"/"===a[1]||"/>"===a[0].slice(-2)?(_x.e.r&&(x.e.r=_),"/>"===a[0].slice(-2)&&(y=cl(a[0])).Index&&(_=+y.Index-1),w=0,++_):((y=cl(a[0])).Index&&(_=+y.Index-1),W={},("0"==y.AutoFitHeight||y.Height)&&(W.hpx=parseInt(y.Height,10),W.hpt=gs(W.hpx),z[_]=W),"1"==y.Hidden&&(W.hidden=!0,z[_]=W));break;case"worksheet":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));d.push(m),x.s.r<=x.e.r&&x.s.c<=x.e.c&&(p["!ref"]=Zt(x),n.sheetRows&&n.sheetRows<=x.e.r&&(p["!fullref"]=p["!ref"],x.e.r=n.sheetRows-1,p["!ref"]=Zt(x))),N.length&&(p["!merges"]=N),$.length>0&&(p["!cols"]=$),z.length>0&&(p["!rows"]=z),c[m]=p}else x={s:{r:2e6,c:2e6},e:{r:0,c:0}},_=w=0,u.push([a[3],!1]),o=cl(a[0]),m=Se(o.Name),p=n.dense?[]:{},N=[],L=[],z=[],H={name:m,Hidden:0},j.Sheets.push(H);break;case"table":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else{if("/>"==a[0].slice(-2))break;cl(a[0]),u.push([a[3],!1]),$=[],P=!1}break;case"style":"/"===a[1]?dl(k,E,n):E=cl(a[0]);break;case"numberformat":E.nf=Se(cl(a[0]).Format||"General"),R[E.nf]&&(E.nf=R[E.nf]);for(var K=0;392!=K&&D._table[K]!=E.nf;++K);if(392==K)for(K=57;392!=K;++K)if(null==D._table[K]){D.load(E.nf,K);break}break;case"column":if("table"!==u[u.length-1][0])break;if((l=cl(a[0])).Hidden&&(l.hidden=!0,delete l.Hidden),l.Width&&(l.wpx=parseInt(l.Width,10)),!P&&l.wpx>10){P=!0,us=6;for(var Y=0;Y<$.length;++Y)$[Y]&&ms($[Y])}P&&ms(l),$[l.Index-1||$.length]=l;for(var J=0;J<+l.Span;++J)$[$.length]=te(l);break;case"namedrange":if("/"===a[1])break;j.Names||(j.Names=[]);var Z=we(a[0]),Q={Name:Z.Name,Ref:ti(Z.RefersTo.slice(1),{r:0,c:0})};j.Sheets.length>0&&(Q.Sheet=j.Sheets.length-1),j.Names.push(Q);break;case"namedcell":case"b":case"i":case"u":case"s":case"em":case"h2":case"h3":case"sub":case"sup":case"span":case"alignment":case"borders":case"border":break;case"font":if("/>"===a[0].slice(-2))break;"/"===a[1]?C+=r.slice(S,a.index):S=a.index+a[0].length;break;case"interior":if(!n.cellStyles)break;E.Interior=cl(a[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if("/>"===a[0].slice(-2))break;"/"===a[1]?pr(I,G,r.slice(F,a.index)):F=a.index+a[0].length;break;case"paragraphs":break;case"styles":case"workbook":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else u.push([a[3],!1]);break;case"comment":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));ml(M),B.push(M)}else u.push([a[3],!1]),M={a:(o=cl(a[0])).Author};break;case"autofilter":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else if("/"!==a[0].charAt(a[0].length-2)){var ee=cl(a[0]);p["!autofilter"]={ref:ti(ee.Range).replace(/\$/g,"")},u.push([a[3],!0])}break;case"name":break;case"datavalidation":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;default:if(0==u.length&&"document"==a[3])return Kl(r,n);if(0==u.length&&"uof"==a[3])return Kl(r,n);var ne=!0;switch(u[u.length-1][0]){case"officedocumentsettings":switch(a[3]){case"allowpng":case"removepersonalinformation":case"downloadcomponents":case"locationofcomponents":case"colors":case"color":case"index":case"rgb":case"targetscreensize":case"readonlyrecommended":break;default:ne=!1}break;case"componentoptions":switch(a[3]){case"toolbar":case"hideofficelogo":case"spreadsheetautofit":case"label":case"caption":case"maxheight":case"maxwidth":case"nextsheetnumber":break;default:ne=!1}break;case"excelworkbook":switch(a[3]){case"date1904":j.WBProps.date1904=!0;break;case"windowheight":case"windowwidth":case"windowtopx":case"windowtopy":case"tabratio":case"protectstructure":case"protectwindow":case"protectwindows":case"activesheet":case"displayinknotes":case"firstvisiblesheet":case"supbook":case"sheetname":case"sheetindex":case"sheetindexfirst":case"sheetindexlast":case"dll":case"acceptlabelsinformulas":case"donotsavelinkvalues":case"iteration":case"maxiterations":case"maxchange":case"path":case"xct":case"count":case"selectedsheets":case"calculation":case"uncalced":case"startupprompt":case"crn":case"externname":case"formula":case"colfirst":case"collast":case"wantadvise":case"boolean":case"error":case"text":case"ole":case"noautorecover":case"publishobjects":case"donotcalculatebeforesave":case"number":case"refmoder1c1":case"embedsavesmarttags":break;default:ne=!1}break;case"workbookoptions":switch(a[3]){case"owcversion":case"height":case"width":break;default:ne=!1}break;case"worksheetoptions":switch(a[3]){case"visible":if("/>"===a[0].slice(-2));else if("/"===a[1])switch(r.slice(F,a.index)){case"SheetHidden":H.Hidden=1;break;case"SheetVeryHidden":H.Hidden=2}else F=a.index+a[0].length;break;case"header":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].header=we(a[0]).Margin;break;case"footer":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].footer=we(a[0]).Margin;break;case"pagemargins":var re=we(a[0]);p["!margins"]||io(p["!margins"]={},"xlml"),re.Top&&(p["!margins"].top=re.Top),re.Left&&(p["!margins"].left=re.Left),re.Right&&(p["!margins"].right=re.Right),re.Bottom&&(p["!margins"].bottom=re.Bottom);break;case"displayrighttoleft":j.Views||(j.Views=[]),j.Views[0]||(j.Views[0]={}),j.Views[0].RTL=!0;break;case"freezepanes":case"frozennosplit":break;case"splithorizontal":case"splitvertical":case"donotdisplaygridlines":case"activerow":case"activecol":case"toprowbottompane":case"leftcolumnrightpane":case"unsynced":case"print":case"panes":case"scale":case"pane":case"number":case"layout":case"pagesetup":case"selected":case"protectobjects":case"enableselection":case"protectscenarios":case"validprinterinfo":case"horizontalresolution":case"verticalresolution":case"numberofcopies":case"activepane":case"toprowvisible":case"leftcolumnvisible":case"fittopage":case"rangeselection":case"papersizeindex":case"pagelayoutzoom":case"pagebreakzoom":case"filteron":case"fitwidth":case"fitheight":case"commentslayout":case"zoom":case"lefttoright":case"gridlines":case"allowsort":case"allowfilter":case"allowinsertrows":case"allowdeleterows":case"allowinsertcols":case"allowdeletecols":case"allowinserthyperlinks":case"allowformatcells":case"allowsizecols":case"allowsizerows":case"nosummaryrowsbelowdetail":case"tabcolorindex":case"donotdisplayheadings":case"showpagelayoutzoom":case"nosummarycolumnsrightdetail":case"blackandwhite":case"donotdisplayzeros":case"displaypagebreak":case"rowcolheadings":case"donotdisplayoutline":case"noorientation":case"allowusepivottables":case"zeroheight":case"viewablerange":case"selection":case"protectcontents":break;default:ne=!1}break;case"pivottable":case"pivotcache":switch(a[3]){case"immediateitemsondrop":case"showpagemultipleitemlabel":case"compactrowindent":case"location":case"pivotfield":case"orientation":case"layoutform":case"layoutsubtotallocation":case"layoutcompactrow":case"position":case"pivotitem":case"datatype":case"datafield":case"sourcename":case"parentfield":case"ptlineitems":case"ptlineitem":case"countofsameitems":case"item":case"itemtype":case"ptsource":case"cacheindex":case"consolidationreference":case"filename":case"reference":case"nocolumngrand":case"norowgrand":case"blanklineafteritems":case"hidden":case"subtotal":case"basefield":case"mapchilditems":case"function":case"refreshonfileopen":case"printsettitles":case"mergelabels":case"defaultversion":case"refreshname":case"refreshdate":case"refreshdatecopy":case"versionlastrefresh":case"versionlastupdate":case"versionupdateablemin":case"versionrefreshablemin":case"calculation":break;default:ne=!1}break;case"pagebreaks":switch(a[3]){case"colbreaks":case"colbreak":case"rowbreaks":case"rowbreak":case"colstart":case"colend":case"rowend":break;default:ne=!1}break;case"autofilter":switch(a[3]){case"autofiltercolumn":case"autofiltercondition":case"autofilterand":case"autofilteror":break;default:ne=!1}break;case"querytable":switch(a[3]){case"id":case"autoformatfont":case"autoformatpattern":case"querysource":case"querytype":case"enableredirections":case"refreshedinxl9":case"urlstring":case"htmltables":case"connection":case"commandtext":case"refreshinfo":case"notitles":case"nextid":case"columninfo":case"overwritecells":case"donotpromptforfile":case"textwizardsettings":case"source":case"number":case"decimal":case"thousandseparator":case"trailingminusnumbers":case"formatsettings":case"fieldtype":case"delimiters":case"tab":case"comma":case"autoformatname":case"versionlastedit":case"versionlastrefresh":break;default:ne=!1}break;case"datavalidation":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":case"cellrangelist":break;default:ne=!1}break;case"sorting":case"conditionalformatting":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"cellrangelist":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":break;default:ne=!1}break;case"mapinfo":case"schema":case"data":switch(a[3]){case"map":case"entry":case"range":case"xpath":case"field":case"xsdtype":case"filteron":case"aggregate":case"elementtype":case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":case"row":break;default:ne=!1}break;case"smarttags":break;default:ne=!1}if(ne)break;if(a[3].match(/!\[CDATA/))break;if(!u[u.length-1][1])throw"Unrecognized tag: "+a[3]+"|"+u.join("|");if("customdocumentproperties"===u[u.length-1][0]){if("/>"===a[0].slice(-2))break;"/"===a[1]?fl(T,G,O,r.slice(F,a.index)):(O=a,F=a.index+a[0].length);break}if(n.WTF)throw"Unrecognized tag: "+a[3]+"|"+u.join("|")}var ae={};return n.bookSheets||n.bookProps||(ae.Sheets=c),ae.SheetNames=d,ae.Workbook=j,ae.SSF=D.get_table(),ae.Props=I,ae.Custprops=T,ae}function vl(e,t){switch(cu(t=t||{}),t.type||"base64"){case"base64":return bl(g.decode(e),t);case"binary":case"buffer":case"file":return bl(e,t);case"array":return bl(E(e),t)}}function wl(e){return Ze("NamedRange",null,{"ss:Name":e.Name,"ss:RefersTo":"="+ri(e.Ref,{r:0,c:0})})}function _l(e,t,n,r,a,s,i){if(!e||null==e.v&&null==e.f)return"";var o={};if(e.f&&(o["ss:Formula"]="="+De(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=Kt(e.F.slice(t.length+1));o["ss:ArrayRange"]="RC:R"+(l.r==i.r?"":"["+(l.r-i.r)+"]")+"C"+(l.c==i.c?"":"["+(l.c-i.c)+"]")}if(e.l&&e.l.Target&&(o["ss:HRef"]=De(e.l.Target),e.l.Tooltip&&(o["x:HRefScreenTip"]=De(e.l.Tooltip))),n["!merges"])for(var u=n["!merges"],c=0;c!=u.length;++c)u[c].s.c==i.c&&u[c].s.r==i.r&&(u[c].e.c>u[c].s.c&&(o["ss:MergeAcross"]=u[c].e.c-u[c].s.c),u[c].e.r>u[c].s.r&&(o["ss:MergeDown"]=u[c].e.r-u[c].s.r));var h="",f="";switch(e.t){case"z":if(!r.sheetStubs)return"";break;case"n":h="Number",f=String(e.v);break;case"b":h="Boolean",f=e.v?"1":"0";break;case"e":h="Error",f=Ln[e.v];break;case"d":h="DateTime",f=new Date(e.v).toISOString(),null==e.z&&(e.z=e.z||D._table[14]);break;case"s":h="String",f=((e.v||"")+"").replace(Ne,(function(e){return Ce[e]})).replace(Te,(function(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}))}var d=oo(r.cellXfs,e,r);o["ss:StyleID"]="s"+(21+d),o["ss:Index"]=i.c+1;var p=null!=e.v?f:"",m="z"==e.t?"":''+p+"";return(e.c||[]).length>0&&(m+=e.c.map((function(e){var t=Ze("ss:Data",(e.t||"").replace(/(\r\n|[\r\n])/g," "),{xmlns:"http://www.w3.org/TR/REC-html40"});return Ze("Comment",t,{"ss:Author":e.a})})).join("")),Ze("Cell",m,o)}function xl(e,t){var n='"}function kl(e,t,n){var r=[],a=n.SheetNames[e],s=n.Sheets[a],i=s?function(e,t,n,r){if(!e)return"";if(!((r||{}).Workbook||{}).Names)return"";for(var a=r.Workbook.Names,s=[],i=0;i0&&r.push(""+i+""),(i=s?function(e,t,n,r){if(!e["!ref"])return"";var a=Qt(e["!ref"]),s=e["!merges"]||[],i=0,o=[];e["!cols"]&&e["!cols"].forEach((function(e,t){ms(e);var n=!!e.width,r=so(t,e),a={"ss:Index":t+1};n&&(a["ss:Width"]=cs(r.width)),e.hidden&&(a["ss:Hidden"]="1"),o.push(Ze("Column",null,a))}));for(var l=Array.isArray(e),u=a.s.r;u<=a.e.r;++u){for(var c=[xl(u,(e["!rows"]||[])[u])],h=a.s.c;h<=a.e.c;++h){var f=!1;for(i=0;i!=s.length;++i)if(!(s[i].s.c>h||s[i].s.r>u||s[i].e.c"),c.length>2&&o.push(c.join(""))}return o.join("")}(s,t):"").length>0&&r.push(""+i+"
"),r.push(function(e,t,n,r){if(!e)return"";var a=[];if(e["!margins"]&&(a.push(""),e["!margins"].header&&a.push(Ze("Header",null,{"x:Margin":e["!margins"].header})),e["!margins"].footer&&a.push(Ze("Footer",null,{"x:Margin":e["!margins"].footer})),a.push(Ze("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"})),a.push("")),r&&r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[n])if(r.Workbook.Sheets[n].Hidden)a.push(Ze("Visible",1==r.Workbook.Sheets[n].Hidden?"SheetHidden":"SheetVeryHidden",{}));else{for(var s=0;s")}return((((r||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(""),e["!protect"]&&(a.push(Ye("ProtectContents","True")),e["!protect"].objects&&a.push(Ye("ProtectObjects","True")),e["!protect"].scenarios&&a.push(Ye("ProtectScenarios","True")),null==e["!protect"].selectLockedCells||e["!protect"].selectLockedCells?null==e["!protect"].selectUnlockedCells||e["!protect"].selectUnlockedCells||a.push(Ye("EnableSelection","UnlockedCells")):a.push(Ye("EnableSelection","NoSelection")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach((function(t){e["!protect"][t[0]]&&a.push("<"+t[1]+"/>")}))),0==a.length?"":Ze("WorksheetOptions",a.join(""),{xmlns:at})}(s,0,e,n)),r.join("")}function El(e,t){t||(t={}),e.SSF||(e.SSF=D.get_table()),e.SSF&&(A(D),D.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF,t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}));var n=[];n.push(function(e,t){var n=[];return e.Props&&n.push(function(e,t){var n=[];return z(fr).map((function(e){for(var t=0;t'+a.join("")+""}(e.Props,e.Custprops)),n.join("")}(e,t)),n.push(""),n.push(""),n.push("");for(var r=0;r'];return t.cellXfs.forEach((function(e,t){var r=[];r.push(Ze("NumberFormat",null,{"ss:Format":De(D._table[e.numFmtId])}));var a={"ss:ID":"s"+(21+t)};n.push(Ze("Style",r.join(""),a))})),Ze("Styles",n.join(""))}(0,t),n[3]=function(e){if(!((e||{}).Workbook||{}).Names)return"";for(var t=e.Workbook.Names,n=[],r=0;r40||(n.l-=4,t.Reserved1=n.read_shift(0,"lpstr-ansi"),n.length-n.l<=4||1907505652!==(r=n.read_shift(4))||(t.UnicodeClipboardFormat=function(e){return Nn(e,2)}(n),0==(r=n.read_shift(4))||r>40||(n.l-=4,t.Reserved2=n.read_shift(0,"lpwstr"))))}(n),t.bookProps&&!t.bookSheets)a={};else{var i=y?"buffer":"array";if(r&&r.content)a=function(e,t){var n,r,a,s,i,o,l,c,h={opts:{}},f={},d=t.dense?[]:{},p={},m={},g=null,y=[],b="",v={},w="",_={},x=[],k=!0,E=[],C=[],S={Sheets:[],WBProps:{date1904:!1},Views:[{}]},N={},I=function(e){return e<8?Pn[e]:e<64&&C[e-8]||Pn[e]},A=function(e,t,r){if(!(W>1)&&(r.sheetRows&&e.r>=r.sheetRows&&(k=!1),k)){if(r.cellStyles&&t.XF&&t.XF.data&&function(e,t,n){var r,a=t.XF.data;a&&a.patternType&&n&&n.cellStyles&&(t.s={},t.s.patternType=a.patternType,(r=os(I(a.icvFore)))&&(t.s.fgColor={rgb:r}),(r=os(I(a.icvBack)))&&(t.s.bgColor={rgb:r}))}(0,t,r),delete t.ixfe,delete t.XF,n=e,w=Yt(e),m&&m.s&&m.e||(m={s:{r:0,c:0},e:{r:0,c:0}}),e.rm.e.r&&(m.e.r=e.r+1),e.c+1>m.e.c&&(m.e.c=e.c+1),r.cellFormula&&t.f)for(var a=0;ae.c||x[a][0].s.r>e.r||x[a][0].e.c>8)!==q)throw new Error("rt mismatch: "+Y+"!="+q);12==K.r&&(e.l+=10,X-=10)}var J={};J="EOF"===K.n?K.f(e,X,T):Cl(K,e,X,T);var Z=K.n;if(0==W&&"BOF"!=Z)continue;switch(Z){case"Date1904":h.opts.Date1904=S.WBProps.date1904=J;break;case"WriteProtect":h.opts.WriteProtect=!0;break;case"FilePass":if(T.enc||(e.l=0),T.enc=J,!t.password)throw new Error("File is password-protected");if(null==J.valid)throw new Error("Encryption scheme unsupported");if(!J.valid)throw new Error("Password is incorrect");break;case"WriteAccess":T.lastuser=J;break;case"FileSharing":break;case"CodePage":var Q=Number(J);switch(Q){case 21010:Q=1200;break;case 32768:Q=1e4;break;case 32769:Q=1252}u(T.codepage=Q),H=!0;break;case"RRTabId":T.rrtabid=J;break;case"WinProtect":T.winlocked=J;break;case"Template":case"BookBool":case"UsesELFs":case"MTRSettings":break;case"RefreshAll":case"CalcCount":case"CalcDelta":case"CalcIter":case"CalcMode":case"CalcPrecision":case"CalcSaveRecalc":h.opts[Z]=J;break;case"CalcRefMode":T.CalcRefMode=J;break;case"Uncalced":break;case"ForceFullCalculation":h.opts.FullCalc=J;break;case"WsBool":J.fDialog&&(d["!type"]="dialog");break;case"XF":E.push(J);break;case"ExtSST":case"BookExt":case"RichTextStream":case"BkHim":break;case"SupBook":$.push([J]),$[$.length-1].XTI=[];break;case"ExternName":$[$.length-1].push(J);break;case"Index":break;case"Lbl":P={Name:J.Name,Ref:zi(J.rgce,0,null,$,T)},J.itab>0&&(P.Sheet=J.itab-1),$.names.push(P),$[0]||($[0]=[],$[0].XTI=[]),$[$.length-1].push(J),"_xlnm._FilterDatabase"==J.Name&&J.itab>0&&J.rgce&&J.rgce[0]&&J.rgce[0][0]&&"PtgArea3d"==J.rgce[0][0][0]&&(j[J.itab-1]={ref:Zt(J.rgce[0][0][1][2])});break;case"ExternCount":T.ExternCount=J;break;case"ExternSheet":0==$.length&&($[0]=[],$[0].XTI=[]),$[$.length-1].XTI=$[$.length-1].XTI.concat(J),$.XTI=$.XTI.concat(J);break;case"NameCmt":if(T.biff<8)break;null!=P&&(P.Comment=J[1]);break;case"Protect":d["!protect"]=J;break;case"Password":0!==J&&T.WTF&&console.error("Password verifier: "+J);break;case"Prot4Rev":case"Prot4RevPass":break;case"BoundSheet8":p[J.pos]=J,T.snames.push(J.name);break;case"EOF":if(--W)break;if(m.e){if(m.e.r>0&&m.e.c>0){if(m.e.r--,m.e.c--,d["!ref"]=Zt(m),t.sheetRows&&t.sheetRows<=m.e.r){var ee=m.e.r;m.e.r=t.sheetRows-1,d["!fullref"]=d["!ref"],d["!ref"]=Zt(m),m.e.r=ee}m.e.r++,m.e.c++}R.length>0&&(d["!merges"]=R),F.length>0&&(d["!objects"]=F),O.length>0&&(d["!cols"]=O),B.length>0&&(d["!rows"]=B),S.Sheets.push(N)}""===b?v=d:f[b]=d,d=t.dense?[]:{};break;case"BOF":if(8===T.biff&&(T.biff={9:2,521:3,1033:4}[q]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[J.BIFFVer]||8),8==T.biff&&0==J.BIFFVer&&16==J.dt&&(T.biff=2),W++)break;if(k=!0,d=t.dense?[]:{},T.biff<8&&!H&&(H=!0,u(T.codepage=t.codepage||1252)),T.biff<5){""===b&&(b="Sheet1"),m={s:{r:0,c:0},e:{r:0,c:0}};var te={pos:e.l-X,name:b};p[te.pos]=te,T.snames.push(b)}else b=(p[G]||{name:""}).name;32==J.dt&&(d["!type"]="chart"),64==J.dt&&(d["!type"]="macro"),R=[],F=[],T.arrayf=x=[],O=[],B=[],M=!1,N={Hidden:(p[G]||{hs:0}).hs,name:b};break;case"Number":case"BIFF2NUM":case"BIFF2INT":"chart"==d["!type"]&&(t.dense?(d[J.r]||[])[J.c]:d[Yt({c:J.c,r:J.r})])&&++J.c,o={ixfe:J.ixfe,XF:E[J.ixfe]||{},v:J.val,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"BoolErr":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.val,t:J.t},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"RK":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.rknum,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"MulRk":for(var ne=J.c;ne<=J.C;++ne){var re=J.rkrec[ne-J.c][0];o={ixfe:re,XF:E[re],v:J.rkrec[ne-J.c][1],t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:ne,r:J.r},o,t)}break;case"Formula":if("String"==J.val){g=J;break}if((o=Nl(J.val,J.cell.ixfe,J.tt)).XF=E[o.ixfe],t.cellFormula){var ae=J.formula;if(ae&&ae[0]&&ae[0][0]&&"PtgExp"==ae[0][0][0]){var se=ae[0][0][1][0],ie=ae[0][0][1][1],oe=Yt({r:se,c:ie});_[oe]?o.f=""+zi(J.formula,0,J.cell,$,T):o.F=((t.dense?(d[se]||[])[ie]:d[oe])||{}).F}else o.f=""+zi(J.formula,0,J.cell,$,T)}U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A(J.cell,o,t),g=J;break;case"String":if(!g)throw new Error("String record expects Formula");g.val=J,(o=Nl(J,g.cell.ixfe,"s")).XF=E[o.ixfe],t.cellFormula&&(o.f=""+zi(g.formula,0,g.cell,$,T)),U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A(g.cell,o,t),g=null;break;case"Array":x.push(J);var le=Yt(J[0].s);if(r=t.dense?(d[J[0].s.r]||[])[J[0].s.c]:d[le],t.cellFormula&&r){if(!g)break;if(!le||!r)break;r.f=""+zi(J[1],0,J[0],$,T),r.F=Zt(J[0])}break;case"ShrFmla":if(!k)break;if(!t.cellFormula)break;if(w){if(!g)break;_[Yt(g.cell)]=J[0],((r=t.dense?(d[g.cell.r]||[])[g.cell.c]:d[Yt(g.cell)])||{}).f=""+zi(J[0],0,n,$,T)}break;case"LabelSst":o=Nl(y[J.isst].t,J.ixfe,"s"),y[J.isst].h&&(o.h=y[J.isst].h),o.XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"Blank":t.sheetStubs&&(o={ixfe:J.ixfe,XF:E[J.ixfe],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t));break;case"MulBlank":if(t.sheetStubs)for(var ue=J.c;ue<=J.C;++ue){var ce=J.ixfe[ue-J.c];o={ixfe:ce,XF:E[ce],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:ue,r:J.r},o,t)}break;case"RString":case"Label":case"BIFF2STR":(o=Nl(J.val,J.ixfe,"s")).XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"Dimensions":1===W&&(m=J);break;case"SST":y=J;break;case"Format":if(4==T.biff){V[U++]=J[1];for(var he=0;he=163&&D.load(J[1],U+163)}else D.load(J[1],J[0]);break;case"BIFF2FORMAT":V[U++]=J;for(var fe=0;fe=163&&D.load(J,U+163);break;case"MergeCells":R=R.concat(J);break;case"Obj":F[J.cmo[0]]=T.lastobj=J;break;case"TxO":T.lastobj.TxO=J;break;case"ImData":T.lastobj.ImData=J;break;case"HLink":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&(r.l=J[1]);break;case"HLinkTooltip":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&r.l&&(r.l.Tooltip=J[1]);break;case"Note":if(T.biff<=5&&T.biff>=2)break;r=t.dense?(d[J[0].r]||[])[J[0].c]:d[Yt(J[0])];var de=F[J[2]];r||(t.dense?(d[J[0].r]||(d[J[0].r]=[]),r=d[J[0].r][J[0].c]={t:"z"}):r=d[Yt(J[0])]={t:"z"},m.e.r=Math.max(m.e.r,J[0].r),m.s.r=Math.min(m.s.r,J[0].r),m.e.c=Math.max(m.e.c,J[0].c),m.s.c=Math.min(m.s.c,J[0].c)),r.c||(r.c=[]),a={a:J[1],t:de.TxO.t},r.c.push(a);break;default:switch(K.n){case"ClrtClient":break;case"XFExt":E[J.ixfe],J.ext.forEach((function(e){e[0]}));break;case"DefColWidth":break;case"DefaultRowHeight":J[1];break;case"ColInfo":if(!T.cellStyles)break;for(;J.e>=J.s;)O[J.e--]={width:J.w/256},M||(M=!0,ps(J.w/256)),ms(O[J.e+1]);break;case"Row":var pe={};null!=J.level&&(B[J.r]=pe,pe.level=J.level),J.hidden&&(B[J.r]=pe,pe.hidden=!0),J.hpt&&(B[J.r]=pe,pe.hpt=J.hpt,pe.hpx=ys(J.hpt));break;case"LeftMargin":case"RightMargin":case"TopMargin":case"BottomMargin":d["!margins"]||io(d["!margins"]={}),d["!margins"][Z.slice(0,-6).toLowerCase()]=J;break;case"Setup":d["!margins"]||io(d["!margins"]={}),d["!margins"].header=J.header,d["!margins"].footer=J.footer;break;case"Window2":J.RTL&&(S.Views[0].RTL=!0);break;case"Header":case"Footer":case"HCenter":case"VCenter":case"Pls":case"GCW":case"LHRecord":case"DBCell":case"EntExU2":case"SxView":case"Sxvd":case"SXVI":case"SXVDEx":case"SxIvd":case"SXString":case"Sync":case"Addin":case"SXDI":case"SXLI":case"SXEx":case"QsiSXTag":case"Selection":case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Country":l=J;break;case"RecalcId":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":case"Font":case"XFCRC":case"Style":case"StyleExt":break;case"Palette":C=J;break;case"Theme":c=J;break;case"ScenarioProtect":case"ObjProtect":case"CondFmt12":case"Table":case"TableStyles":case"TableStyle":case"TableStyleElement":case"SXStreamID":case"SXVS":case"DConRef":case"SXAddl":case"DConBin":case"DConName":case"SXPI":case"SxFormat":case"SxSelect":case"SxRule":case"SxFilt":case"SxItm":case"SxDXF":case"ScenMan":case"DCon":case"CellWatch":case"PrintRowCol":case"PrintGrid":case"PrintSize":case"XCT":case"CRN":case"Scl":case"SheetExt":case"SheetExtOptional":case"ObNoMacros":case"ObProj":break;case"CodeName":b?N.CodeName=J||N.name:S.WBProps.CodeName=J||"ThisWorkbook";break;case"GUIDTypeLib":case"WOpt":case"PhoneticInfo":case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":case"DConn":case"DbOrParamQry":case"DBQueryExt":case"OleDbConn":case"ExtString":case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":case"Excel9File":case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":break;case"Window1":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(K.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":case"Surf":case"AxisParent":case"Pos":case"ValueRange":case"SXViewEx9":case"SXViewLink":case"PivotChartBits":case"SBaseRef":case"TextPropsStream":case"LnExt":case"MkrExt":case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":case"TxtQry":case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":case"AutoFilter12":case"DropDownObjIds":case"Sort":case"SortData":case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"WebPub":case"AutoWebPub":break;case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":break;case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;default:switch(K.n){case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;case"BIFF2FONTCLR":case"BIFF2FMTCNT":case"BIFF2FONTXTRA":break;case"BIFF2XF":case"BIFF3XF":case"BIFF4XF":break;case"BIFF4FMTCNT":case"BIFF2ROW":case"BIFF2WINDOW2":break;case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;case"LHNGraph":case"FnGroupName":case"AddMenu":case"LPr":break;case"ListObj":case"ListField":case"RRSort":case"BigName":break;case"ToolbarHdr":case"ToolbarEnd":case"DDEObjName":case"FRTArchId$":break;default:if(t.WTF)throw"Unrecognized Record "+K.n}}}}}else e.l+=X}return h.SheetNames=z(p).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return p[e].name})),t.bookSheets||(h.Sheets=f),h.Sheets&&j.forEach((function(e,t){h.Sheets[h.SheetNames[t]]["!autofilter"]=e})),h.Preamble=v,h.Strings=y,h.SSF=D.get_table(),T.enc&&(h.Encryption=T.enc),c&&(h.Themes=c),h.Metadata={},void 0!==l&&(h.Metadata.Country=l),$.names.length>0&&(S.Names=$.names),h.Workbook=S,h}(r.content,t);else if((s=M.find(e,"PerfectOffice_MAIN"))&&s.content)a=Ra.to_workbook(s.content,(t.type=i,t));else{if(!(s=M.find(e,"NativeContent_MAIN"))||!s.content)throw new Error("Cannot find Workbook stream");a=Ra.to_workbook(s.content,(t.type=i,t))}t.bookVBA&&e.FullPaths&&M.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=M.utils.cfb_new({root:"R"});return e.FullPaths.forEach((function(n,r){if("/"!==n.slice(-1)&&n.match(/_VBA_PROJECT_CUR/)){var a=n.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");M.utils.cfb_add(t,a,e.FileIndex[r].content)}})),M.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=M.find(e,"!DocumentSummaryInformation");if(r&&r.size>0)try{var a=Dr(r,An,Dl);for(var s in a)t[s]=a[s]}catch(e){if(n.WTF)throw e}var i=M.find(e,"!SummaryInformation");if(i&&i.size>0)try{var o=Dr(i,Tn,Il);for(var l in o)null==t[l]&&(t[l]=o[l])}catch(e){if(n.WTF)throw e}t.HeadingPairs&&t.TitlesOfParts&&(lr(t.HeadingPairs,t.TitlesOfParts,t,n),delete t.HeadingPairs,delete t.TitlesOfParts)}(e,o,t),a.Props=a.Custprops=o,t.bookFiles&&(a.cfb=e),a}var Tl={0:{n:"BrtRowHdr",f:function(e,t){var n={},r=e.l+t;n.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var s=e.read_shift(1);return e.l=r,7&s&&(n.level=7&s),16&s&&(n.hidden=!0),32&s&&(n.hpt=a/20),n}},1:{n:"BrtCellBlank",f:function(e){return[hn(e)]}},2:{n:"BrtCellRk",f:function(e){return[hn(e),wn(e),"n"]}},3:{n:"BrtCellError",f:function(e){return[hn(e),e.read_shift(1),"e"]}},4:{n:"BrtCellBool",f:function(e){return[hn(e),e.read_shift(1),"b"]}},5:{n:"BrtCellReal",f:function(e){return[hn(e),En(e),"n"]}},6:{n:"BrtCellSt",f:function(e){return[hn(e),sn(e),"str"]}},7:{n:"BrtCellIsst",f:function(e){return[hn(e),e.read_shift(4),"s"]}},8:{n:"BrtFmlaString",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,sn(e),"str"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},9:{n:"BrtFmlaNum",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,En(e),"n"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},10:{n:"BrtFmlaBool",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"b"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},11:{n:"BrtFmlaError",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"e"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},16:{n:"BrtFRTArchID$",f:function(e,t){var n={};return e.read_shift(4),n.ArchID=e.read_shift(4),e.l+=t-8,n}},19:{n:"BrtSSTItem",f:un},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:function(e,t,n){var r=e.l+t;e.l+=4,e.l+=1;var a=e.read_shift(4),s=yn(e),i=qi(e,0,n),o=mn(e);e.l=r;var l={Name:s,Ptg:i};return a<268435455&&(l.Sheet=a),o&&(l.Comment=o),l}},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:function(e,t,n){var r={};r.sz=e.read_shift(2)/20;var a=function(e){var t=e.read_shift(1);return e.l++,{fBold:1&t,fItalic:2&t,fUnderline:4&t,fStrikeout:8&t,fOutline:16&t,fShadow:32&t,fCondense:64&t,fExtend:128&t}}(e);switch(a.fItalic&&(r.italic=1),a.fCondense&&(r.condense=1),a.fExtend&&(r.extend=1),a.fShadow&&(r.shadow=1),a.fOutline&&(r.outline=1),a.fStrikeout&&(r.strike=1),700===e.read_shift(2)&&(r.bold=1),e.read_shift(2)){case 1:r.vertAlign="superscript";break;case 2:r.vertAlign="subscript"}var s=e.read_shift(1);0!=s&&(r.underline=s);var i=e.read_shift(1);i>0&&(r.family=i);var o=e.read_shift(1);switch(o>0&&(r.charset=o),e.l++,r.color=function(e){var t={},n=e.read_shift(1)>>>1,r=e.read_shift(1),a=e.read_shift(2,"i"),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(1);switch(e.l++,n){case 0:t.auto=1;break;case 1:t.index=r;var l=Pn[r];l&&(t.rgb=os(l));break;case 2:t.rgb=os([s,i,o]);break;case 3:t.theme=r}return 0!=a&&(t.tint=a>0?a/32767:a/32768),t}(e),e.read_shift(1)){case 1:r.scheme="major";break;case 2:r.scheme="minor"}return r.name=sn(e),r}},44:{n:"BrtFmt",f:function(e,t){return[e.read_shift(2),sn(e)]}},45:{n:"BrtFill",f:Ts},46:{n:"BrtBorder",f:Bs},47:{n:"BrtXF",f:function(e,t){var n=e.l+t,r=e.read_shift(2),a=e.read_shift(2);return e.l=n,{ixfe:r,numFmtId:a}}},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:ka},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:function(e){var t={};t.i=e.read_shift(4);var n={};n.r=e.read_shift(4),n.c=e.read_shift(4),t.r=Yt(n);var r=e.read_shift(1);return 2&r&&(t.l="1"),8&r&&(t.a="1"),t}},64:{n:"BrtDVal",f:function(){}},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Mt,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView",f:function(e){var t=e.read_shift(2);return e.l+=28,{RTL:32&t}}},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:function(e,t){var n={};return e.l+=19,n.name=dn(e,t-19),n}},148:{n:"BrtWsDim",f:Mo,p:16},151:{n:"BrtPane",f:function(){}},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:function(e,t){var n={},r=e.read_shift(4);n.defaultThemeVersion=e.read_shift(4);var a=t>8?sn(e):"";return a.length>0&&(n.CodeName=a),n.autoCompressPictures=!!(65536&r),n.backupFile=!!(64&r),n.checkCompatibility=!!(4096&r),n.date1904=!!(1&r),n.filterPrivacy=!!(8&r),n.hidePivotFieldList=!!(1024&r),n.promptedSolutions=!!(16&r),n.publishItems=!!(2048&r),n.refreshAllConnections=!!(262144&r),n.saveExternalLinkValues=!!(128&r),n.showBorderUnselectedTables=!!(4&r),n.showInkAnnotation=!!(32&r),n.showObjects=["all","placeholders","none"][r>>13&3],n.showPivotChartFilter=!!(32768&r),n.updateLinks=["userSet","never","always"][r>>8&3],n}},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:function(e,t){var n={};return n.Hidden=e.read_shift(4),n.iTabID=e.read_shift(4),n.strRelID=bn(e,t-8),n.name=sn(e),n}},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:function(e){return[e.read_shift(4),e.read_shift(4)]}},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xn},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Po},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:bn},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:ba},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:function(e,t,n){var r=e.l+t,a=_n(e),s=e.read_shift(1),i=[a];if(i[2]=s,n.cellFormula){var o=Hi(e,r-e.l,n);i[1]=o}else e.l=r;return i}},427:{n:"BrtShrFmla",f:function(e,t,n){var r=e.l+t,a=[xn(e,16)];if(n.cellFormula){var s=Xi(e,r-e.l,n);a[1]=s,e.l=r}else e.l=r;return a}},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:function(e){var t={};return zo.forEach((function(n){t[n]=En(e)})),t}},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:function(){}},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:function(e,t){var n=e.l+t,r=xn(e,16),a=mn(e),s=sn(e),i=sn(e),o=sn(e);e.l=n;var l={rfx:r,relId:a,loc:s,display:o};return i&&(l.Tooltip=i),l}},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:bn},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:Zs},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:function(e){var t={};t.iauthor=e.read_shift(4);var n=xn(e,16);return t.rfx=n.s,t.ref=Yt(n.s),e.l+=16,t}},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:cn},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp",f:function(e,t){return e.l+=10,{name:sn(e)}}},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},681:{n:"BrtDValList"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14",f:function(){}},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSXView14"},1063:{n:"BrtEndSXView14"},1064:{n:"BrtBeginSXView16"},1065:{n:"BrtEndSXView16"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},2137:{n:"BrtBeginModelTimeGroupings"},2138:{n:"BrtEndModelTimeGroupings"},2139:{n:"BrtBeginModelTimeGrouping"},2140:{n:"BrtEndModelTimeGrouping"},2141:{n:"BrtModelTimeGroupingCalcCol"},3072:{n:"BrtUid"},3073:{n:"BrtRevisionPtr"},5095:{n:"BrtBeginCalcFeatures"},5096:{n:"BrtEndCalcFeatures"},5097:{n:"BrtCalcFeature"},65535:{n:""}},Rl=W(Tl,"n"),Fl={3:{n:"BIFF2NUM",f:function(e){var t=Xr(e);++e.l;var n=En(e);return t.t="n",t.val=n,t}},4:{n:"BIFF2STR",f:function(e,t,n){var r=Xr(e);++e.l;var a=Ur(e,0,n);return r.t="str",r.val=a,r}},6:{n:"Formula",f:Vi},9:{n:"BOF",f:sa},10:{n:"EOF",f:Tr},12:{n:"CalcCount",f:Or},13:{n:"CalcMode",f:Or},14:{n:"CalcPrecision",f:Rr},15:{n:"CalcRefMode",f:Rr},16:{n:"CalcDelta",f:En},17:{n:"CalcIter",f:Rr},18:{n:"Protect",f:Rr},19:{n:"Password",f:Or},20:{n:"Header",f:pa},21:{n:"Footer",f:pa},23:{n:"ExternSheet",f:ba},24:{n:"Lbl",f:ya},25:{n:"WinProtect",f:Rr},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:function(e,t,n){return function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2),i=e.read_shift(2),o=Ur(e,0,n);return n.biff<8&&e.read_shift(1),[{r,c:a},o,i,s]}}(e,0,n)}},29:{n:"Selection"},34:{n:"Date1904",f:Rr},35:{n:"ExternName",f:ma},36:{n:"COLWIDTH"},38:{n:"LeftMargin",f:En},39:{n:"RightMargin",f:En},40:{n:"TopMargin",f:En},41:{n:"BottomMargin",f:En},42:{n:"PrintRowCol",f:Rr},43:{n:"PrintGrid",f:Rr},47:{n:"FilePass",f:function(e,t,n){var r={Type:n.biff>=8?e.read_shift(2):0};return r.Type?function(e,t,n){var r=n||{};r.Info=e.read_shift(2),e.l-=2,1===r.Info?r.Data=function(e){var t={},n=t.EncryptionVersionInfo=qa(e,4);if(1!=n.Major||1!=n.Minor)throw"unrecognized version code "+n.Major+" : "+n.Minor;return t.Salt=e.read_shift(16),t.EncryptedVerifier=e.read_shift(16),t.EncryptedVerifierHash=e.read_shift(16),t}(e):r.Data=function(e,t){var n={},r=n.EncryptionVersionInfo=qa(e,4);if(t-=4,2!=r.Minor)throw new Error("unrecognized minor version code: "+r.Minor);if(r.Major>4||r.Major<2)throw new Error("unrecognized major version code: "+r.Major);n.Flags=e.read_shift(4),t-=4;var a=e.read_shift(4);return t-=4,n.EncryptionHeader=Ka(e,a),t-=a,n.EncryptionVerifier=Ya(e,t),n}(e,t)}(e,t-2,r):function(e,t,n,r){var a,s,i,o={key:Or(e),verificationBytes:Or(e)};n.password&&(o.verifier=es(n.password)),r.valid=o.verificationBytes===o.verifier,r.valid&&(r.insitu=(a=n.password,s=0,i=ss(a),function(e){var t=function(e,t,n,r,a){var s,i;for(a||(a=t),r||(r=ss("")),s=0;s!=t.length;++s)i=t[s],i=255&((i^=r[n])>>5|i<<3),a[s]=i,++n;return[a,n,r]}(0,e,s,i);return s=t[1],t[0]}))}(e,n.biff,n,r),r}},49:{n:"Font",f:function(e,t,n){var r={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(n&&n.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10}return r.name=$r(e,0,n),r}},51:{n:"PrintSize",f:Or},60:{n:"Continue"},61:{n:"Window1",f:function(e){return{Pos:[e.read_shift(2),e.read_shift(2)],Dim:[e.read_shift(2),e.read_shift(2)],Flags:e.read_shift(2),CurTab:e.read_shift(2),FirstTab:e.read_shift(2),Selected:e.read_shift(2),TabRatio:e.read_shift(2)}}},64:{n:"Backup",f:Rr},65:{n:"Pane",f:function(){}},66:{n:"CodePage",f:Or},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:Or},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:function(e,t,n){if(n.enc)return e.l+=t,"";var r=e.l,a=Ur(e,0,n);return e.read_shift(t+r-e.l),a}},93:{n:"Obj",f:function(e,t,n){if(n&&n.biff<8)return function(e,t,n){e.l+=4;var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6,t-=36;var i=[];return i.push((wa[r]||Mt)(e,t,n)),{cmo:[a,r,s],ft:i}}(e,t,n);var r=na(e);return{cmo:r,ft:function(e,t){for(var n=e.l+t,r=[];e.l7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}},129:{n:"WsBool",f:function(e,t,n){return{fDialog:16&(n&&8==n.biff||2==t?e.read_shift(2):(e.l+=t,0))}}},130:{n:"GridSet",f:Or},131:{n:"HCenter",f:Rr},132:{n:"VCenter",f:Rr},133:{n:"BoundSheet8",f:function(e,t,n){var r=e.read_shift(4),a=3&e.read_shift(1),s=e.read_shift(1);switch(s){case 0:s="Worksheet";break;case 1:s="Macrosheet";break;case 2:s="Chartsheet";break;case 6:s="VBAModule"}var i=$r(e,0,n);return 0===i.length&&(i="Sheet1"),{pos:r,hs:a,dt:s,name:i}}},134:{n:"WriteProtect"},140:{n:"Country",f:function(e){var t,n=[0,0];return t=e.read_shift(2),n[0]=Mn[t]||t,t=e.read_shift(2),n[1]=Mn[t]||t,n}},141:{n:"HideObj",f:Or},144:{n:"Sort"},146:{n:"Palette",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(qr(e));return n}},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:Or},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:Ca},161:{n:"Setup",f:function(e,t){var n={};return t<32||(e.l+=16,n.header=En(e),n.footer=En(e),e.l+=2),n}},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:function(e,t){for(var n=e.l+t-2,r=e.read_shift(2),a=e.read_shift(2),s=[];e.l>2&1,r.data=function(e,t,n,r){var a={},s=e.read_shift(4),i=e.read_shift(4),o=e.read_shift(4),l=e.read_shift(2);return a.patternType=$n[o>>26],r.cellStyles?(a.alc=7&s,a.fWrap=s>>3&1,a.alcV=s>>4&7,a.fJustLast=s>>7&1,a.trot=s>>8&255,a.cIndent=s>>16&15,a.fShrinkToFit=s>>20&1,a.iReadOrder=s>>22&2,a.fAtrNum=s>>26&1,a.fAtrFnt=s>>27&1,a.fAtrAlc=s>>28&1,a.fAtrBdr=s>>29&1,a.fAtrPat=s>>30&1,a.fAtrProt=s>>31&1,a.dgLeft=15&i,a.dgRight=i>>4&15,a.dgTop=i>>8&15,a.dgBottom=i>>12&15,a.icvLeft=i>>16&127,a.icvRight=i>>23&127,a.grbitDiag=i>>30&3,a.icvTop=127&o,a.icvBottom=o>>7&127,a.icvDiag=o>>14&127,a.dgDiag=o>>21&15,a.icvFore=127&l,a.icvBack=l>>7&127,a.fsxButton=l>>14&1,a):a}(e,0,r.fStyle,n),r}},225:{n:"InterfaceHdr",f:function(e,t){return 0===t||e.read_shift(2),1200}},226:{n:"InterfaceEnd",f:Tr},227:{n:"SXVS"},229:{n:"MergeCells",f:function(e,t){for(var n=[],r=e.read_shift(2);r--;)n.push(Zr(e));return n}},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:function(e,t){for(var n=e.l+t,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0;i!=a&&e.l255)throw new Error("Unexpected SupBook type: "+s);for(var i=zr(e,s),o=[];r>e.l;)o.push(Wr(e));return[s,a,i,o]}},431:{n:"Prot4Rev",f:Rr},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:function(e,t,n){var r=e.l,a="";try{e.l+=4;var s=(n.lastobj||{cmo:[0,0]}).cmo[1];-1==[0,5,7,11,12,14].indexOf(s)?e.l+=6:function(e){var t=e.read_shift(1);e.l++;var n=e.read_shift(2);e.l+=2}(e);var i=e.read_shift(2);e.read_shift(2),Or(e);var o=e.read_shift(2);e.l+=o;for(var l=1;l=(u?i:2*i))break}if(a.length!==i&&a.length!==2*i)throw new Error("cchText: "+i+" != "+a.length);return e.l=r+t,{t:a}}catch(n){return e.l=r+t,{t:a}}}},439:{n:"RefreshAll",f:Rr},440:{n:"HLink",f:function(e,t){var n=Zr(e);return e.l+=16,[n,function(e,t){var n=e.l+t,r=e.read_shift(4);if(2!==r)throw new Error("Unrecognized streamVersion: "+r);var a=e.read_shift(2);e.l+=2;var s,i,o,l,u,c,h="";16&a&&(s=jr(e,e.l)),128&a&&(i=jr(e,e.l)),257==(257&a)&&(o=jr(e,e.l)),1==(257&a)&&(l=function(e,t){var n=e.read_shift(16);switch(n){case"e0c9ea79f9bace118c8200aa004ba90b":return function(e){var t=e.read_shift(4),n=e.l,r=!1;t>24&&(e.l+=t-24,"795881f43b1d7f48af2c825dc4852763"===e.read_shift(16)&&(r=!0),e.l=n);var a=e.read_shift((r?t-24:t)>>1,"utf16le").replace(N,"");return r&&(e.l+=24),a}(e);case"0303000000000000c000000000000046":return function(e){e.l+=2;var t=e.read_shift(0,"lpstr-ansi");if(e.l+=2,57005!=e.read_shift(2))throw new Error("Bad FileMoniker");if(0===e.read_shift(4))return t.replace(/\\/g,"/");var n=e.read_shift(4);if(3!=e.read_shift(2))throw new Error("Bad FileMoniker");return e.read_shift(n>>1,"utf16le").replace(N,"")}(e);default:throw new Error("Unsupported Moniker "+n)}}(e,e.l)),8&a&&(h=jr(e,e.l)),32&a&&(u=e.read_shift(16)),64&a&&(c=mr(e)),e.l=n;var f=i||o||l||"";f&&h&&(f+="#"+h),f||(f="#"+h);var d={Target:f};return u&&(d.guid=u),c&&(d.time=c),s&&(d.Tooltip=s),d}(e,t-24)]}},441:{n:"Lel"},442:{n:"CodeName",f:Wr},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:Or},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:Tr},449:{n:"RecalcId",f:function(e){return e.read_shift(2),e.read_shift(4)},r:2},450:{n:"EntExU2",f:Tr},512:{n:"Dimensions",f:ha},513:{n:"Blank",f:Ea},515:{n:"Number",f:function(e){var t=Xr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=Xr(e);2==n.biff&&e.l++;var a=Wr(e,e.l,n);return r.val=a,r}},517:{n:"BoolErr",f:da},518:{n:"Formula",f:Vi},519:{n:"String",f:Sa},520:{n:"Row",f:function(e){var t={};t.r=e.read_shift(2),t.c=e.read_shift(2),t.cnt=e.read_shift(2)-t.c;var n=e.read_shift(2);e.l+=4;var r=e.read_shift(1);return e.l+=3,7&r&&(t.level=7&r),32&r&&(t.hidden=!0),64&r&&(t.hpt=n/20),t}},523:{n:"Index"},545:{n:"Array",f:va},549:{n:"DefaultRowHeight",f:la},566:{n:"Table"},574:{n:"Window2",f:function(e,t,n){return n&&n.biff>=2&&n.biff<5?{}:{RTL:64&e.read_shift(2)}}},638:{n:"RK",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=Jr(e);return{r:t,c:n,ixfe:r[0],rknum:r[1]}}},659:{n:"Style"},1030:{n:"Formula",f:Vi},1048:{n:"BigName"},1054:{n:"Format",f:function(e,t,n){return[e.read_shift(2),Ur(e,0,n)]}},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:function(e,t,n){var r=ea(e);e.l++;var a=e.read_shift(1);return[Ui(e,t-=8,n),a,r]}},2048:{n:"HLinkTooltip",f:function(e,t){e.read_shift(2);var n=Zr(e),r=e.read_shift((t-10)/2,"dbcs-cont");return[n,r=r.replace(N,"")]}},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:sa},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:Tr},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:function(e){e.l+=2;var t={cxfs:0,crc:0};return t.cxfs=e.read_shift(2),t.crc=e.read_shift(4),t},r:12},2173:{n:"XFExt",f:function(e,t){e.l,e.l+=2;var n=e.read_shift(2);e.l+=2;for(var r=e.read_shift(2),a=[];r-- >0;)a.push(qs(e,e.l));return{ixfe:n,ext:a}},r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:Rr,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt"},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2);return[zr(e,r,n),zr(e,a,n)]}e.l+=t},r:12},2197:{n:"SortData"},2198:{n:"Theme",f:function(e,t,n){var r=e.l+t;if(124226!==e.read_shift(4))if(n.cellStyles&&se){var a,s=e.slice(e.l);e.l=r;try{a=new se(s)}catch(e){return}var i=he(a,"theme/theme/theme1.xml",!0);if(i)return Hs(i,n)}else e.l=r},r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:function(e){return[0!==e.read_shift(4),0!==e.read_shift(4),e.read_shift(4)]},r:12},2203:{n:"CompressPictures",f:Tr},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:function(e){var t=function(e){var t=e.read_shift(2),n=e.read_shift(2);return e.l+=8,{type:t,flags:n}}(e);if(2211!=t.type)throw new Error("Invalid Future Record "+t.type);return 0!==e.read_shift(4)}},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:Or},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:function(e,t,n){var r={area:!1};if(5!=n.biff)return e.l+=t,r;var a=e.read_shift(1);return e.l+=3,16&a&&(r.area=!0),r}},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(qr(e));return n}},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:ha},2:{n:"BIFF2INT",f:function(e){var t=Xr(e);++e.l;var n=e.read_shift(2);return t.t="n",t.val=n,t}},5:{n:"BoolErr",f:da},7:{n:"String",f:function(e){var t=e.read_shift(1);return 0===t?(e.l++,""):e.read_shift(t,"sbcs-cont")}},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:Or},30:{n:"BIFF2FORMAT",f:ca},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:va},37:{n:"DefaultRowHeight",f:la},50:{n:"BIFF2FONTXTRA",f:function(e,t){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=t-13}},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a={fmt:t,env:n,len:r,data:e.slice(e.l,e.l+r)};return e.l+=r,a}},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:function(e,t,n){var r=e.l+t,a=Xr(e),s=e.read_shift(2),i=zr(e,s,n);return e.l=r,a.t="str",a.val=i,a}},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:sa},536:{n:"Lbl",f:ya},547:{n:"ExternName",f:ma},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:sa},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}},Ol=W(Fl,"n");function Bl(e,t,n,r){var a=+t||+Ol[t];if(!isNaN(a)){var s=r||(n||[]).length||0,i=e.next(4);i.write_shift(2,a),i.write_shift(2,s),s>0&&Et(n)&&e.push(n)}}function Ml(e,t,n){return e||(e=$t(7)),e.write_shift(2,t),e.write_shift(2,n),e.write_shift(2,0),e.write_shift(1,0),e}function $l(e,t,n,r){if(null!=t.v)switch(t.t){case"d":case"n":var a="d"==t.t?H(Q(t.v)):t.v;return void(a==(0|a)&&a>=0&&a<65536?Bl(e,2,(s=n,i=r,o=a,l=$t(9),Ml(l,s,i),l.write_shift(2,o),l)):Bl(e,3,function(e,t,n){var r=$t(15);return Ml(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Bl(e,5,function(e,t,n,r){var a=$t(9);return Ml(a,e,t),"e"==r?(a.write_shift(1,n),a.write_shift(1,1)):(a.write_shift(1,n?1:0),a.write_shift(1,0)),a}(n,r,t.v,t.t));case"s":case"str":return void Bl(e,4,function(e,t,n){var r=$t(8+2*n.length);return Ml(r,e,t),r.write_shift(1,n.length),r.write_shift(n.length,n,"sbcs"),r.l255||d.e.r>=p){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:IV16384");d.e.c=Math.min(d.e.c,255),d.e.r=Math.min(d.e.c,p-1)}Bl(a,2057,ia(0,16,t)),Bl(a,"CalcMode",Br(1)),Bl(a,"CalcCount",Br(100)),Bl(a,"CalcRefMode",Fr(!0)),Bl(a,"CalcIter",Fr(!1)),Bl(a,"CalcDelta",Cn(.001)),Bl(a,"CalcSaveRecalc",Fr(!0)),Bl(a,"PrintRowCol",Fr(!1)),Bl(a,"PrintGrid",Fr(!1)),Bl(a,"GridSet",Br(1)),Bl(a,"Guts",function(e){var t=$t(8);return t.write_shift(4,0),t.write_shift(2,e[0]?e[0]+1:0),t.write_shift(2,e[1]?e[1]+1:0),t}([0,0])),Bl(a,"HCenter",Fr(!1)),Bl(a,"VCenter",Fr(!1)),Bl(a,512,function(e,t){var n=8!=t.biff&&t.biff?2:4,r=$t(2*n+6);return r.write_shift(n,e.s.r),r.write_shift(n,e.e.r+1),r.write_shift(2,e.s.c),r.write_shift(2,e.e.c+1),r.write_shift(2,0),r}(d,t)),c&&(i["!links"]=[]);for(var m=d.s.r;m<=d.e.r;++m){h=Gt(m);for(var g=d.s.c;g<=d.e.c;++g){m===d.s.r&&(f[g]=Xt(g)),r=f[g]+h;var y=u?(i[m]||[])[g]:i[r];y&&(Pl(a,y,m,g,t),c&&y.l&&i["!links"].push([r,y.l]))}}var b=l.CodeName||l.name||s;return c&&Bl(a,"Window2",function(e){var t=$t(18),n=1718;return e&&e.RTL&&(n|=64),t.write_shift(2,n),t.write_shift(4,0),t.write_shift(4,64),t.write_shift(4,0),t.write_shift(4,0),t}((o.Views||[])[0])),c&&(i["!merges"]||[]).length&&Bl(a,"MergeCells",function(e){var t=$t(2+8*e.length);t.write_shift(2,e.length);for(var n=0;n255||i.e.r>16383){if(r.WTF)throw new Error("Range "+(t["!ref"]||"A1")+" exceeds format limit A1:IV16384");i.e.c=Math.min(i.e.c,255),i.e.r=Math.min(i.e.c,16383),a=Zt(i)}for(var u=i.s.r;u<=i.e.r;++u){o=Gt(u);for(var c=i.s.c;c<=i.e.c;++c){u===i.s.r&&(l[c]=Xt(c)),a=l[c]+o;var h=s?(t[u]||[])[c]:t[a];h&&$l(e,h,u,c)}}}(r,e.Sheets[e.SheetNames[a]],0,n),Bl(r,10),r.end()}(e,t)}throw new Error("invalid type "+n.bookType+" for BIFF")}var Ul=function(){function e(e,t){var n=t||{},r=n.dense?[]:{},a=(e=e.replace(//g,"")).match(/");var s=e.match(/<\/table/i),i=a.index,o=s&&s.index||e.length,l=function(e,t,n){if(ie||"string"==typeof t)return e.split(t);for(var r=e.split(t),a=[r[0]],s=1;s"),a.push(r[s]);return a}(e.slice(i,o),/(:?]*>)/i),u=-1,c=0,h=0,f=0,d={s:{r:1e7,c:1e7},e:{r:0,c:0}},p=[];for(i=0;i/i);for(o=0;o"))>-1;)v=v.slice(w+1);for(var _=0;_")));f=k.colspan?+k.colspan:1,((h=+k.rowspan)>1||f>1)&&p.push({s:{r:u,c},e:{r:u+(h||1)-1,c:c+f-1}});var E=k.t||"";if(v.length){if(v=je(v),d.s.r>u&&(d.s.r=u),d.e.rc&&(d.s.c=c),d.e.cn||a[u].s.c>i||a[u].e.r1&&(d.rowspan=o),l>1&&(d.colspan=l),d.t=h&&h.t||"z",r.editable&&(f=''+f+""),d.id=(r.id||"sjs")+"-"+c,"z"!=d.t&&(d.v=h.v,null!=h.z&&(d.z=h.z)),s.push(Ze("td",f,d))}}return""+s.join("")+""}function n(e,t,n){return[].join("")+""}var r='SheetJS Table Export',a="";return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,_row:t,BEGIN:r,END:a,_preamble:n,from_sheet:function(e,s){var i=s||{},o=null!=i.header?i.header:r,l=null!=i.footer?i.footer:a,u=[o],c=Jt(e["!ref"]);i.dense=Array.isArray(e),u.push(n(0,0,i));for(var h=c.s.r;h<=c.e.r;++h)u.push(t(e,c,h,i));return u.push("
"+l),u.join("")}}}();function Vl(e,t,n){var r=n||{},a=0,s=0;if(null!=r.origin)if("number"==typeof r.origin)a=r.origin;else{var i="string"==typeof r.origin?Kt(r.origin):r.origin;a=i.r,s=i.c}var o=t.getElementsByTagName("tr"),l=Math.min(r.sheetRows||1e7,o.length),u={s:{r:0,c:0},e:{r:a,c:s}};if(e["!ref"]){var c=Jt(e["!ref"]);u.s.r=Math.min(u.s.r,c.s.r),u.s.c=Math.min(u.s.c,c.s.c),u.e.r=Math.max(u.e.r,c.e.r),u.e.c=Math.max(u.e.c,c.e.c),-1==a&&(u.e.r=a=c.e.r+1)}var h=[],f=0,d=e["!rows"]||(e["!rows"]=[]),p=0,m=0,g=0,y=0,b=0,v=0;for(e["!cols"]||(e["!cols"]=[]);p1||v>1)&&h.push({s:{r:m+a,c:y+s},e:{r:m+a+(b||1)-1,c:y+s+(v||1)-1}});var S={t:"s",v:k},N=x.getAttribute("t")||"";null!=k&&(0==k.length?S.t=N||"z":r.raw||0==k.trim().length||"s"==N||("TRUE"===k?S={t:"b",v:!0}:"FALSE"===k?S={t:"b",v:!1}:isNaN(re(k))?isNaN(ae(k).getDate())||(S={t:"d",v:Q(k)},r.cellDates||(S={t:"n",v:H(S.v)}),S.z=r.dateNF||D._table[14]):S={t:"n",v:re(k)})),void 0===S.z&&null!=E&&(S.z=E),r.dense?(e[m+a]||(e[m+a]=[]),e[m+a][y+s]=S):e[Yt({c:y+s,r:m+a})]=S,u.e.c=l&&(e["!fullref"]=Zt((u.e.r=o.length-p+m-1+a,u))),e}function jl(e,t){return Vl((t||{}).dense?[]:{},e,t)}function Hl(e){var t="",n=function(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null}(e);return n&&(t=n(e).getPropertyValue("display")),t||(t=e.style.display),"none"===t}var Gl,ql=(Gl={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']},function(e,t){var n,r,a,s,i,o,l,u=t||{},c=gl(e),h=[],f={name:""},d="",p=0,m={},g=[],y=u.dense?[]:{},b={value:""},v="",w=0,_=[],x=-1,k=-1,E={s:{r:1e6,c:1e7},e:{r:0,c:0}},C=0,S={},N=[],I={},D=[],A=1,T=1,R=[],F={Names:[]},O={},B=["",""],M=[],$={},P="",L=0,z=!1,W=!1,U=0;for(yl.lastIndex=0,c=c.replace(//gm,"").replace(//gm,"");i=yl.exec(c);)switch(i[3]=i[3].replace(/_.*$/,"")){case"table":case"工作表":"/"===i[1]?(E.e.c>=E.s.c&&E.e.r>=E.s.r?y["!ref"]=Zt(E):y["!ref"]="A1:A1",u.sheetRows>0&&u.sheetRows<=E.e.r&&(y["!fullref"]=y["!ref"],E.e.r=u.sheetRows-1,y["!ref"]=Zt(E)),N.length&&(y["!merges"]=N),D.length&&(y["!rows"]=D),a.name=a["名称"]||a.name,"undefined"!=typeof JSON&&JSON.stringify(a),g.push(a.name),m[a.name]=y,W=!1):"/"!==i[0].charAt(i[0].length-2)&&(a=we(i[0],!1),x=k=-1,E.s.r=E.s.c=1e7,E.e.r=E.e.c=0,y=u.dense?[]:{},N=[],D=[],W=!0);break;case"table-row-group":"/"===i[1]?--C:++C;break;case"table-row":case"行":if("/"===i[1]){x+=A,A=1;break}if((s=we(i[0],!1))["行号"]?x=s["行号"]-1:-1==x&&(x=0),(A=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(D[x+U]={level:C});k=-1;break;case"covered-table-cell":"/"!==i[1]&&++k,u.sheetStubs&&(u.dense?(y[x]||(y[x]=[]),y[x][k]={t:"z"}):y[Yt({r:x,c:k})]={t:"z"}),v="",_=[];break;case"table-cell":case"数据":if("/"===i[0].charAt(i[0].length-2))++k,b=we(i[0],!1),T=parseInt(b["number-columns-repeated"]||"1",10),o={t:"z",v:null},b.formula&&0!=u.cellFormula&&(o.f=Qi(Se(b.formula))),"string"==(b["数据类型"]||b["value-type"])&&(o.t="s",o.v=Se(b["string-value"]||""),u.dense?(y[x]||(y[x]=[]),y[x][k]=o):y[Yt({r:x,c:k})]=o),k+=T-1;else if("/"!==i[1]){T=1;var V=A?x+A-1:x;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),M=[],$={},o={t:(b=we(i[0],!1))["数据类型"]||b["value-type"],v:null},u.cellFormula)if(b.formula&&(b.formula=Se(b.formula)),b["number-matrix-columns-spanned"]&&b["number-matrix-rows-spanned"]&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-matrix-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-matrix-columns-spanned"],10)||0)-1}},o.F=Zt(I),R.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=R[U][0].s.r&&x<=R[U][0].e.r&&k>=R[U][0].s.c&&k<=R[U][0].e.c&&(o.F=R[U][1]);switch((b["number-columns-spanned"]||b["number-rows-spanned"])&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-columns-spanned"],10)||0)-1}},N.push(I)),b["number-columns-repeated"]&&(T=parseInt(b["number-columns-repeated"],10)),o.t){case"boolean":o.t="b",o.v=Oe(b["boolean-value"]);break;case"float":case"percentage":case"currency":o.t="n",o.v=parseFloat(b.value);break;case"date":o.t="d",o.v=Q(b["date-value"]),u.cellDates||(o.t="n",o.v=H(o.v)),o.z="m/d/yy";break;case"time":o.t="n",o.v=Y(b["time-value"])/86400;break;case"number":o.t="n",o.v=parseFloat(b["数据数值"]);break;default:if("string"!==o.t&&"text"!==o.t&&o.t)throw new Error("Unsupported value type "+o.t);o.t="s",null!=b["string-value"]&&(v=Se(b["string-value"]),_=[])}}else{if(z=!1,"s"===o.t&&(o.v=v||"",_.length&&(o.R=_),z=0==w),O.Target&&(o.l=O),M.length>0&&(o.c=M,M=[]),v&&!1!==u.cellText&&(o.w=v),z&&(o.t="z",delete o.v),(!z||u.sheetStubs)&&!(u.sheetRows&&u.sheetRows<=x))for(var j=0;j0;)y[x+j][k+T]=te(o);else for(y[Yt({r:x+j,c:k})]=o;--T>0;)y[Yt({r:x+j,c:k+T})]=te(o);E.e.c<=k&&(E.e.c=k)}k+=(T=parseInt(b["number-columns-repeated"]||"1",10))-1,T=0,o={},v="",_=[]}O={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!0]);break;case"annotation":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n;$.t=v,_.length&&($.R=_),$.a=P,M.push($)}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);P="",L=0,v="",w=0,_=[];break;case"creator":"/"===i[1]?P=c.slice(L,i.index):L=i.index+i[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);v="",w=0,_=[];break;case"scientific-number":case"currency-symbol":case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if("/"===i[1]){if(S[f.name]=d,(n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&(d="",f=we(i[0],!1),h.push([i[3],!0]));break;case"script":case"libraries":case"automatic-styles":break;case"default-style":case"page-layout":case"style":case"map":case"font-face":case"paragraph-properties":case"table-properties":case"table-column-properties":case"table-row-properties":case"table-cell-properties":break;case"number":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"boolean-style":case"boolean":case"text-style":break;case"text":if("/>"===i[0].slice(-2))break;if("/"===i[1])switch(h[h.length-1][0]){case"number-style":case"date-style":case"time-style":d+=c.slice(p,i.index)}else p=i.index+i[0].length;break;case"named-range":B=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:B[0]+"!"+B[1]};W&&(G.Sheet=g.length),F.Names.push(G);break;case"text-content":case"text-properties":case"embedded-text":break;case"body":case"电子表格":case"forms":case"table-column":case"table-header-rows":case"table-rows":case"table-column-group":case"table-header-columns":case"table-columns":case"null-date":case"graphic-properties":case"calculation-settings":case"named-expressions":case"label-range":case"label-ranges":case"named-expression":case"sort":case"sort-by":case"sort-groups":case"tab":case"line-break":case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(h[h.length-1][0])>-1)break;if("/"!==i[1]||b&&b["string-value"])we(i[0],!1),w=i.index+i[0].length;else{var q=(l=void 0,l=c.slice(w,i.index).replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,(function(e,t){return Array(parseInt(t,10)+1).join(" ")})).replace(/]*\/>/g,"\t").replace(//g,"\n"),[Se(l.replace(/<[^>]*>/g,""))]);v=(v.length>0?v+"\n":"")+q[0]}break;case"s":break;case"database-range":if("/"===i[1])break;try{m[(B=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:B[1]}}catch(e){}break;case"date":case"object":break;case"title":case"标题":case"desc":case"binary-data":case"table-source":case"scenario":case"iteration":case"content-validations":case"content-validation":case"help-message":case"error-message":case"database-ranges":case"filter":case"filter-and":case"filter-or":case"filter-condition":case"list-level-style-bullet":case"list-level-style-number":case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":case"config-item":case"page-number":case"page-count":case"time":case"cell-range-source":case"detective":case"operation":case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":case"properties":case"property":break;case"a":if("/"!==i[1]){if(!(O=we(i[0],!1)).href)break;O.Target=O.href,delete O.href,"#"==O.Target.charAt(0)&&O.Target.indexOf(".")>-1&&(B=eo(O.Target.slice(1)),O.Target="#"+B[0]+"!"+B[1])}break;case"table-protection":case"data-pilot-grand-total":case"office-document-common-attrs":break;default:switch(i[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(u.WTF)throw new Error(i)}}var X={Sheets:m,SheetNames:g,Workbook:F};return u.bookSheets&&delete X.Sheets,X});function Xl(e,t){t=t||{};var n=!!le(e,"objectdata");n&&function(e,t){for(var n,r,a=gl(e);n=yl.exec(a);)switch(n[3]){case"manifest":break;case"file-entry":if("/"==(r=we(n[0],!1)).path&&"application/vnd.oasis.opendocument.spreadsheet"!==r.type)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(t&&t.WTF)throw n}}(ce(e,"META-INF/manifest.xml"),t);var r=he(e,"content.xml");if(!r)throw new Error("Missing content.xml in "+(n?"ODS":"UOF")+" file");var a=ql(n?r:Be(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function Kl(e,t){return ql(e,t)}var Yl=function(){var e="";return function(){return me+e}}(),Jl=function(){var e=" \n",t=function(t,n,r){var a=[];a.push(' \n');var s=0,i=0,o=Jt(t["!ref"]),l=t["!merges"]||[],u=0,c=Array.isArray(t);for(s=0;s\n");for(;s<=o.e.r;++s){for(a.push(" \n"),i=0;ii||l[u].s.r>s||l[u].e.c\n");else{var p=Yt({r:s,c:i}),m=c?(t[s]||[])[i]:t[p];if(m&&m.f&&(f["table:formula"]=De(("of:="+m.f.replace(ni,"$1[.$2$3$4$5]").replace(/\]:\[/g,":")).replace(/;/g,"|").replace(/,/g,";")),m.F&&m.F.slice(0,p.length)==p)){var g=Jt(m.F);f["table:number-matrix-columns-spanned"]=g.e.c-g.s.c+1,f["table:number-matrix-rows-spanned"]=g.e.r-g.s.r+1}if(m){switch(m.t){case"b":d=m.v?"TRUE":"FALSE",f["office:value-type"]="boolean",f["office:boolean-value"]=m.v?"true":"false";break;case"n":d=m.w||String(m.v||0),f["office:value-type"]="float",f["office:value"]=m.v||0;break;case"s":case"str":d=null==m.v?"":m.v,f["office:value-type"]="string";break;case"d":d=m.w||Q(m.v).toISOString(),f["office:value-type"]="date",f["office:date-value"]=Q(m.v).toISOString(),f["table:style-name"]="ce1";break;default:a.push(e);continue}var y=De(d).replace(/ +/g,(function(e){return''})).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"");if(m.l&&m.l.Target){var b=m.l.Target;y=Ze("text:a",y,{"xlink:href":b="#"==b.charAt(0)?"#"+b.slice(1).replace(/\./,"!"):b})}a.push(" "+Ze("table:table-cell",Ze("text:p",y,{}),f)+"\n")}else a.push(e)}}a.push(" \n")}return a.push(" \n"),a.join("")};return function(e,n){var r=[me],a=Je({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),s=Je({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});"fods"==n.bookType?r.push("\n"):r.push("\n"),function(e){e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" /\n"),e.push(' \n'),e.push(" /\n"),e.push(" \n"),e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" \n"),e.push(' \n'),e.push(" \n")}(r),r.push(" \n"),r.push(" \n");for(var i=0;i!=e.SheetNames.length;++i)r.push(t(e.Sheets[e.SheetNames[i]],e,i));return r.push(" \n"),r.push(" \n"),"fods"==n.bookType?r.push(""):r.push(""),r.join("")}}();function Zl(e,t){if("fods"==t.bookType)return Jl(e,t);var n=de(),r="",a=[],s=[];return fe(n,r="mimetype","application/vnd.oasis.opendocument.spreadsheet"),fe(n,r="content.xml",Jl(e,t)),a.push([r,"text/xml"]),s.push([r,"ContentFile"]),fe(n,r="styles.xml",Yl(e,t)),a.push([r,"text/xml"]),s.push([r,"StylesFile"]),fe(n,r="meta.xml",tr()),a.push([r,"text/xml"]),s.push([r,"MetadataFile"]),fe(n,r="manifest.rdf",function(e){var t=[me];t.push('\n');for(var n=0;n!=e.length;++n)t.push(Qn(e[n][0],e[n][1])),t.push(("",[' \n',' \n'," \n"].join("")));return t.push(Qn("","Document","pkg")),t.push(""),t.join("")}(s)),a.push([r,"application/rdf+xml"]),fe(n,r="META-INF/manifest.xml",function(e){var t=[me];t.push('\n'),t.push(' \n');for(var n=0;n\n');return t.push(""),t.join("")}(a)),n}function Ql(e){return function(t,n){var r=function(e,t){if(!t)return 0;var n=e.SheetNames.indexOf(t);if(-1==n)throw new Error("Sheet not found: "+t);return n}(t,n.sheet);return e.from_sheet(t.Sheets[t.SheetNames[r]],n,t)}}var eu=Ql(Ul),tu=Ql({from_sheet:Ru}),nu=Ql(void 0!==Ia?Ia:{}),ru=Ql(void 0!==Da?Da:{}),au=Ql(void 0!==Ta?Ta:{}),su=Ql(void 0!==is?is:{}),iu=Ql({from_sheet:Fu}),ou=Ql(void 0!==Na?Na:{}),lu=Ql(void 0!==Aa?Aa:{});function uu(e){return function(t){for(var n=0;n!=e.length;++n){var r=e[n];void 0===t[r[0]]&&(t[r[0]]=r[1]),"n"===r[2]&&(t[r[0]]=Number(t[r[0]]))}}}var cu=function(e){uu([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)},hu=uu([["cellDates",!1],["bookSST",!1],["bookType","xlsx"],["compression",!1],["WTF",!1]]);function fu(e,t,n,r,a,s,i,o,l,u,c,h){try{s[r]=Xn(he(e,n,!0),t);var f,d=ce(e,t);switch(o){case"sheet":f=rl(d,t,a,l,s[r],u,c,h);break;case"chart":if(!(f=function(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},i=[],o=!1;return Pt(e,(function(e,r,l){switch(l){case 550:s["!rel"]=e;break;case 651:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:i.push(r);break;case 38:i.pop();break;default:if((r||"").indexOf("Begin")>0)i.push(r);else if((r||"").indexOf("End")>0)i.pop();else if(!o||t.WTF)throw new Error("Unexpected record "+l+" "+r)}}),t),r["!id"][s["!rel"]]&&(s["!drawel"]=r["!id"][s["!rel"]]),s}(e,r,n,a,s):function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s,i={"!type":"chart","!drawel":null,"!rel":""},o=e.match(bo);return o&&wo(o[0],0,a,n),(s=e.match(/drawing r:id="(.*?)"/))&&(i["!rel"]=s[1]),r["!id"][i["!rel"]]&&(i["!drawel"]=r["!id"][i["!rel"]]),i}(e,0,n,a,s)}(d,t,a,l,s[r],u))||!f["!drawel"])break;var p=pe(f["!drawel"].Target,t),m=qn(p),g=pe(function(e,t){if(!e)return"??";var n=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return t["!id"][n].Target}(he(e,p,!0),Xn(he(e,m,!0),p)),p),y=qn(g);f=function(e,t,n,r,a,s){var i=s||{"!type":"chart"};if(!e)return s;var o=0,l=0,u="A",c={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach((function(e){var t=function(e){var t,n=[],r=e.match(/^/);(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach((function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);t&&(n[+t[1]]=r?+t[2]:t[2])}));var a=Se((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/(.*?)<\/c:f>/gm)||[]).forEach((function(e){t=e.replace(/<.*?>/g,"")})),[n,a,t]}(e);c.s.r=c.s.c=0,c.e.c=o,u=Xt(o),t[0].forEach((function(e,n){i[u+Gt(n)]={t:"n",v:e,z:t[1]},l=n})),c.e.r0&&(i["!ref"]=Zt(c)),i}(he(e,g,!0),0,0,Xn(he(e,y,!0),g),0,f);break;case"macro":v=t,s[r],v.slice(-4),f={"!type":"macro"};break;case"dialog":f=function(e,t,n,r,a,s,i,o){return t.slice(-4),{"!type":"dialog"}}(0,t,0,0,s[r]);break;default:throw new Error("Unrecognized sheet type "+o)}i[r]=f;var b=[];s&&s[r]&&z(s[r]).forEach((function(n){if(s[r][n].Type==Gn.CMNT){var a=pe(s[r][n].Target,t);if(!(b=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=[],a={},s=!1;return Pt(e,(function(e,i,o){switch(o){case 632:r.push(e);break;case 635:a=e;break;case 637:a.t=e.t,a.h=e.h,a.r=e.r;break;case 636:if(a.author=r[a.iauthor],delete a.iauthor,t.sheetRows&&a.rfx&&t.sheetRows<=a.rfx.r)break;a.t||(a.t=""),delete a.rfx,n.push(a);break;case 3072:break;case 35:s=!0;break;case 36:s=!1;break;case 37:case 38:break;default:if((i||"").indexOf("Begin")>0);else if((i||"").indexOf("End")>0);else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+i)}})),n}(e,n):function(e,t){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var n=[],r=[],a=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);a&&a[1]&&a[1].split(/<\/\w*:?author>/).forEach((function(e){if(""!==e&&""!==e.trim()){var t=e.match(/<(?:\w+:)?author[^>]*>(.*)/);t&&n.push(t[1])}}));var s=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return s&&s[1]&&s[1].split(/<\/\w*:?comment>/).forEach((function(e){if(""!==e&&""!==e.trim()){var a=e.match(/<(?:\w+:)?comment[^>]*>/);if(a){var s=we(a[0]),i={author:s.authorId&&n[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid},o=Kt(s.ref);if(!(t.sheetRows&&t.sheetRows<=o.r)){var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),u=!!l&&!!l[1]&&Pa(l[1])||{r:"",t:"",h:""};i.r=u.r,""==u.r&&(u.t=u.h=""),i.t=u.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),t.cellHTML&&(i.h=u.h),r.push(i)}}}})),r}(e,n)}(ce(e,a,!0),a,l))||!b.length)return;!function(e,t){var n,r=Array.isArray(e);t.forEach((function(t){var a=Kt(t.ref);if(r?(e[a.r]||(e[a.r]=[]),n=e[a.r][a.c]):n=e[t.ref],!n){n={t:"z"},r?e[a.r][a.c]=n:e[t.ref]=n;var s=Qt(e["!ref"]||"BDWGO1000001:A1");s.s.r>a.r&&(s.s.r=a.r),s.e.ra.c&&(s.s.c=a.c),s.e.c0?t.calcchains[0]:"",t.sst=t.strs.length>0?t.strs[0]:"",t.style=t.styles.length>0?t.styles[0]:"",t.defaults=n,delete t.calcchains,t}(he(e,"[Content_Types].xml")),i=!1;if(0===s.workbooks.length&&ce(e,r="xl/workbook.xml",!0)&&s.workbooks.push(r),0===s.workbooks.length){if(!ce(e,r="xl/workbook.bin",!0))throw new Error("Could not find workbook");s.workbooks.push(r),i=!0}"bin"==s.workbooks[0].slice(-3)&&(i=!0);var o={},l={};if(!t.bookSheets&&!t.bookProps){if(to=[],s.sst)try{to=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=!1;return Pt(e,(function(e,a,s){switch(s){case 159:n.Count=e[0],n.Unique=e[1];break;case 19:n.push(e);break;case 160:return!0;case 35:r=!0;break;case 36:r=!1;break;default:if(a.indexOf("Begin")>0||a.indexOf("End"),!r||t.WTF)throw new Error("Unexpected record "+s+" "+a)}})),n}(e,n):function(e,t){var n=[],r="";if(!e)return n;var a=e.match(La);if(a){r=a[2].replace(za,"").split(Wa);for(var s=0;s!=r.length;++s){var i=Pa(r[s].trim(),t);null!=i&&(n[n.length]=i)}a=we(a[1]),n.Count=a.count,n.Unique=a.uniqueCount}return n}(e,n)}(ce(e,du(s.sst)),s.sst,t)}catch(e){if(t.WTF)throw e}t.cellStyles&&s.themes.length&&(o=function(e,t,n){return Hs(e,n)}(he(e,s.themes[0].replace(/^\//,""),!0)||"",s.themes[0],t)),s.style&&(l=function(e,t,n,r){return".bin"===t.slice(-4)?function(e,t,n){var r={NumberFmt:[]};for(var a in D._table)r.NumberFmt[a]=D._table[a];r.CellXf=[],r.Fonts=[];var s=[],i=!1;return Pt(e,(function(e,a,o){switch(o){case 44:r.NumberFmt[e[0]]=e[1],D.load(e[1],e[0]);break;case 43:r.Fonts.push(e),null!=e.color.theme&&t&&t.themeElements&&t.themeElements.clrScheme&&(e.color.rgb=ls(t.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0));break;case 1025:case 45:case 46:break;case 47:"BrtBeginCellXFs"==s[s.length-1]&&r.CellXf.push(e);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:i=!0;break;case 36:i=!1;break;case 37:s.push(a),i=!0;break;case 38:s.pop(),i=!1;break;default:if((a||"").indexOf("Begin")>0)s.push(a);else if((a||"").indexOf("End")>0)s.pop();else if(!i||n.WTF&&"BrtACBegin"!=s[s.length-1])throw new Error("Unexpected record "+o+" "+a)}})),r}(e,n,r):Ss(e,n,r)}(ce(e,du(s.style)),s.style,o,t))}s.links.map((function(n){try{return Xn(he(e,qn(du(n))),n),function(e,t,n,r){if(".bin"===n.slice(-4))return function(e,t,n,r){if(!e)return e;var a=r||{},s=!1;Pt(e,(function(e,t,n){switch(n){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:s=!0;break;case 36:s=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!s||a.WTF)throw new Error("Unexpected record "+n.toString(16)+" "+t)}}),a)}(e,0,0,r)}(ce(e,du(n)),0,n,t)}catch(e){}}));var u=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},r=[],a=!1;t||(t={}),t.biff=12;var s=[],i=[[]];return i.SheetNames=[],i.XTI=[],Pt(e,(function(e,o,l){switch(l){case 156:i.SheetNames.push(e.name),n.Sheets.push(e);break;case 153:n.WBProps=e;break;case 39:null!=e.Sheet&&(t.SID=e.Sheet),e.Ref=zi(e.Ptg,0,null,i,t),delete t.SID,delete e.Ptg,s.push(e);break;case 1036:break;case 357:case 358:case 355:case 667:i[0].length?i.push([l,e]):i[0]=[l,e],i[i.length-1].XTI=[];break;case 362:0===i.length&&(i[0]=[],i[0].XTI=[]),i[i.length-1].XTI=i[i.length-1].XTI.concat(e),i.XTI=i.XTI.concat(e);break;case 361:break;case 3072:case 3073:case 2071:case 534:case 677:case 158:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:r.push(o),a=!0;break;case 36:r.pop(),a=!1;break;case 37:r.push(o),a=!0;break;case 38:r.pop(),a=!1;break;case 16:break;default:if((o||"").indexOf("Begin")>0);else if((o||"").indexOf("End")>0);else if(!a||t.WTF&&"BrtACBegin"!=r[r.length-1]&&"BrtFRTBegin"!=r[r.length-1])throw new Error("Unexpected record "+l+" "+o)}}),t),Ko(n),n.Names=s,n.supbooks=i,n}(e,n):function(e,t){if(!e)throw new Error("Could not find file");var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},r=!1,a="xmlns",s={},i=0;if(e.replace(ye,(function(o,l){var u=we(o);switch(_e(u[0])){case"":break;case"":case"":case"":break;case"":Vo.forEach((function(e){if(null!=u[e[0]])switch(e[2]){case"bool":n.WBProps[e[0]]=Oe(u[e[0]]);break;case"int":n.WBProps[e[0]]=parseInt(u[e[0]],10);break;default:n.WBProps[e[0]]=u[e[0]]}})),u.codeName&&(n.WBProps.CodeName=Be(u.codeName));break;case"":case"":break;case"":case"":break;case"":delete u[0],n.WBView.push(u);break;case"":break;case"":case"":break;case"":break;case"":case"":case"":case"":break;case"":case"":r=!1;break;case"":s.Ref=Se(Be(e.slice(i,l))),n.Names.push(s);break;case"":break;case"":delete u[0],n.CalcPr=u;break;case"":case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":case"":case"":case"":break;case"":r=!1;break;case"":r=!0;break;case"":r=!1;break;case"]*>([\\s\\S]*?)"));s&&s.length>0&&(r[n[1]]=s[1])}})),r.HeadingPairs&&r.TitlesOfParts&&lr(r.HeadingPairs,r.TitlesOfParts,t,n)}(h,c,t));var f={};t.bookSheets&&!t.bookProps||0!==s.custprops.length&&(h=he(e,du(s.custprops[0]),!0))&&(f=function(e,t){var n={},r="",a=e.match(cr);if(a)for(var s=0;s!=a.length;++s){var i=a[s],o=we(i);switch(o[0]){case"":r=null;break;default:if(0===i.indexOf(""),u=l[0].slice(4),c=l[1];switch(u){case"lpstr":case"bstr":case"lpwstr":n[r]=Se(c);break;case"bool":n[r]=Oe(c);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":n[r]=parseInt(c,10);break;case"r4":case"r8":case"decimal":n[r]=parseFloat(c);break;case"filetime":case"date":n[r]=Q(c);break;case"cy":case"error":n[r]=Se(c);break;default:if("/"==u.slice(-1))break;t.WTF&&"undefined"!=typeof console&&console.warn("Unexpected",i,u,l)}}else if("0&&(n=c.SheetNames),t.bookProps&&(d.Props=c,d.Custprops=f),t.bookSheets&&void 0!==n&&(d.SheetNames=n),t.bookSheets?d.SheetNames:t.bookProps))return d;n={};var p,m={};t.bookDeps&&s.calcchain&&(p=ce(e,du(s.calcchain)),m=".bin"===s.calcchain.slice(-4)?function(e,t,n){var r=[];return Pt(e,(function(e,t,n){switch(n){case 63:r.push(e);break;default:if((t||"").indexOf("Begin")>0);else if(!((t||"").indexOf("End")>0))throw new Error("Unexpected record "+n+" "+t)}})),r}(p):function(e){var t=[];if(!e)return t;var n=1;return(e.match(ye)||[]).forEach((function(e){var r=we(e);switch(r[0]){case"":case"":break;case"-1?"sheet":Gn.CS&&n==Gn.CS?"chart":Gn.DS&&n==Gn.DS?"dialog":Gn.MS&&n==Gn.MS?"macro":n&&n.length?n:"sheet")];var n}))}catch(e){return null}return e&&0!==e.length?e:null}(C,u.Sheets));var S=ce(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(b=0;b!=c.Worksheets;++b){var N="sheet";if(C&&C[b]?(g="xl/"+C[b][1].replace(/[\/]?xl\//,""),le(e,g)||(g=C[b][1]),le(e,g)||(g=E.replace(/_rels\/.*$/,"")+C[b][1]),N=C[b][2]):g=(g="xl/worksheets/sheet"+(b+1-S)+"."+x).replace(/sheet0\./,"sheet."),y=g.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),t&&null!=t.sheets)switch(typeof t.sheets){case"number":if(b!=t.sheets)continue e;break;case"string":if(c.SheetNames[b].toLowerCase()!=t.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(t.sheets)){for(var I=!1,T=0;T!=t.sheets.length;++T)"number"==typeof t.sheets[T]&&t.sheets[T]==b&&(I=1),"string"==typeof t.sheets[T]&&t.sheets[T].toLowerCase()==c.SheetNames[b].toLowerCase()&&(I=1);if(!I)continue e}}fu(e,g,y,c.SheetNames[b],b,v,n,N,t,u,o,l)}return d={Directory:s,Workbook:u,Props:c,Custprops:f,Deps:m,Sheets:n,SheetNames:c.SheetNames,Strings:to,Styles:l,Themes:o,SSF:D.get_table()},t&&t.bookFiles&&(d.keys=a,d.files=e.files),t&&t.bookVBA&&(s.vba.length>0?d.vbaraw=ce(e,du(s.vba[0]),!0):s.defaults&&"application/vnd.ms-office.vbaProject"===s.defaults.bin&&(d.vbaraw=ce(e,"xl/vbaProject.bin",!0))),d}function mu(e,t){var n=t||{},r="Workbook",a=M.find(e,r);try{if(r="/!DataSpaces/Version",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(function(e){var t={};t.id=e.read_shift(0,"lpp4"),t.R=qa(e,4),t.U=qa(e,4),t.W=qa(e,4)}(a.content),r="/!DataSpaces/DataSpaceMap",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var s=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(Xa(e));return t}(a.content);if(1!==s.length||1!==s[0].comps.length||0!==s[0].comps[0].t||"StrongEncryptionDataSpace"!==s[0].name||"EncryptedPackage"!==s[0].comps[0].v)throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var i=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(e.read_shift(0,"lpp4"));return t}(a.content);if(1!=i.length||"StrongEncryptionTransform"!=i[0])throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);!function(e){var t=function(e){var t={};return e.read_shift(4),e.l+=4,t.id=e.read_shift(0,"lpp4"),t.name=e.read_shift(0,"lpp4"),t.R=qa(e,4),t.U=qa(e,4),t.W=qa(e,4),t}(e);if(t.ename=e.read_shift(0,"8lpp4"),t.blksz=e.read_shift(4),t.cmode=e.read_shift(4),4!=e.read_shift(4))throw new Error("Bad !Primary record")}(a.content)}catch(e){}if(r="/EncryptionInfo",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var o=function(e){var t=qa(e);switch(t.Minor){case 2:return[t.Minor,Ja(e)];case 3:return[t.Minor,Za()];case 4:return[t.Minor,Qa(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}(a.content);if(r="/EncryptedPackage",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(4==o[0]&&"undefined"!=typeof decrypt_agile)return decrypt_agile(o[1],a.content,n.password||"",n);if(2==o[0]&&"undefined"!=typeof decrypt_std76)return decrypt_std76(o[1],a.content,n.password||"",n);throw new Error("File is password-protected")}function gu(e,t){if(Xs=1024,"ods"==t.bookType)return Zl(e,t);e&&!e.SSF&&(e.SSF=D.get_table()),e&&e.SSF&&(A(D),D.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ro?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var n="xlsb"==t.bookType?"bin":"xml",r=ei.indexOf(t.bookType)>-1,a={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""};hu(t=t||{});var s=de(),i="",o=0;if(t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),fe(s,i="docProps/core.xml",function(e,t){var n=t||{},r=[me,sr],a={};if(!e&&!n.Props)return r.join("");e&&(null!=e.CreatedDate&&ir("dcterms:created","string"==typeof e.CreatedDate?e.CreatedDate:Qe(e.CreatedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a),null!=e.ModifiedDate&&ir("dcterms:modified","string"==typeof e.ModifiedDate?e.ModifiedDate:Qe(e.ModifiedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a));for(var s=0;s!=nr.length;++s){var i=nr[s],o=n.Props&&null!=n.Props[i[1]]?n.Props[i[1]]:e?e[i[1]]:null;!0===o?o="1":!1===o?o="0":"number"==typeof o&&(o=String(o)),null!=o&&ir(i[0],o,null,r,a)}return r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(e.Props,t)),a.coreprops.push(i),Zn(t.rels,2,i,Gn.CORE_PROPS),i="docProps/app.xml",e.Props&&e.Props.SheetNames);else if(e.Workbook&&e.Workbook.Sheets){for(var l=[],u=0;uWorksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"})),t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map((function(e){return""+De(e)+""})).join(""),{size:e.Worksheets,baseType:"lpstr"})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Props)),a.extprops.push(i),Zn(t.rels,3,i,Gn.EXT_PROPS),e.Custprops!==e.Props&&z(e.Custprops||{}).length>0&&(fe(s,i="docProps/custom.xml",function(e){var t=[me,hr];if(!e)return t.join("");var n=1;return z(e).forEach((function(r){++n,t[t.length]=Ze("property",function(e,t){switch(typeof e){case"string":var n=Ze("vt:lpwstr",De(e));return n.replace(/"/g,"_x0022_");case"number":return Ze((0|e)==e?"vt:i4":"vt:r8",De(String(e)));case"boolean":return Ze("vt:bool",e?"true":"false")}if(e instanceof Date)return Ze("vt:filetime",Qe(e));throw new Error("Unable to serialize "+e)}(e[r]),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:n,name:De(r)})})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Custprops)),a.custprops.push(i),Zn(t.rels,4,i,Gn.CUST_PROPS)),o=1;o<=e.SheetNames.length;++o){var c={"!id":{}},h=e.Sheets[e.SheetNames[o-1]];switch((h||{})["!type"]||"sheet"){case"chart":default:fe(s,i="xl/worksheets/sheet"+o+"."+n,sl(o-1,i,t,e,c)),a.sheets.push(i),Zn(t.wbrels,-1,"worksheets/sheet"+o+"."+n,Gn.WS[0])}if(h){var f=h["!comments"],d=!1;if(f&&f.length>0){var p="xl/comments"+o+"."+n;fe(s,p,ol(f,p,t)),a.comments.push(p),Zn(c,-1,"../comments"+o+"."+n,Gn.CMNT),d=!0}h["!legacy"]&&d&&fe(s,"xl/drawings/vmlDrawing"+o+".vml",Ks(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,qn(i),Yn(c))}return null!=t.Strings&&t.Strings.length>0&&(fe(s,i="xl/sharedStrings."+n,il(t.Strings,i,t)),a.strs.push(i),Zn(t.wbrels,-1,"sharedStrings."+n,Gn.SST)),fe(s,i="xl/workbook."+n,al(e,i,t)),a.workbooks.push(i),Zn(t.rels,1,i,Gn.WB),fe(s,i="xl/theme/theme1.xml",Gs(e.Themes,t)),a.themes.push(i),Zn(t.wbrels,-1,"theme/theme1.xml",Gn.THEME),fe(s,i="xl/styles."+n,function(e,t,n){return(".bin"===t.slice(-4)?Ms:Is)(e,n)}(e,i,t)),a.styles.push(i),Zn(t.wbrels,-1,"styles."+n,Gn.STY),e.vbaraw&&r&&(fe(s,i="xl/vbaProject.bin",e.vbaraw),a.vba.push(i),Zn(t.wbrels,-1,"vbaProject.bin",Gn.VBA)),fe(s,"[Content_Types].xml",function(e,t){var n,r=[];r[r.length]=me,r[r.length]=jn,r=r.concat(Hn);var a=function(a){e[a]&&e[a].length>0&&(n=e[a][0],r[r.length]=Ze("Override",null,{PartName:("/"==n[0]?"":"/")+n,ContentType:Un[a][t.bookType||"xlsx"]}))},s=function(n){(e[n]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Un[n][t.bookType||"xlsx"]})}))},i=function(t){(e[t]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Vn[t][0]})}))};return a("workbooks"),s("sheets"),s("charts"),i("themes"),["strs","styles"].forEach(a),["coreprops","extprops","custprops"].forEach(i),i("vba"),i("comments"),i("drawings"),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(a,t)),fe(s,"_rels/.rels",Yn(t.rels)),fe(s,"xl/_rels/workbook."+n+".rels",Yn(t.wbrels)),delete t.revssf,delete t.ssf,s}function yu(e,t){var n="";switch((t||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":n=g.decode(e.slice(0,12));break;case"binary":n=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(t&&t.type||"undefined"))}return[n.charCodeAt(0),n.charCodeAt(1),n.charCodeAt(2),n.charCodeAt(3),n.charCodeAt(4),n.charCodeAt(5),n.charCodeAt(6),n.charCodeAt(7)]}function bu(e,t){var n=0;e:for(;n=2&&0===n[3])return Ra.to_workbook(r,s);break;case 3:case 131:case 139:case 140:return Na.to_workbook(r,s);case 123:if(92===n[1]&&114===n[2]&&116===n[3])return is.to_workbook(r,s);break;case 10:case 13:case 32:return function(e,t){var n="",r=yu(e,t);switch(t.type){case"base64":n=g.decode(e);break;case"binary":n=e;break;case"buffer":n=e.toString("binary");break;case"array":n=ee(e);break;default:throw new Error("Unrecognized type "+t.type)}return 239==r[0]&&187==r[1]&&191==r[2]&&(n=Be(n)),bu(n,t)}(r,s)}return Na.versions.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31?Na.to_workbook(r,s):vu(e,r,s,a)}function _u(e,t){var n=t||{};return n.type="file",wu(e,n)}function xu(e,t){switch(t.type){case"base64":case"binary":break;case"buffer":case"array":t.type="";break;case"file":return L(t.file,M.write(e,{type:y?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");default:throw new Error("Unrecognized type "+t.type)}return M.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Me(r));case"binary":return Me(r);case"string":return e;case"file":return L(t.file,r,"utf8");case"buffer":return y?b(r,"utf8"):ku(r,{type:"binary"}).split("").map((function(e){return e.charCodeAt(0)}))}throw new Error("Unrecognized type "+t.type)}function Eu(e,t){switch(t.type){case"string":case"base64":case"binary":for(var n="",r=0;r22)throw new Error("Bad Code Name: Worksheet"+i)}}));for(var s=0;s-1||null!=s[i][1]&&o.push(s[i]);a.length&&M.utils.cfb_add(t,"/SummaryInformation",Ar(a,Il,Bn,Tn)),(r.length||o.length)&&M.utils.cfb_add(t,"/DocumentSummaryInformation",Ar(r,Dl,On,An,o.length?o:null,"05d5cdd59c2e1b10939708002b2cf9ae"))}(e,r),8==n.biff&&e.vbaraw&&function(e,t){t.FullPaths.forEach((function(n,r){if(0!=r){var a=n.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");"/"!==a.slice(-1)&&M.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,M.read(e.vbaraw,{type:"string"==typeof e.vbaraw?"binary":"buffer"})),r}(e,n),n)}(e,n);case"xlsx":case"xlsm":case"xlam":case"xlsb":case"ods":return function(e,t){var n=t||{},r=gu(e,n),a={};if(n.compression&&(a.compression="DEFLATE"),n.password)a.type=y?"nodebuffer":"string";else switch(n.type){case"base64":a.type="base64";break;case"binary":a.type="string";break;case"string":throw new Error("'string' output type invalid for '"+n.bookType+"' files");case"buffer":case"file":a.type=y?"nodebuffer":"string";break;default:throw new Error("Unrecognized type "+n.type)}var s=r.FullPaths?M.write(r,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[a.type]||a.type}):r.generate(a);return n.password&&"undefined"!=typeof encrypt_agile?xu(encrypt_agile(s,n.password),n):"file"===n.type?L(n.file,s):"string"==n.type?Be(s):s}(e,n);default:throw new Error("Unrecognized bookType |"+n.bookType+"|")}}function Su(e){if(!e.bookType){var t=e.file.slice(e.file.lastIndexOf(".")).toLowerCase();t.match(/^\.[a-z]+$/)&&(e.bookType=t.slice(1)),e.bookType={xls:"biff8",htm:"html",slk:"sylk",socialcalc:"eth",Sh33tJS:"WTF"}[e.bookType]||e.bookType}}function Nu(e,t,n){var r=n||{};return r.type="file",r.file=t,Su(r),Cu(e,r)}function Iu(e,t,n,r,a,s,i,o){var l=Gt(n),u=o.defval,c=o.raw||!Object.prototype.hasOwnProperty.call(o,"raw"),h=!0,f=1===a?[]:{};if(1!==a)if(Object.defineProperty)try{Object.defineProperty(f,"__rowNum__",{value:n,enumerable:!1})}catch(e){f.__rowNum__=n}else f.__rowNum__=n;if(!i||e[n])for(var d=t.s.c;d<=t.e.c;++d){var p=i?e[n][d]:e[r[d]+l];if(void 0!==p&&void 0!==p.t){var m=p.v;switch(p.t){case"z":if(null==m)break;continue;case"e":m=void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+p.t)}if(null!=s[d]){if(null==m)if(void 0!==u)f[s[d]]=u;else{if(!c||null!==m)continue;f[s[d]]=null}else f[s[d]]=c||o.rawNumbers&&"n"==p.t?m:en(p,m,o);null!=m&&(h=!1)}}else{if(void 0===u)continue;null!=s[d]&&(f[s[d]]=u)}}return{row:f,isempty:h}}function Du(e,t){if(null==e||null==e["!ref"])return[];var n={t:"n",v:0},r=0,a=1,s=[],i=0,o="",l={s:{r:0,c:0},e:{r:0,c:0}},u=t||{},c=null!=u.range?u.range:e["!ref"];switch(1===u.header?r=1:"A"===u.header?r=2:Array.isArray(u.header)?r=3:null==u.header&&(r=0),typeof c){case"string":l=Qt(c);break;case"number":(l=Qt(e["!ref"])).s.r=c;break;default:l=c}r>0&&(a=0);var h=Gt(l.s.r),f=[],d=[],p=0,m=0,g=Array.isArray(e),y=l.s.r,b=0,v=0;for(g&&!e[y]&&(e[y]=[]),b=l.s.c;b<=l.e.c;++b)switch(f[b]=Xt(b),n=g?e[y][b]:e[f[b]+h],r){case 1:s[b]=b-l.s.c;break;case 2:s[b]=f[b];break;case 3:s[b]=u.header[b-l.s.c];break;default:for(null==n&&(n={w:"__EMPTY",t:"s"}),o=i=en(n,null,u),m=0,v=0;v=0&&(c='"'+c.replace(Au,'""')+'"'));u.push(c)}return!1===o.blankrows&&l?null:u.join(i)}function Ru(e,t){var n=[],r=null==t?{}:t;if(null==e||null==e["!ref"])return"";var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Xt(p));for(var m=a.s.r;m<=a.e.r;++m)(d[m]||{}).hidden||null!=(c=Tu(e,a,m,h,i,l,s,r))&&(r.strip&&(c=c.replace(u,"")),n.push(c+o));return delete r.dense,n.join("")}function Fu(e,t){t||(t={}),t.FS="\t",t.RS="\n";var n=Ru(e,t);if("undefined"==typeof cptable||"string"==t.type)return n;var r=cptable.utils.encode(1200,n,"str");return String.fromCharCode(255)+String.fromCharCode(254)+r}function Ou(e){var t,n="",r="";if(null==e||null==e["!ref"])return[];var a,s=Qt(e["!ref"]),i="",o=[],l=[],u=Array.isArray(e);for(a=s.s.c;a<=s.e.c;++a)o[a]=Xt(a);for(var c=s.s.r;c<=s.e.r;++c)for(i=Gt(c),a=s.s.c;a<=s.e.c;++a)if(n=o[a]+i,r="",void 0!==(t=u?(e[c]||[])[a]:e[n])){if(null!=t.F){if(n=t.F,!t.f)continue;r=t.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=t.f)r=t.f;else{if("z"==t.t)continue;if("n"==t.t&&null!=t.v)r=""+t.v;else if("b"==t.t)r=t.v?"TRUE":"FALSE";else if(void 0!==t.w)r="'"+t.w;else{if(void 0===t.v)continue;r="s"==t.t?"'"+t.v:""+t.v}}l[l.length]=n+"="+r}return l}function Bu(e,t,n){var r,a=n||{},s=+!a.skipHeader,i=e||{},o=0,l=0;if(i&&null!=a.origin)if("number"==typeof a.origin)o=a.origin;else{var u="string"==typeof a.origin?Kt(a.origin):a.origin;o=u.r,l=u.c}var c={s:{c:0,r:0},e:{c:l,r:o+t.length-1+s}};if(i["!ref"]){var h=Qt(i["!ref"]);c.e.c=Math.max(c.e.c,h.e.c),c.e.r=Math.max(c.e.r,h.e.r),-1==o&&(o=h.e.r+1,c.e.r=o+t.length-1+s)}else-1==o&&(o=0,c.e.r=t.length-1+s);var f=a.header||[],d=0;t.forEach((function(e,t){z(e).forEach((function(n){-1==(d=f.indexOf(n))&&(f[d=f.length]=n);var u=e[n],c="z",h="",p=Yt({c:l+d,r:o+t+s});r=$u.sheet_get_cell(i,p),!u||"object"!=typeof u||u instanceof Date?("number"==typeof u?c="n":"boolean"==typeof u?c="b":"string"==typeof u?c="s":u instanceof Date&&(c="d",a.cellDates||(c="n",u=H(u)),h=a.dateNF||D._table[14]),r?(r.t=c,r.v=u,delete r.w,delete r.R,h&&(r.z=h)):i[p]=r={t:c,v:u},h&&(r.z=h)):i[p]=u}))})),c.e.c=Math.max(c.e.c,l+f.length-1);var p=Gt(o);if(s)for(d=0;d=65535)throw new Error("Too many worksheets");if(Jo(n),e.SheetNames.indexOf(n)>=0)throw new Error("Worksheet with name |"+n+"| already exists!");e.SheetNames.push(n),e.Sheets[n]=t},e.book_set_sheet_visibility=function(e,n,r){t(e,"Workbook",{}),t(e.Workbook,"Sheets",[]);var a=function(e,t){if("number"==typeof t){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}if("string"==typeof t){var n=e.SheetNames.indexOf(t);if(n>-1)return n;throw new Error("Cannot find sheet name |"+t+"|")}throw new Error("Cannot find sheet |"+t+"|")}(e,n);switch(t(e.Workbook.Sheets,a,{}),r){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+r)}e.Workbook.Sheets[a].Hidden=r},[["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]].forEach((function(t){e.consts[t[0]]=t[1]})),e.cell_set_number_format=function(e,t){return e.z=t,e},e.cell_set_hyperlink=function(e,t,n){return t?(e.l={Target:t},n&&(e.l.Tooltip=n)):delete e.l,e},e.cell_set_internal_link=function(t,n,r){return e.cell_set_hyperlink(t,"#"+n,r)},e.cell_add_comment=function(e,t,n){e.c||(e.c=[]),e.c.push({t,a:n||"SheetJS"})},e.sheet_set_array_formula=function(e,t,r){for(var a="string"!=typeof t?t:Qt(t),s="string"==typeof t?t:Zt(t),i=a.s.r;i<=a.e.r;++i)for(var o=a.s.c;o<=a.e.c;++o){var l=n(e,i,o);l.t="n",l.F=s,delete l.v,i==a.s.r&&o==a.s.c&&(l.f=r)}return e}}($u),y&&(Mu=n(791).Readable,t.stream={to_json:function(e,t){var n=Mu({objectMode:!0});if(null==e||null==e["!ref"])return n.push(null),n;var r={t:"n",v:0},a=0,s=1,i=[],o=0,l="",u={s:{r:0,c:0},e:{r:0,c:0}},c=t||{},h=null!=c.range?c.range:e["!ref"];switch(1===c.header?a=1:"A"===c.header?a=2:Array.isArray(c.header)&&(a=3),typeof h){case"string":u=Qt(h);break;case"number":(u=Qt(e["!ref"])).s.r=h;break;default:u=h}a>0&&(s=0);var f=Gt(u.s.r),d=[],p=0,m=Array.isArray(e),g=u.s.r,y=0,b=0;for(m&&!e[g]&&(e[g]=[]),y=u.s.c;y<=u.e.c;++y)switch(d[y]=Xt(y),r=m?e[g][y]:e[d[y]+f],a){case 1:i[y]=y-u.s.c;break;case 2:i[y]=d[y];break;case 3:i[y]=c.header[y-u.s.c];break;default:for(null==r&&(r={w:"__EMPTY",t:"s"}),l=o=en(r,null,c),p=0,b=0;bu.e.r)return n.push(null);for(;g<=u.e.r;){var t=Iu(e,u,g,d,a,i,m,c);if(++g,!1===t.isempty||(1===a?!1!==c.blankrows:c.blankrows)){n.push(t.row);break}}},n},to_html:function(e,t){var n=Mu(),r=t||{},a=null!=r.header?r.header:Ul.BEGIN,s=null!=r.footer?r.footer:Ul.END;n.push(a);var i=Jt(e["!ref"]);r.dense=Array.isArray(e),n.push(Ul._preamble(e,i,r));var o=i.s.r,l=!1;return n._read=function(){if(o>i.e.r)return l||(l=!0,n.push(""+s)),n.push(null);for(;o<=i.e.r;){n.push(Ul._row(e,i,o,r)),++o;break}},n},to_csv:function(e,t){var n=Mu(),r=null==t?{}:t;if(null==e||null==e["!ref"])return n.push(null),n;var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Xt(p));var m=a.s.r,g=!1;return n._read=function(){if(!g)return g=!0,n.push("\ufeff");for(;m<=a.e.r;)if(++m,!(d[m-1]||{}).hidden&&null!=(c=Tu(e,a,m-1,h,i,l,s,r))){r.strip&&(c=c.replace(u,"")),n.push(c+o);break}return m>a.e.r?n.push(null):void 0},n}}),t.parse_xlscfb=Al,t.parse_zip=pu,t.read=wu,t.readFile=_u,t.readFileSync=_u,t.write=Cu,t.writeFile=Nu,t.writeFileSync=Nu,t.writeFileAsync=function(e,t,n,r){var a=n||{};a.type="file",a.file=e,Su(a),a.type="buffer";var s=r;return s instanceof Function||(s=n),B.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=D,void 0!==M&&(t.CFB=M)}(t)},3906:()=>{},2993:()=>{},8352:()=>{},791:()=>{},4589:()=>{},1758:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(2476)})(); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/danfojs-browser/lib/bundle.js.LICENSE.txt b/danfojs-browser/lib/bundle.js.LICENSE.txt index 4edd5d32..a54df15a 100644 --- a/danfojs-browser/lib/bundle.js.LICENSE.txt +++ b/danfojs-browser/lib/bundle.js.LICENSE.txt @@ -146,23 +146,6 @@ * ============================================================================= */ -/** - * @license - * Copyright 2021 Google LLC. All Rights Reserved. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================================= - */ - /** * @license Complex.js v2.0.11 11/02/2016 * diff --git a/danfojs-browser/lib/bundle.js.map b/danfojs-browser/lib/bundle.js.map index cc9f1615..defab4e3 100644 --- a/danfojs-browser/lib/bundle.js.map +++ b/danfojs-browser/lib/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://dfd/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://dfd/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/regenerator/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util_base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/environment.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/global_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_names.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/profiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_format.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/engine.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/device_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/flags.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/operation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/model_management.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/print.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/progress.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/http.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/test_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/globals.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/eye.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moments.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/variable.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/train.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/browser_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/errors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/state.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/variables.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/logs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/losses.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/container.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/optimizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/models.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/core.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasource.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/source_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/readers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js","webpack://dfd/./node_modules/ajv/lib/compile/equal.js","webpack://dfd/./node_modules/astral-regex/index.js","webpack://dfd/./src/config/config.js","webpack://dfd/./src/core/concat.js","webpack://dfd/./src/core/frame.js","webpack://dfd/./src/core/generic.js","webpack://dfd/./src/core/groupby.js","webpack://dfd/./src/core/indexing.js","webpack://dfd/./src/core/series.js","webpack://dfd/./src/core/strings.js","webpack://dfd/./src/core/timeseries.js","webpack://dfd/./src/core/utils.js","webpack://dfd/./src/io/reader.js","webpack://dfd/./src/core/merge.js","webpack://dfd/./src/preprocessing/encodings.js","webpack://dfd/./src/preprocessing/scalers.js","webpack://dfd/./src/core/date_range.js","webpack://dfd/./src/core/get_dummies.js","webpack://dfd/./src/index.js","webpack://dfd/./src/plotting/plot.js","webpack://dfd/./node_modules/complex.js/complex.js","webpack://dfd/./node_modules/decimal.js/decimal.js","webpack://dfd/./node_modules/fast-deep-equal/index.js","webpack://dfd/./node_modules/fraction.js/fraction.js","webpack://dfd/./node_modules/is-fullwidth-code-point/index.js","webpack://dfd/./node_modules/javascript-natural-sort/naturalSort.js","webpack://dfd/./node_modules/lodash/_DataView.js","webpack://dfd/./node_modules/lodash/_Hash.js","webpack://dfd/./node_modules/lodash/_ListCache.js","webpack://dfd/./node_modules/lodash/_Map.js","webpack://dfd/./node_modules/lodash/_MapCache.js","webpack://dfd/./node_modules/lodash/_Promise.js","webpack://dfd/./node_modules/lodash/_Set.js","webpack://dfd/./node_modules/lodash/_SetCache.js","webpack://dfd/./node_modules/lodash/_Stack.js","webpack://dfd/./node_modules/lodash/_Symbol.js","webpack://dfd/./node_modules/lodash/_Uint8Array.js","webpack://dfd/./node_modules/lodash/_WeakMap.js","webpack://dfd/./node_modules/lodash/_arrayEach.js","webpack://dfd/./node_modules/lodash/_arrayFilter.js","webpack://dfd/./node_modules/lodash/_arrayLikeKeys.js","webpack://dfd/./node_modules/lodash/_arrayMap.js","webpack://dfd/./node_modules/lodash/_arrayPush.js","webpack://dfd/./node_modules/lodash/_arraySome.js","webpack://dfd/./node_modules/lodash/_asciiSize.js","webpack://dfd/./node_modules/lodash/_asciiToArray.js","webpack://dfd/./node_modules/lodash/_assignValue.js","webpack://dfd/./node_modules/lodash/_assocIndexOf.js","webpack://dfd/./node_modules/lodash/_baseAssign.js","webpack://dfd/./node_modules/lodash/_baseAssignIn.js","webpack://dfd/./node_modules/lodash/_baseAssignValue.js","webpack://dfd/./node_modules/lodash/_baseClone.js","webpack://dfd/./node_modules/lodash/_baseCreate.js","webpack://dfd/./node_modules/lodash/_baseExtremum.js","webpack://dfd/./node_modules/lodash/_baseFindIndex.js","webpack://dfd/./node_modules/lodash/_baseFlatten.js","webpack://dfd/./node_modules/lodash/_baseFor.js","webpack://dfd/./node_modules/lodash/_baseForOwn.js","webpack://dfd/./node_modules/lodash/_baseGet.js","webpack://dfd/./node_modules/lodash/_baseGetAllKeys.js","webpack://dfd/./node_modules/lodash/_baseGetTag.js","webpack://dfd/./node_modules/lodash/_baseGt.js","webpack://dfd/./node_modules/lodash/_baseHasIn.js","webpack://dfd/./node_modules/lodash/_baseIndexOf.js","webpack://dfd/./node_modules/lodash/_baseIsArguments.js","webpack://dfd/./node_modules/lodash/_baseIsEqual.js","webpack://dfd/./node_modules/lodash/_baseIsEqualDeep.js","webpack://dfd/./node_modules/lodash/_baseIsMap.js","webpack://dfd/./node_modules/lodash/_baseIsMatch.js","webpack://dfd/./node_modules/lodash/_baseIsNaN.js","webpack://dfd/./node_modules/lodash/_baseIsNative.js","webpack://dfd/./node_modules/lodash/_baseIsRegExp.js","webpack://dfd/./node_modules/lodash/_baseIsSet.js","webpack://dfd/./node_modules/lodash/_baseIsTypedArray.js","webpack://dfd/./node_modules/lodash/_baseIteratee.js","webpack://dfd/./node_modules/lodash/_baseKeys.js","webpack://dfd/./node_modules/lodash/_baseKeysIn.js","webpack://dfd/./node_modules/lodash/_baseMatches.js","webpack://dfd/./node_modules/lodash/_baseMatchesProperty.js","webpack://dfd/./node_modules/lodash/_baseProperty.js","webpack://dfd/./node_modules/lodash/_basePropertyDeep.js","webpack://dfd/./node_modules/lodash/_baseSlice.js","webpack://dfd/./node_modules/lodash/_baseTimes.js","webpack://dfd/./node_modules/lodash/_baseToString.js","webpack://dfd/./node_modules/lodash/_baseUnary.js","webpack://dfd/./node_modules/lodash/_baseValues.js","webpack://dfd/./node_modules/lodash/_cacheHas.js","webpack://dfd/./node_modules/lodash/_castFunction.js","webpack://dfd/./node_modules/lodash/_castPath.js","webpack://dfd/./node_modules/lodash/_castSlice.js","webpack://dfd/./node_modules/lodash/_charsEndIndex.js","webpack://dfd/./node_modules/lodash/_cloneArrayBuffer.js","webpack://dfd/./node_modules/lodash/_cloneBuffer.js","webpack://dfd/./node_modules/lodash/_cloneDataView.js","webpack://dfd/./node_modules/lodash/_cloneRegExp.js","webpack://dfd/./node_modules/lodash/_cloneSymbol.js","webpack://dfd/./node_modules/lodash/_cloneTypedArray.js","webpack://dfd/./node_modules/lodash/_copyArray.js","webpack://dfd/./node_modules/lodash/_copyObject.js","webpack://dfd/./node_modules/lodash/_copySymbols.js","webpack://dfd/./node_modules/lodash/_copySymbolsIn.js","webpack://dfd/./node_modules/lodash/_coreJsData.js","webpack://dfd/./node_modules/lodash/_createBaseFor.js","webpack://dfd/./node_modules/lodash/_defineProperty.js","webpack://dfd/./node_modules/lodash/_equalArrays.js","webpack://dfd/./node_modules/lodash/_equalByTag.js","webpack://dfd/./node_modules/lodash/_equalObjects.js","webpack://dfd/./node_modules/lodash/_freeGlobal.js","webpack://dfd/./node_modules/lodash/_getAllKeys.js","webpack://dfd/./node_modules/lodash/_getAllKeysIn.js","webpack://dfd/./node_modules/lodash/_getMapData.js","webpack://dfd/./node_modules/lodash/_getMatchData.js","webpack://dfd/./node_modules/lodash/_getNative.js","webpack://dfd/./node_modules/lodash/_getPrototype.js","webpack://dfd/./node_modules/lodash/_getRawTag.js","webpack://dfd/./node_modules/lodash/_getSymbols.js","webpack://dfd/./node_modules/lodash/_getSymbolsIn.js","webpack://dfd/./node_modules/lodash/_getTag.js","webpack://dfd/./node_modules/lodash/_getValue.js","webpack://dfd/./node_modules/lodash/_hasPath.js","webpack://dfd/./node_modules/lodash/_hasUnicode.js","webpack://dfd/./node_modules/lodash/_hashClear.js","webpack://dfd/./node_modules/lodash/_hashDelete.js","webpack://dfd/./node_modules/lodash/_hashGet.js","webpack://dfd/./node_modules/lodash/_hashHas.js","webpack://dfd/./node_modules/lodash/_hashSet.js","webpack://dfd/./node_modules/lodash/_initCloneArray.js","webpack://dfd/./node_modules/lodash/_initCloneByTag.js","webpack://dfd/./node_modules/lodash/_initCloneObject.js","webpack://dfd/./node_modules/lodash/_isFlattenable.js","webpack://dfd/./node_modules/lodash/_isIndex.js","webpack://dfd/./node_modules/lodash/_isKey.js","webpack://dfd/./node_modules/lodash/_isKeyable.js","webpack://dfd/./node_modules/lodash/_isMasked.js","webpack://dfd/./node_modules/lodash/_isPrototype.js","webpack://dfd/./node_modules/lodash/_isStrictComparable.js","webpack://dfd/./node_modules/lodash/_listCacheClear.js","webpack://dfd/./node_modules/lodash/_listCacheDelete.js","webpack://dfd/./node_modules/lodash/_listCacheGet.js","webpack://dfd/./node_modules/lodash/_listCacheHas.js","webpack://dfd/./node_modules/lodash/_listCacheSet.js","webpack://dfd/./node_modules/lodash/_mapCacheClear.js","webpack://dfd/./node_modules/lodash/_mapCacheDelete.js","webpack://dfd/./node_modules/lodash/_mapCacheGet.js","webpack://dfd/./node_modules/lodash/_mapCacheHas.js","webpack://dfd/./node_modules/lodash/_mapCacheSet.js","webpack://dfd/./node_modules/lodash/_mapToArray.js","webpack://dfd/./node_modules/lodash/_matchesStrictComparable.js","webpack://dfd/./node_modules/lodash/_memoizeCapped.js","webpack://dfd/./node_modules/lodash/_nativeCreate.js","webpack://dfd/./node_modules/lodash/_nativeKeys.js","webpack://dfd/./node_modules/lodash/_nativeKeysIn.js","webpack://dfd/./node_modules/lodash/_nodeUtil.js","webpack://dfd/./node_modules/lodash/_objectToString.js","webpack://dfd/./node_modules/lodash/_overArg.js","webpack://dfd/./node_modules/lodash/_root.js","webpack://dfd/./node_modules/lodash/_setCacheAdd.js","webpack://dfd/./node_modules/lodash/_setCacheHas.js","webpack://dfd/./node_modules/lodash/_setToArray.js","webpack://dfd/./node_modules/lodash/_stackClear.js","webpack://dfd/./node_modules/lodash/_stackDelete.js","webpack://dfd/./node_modules/lodash/_stackGet.js","webpack://dfd/./node_modules/lodash/_stackHas.js","webpack://dfd/./node_modules/lodash/_stackSet.js","webpack://dfd/./node_modules/lodash/_strictIndexOf.js","webpack://dfd/./node_modules/lodash/_stringSize.js","webpack://dfd/./node_modules/lodash/_stringToArray.js","webpack://dfd/./node_modules/lodash/_stringToPath.js","webpack://dfd/./node_modules/lodash/_toKey.js","webpack://dfd/./node_modules/lodash/_toSource.js","webpack://dfd/./node_modules/lodash/_unicodeSize.js","webpack://dfd/./node_modules/lodash/_unicodeToArray.js","webpack://dfd/./node_modules/lodash/cloneDeep.js","webpack://dfd/./node_modules/lodash/eq.js","webpack://dfd/./node_modules/lodash/flatten.js","webpack://dfd/./node_modules/lodash/get.js","webpack://dfd/./node_modules/lodash/hasIn.js","webpack://dfd/./node_modules/lodash/identity.js","webpack://dfd/./node_modules/lodash/isArguments.js","webpack://dfd/./node_modules/lodash/isArray.js","webpack://dfd/./node_modules/lodash/isArrayLike.js","webpack://dfd/./node_modules/lodash/isBoolean.js","webpack://dfd/./node_modules/lodash/isBuffer.js","webpack://dfd/./node_modules/lodash/isFunction.js","webpack://dfd/./node_modules/lodash/isLength.js","webpack://dfd/./node_modules/lodash/isMap.js","webpack://dfd/./node_modules/lodash/isNumber.js","webpack://dfd/./node_modules/lodash/isObject.js","webpack://dfd/./node_modules/lodash/isObjectLike.js","webpack://dfd/./node_modules/lodash/isRegExp.js","webpack://dfd/./node_modules/lodash/isSet.js","webpack://dfd/./node_modules/lodash/isString.js","webpack://dfd/./node_modules/lodash/isSymbol.js","webpack://dfd/./node_modules/lodash/isTypedArray.js","webpack://dfd/./node_modules/lodash/isUndefined.js","webpack://dfd/./node_modules/lodash/keys.js","webpack://dfd/./node_modules/lodash/keysIn.js","webpack://dfd/./node_modules/lodash/mapValues.js","webpack://dfd/./node_modules/lodash/max.js","webpack://dfd/./node_modules/lodash/memoize.js","webpack://dfd/./node_modules/lodash/property.js","webpack://dfd/./node_modules/lodash/stubArray.js","webpack://dfd/./node_modules/lodash/stubFalse.js","webpack://dfd/./node_modules/lodash/times.js","webpack://dfd/./node_modules/lodash/toFinite.js","webpack://dfd/./node_modules/lodash/toInteger.js","webpack://dfd/./node_modules/lodash/toNumber.js","webpack://dfd/./node_modules/lodash/toString.js","webpack://dfd/./node_modules/lodash/trimEnd.js","webpack://dfd/./node_modules/lodash/truncate.js","webpack://dfd/./node_modules/lodash/values.js","webpack://dfd/./node_modules/mathjs/es/core/config.js","webpack://dfd/./node_modules/mathjs/es/entry/configReadonly.js","webpack://dfd/./node_modules/mathjs/es/core/function/config.js","webpack://dfd/./node_modules/mathjs/es/utils/object.js","webpack://dfd/./node_modules/mathjs/es/utils/factory.js","webpack://dfd/./node_modules/mathjs/es/type/resultset/ResultSet.js","webpack://dfd/./node_modules/mathjs/es/type/complex/Complex.js","webpack://dfd/./node_modules/mathjs/es/utils/function.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/constants.js","webpack://dfd/./node_modules/mathjs/es/plain/number/constants.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/BigNumber.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Matrix.js","webpack://dfd/./node_modules/mathjs/es/type/unit/physicalConstants.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/Fraction.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/formatter.js","webpack://dfd/./node_modules/mathjs/es/utils/string.js","webpack://dfd/./node_modules/mathjs/es/error/DimensionError.js","webpack://dfd/./node_modules/mathjs/es/error/IndexError.js","webpack://dfd/./node_modules/mathjs/es/utils/array.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/DenseMatrix.js","webpack://dfd/./node_modules/mathjs/es/core/function/typed.js","webpack://dfd/./node_modules/mathjs/es/utils/collection.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isInteger.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNumeric.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNaN.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/nearlyEqual.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalScalar.js","webpack://dfd/./node_modules/mathjs/es/utils/complex.js","webpack://dfd/./node_modules/mathjs/es/type/number.js","webpack://dfd/./node_modules/mathjs/es/plain/number/arithmetic.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryPlus.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/apply.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/cube.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiplyScalar.js","webpack://dfd/./node_modules/mathjs/es/function/string/baseUtils.js","webpack://dfd/./node_modules/mathjs/es/function/special/erf.js","webpack://dfd/./node_modules/mathjs/es/function/string/oct.js","webpack://dfd/./node_modules/mathjs/es/function/probability/randomInt.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/function/fraction.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryMinus.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/addScalar.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/sqrt.js","webpack://dfd/./node_modules/mathjs/es/function/complex/conj.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/mode.js","webpack://dfd/./node_modules/mathjs/es/function/string/bin.js","webpack://dfd/./node_modules/mathjs/es/function/probability/random.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/SparseMatrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/function/matrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm01.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm04.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm10.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm13.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm14.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm03.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm05.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm11.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm12.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm07.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/identity.js","webpack://dfd/./node_modules/mathjs/es/utils/noop.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/size.js","webpack://dfd/./node_modules/mathjs/es/function/string/hex.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/round.js","webpack://dfd/./node_modules/mathjs/es/function/relational/compare.js","webpack://dfd/./node_modules/mathjs/es/function/relational/smaller.js","webpack://dfd/./node_modules/mathjs/es/function/relational/larger.js","webpack://dfd/./node_modules/mathjs/es/function/relational/unequal.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/FibonacciHeap.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/add.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/dot.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/abs.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiply.js","webpack://dfd/./node_modules/mathjs/es/error/ArgumentsError.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalText.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/partitionSelect.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/function/bignumber.js","webpack://dfd/./node_modules/mathjs/es/function/utils/numeric.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/utils/improveErrorMessage.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/ceil.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/subtract.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/cross.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equal.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divideScalar.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Spa.js","webpack://dfd/./node_modules/mathjs/es/function/algebra/decomposition/lup.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/det.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/inv.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divide.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/variance.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/std.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/median.js","webpack://dfd/./node_modules/mathjs/es/entry/pureFunctionsAny.generated.js","webpack://dfd/./node_modules/mathjs/es/plain/number/probability.js","webpack://dfd/./node_modules/mathjs/es/plain/number/trigonometry.js","webpack://dfd/./node_modules/mathjs/es/plain/number/utils.js","webpack://dfd/./node_modules/mathjs/es/utils/is.js","webpack://dfd/./node_modules/mathjs/es/utils/number.js","webpack://dfd/./node_modules/mathjs/es/utils/product.js","webpack://dfd/./node_modules/regenerator-runtime/runtime.js","webpack://dfd/./node_modules/seed-random/index.js","webpack://dfd/./node_modules/seedrandom/index.js","webpack://dfd/./node_modules/seedrandom/lib/alea.js","webpack://dfd/./node_modules/seedrandom/lib/tychei.js","webpack://dfd/./node_modules/seedrandom/lib/xor128.js","webpack://dfd/./node_modules/seedrandom/lib/xor4096.js","webpack://dfd/./node_modules/seedrandom/lib/xorshift7.js","webpack://dfd/./node_modules/seedrandom/lib/xorwow.js","webpack://dfd/./node_modules/seedrandom/seedrandom.js","webpack://dfd/./node_modules/slice-ansi/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/ansi-styles/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/conversions.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/route.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-name/index.js","webpack://dfd/./node_modules/table/dist/alignString.js","webpack://dfd/./node_modules/table/dist/alignTableData.js","webpack://dfd/./node_modules/table/dist/calculateCellHeight.js","webpack://dfd/./node_modules/table/dist/calculateCellWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateMaximumColumnWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/createStream.js","webpack://dfd/./node_modules/table/dist/drawBorder.js","webpack://dfd/./node_modules/table/dist/drawRow.js","webpack://dfd/./node_modules/table/dist/drawTable.js","webpack://dfd/./node_modules/table/dist/getBorderCharacters.js","webpack://dfd/./node_modules/table/dist/index.js","webpack://dfd/./node_modules/table/dist/makeConfig.js","webpack://dfd/./node_modules/table/dist/makeStreamConfig.js","webpack://dfd/./node_modules/table/dist/mapDataUsingRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/padTableData.js","webpack://dfd/./node_modules/table/dist/stringifyTableData.js","webpack://dfd/./node_modules/table/dist/table.js","webpack://dfd/./node_modules/table/dist/truncateTableData.js","webpack://dfd/./node_modules/table/dist/validateConfig.js","webpack://dfd/./node_modules/table/dist/validateTableData.js","webpack://dfd/./node_modules/table/dist/wrapCell.js","webpack://dfd/./node_modules/table/dist/wrapString.js","webpack://dfd/./node_modules/table/dist/wrapWord.js","webpack://dfd/./node_modules/table/node_modules/ansi-regex/index.js","webpack://dfd/./node_modules/table/node_modules/emoji-regex/index.js","webpack://dfd/./node_modules/table/node_modules/string-width/index.js","webpack://dfd/./node_modules/table/node_modules/strip-ansi/index.js","webpack://dfd/./node_modules/typed-function/typed-function.js","webpack://dfd/./node_modules/xlsx/dist/cpexcel.js","webpack://dfd/./node_modules/xlsx/jszip.js","webpack://dfd/./node_modules/xlsx/xlsx.js","webpack://dfd/webpack/bootstrap","webpack://dfd/webpack/startup","webpack://dfd/webpack/runtime/amd define","webpack://dfd/webpack/runtime/amd options","webpack://dfd/webpack/runtime/compat get default export","webpack://dfd/webpack/runtime/define property getters","webpack://dfd/webpack/runtime/global","webpack://dfd/webpack/runtime/hasOwnProperty shorthand","webpack://dfd/webpack/runtime/make namespace object","webpack://dfd/webpack/runtime/node module decorator"],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","_createClass","protoProps","staticProps","prototype","_get","property","receiver","Reflect","get","base","object","hasOwnProperty","call","getPrototypeOf","desc","getOwnPropertyDescriptor","_getPrototypeOf","o","setPrototypeOf","__proto__","_setPrototypeOf","p","_inherits","subClass","superClass","create","constructor","_possibleConstructorReturn","ReferenceError","_slicedToArray","isArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","push","unsupportedIterableToArray","_toConsumableArray","arrayLikeToArray","iter","from","_typeof","obj","_unsupportedIterableToArray","minLen","n","toString","slice","name","test","module","exports","DataStorage","backend","dataMover","data","WeakMap","dataIdsCount","dataId","has","moveData","set","delete","KernelBackend","notYetImplemented","f","force","values","shape","dtype","refCount","floatPrecision","kernelName","Error","array","counter","temp","index","Math","random","shuffleCombo","array2","temp2","clamp","min","x","max","nearestLargerEven","val","sum","randUniform","a","b","r","distSquared","result","diff","Number","assert","expr","msg","assertShapesMatch","shapeA","shapeB","errorMessagePrefix","arraysEqual","assertNonNull","flatten","skipTypedArray","isTypedArray","sizeFromShape","size","isScalarShape","n1","n2","isInt","tanh","Infinity","e2x","exp","sizeToSquarishShape","width","ceil","sqrt","createShuffledIndices","shuffledIndices","Uint32Array","rightPad","repeat","repeatedTry","checkFn","delayFn","maxCounter","tryCount","tryFn","nextBackoff","setTimeout","inferFromImplicitShape","shapeProd","implicitIdx","newShape","parseAxisParam","axis","rank","map","s","concat","every","ax","squeezeShape","keptDims","isEmptyArray","axes","sort","j","getTypedArrayFromDType","Float32Array","Int32Array","Uint8Array","getArrayFromDType","checkConversionForErrors","vals","num","isNaN","isFinite","isValidDtype","hasEncodingLoss","oldType","newType","bytesPerElement","bytesFromStringArray","bytes","forEach","isString","String","isBoolean","isNumber","inferDtype","isFunction","nearestDivisor","start","computeStrides","strides","createNestedArray","offset","ret","d","rest","reduce","acc","c","toNestedArray","makeOnesTypedArray","makeZerosTypedArray","makeZerosNestedTypedArray","prev","curr","assertNonNegativeIntegerDimensions","dimSize","isInteger","locToIndex","locs","indexToLoc","floor","isPromise","Environment","global","flags","flagRegistry","urlFlags","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","queryString","params","replace","t","decodeURIComponent","decodeParam","join","getQueryParams","split","keyValue","toLowerCase","parseValue","ENV","globalNameSpace","getGlobalNamespace","ns","window","g","process","getGlobal","init","globalMap","_tfGlobals","Map","getGlobalMap","singleton","Abs","Acos","Acosh","Add","AddN","All","Any","ArgMax","ArgMin","Asin","Asinh","Atan","Atanh","Atan2","AvgPool","AvgPoolGrad","AvgPool3D","AvgPool3DGrad","BatchMatMul","BatchToSpaceND","Bincount","BroadcastTo","Cast","Ceil","ClipByValue","Complex","ComplexAbs","Concat","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cumsum","CropAndResize","DenseBincount","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Diag","Dilation2D","Dilation2DBackpropInput","Dilation2DBackpropFilter","RealDiv","Elu","EluGrad","Erf","Equal","Exp","ExpandDims","Expm1","FFT","Fill","FlipLeftRight","Floor","FloorDiv","FusedBatchNorm","GatherV2","GatherNd","Greater","GreaterEqual","Identity","IFFT","Imag","IsFinite","IsInf","IsNan","LeakyRelu","Less","LessEqual","LinSpace","Log","Log1p","LogicalAnd","LogicalNot","LogicalOr","LogSoftmax","LRN","LRNGrad","Max","Maximum","MaxPool","MaxPoolGrad","MaxPool3D","MaxPool3DGrad","MaxPoolWithArgmax","Mean","Min","Minimum","MirrorPad","Mod","Multinomial","Multiply","Neg","NotEqual","NonMaxSuppressionV3","NonMaxSuppressionV4","NonMaxSuppressionV5","OnesLike","OneHot","Pack","PadV2","Pool","Pow","Prelu","Prod","Range","Real","Reciprocal","Relu","Reshape","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResizeBilinear","ResizeBilinearGrad","Relu6","Reverse","Round","Rsqrt","ScatterNd","Select","Selu","Slice","Sin","Sinh","Sign","Sigmoid","Softplus","Sqrt","Sum","SpaceToBatchND","SplitV","Softmax","SquaredDifference","Square","Sub","SparseToDense","StridedSlice","Tan","Tanh","Tile","TopK","Transpose","Unique","Unpack","UnsortedSegmentSum","ZerosLike","Step","FromPixels","RotateWithOffset","_FusedMatMul","FusedConv2D","FusedDepthwiseConv2D","kernelRegistry","gradRegistry","getKernel","backendName","makeKey","getGradient","getKernelsForBackend","it","entries","config","registerKernel","registerGradient","getBool","unregisterKernel","unregisterGradient","copyRegisteredKernels","registeredBackendName","newBackendName","kernelConfig","createScalarValue","encodeString","toTypedArray","noConversionNeeded","bool","round","now","path","requestInits","fetch","encoding","encode","decodeString","decode","Profiler","backendTimer","logger","Logger","inputs","outputs","holdResultWrapperFn","timer","timerAvailable","time","output","dataSync","kernelMs","tensorVals","checkComputationForErrors","timeMs","timing","extraInfo","getExtraProfileInfo","kernelProfile","all","valueContainer","logKernelProfile","paddedName","inputShapesDescription","input","inputShape","inputRank","log","tensorToString","verbose","padPerCol","numCols","fill","valuesOrTuples","createComplexTuples","row","valToString","computeMaxSizePerColumn","valsLines","subTensorToString","lines","l","pad","valStr","parseFloat","toFixed","boolNumToString","v","isLast","storagePerElement","firstValsSize","firstVals","lastVals","subshape","substrides","stride","end","sep","newLineSep","complexTuples","TensorBuffer","loc","trackerFn","makeTensor","opHandler","deprecationWarningFn","Tensor","id","kept","isDisposedInternal","rankType","buffer","throwIfDisposed","read","_a","readSync","isDisposed","disposeTensor","print","clone","cast","trainable","makeVariable","getGlobalTensorClass","hasInstance","Variable","initialValue","tensorId","super","newValue","incRef","disposeVariable","Rank","UpcastInt32AndMap","UpcastBoolAndMap","UpcastFloat32AndMap","UpcastComplex64AndMap","Function","upcastTypeMap","upcastType","typeA","typeB","sumOutType","type","makeTypesMatch","assertTypesMatch","isTensorInList","tensor","tensorList","some","getTensorsInContainer","list","walkTensorContainer","Set","container","seen","iterable","k","add","isRegisteredKernelInvocation","kernelInvocation","EngineState","registeredVariables","nextTapeNodeId","numBytes","numTensors","numStringTensors","numDataBuffers","gradientDepth","kernelDepth","scopeStack","numDataMovesStack","nextScopeId","tensorInfo","profiling","activeProfile","newBytes","newTensors","peakBytes","kernels","variableName","dispose","Engine","registry","registryFactory","pendingBackendInitId","state","pendingBackendInit","backendInstance","sortedBackends","getSortedBackends","initializeBackend","success","setBackend","asyncInit","initializeBackendsAndReturnBest","keys","factory","priority","setupRegisteredKernels","profiler","kernel","setupFunc","disposeFunc","registryFactoryEntry","promiseId","catch","stack","message","disposeRegisteredKernels","srcBackend","disposeData","move","shouldCheckForMemLeaks","nameOrFn","scopedRun","startScope","endScope","res","ex","nextTensorId","nextVariableId","y","ENGINE","runKernel","addTapeNode","activeScope","dy","gradInputs","attrs","runKernelFunc","numDataIdsBefore","outInfos","numDataIdsAfter","numDataIds","numOutputDataIds","numMoves","dataIdsLeaked","kernelParams","saved","isTapeOn","startingBytecount","startingNumTensors","kernelFunc","out","kernelOrScopeName","checkKernelForMemLeak","outTensors","outInfo","makeTensorFromDataId","tensorsToSave","getTensorsForGradient","saveTensorsForBackwardMode","forwardFunc","saveFunc","tensors","keep","tidy","outs","backwardsFunc","profileKernel","bytesAdded","totalBytesSnapshot","tensorsAdded","totalTensorsSnapshot","inputShapes","outputShapes","item","kernelTimeMs","gradConfig","inputsToSave","outputsToSave","inputTensorsToSave","saveAllInputs","inputName","outputTensorsToSave","filter","_","backendVals","write","trackTensor","track","removeDataId","varName","memory","unreliable","reasons","query","startBytes","startNumTensors","gradientsFunc","tapeNode","gradFunc","gradient","dys","activeTape","scopeInfo","tensorsToTrackInParent","tensorsToTrackInParentSet","oldScope","pop","scopeId","xs","allowNoGradients","startTape","endTape","filteredTape","tape","tensorsFromX","nodesFromX","node","nodeInputs","anyInputFromX","tensorsLeadToY","nodesToY","prunedInputs","nodeInput","prunedNode","getFilteredNodesXToY","accumulatedGradientMap","ones","tensorAccumulatedGradientMap","gradTensor","inputGradients","dx","curGradient","backpropagateGradients","grads","inputMap","save","gradRes","gradMap","grad","timingInfo","wallMs","reset","getOrMakeEngine","_tfengine","environment","isMobile","navigator","userAgent","vendor","opera","substr","isBrowser","document","WorkerGlobalScope","inferShape","firstElem","deepAssertShapeConsistency","indices","subShape","assertDtype","expectedDtype","actualDType","argName","functionName","convertToTensor","parseAsDtype","inferredDtype","indexOf","inferredShape","convertToTensorArray","registerFlag","debugValue","versions","OP_SCOPE_SUFFIX","op","opName","endsWith","substring","f2","complex","complex_","real","imag","$real","$imag","providedSize","inferredSize","inferred","flatDimsDontMatch","DTYPE_VALUE_SIZE_MAP","async","encodeWeights","group","specs","dataPromises","names","spec","utf8bytes","totalNumBytes","bytesOfLength","concatenateTypedArrays","decodeWeights","float16Decode","quantization","quantizationSizeFactor","byteBuffer","quantizedArray","Uint16Array","scale","getFloat16Decoder","byteLength","dtypeFactor","image","realTensor","imageTensor","JSON","stringify","totalByteLength","normalizedXs","useNodeBuffer","Buffer","Blob","atob","btoa","stringByteLength","str","concatenateArrayBuffers","buffers","basename","trim","items","getModelArtifactsInfoForJSON","modelArtifacts","modelTopology","ArrayBuffer","dateSaved","Date","modelTopologyType","modelTopologyBytes","weightSpecsBytes","weightSpecs","weightDataBytes","weightData","mantisaTable","convertMantissa","m","e","computeFloat16MantisaTable","exponentTable","computeFloat16ExponentTable","offsetTable","computeFloat16OffsetTable","bufferUint32View","float16Bits","float32Bits","IORouterRegistry","saveRouters","loadRouters","saveRouter","getInstance","loadRouter","url","getHandlers","loadOptions","handlerType","validHandlers","router","handler","registerSaveRouter","loudRouter","registerLoadRouter","getSaveHandlers","getLoadHandlers","DATABASE_NAME","MODEL_STORE_NAME","INFO_STORE_NAME","getIndexedDBFactory","theWindow","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","setUpDatabase","openRequest","db","createObjectStore","keyPath","BrowserIndexedDB","modelPath","databaseAction","open","onupgradeneeded","onsuccess","modelTx","transaction","getRequest","objectStore","close","onerror","oncomplete","modelArtifactsInfo","infoTx","infoStore","putInfoRequest","put","putModelRequest","deleteInfoRequest","URL_SCHEME","indexedDBRouter","startsWith","BrowserIndexedDBManager","tx","getAllInfoRequest","getAll","getInfoRequest","deleteModelData","deleteModelRequest","PATH_SEPARATOR","PATH_PREFIX","INFO_SUFFIX","MODEL_TOPOLOGY_SUFFIX","WEIGHT_SPECS_SUFFIX","WEIGHT_DATA_SUFFIX","MODEL_METADATA_SUFFIX","getModelKeys","topology","modelMetadata","getModelPathFromKey","BrowserLocalStorage","localStorage","LS","setItem","buf","fromCharCode","arrayBufferToBase64String","format","generatedBy","convertedBy","signature","userDefinedMetadata","modelInitializer","removeItem","parse","getItem","metadataString","metadata","weightDataBase64","byteOffset","charCodeAt","base64StringToArrayBuffer","localStorageRouter","BrowserLocalStorageManager","prefix","suffix","URL_SCHEME_SUFFIX","ModelStoreManagerRegistry","managers","scheme","manager","parseURL","getSchemes","cloneModelInternal","sourceURL","destURL","deleteSource","loadHandlers","loadHandler","saveHandlers","saveHandler","sourceScheme","sourcePath","sameMedium","load","getManager","removeModel","saveResult","listModels","schemes","schemeOut","schemeAndPath","copyModel","moveModel","PlatformBrowser","performance","text","textEncoder","TextEncoder","TextDecoder","setPlatform","registerManager","systemFetch","util","hrtime","cast_","$x","clone_","defer","BrowserDownloads","fileNamePrefix","modelTopologyFileName","weightDataFileName","weightsURL","URL","createObjectURL","weightsManifest","paths","weights","modelTopologyAndWeightManifest","modelTopologyAndWeightManifestURL","jsonAnchor","createElement","download","href","dispatchEvent","MouseEvent","weightDataAnchor","BrowserFiles","files","jsonFile","weightFiles","jsonReader","FileReader","onload","event","modelJSON","pathToFile","checkManifestAndWeightFiles","perFileBuffers","weightsGroup","weightFileReader","readAsArrayBuffer","readAsText","manifest","basenames","fileNames","file","pathBasename","browserFiles","monitorPromisesProgress","promises","onProgress","startFraction","endFraction","checkPromises","checkFraction","resolvedPromise","promise","fraction","loadWeightsAsArrayBuffer","fetchURLs","fetchFunc","requests","fetchURL","requestInit","isBinary","bufferPromises","response","arrayBuffer","loadWeights","filePathPrefix","weightNames","weightsLoaderFactory","fetchUrls","fetchWeightsFunction","groupIndicesToFetchMap","groupWeightsToFetch","weightsFound","allManifestWeightNames","manifestGroupConfig","groupIndex","groupOffset","weightsEntry","rawDtype","weightsBytes","enqueueWeightsForFetchingFn","manifestEntry","sizeBytes","weightName","weightIndex","found","weightsNotFound","groupIndicesToFetch","accumulator","shouldFetch","filepath","fetchUrl","weightsTensorMap","bufferIndexOffset","numBuffers","groupBytes","groupBuffer","groupByteBuffer","groupBufferOffset","nameToTensorMap","browserDownloads","HTTPRequest","DEFAULT_METHOD","weightPathPrefix","weightUrlConverter","body","method","FormData","append","ok","responses","status","modelConfigRequest","modelConfig","json","results","artifacts","initializer","weightPath","lastSlash","lastIndexOf","lastSearchParam","parseUrl","pathPrefix","entry","urlPromises","isHTTPScheme","match","URL_SCHEME_REGEX","httpRouter","isHTTP","urlItem","http","browserHTTPRequest","PassthroughLoader","PassthroughSaver","fromMemory","trainingConfig","withSaveHandler","matMul","matMul_","transposeA","transposeB","$a","$b","oneHot","oneHot_","depth","onValue","offValue","transpose","transpose_","perm","reverse","confusionMatrix","confusionMatrix_","labels","predictions","numClasses","$labels","$predictions","oneHotLabels","oneHotPredictions","oneHotLabelsT","product","tensor3d","fromPixels2DContext","toPixels","img","canvas","$img","originalImgTensor","height","multiplier","Uint8ClampedArray","rgba","ctx","getContext","imageData","ImageData","putImageData","fromPixels","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","HTMLVideoElement","HTMLImageElement","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","videoWidth","videoHeight","getImageData","drawImage","numPixels","channel","prepareAndValidate","tensorRank","indicesRank","indicesShape","sliceRank","nResult","resultShape","sliceSize","validateUpdateShape","updates","sliceDim","batchDim","shapeError","validateInput","calculateShapes","totalNd","safeSliceDim","numUpdates","outputSize","assertParamsValid","begin","maskToAxes","mask","computeOutShape","stridesWithElidedDims","ellipsisInsertionIndex","numElidedAxes","newStrides","splice","unnormalizeAxis","normalizedAxis","getElidedAxes","elidedAxes","getNormalizedAxes","ellipsisAxes","numInterpolatedAxes","beginMask","endMask","ellipsisMask","normalizedBegin","normalizedEnd","normalizedStrides","fullIndex","startIndicesWithElidedDims","stopIndicesWithElidedDims","startForAxis","stopForAxis","stridesForAxis","originalBegin","newIndices","originalAxis","originalValue","originalEnd","MAX_SAFE_INTEGER","axisSize","startIndices","MIN_SAFE_INTEGER","stopIndices","stop","isSliceContinous","firstNonOneAxis","computeFlatOffset","flatOffset","parseSliceParams","begin_","xRank","size_","sliceInfo","xShape","newAxisMask","shrinkAxisMask","$begin","$end","$strides","expandAxes","shrinkAxes","outShape","nonStrided","Serializable","className","cls","SerializationMap","classNameMap","getMap","fromConfig","registerClass","register","TEST_EPSILON_FLOAT16","expectArraysClose","actual","expected","epsilon","expectArraysPredicate","areClose","predicate","checkClassType","aType","bType","actualShape","expectedShape","actualFlat","expectedFlat","expectPromiseToFail","fail","expectArraysEqual","abs","expectValuesInRange","low","high","expectArrayBuffersEqual","expect","toEqual","encodeStrings","version","enableProdMode","enableDebugMode","disableDeprecationWarnings","deprecationWarn","disposeVariables","engine","profile","ready","getBackend","removeBackend","findBackend","findBackendFactory","registerBackend","add_","floorDiv","floorDiv_","div","div_","mul","mul_","sqrt_","square","square_","zerosLike","zerosLike_","$dy","gradients","checkGrads","$args","valueAndGrad","valueAndGrads","varList","specifiedVarList","specifiedNonTrainable","variable","originalVarCount","namedGrads","customGrad","Optimizer","returnCost","computeGradients","gradArray","applyGradients","iterations_","iterations","weightValues","getClassName","minimize","AdadeltaOptimizer","learningRate","rho","accumulatedGrads","accumulatedUpdates","variableGradients","originalName","accumulatedGrad","accumulatedUpdate","newAccumulatedGrad","newAccumulatedUpdate","incrementIterations","variables","saveIterations","variableCount","extractIterations","AdagradOptimizer","initialAccumulatorValue","pow","pow_","$base","$exp","sub","sub_","AdamOptimizer","beta1","beta2","accumulatedFirstMoment","accumulatedSecondMoment","accBeta1","accBeta2","varNames","oneMinusAccBeta1","oneMinusAccBeta2","firstMoment","secondMoment","newFirstMoment","newSecondMoment","biasCorrectedFirstMoment","biasCorrectedSecondMoment","abs_","getBroadcastDims","inShape","inRank","dims","dim","unshift","getReductionAxes","inDim","outAxis","outDim","assertAndGetBroadcastShape","maximum","maximum_","AdamaxOptimizer","decay","accumulatedWeightedInfNorm","iteration","variableNames","lr","weightedInfNorm","ut0","ut1","newWeightedInfNorm","SGDOptimizer","setLearningRate","MomentumOptimizer","momentum","useNesterov","accumulations","accumulation","newAccumulation","RMSPropOptimizer","centered","accumulatedMeanSquares","accumulatedMoments","accumulatedMeanGrads","accumulatedMeanSquare","newAccumulatedMeanSquare","accumulatedMeanGrad","newAccumulatedMeanGrad","gradContribution","newAccumulatedMoments","acos","acos_","acosh","acosh_","addN","addN_","$tensors","firstTensor","all_","keepDims","any","any_","argMax","argMax_","argMin","argMin_","asin","asin_","asinh","asinh_","atan","atan_","atan2","atan2_","atanh","atanh_","computeDilation2DInfo","filterShape","dataFormat","dilations","computeConv2DInfo","convertConv2DDataFormat","computePool2DInfo","filterSize","roundingMode","filterHeight","filterWidth","parseTupleParam","computePool3DInfo","filterDepth","parse3TupleParam","$dataFormat","computeConv3DInfo","depthwise","batchSize","inHeight","inWidth","inChannels","filterChannels","strideHeight","strideWidth","dilationHeight","dilationWidth","effectiveFilterHeight","getEffectiveFilterSize","effectiveFilterWidth","padInfo","outHeight","outWidth","top","bottom","left","right","fieldSize","zeroPad","computeDefaultPad","inputCols","computeOutputShape2D","padAlongHeight","padAlongWidth","getPadAndOutInfo","outChannels","inDepth","strideDepth","dilationDepth","effectiveFilterDepth","outDepth","front","back","inputRows","computeOutputShape4D","padAlongDepth","get3DPadAndOutInfo","dilation","effectiveFieldSize","param","trunc","tupleValuesAreOne","dimA","dimB","dimC","eitherStridesOrDilationsAreOne","reshape","reshape_","avgPool","avgPool_","dimRoundingMode","x4D","reshapedTo4D","avgPool3d","avgPool3d_","x5D","reshapedTo5D","concat_","attr","sigmoid","sigmoid_","slice_","tanh_","basicLSTMCell","basicLSTMCell_","forgetBias","lstmKernel","lstmBias","h","$forgetBias","$lstmKernel","$lstmBias","$data","$c","$h","combined","weighted","sliceCols","newC","batchToSpaceND","batchToSpaceND_","blockShape","crops","prod","batchNorm","batchNorm_","mean","variance","varianceEpsilon","$mean","$variance","$scale","$offset","xAs4D","batchNorm2d","batchNorm2d_","batchNorm3d","batchNorm3d_","batchNorm4d","batchNorm4d_","bincount","bincount_","$weights","broadcastTo","broadcastTo_","reps","ceil_","clipByValue","clipByValue_","clipValueMin","clipValueMax","concat1d","concat1d_","concat2d","concat2d_","concat3d","concat3d_","concat4d","concat4d_","conv2d","conv2d_","$filter","conv1d","conv1d_","x3D","reshapedTo3D","filter4D","input4D","conv2DBackpropInput","conv2DBackpropInput_","xShape4D","dy4D","conv2dTranspose","conv2dTranspose_","outputShape","conv3d","conv3d_","conv3DBackpropInput","conv3DBackpropInput_","xShape5D","dy5D","conv3dTranspose","conv3dTranspose_","cos","cos_","cosh","cosh_","cumsum","cumsum_","exclusive","denseBincount","denseBincount_","binaryOutput","depthToSpace","depthToSpace_","blockSize","inputHeight","inputWidth","inputDepth","depthwiseConv2d","depthwiseConv2d_","diag","diag_","dilation2d","dilation2d_","equal","equal_","where_","condition","$condition","broadcastShape","$broadcastedA","$broadcastedB","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","elu","elu_","erf","erf_","exp_","expandDims","expandDims_","expm1","expm1_","tile","tile_","eye","eye_","numRows","numColumns","batchShape","buff","toTensor","floor_","gather","gather_","batchDims","greater","greater_","greaterEqual","greaterEqual_","imag_","isFinite_","isInf","isInf_","isNaN_","leakyRelu","leakyRelu_","alpha","less","less_","lessEqual","lessEqual_","linspace","localResponseNormalization","localResponseNormalization_","depthRadius","bias","beta","log_","log1p","log1p_","neg","neg_","softplus","softplus_","logSigmoid","logSigmoid_","customOp","max_","reductionIndices","sum_","logSoftmax","logSoftmax_","logits","$logits","xMax","shifted","softmax","axesAreInnerMostDims","combineLocations","outputLoc","reduceLoc","outIdx","reduceIdx","computeOutAndReduceShapes","aShape","expandShapeToKeepDim","assertAxesAreInnerMostDims","getAxesPermutation","getUndoAxesPermutation","getInnerMostAxes","numAxes","logSumExp","logSumExp_","logicalAnd","logicalAnd_","logicalNot","logicalNot_","logicalOr","logicalOr_","logicalXor","logicalXor_","maxPool","maxPool_","maxPool3d","maxPool3d_","maxPoolWithArgmax","maxPoolWithArgmax_","includeBatchInIndex","indexes","mean_","min_","minimum","minimum_","mirrorPad","mirrorPad_","paddings","mode","shapeOffset","mod","mod_","moments","moments_","xMean","keepDimsShape","devSquared","multiRNNCell","multiRNNCell_","lstmCells","newStates","newH","multinomial","multinomial_","numSamples","seed","normalized","numOutcomes","origRank","notEqual","notEqual_","onesLike","onesLike_","outerProduct","outerProduct_","v1","v2","$v1","$v2","v12D","v22D","pad_","constantValue","pad1d","pad1d_","pad2d","pad2d_","pad3d","pad3d_","pad4d","pad4d_","spaceToBatchND","spaceToBatchND_","pool","pool_","windowShape","poolingType","convInfo","basePadding","padExtraShape","padExtraStart","padExtraEnd","withSpaceToBatchBasePaddings","isDilationOne","adjustedPadding","adjustedCrops","padStart","origPadEnd","fullInputShape","padEndExtra","padEnd","requiredSpaceToBatchPaddings","convertedPad","convertedX","prelu","prelu_","prod_","rand","rand_","randFunction","MPRandGauss","stdDeviation","truncated","stdDev","nextVal","NaN","upper","lower","seedValue","seedrandom","alea","resultX","resultY","isValid","isValidTruncated","convertValue","RandGamma","randu","randn","x2","v0","u","nextValue","UniformRandom","canReturnFloat","range","randomGamma","randomGamma_","rgamma","randomNormal","randomNormal_","randGauss","randomUniform","randomUniform_","minval","maxval","step","real_","reciprocal","reciprocal_","relu","relu_","relu6","relu6_","reverse_","reverse1d","reverse1d_","reverse2d","reverse2d_","reverse3d","reverse3d_","reverse4d","reverse4d_","round_","rsqrt","rsqrt_","selu","selu_","separableConv2d","separableConv2d_","depthwiseFilter","pointwiseFilter","$depthwiseFilter","$pointwiseFilter","channelMultiplier","setdiff1dAsync","$y","xVals","yVals","ySet","sign","sign_","sin","sin_","sinh","sinh_","slice1d","slice1d_","slice2d","slice2d_","slice3d","slice3d_","slice4d","slice4d_","softmax_","fft","fft_","ifft","ifft_","irfft","irfft_","innerDimensionSize","batch","complexInput","realInput","imagInput","realConjugate","imagConjugate","split_","numOrSizeSplits","rfft","rfft_","fftLength","adjustedInput","zerosShape","zerosInput","half","realValues","imagValues","realComplexConjugate","imagComplexConjugate","squaredDifference","squaredDifference_","squeeze","squeeze_","stack_","step_","stridedSlice","stridedSlice_","tan","tan_","tensor1d","tensor2d","tensor4d","tensor5d","tensor6d","topk","topk_","sorted","lastDim","truncatedNormal","truncatedNormal_","unique","unique_","unsortedSegmentSum","unsortedSegmentSum_","segmentIds","numSegments","$segmentIds","unstack","unstack_","whereImpl","condShape","condVals","inBuffer","whereAsync","booleanMaskAsync","$tensor","$mask","axisFrom","maskDim","tensorShape","leadingSize","targetTensorShape","reshapedTensor","reshapedMask","positivePositions","normImpl","norm","norm_","ord","movingAverage","movingAverage_","zeroDebias","$v","$decay","one","oneMinusDecay","update","$step","scatterND","scatterND_","$indices","$updates","sparseToDense","sparseToDense_","sparseIndices","sparseValues","defaultValue","$sparseIndices","$sparseValues","$defaultValue","defaultValues","numElems","numDims","numValues","gatherND","gatherND_","dropout","dropout_","rate","noiseShape","$noiseShape","newDimension","getNoiseShape","keepProb","enclosingPowerOfTwo","cosineWindow","windowLength","even","newValues","cosArg","PI","inTopKAsync","targets","$targets","predictionsVals","targetsVals","precision","subarray","valAndInd","conv2DBackpropFilter","conv2DBackpropFilter_","getFusedDyActivation","activation","getFusedBiasGradient","dyActivation","reduceAxes","applyActivation","preluActivationWeights","leakyreluAlpha","shouldFuse","fusedConv2d_","$bias","$preluActivationWeights","der","biasDer","customOpWithBias","depthwiseConv2dNativeBackpropFilter","depthwiseConv2dNativeBackpropFilter_","depthwiseConv2dNativeBackpropInput","depthwiseConv2dNativeBackpropInput_","fusedDepthwiseConv2d_","xDer","filterDer","fusedMatMul_","innerShapeA","innerShapeB","outerShapeA","outerShapeB","outerDimsA","outerDimsB","batchDimA","batchDimB","a3D","b3D","aDer","bDer","hammingWindow","hammingWindow_","hannWindow","hannWindow_","frame_","signal","frameLength","frameStep","padValue","padLen","stft","stft_","windowFn","framedSignal","windowedSignal","cropAndResize","cropAndResize_","boxes","boxInd","cropSize","extrapolationValue","$image","$boxes","$boxInd","numBoxes","flipLeftRight","flipLeftRight_","rotateWithOffset","rotateWithOffset_","radians","fillValue","center","nonMaxSuppSanityCheck","scores","maxOutputSize","iouThreshold","scoreThreshold","softNmsSigma","NEGATIVE_INFINITY","nonMaxSuppression","nonMaxSuppression_","$scores","binaryInsert","element","comparator","middle","compareResult","binarySearch_","defaultComparator","binarySearch","insertionPoint","nonMaxSuppressionV3Impl","nonMaxSuppressionImpl_","nonMaxSuppressionV4Impl","padToMaxOutputSize","nonMaxSuppressionV5Impl","returnScoresTensor","returnValidOutputs","candidates","score","boxIndex","suppressBeginIndex","ascendingComparator","selectedIndices","selectedScores","candidate","originalScore","ignoreCandidate","iou","intersectionOverUnion","suppressWeight","validOutputs","elemsToPad","iCoord","jCoord","yminI","xminI","ymaxI","xmaxI","yminJ","xminJ","ymaxJ","xmaxJ","areaI","areaJ","intersectionYmin","intersectionXmin","intersectionYmax","intersectionXmax","intersectionArea","weight","c1","c2","nonMaxSuppressionWithScore","nonMaxSuppressionWithScore_","nonMaxSuppressionPadded","nonMaxSuppressionPadded_","resizeBilinear","resizeBilinear_","images","alignCorners","halfPixelCenters","$images","batchImages","resizeNearestNeighbor","resizeNearestNeighbor_","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","w","iters","rTemp","wTemp","qTemp","rjEnd1","normX","rjj","u1","wPre","tau","rjEndAll","tauTimesW","wT","rTimesTau","tawTimesWT","qAllJEnd","qTimesTau","qr","qr_","outerDimsProd","x2ds","q2ds","r2ds","x2d","q2d","r2d","Reduction","computeWeightedLoss","computeWeightedLoss_","losses","reduction","SUM_BY_NONZERO_WEIGHTS","$losses","weightedLoss","NONE","SUM","MEAN","broadcastFactor","broadcastedWeights","numNonZeros","absoluteDifference","absoluteDifference_","cosineDistance","cosineDistance_","hingeLoss","hingeLoss_","huberLoss","huberLoss_","delta","deltaScalar","quadratic","linear","logLoss","logLoss_","epsilonScalar","l1","l2","meanSquaredError","meanSquaredError_","sigmoidCrossEntropy","sigmoidCrossEntropy_","multiClassLabels","labelSmoothing","$multiClassLabels","labelSmoothingScalar","maxOutput","outputXTarget","sigmoidOutput","sigmoidCrossEntropyWithLogits_","softmaxCrossEntropy","softmaxCrossEntropy_","onehotLabels","$onehotLabels","lse","logResult","costVector","dyShape","softmaxCrossEntropyWithLogits_","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","OptimizerConstructors","train","sgd","adadelta","adagrad","rmsprop","adamax","adam","delayCallback","requestAnimationFrame","setImmediate","nextFrame","assertParamsConsistent","shapes","firstShape","PARALLELIZE_THRESHOLD","computeOptimalWindowSize","inSize","getImageCenter","imageHeight","imageWidth","getReshaped","batchToSpace","reshaped","spatialLength","getPermuted","reshapedRank","blockShapeRank","permuted","permutedBeforeBatch","permutedAfterBatch","getReshapedPermuted","reshapedPermuted","getSliceBeginCoords","sliceBeginCoords","getSliceSize","uncroppedShape","SELU_SCALEALPHA","SELU_SCALE","ERF_P","ERF_A1","ERF_A2","ERF_A3","ERF_A4","ERF_A5","mergeRealAndImagArrays","splitRealAndImagArrays","complexWithEvenIndex","complexWithOddIndex","getComplexWithIndex","assignToTypedArray","exponents","inverse","exponent","prepareSplitSize","splitSizes","count","negIndex","total","segOpComputeOptimalWindowSize","collectGatherOpShapeInfo","outerSize","fromUint8ToStringArray","fromStringArrayToUint8","strings","absGradConfig","acosGradConfig","acoshGradConfig","addGradConfig","addNGradConfig","ders","argMaxGradConfig","argMinGradConfig","asinGradConfig","asinhGradConfig","atan2GradConfig","atanGradConfig","atanhGradConfig","avgPool3dGrad","avgPool3dGrad_","$input","input5D","avgPool3DGradConfig","avgPoolGrad","avgPoolGrad_","avgPoolGradConfig","batchMatMulGradConfig","batchToSpaceNDGradConfig","broadcastToGradConfig","broadCastToAttrs","castGradConfig","ceilGradConfig","clipByValueGradConfig","complexAbsGradConfig","concatGradConfig","$axis","sizeSplits","conv2DGradConfig","conv2DBackpropInputGradConfig","ddx","conv3DBackpropFilter","conv3DBackpropFilter_","conv3DGradConfig","cosGradConfig","coshGradConfig","cumsumGradConfig","permutation","depthwiseConv2dNativeGradConfig","$dilations","dilation2dGradConfig","inputInputs","filterInputs","eluGradConfig","erfGradConfig","expGradConfig","expandDimsGradConfig","expm1GradConfig","floorGradConfig","floorDivGradConfig","tmp","fusedBatchNormGradConfig","scaleValue","reductionAxes","tileShape","xMinusMean","dyTimesScaleValue","oneOverSqrtVariance","minusHalfRCube","meanDer","varianceDer","xMinusMean2TimesRsqrt","scaleDer","offsetDer","gatherGradConfig","parsedAxis","paramsShape","indicesSize","outerShape","outerDims","innerShape","innerDims","outerAxesIndices","arrayRange","innerAxesIndices","valuesShape","arrayConcat","reshapedIndices","transposeDims","valuesTranspose","paramsGrad","invertTransposeDims","arrays","greaterEqualGradConfig","identityGradConfig","isFiniteGradConfig","isInfGradConfig","isNanGradConfig","leakyReluGradConfig","log1pGradConfig","logGradConfig","logSoftmaxGradConfig","localResponseNormalizationBackprop","localResponseNormalizationBackprop_","lrnGradConfig","gradForMinAndMax","xOrig","origAxes","maxGradConfig","maxAttrs","maxGrad","maximumGradConfig","maxPool3dGrad","maxPool3dGrad_","$output","output5D","maxPool3DGradConfig","maxPoolGrad","maxPoolGrad_","padV2GradConfig","spaceToBatchNDGradConfig","splitVGradConfig","gradConfigs","reduceSize","expandedDyShape","expandedDy","minAttrs","minGrad","expFloat","logBase","scaleAlpha","greaterThanZeroDer","lessEqualZeroDer","dyTimesY","two","derX","xGrad","transposeAttrs","undoPerm","unpackAttrs","zeroClippedIndices","gathered","isPositive","numIters","zeroSlice","gatherDropNegatives","gradientConfig","_epsilon","asScalar","asType","as1D","as2D","rows","columns","as3D","as4D","depth2","as5D","depth3","padding","dilationRate","reshapeAs","newShape2D","halfFloatCenters","tensorsToBeStacked","toBool","toFloat","toInt","where","AttributeError","RuntimeError","AssertionError","pyListRepeat","newArray","refernce","singletonOrArray","toList","toSnakeCase","insecure","toCamelCase","identifier","p1","toUpperCase","_GLOBAL_CUSTOM_OBJECTS","serializeKerasObject","dict","getConfig","convertNDArrayScalarsInConfig","configItem","fields","field","deserializeKerasObject","moduleObjects","customObjects","printableModuleName","fastWeightInit","customObjectsCombined","backupCustomObjects","returnObj","reverseNumberCompare","numberCompare","isObjectEmpty","checkStringTypeUnionValue","label","checkArrayTypeAndLength","expectedType","minLength","maxLength","assertPositiveInteger","formatAsFriendlyString","mapActivationToFusedKernel","activationName","calcL2Norms","Constraint","MaxNorm","defaultMaxValue","defaultAxis","maxValue","norms","desired","UnitNorm","NonNeg","MinMaxNorm","defaultMinValue","defaultRate","minValue","CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeConstraint","constraint","deserializeConstraint","getConstraint","maxNorm","unitNorm","nonNeg","minMaxNorm","VALID_DATA_FORMAT_VALUES","VALID_INTERPOLATION_FORMAT_VALUES","VALID_PADDING_MODE_VALUES","VALID_POOL_MODE_VALUES","VALID_BIDIRECTIONAL_MERGE_MODES","nameMap","checkPaddingMode","checkPoolMode","_nameScopeStack","nameScope","getScopedTensorName","tensorName","isValidTensorName","getUniqueTensorName","scopedName","tensorNameRegex","RegExp","arrayProd","toArray1D","sliceAlongFirstAxis","sliceAlongLastAxis","sliceAlongAxis","concatenate","concatAlongFirstAxis","stddev","reshapeBias","aFirstDims","aLastDim","bShape","bLastDim","ySecondLastDim","yOtherDims","reference","biasShape","biasAdd","level","inTrainPhase","alt","training","VALID_FAN_MODE_VALUES","VALID_DISTRIBUTION_VALUES","Initializer","Zeros","Ones","Constant","RandomUniform","DEFAULT_MINVAL","DEFAULT_MAXVAL","RandomNormal","DEFAULT_MEAN","DEFAULT_STDDEV","TruncatedNormal","gain","VarianceScaling","distribution","checkDistribution","fans","fanIn","fanOut","receptiveFieldSize","computeFans","limit","GlorotUniform","GlorotNormal","HeNormal","HeUniform","LeCunNormal","LeCunUniform","Orthogonal","DEFAULT_GAIN","INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","deserializeInitializer","serializeInitializer","getInitializer","constant","identity","varianceScaling","glorotUniform","glorotNormal","heNormal","heUniform","leCunNormal","leCunUniform","orthogonal","_nextUniqueTensorId","getNextUniqueTensorId","_uidPrefixes","getUid","isArrayOfShapes","normalizeShapeList","getExactlyOneTensor","getExactlyOneShape","countParamsInWeights","LayerVariable","DEFAULT_VARIABLE_NAME_PREFIX","trainable_","assertNotDisposed","newVal","checkShapesMatch","batchGetValue","batchSetValue","variablesAndValues","variableAndValue","InputSpec","ndim","maxNDim","minNDim","SymbolicTensor","sourceLayer","callArgs","outputTensorIndex","_nextNodeID","Node","outboundLayer","inboundLayers","nodeIndices","tensorIndices","inputTensors","outputTensors","inputMasks","outputMasks","layer","outboundNodes","inboundNodes","inboundNames","_nextLayerID","Layer","_callHook","_addedWeightNames","_stateful","activityRegularizer","inputSpec","supportsMasking","_trainableWeights","_nonTrainableWeights","_losses","_updates","_built","batchInputShape","inputDType","initialWeights","_refCount","fastWeightInitDuringBuild","nodeIndex","attrName","getNodeAtIndex","lossFn","built","trainableWeights","nonTrainableWeights","stateful","inputIndex","xShapeAtAxis","specDim","kwargs","callHook","inputsList","allAreSymbolic","noneAreSymbolic","assertInputCompatibility","xElem","build","setWeights","outputList","outputListCopy","collectInputShape","computeOutputShape","outputDType","warnOnIncompatibleInputShape","addInboundNode","dimMismatch","dimension","allOutputShapes","shapeString","trainableOnly","weightValueTuples","paramValues","pv","regularizer","initValue","addLoss","maskElement","inputTensorList","tensorIndex","numDisposedVariables","disposeWeights","refCountAfterDispose","getSourceInputs","sourceTensors","previousSources","InputLayer","sparse","inputTensor","Input","resolveScalarsInLogs","logs","scalarsToDispose","valueScalar","disposeTensorsInLogs","ModelLoggingVerbosity","BaseCallback","validationData","epoch","model","CallbackList","callbacks","queueLength","callback","setParams","setModel","onEpochBegin","onEpochEnd","onBatchBegin","onBatchEnd","onTrainBegin","onTrainEnd","BaseLogger","totals","oldTotalsToDispose","History","history","valueArray","CustomCallback","yieldEvery","currentEpoch","onYield","maybeWait","waitMs","lastResult","lastTime","bind","trainBegin","trainEnd","epochBegin","epochEnd","batchBegin","batchEnd","yield","ps","standardizeCallbacks","callbackConfig","CallbackConstructorRegistry","verbosityLevel","callbackConstructor","checkForDuplicate","constructors","levelName","ctor","configureCallbacks","epochs","initialEpoch","numTrainSamples","stepsPerEpoch","doValidation","callbackMetrics","actualCallbacks","createCallbacks","callbackList","samples","steps","metrics","deserialize","l2Normalize","squareSum","epsilonTensor","yTrue","yPred","meanAbsoluteError","meanAbsolutePercentageError","clippedTrue","MAX_VALUE","absResult","categoricalCrossentropy","fromLogits","outputSum","sparseCategoricalCrossentropy","flatTarget","binaryCrossentropy","reluLogits","negAbsLogits","sigmoidCrossEntropyWithLogits","cosineProximity","trueNormalized","predNormalized","trueXPred","lossesMap","meanSquaredLogarithmicError","clippedPred","firstLog","secondLog","squaredHinge","maxResult","hinge","categoricalHinge","pos","logcosh","log2","predictionDiff","logcoshResult","kullbackLeiblerDivergence","poisson","logPred","identifierOrFn","errMsg","includes","binaryAccuracy","threshold","yPredThresholded","categoricalAccuracy","truePositives","tp","fp","falsePositives","denominator","sparseCategoricalAccuracy","metricsMap","mse","MSE","mae","MAE","mape","MAPE","cosine","getLossOrMetricName","fnName","checkUserDefinedMetadata","modelName","checkSize","plainObjectCheck","xType","printRow","positions","printFn","line","printLayerSummary","countParams","printLayerSummaryWithConnections","relevantNodes","connections","inboundLayer","inboundLayerIndex","inboundTensorIndex","firstConnection","isArrayItemInputOrOutputName","convertPythonicToTs","pythonicConfig","tsArray","arrayLength","tsDict","pythonicKey","pythonicValue","tsKey","convertTsToPythonic","tsConfig","pyArray","pyDict","tsValue","FeedDict","feeds","id2Value","id2Mask","name2Id","feed","assertFeedCompatibility","cachedSorted","cachedRecipientCounts","execute","fetches","feedDict","probe","arrayFetches","fetchArray","outputNames","finalOutputs","feedNames","outputName","getValue","maxNumTensors","minNumTensors","fetchAndFeedKey","recipientCounts","finalSorted","finalRecipientMap","getTopologicalSortAndRecipientCountsForOneFetch","recipientMap","visited","symbolicTensor","recipient","recipientMap2Counts","getTopologicalSortAndRecipientCounts","internalFeedDict","symbolic","srcLayer","inputValues","tensorsToDispose","maskExists","getMask","hasKey","outputMask","computeMask","layerOutputs","getNodeOutputs","outputSymbolicTensors","disposeMasks","marks","topIsMarked","outputTensor","getOutputAt","Container","containerNodes","inputLayers","inputLayersNodeIndices","inputLayersTensorIndices","outputLayers","outputLayersNodeIndices","outputLayersTensorIndices","layers","internalContainerRefs","inputNames","feedInputShapes","feedInputNames","feedOutputNames","internalInputShapes","internalOutputShapes","nodesDepths","nodeIDToNode","layersDepths","layerIDToLayer","layerIndices","nodesInDecreasingDepth","buildMapOfGraph","finishedNodes","nodesInProgress","nodeKey","numInboundLayers","reversedNodesInDecreasingDepth","previousDepth","inboundNode","nodesByDepth","nodeID","layersByDepth","layerID","depthKeys","parseInt","layersForDepth","aIndex","bIndex","computableTensors","layersWithCompleteInput","allNames","numOccurrences","strict","nameToWeight","totalWeightsCount","validatedName","tokens","unsetNames","theConfig","unused","returnString","updatedConfig","masks","runInternalGraph","layersToOutputShapes","nodes","outputShapeKeys","shapeKey","tensorMap","referenceInputTensors","referenceOutputTensors","computedData","computedTensors","computedMasks","computedTensor","computedMask","nodeConversionMap","keptNodes","originalNodeIndex","calculateLosses","buildNodeConversionMap","layerConfigs","layerClassName","layerConfig","filteredInboundNodes","nodeData","newNodeIndex","modelInputs","modelOutputs","createdLayers","unprocessedNodes","addUnprocessedNode","processNode","inputData","inboundLayerName","inboundNodeIndex","processLayer","layerData","layerName","setFastWeightInitDuringBuild","layersFromConfig","currentUnprocessedNodesForLayer","inputLayersFromConfig","layerOutputTensors","outputLayersFromConfig","resetStates","standardizeClassWeights","classWeight","xWeight","weightType","numOutputs","standardizeSampleOrClassWeights","standardizeWeights","sampleWeight","sampleWeightMode","yClasses","yClassIndices","classSampleWeight","classIndex","sampleWeights","standardizeDataIteratorOutput","iteratorOut","iteratorOutObj","flattenedXs","flattenTensorOrArrayOrMap","flattenedYs","xIndex","yIndex","inputOrOutput","isDatasetObject","dataset","checkBatchSize","sliceArrays","sliceArraysByIndices","makeBatches","batchStart","ensureTensorsRank2OrHigher","disposeNewTensors","refTensors","oldTensorIds","oldTensor","isDataArray","isDataDict","isDataTensor","standardizeInputData","checkBatchAxis","exceptionPrefix","gotUnexpectedData","refDim","checkInputData","LayersModel","isTraining","lineLength","sequentialLike","depthNodes","flag","isModelSequentialLike","toDisplay","checkTrainableWeightsConsistency","trainableCount","collectedTrainableWeights","countTrainableParams","nonTrainableCount","printSummary","loss","optimizer","optimizer_","optimizerMap","isOptimizerOwned","lossFunctions","theLosses","lossFunction","feedOutputShapes","feedLossFns","skipTargetIndices","metricsNames","metricsTensors","nestedMetrics","wrappedMetrics","outputMetrics","collectMetrics","appendMetric","outputIndex","metricName","metricTensor","accFn","weightedMetricFn","metric","metricFn","metricResult","handleMetrics","standardizedOuts","standardizeUserDataXY","ins","makeTestFunction","testFunction","testLoop","hasBatches","batches","dataIterator","numExamples","xsAndYs","batchOuts","batchOut","oldScalar","evaluateDataset","stepsName","outputsIsArray","retrieveSymbolicTensors","tensorValue","executeOutputs","symbolicTensorNames","outputsRemaining","layerOutputNames","remainingNames","checkNumSamples","outsBatches","batchIndex","insBatch","xsRank2OrHigher","predictLoop","setX","setY","checkArrayLengths","lossFns","keyLosses","slicedYShape","slicedShape","targetDim","checkLossAndTargetCompatibility","standardXs","standardYs","standardSampleWeights","classWeights","indexArray","batchIds","outLabels","dedupedOutLabels","newLabel","lossValues","metricsValues","totalLoss","meanLoss","weightedMetric","regularizerLoss","valOutputs","meanMetric","inputValX","inputValY","valX","valY","standardizeUserData","valIns","valStandardized","validationSplit","splitAt","originalBatchSize","validationSteps","trainFunction","makeTrainFunction","getDedupedMetricsNames","valFunction","valF","shuffle","stopTraining_","epochLogs","epochIndexArray1D","batchLogs","valOuts","syncData","fitLoop","fitTensors","hasBatchesPerEpoch","batchesPerEpoch","valXs","valYs","validationBatches","standardizeTensorValidationData","getStepsPerEpoch","stepsDone","standardClassWeights","evaluate","validationBatchSize","fitDataset","standardizeOut","namedWeights","getWeights","numTensorsBeforeOptmizerDisposal","lossNames","metricsIdentifiers","getLossIdentifiers","getMetricIdentifiers","optimizer_config","class_name","weighted_metrics","loss_weights","sample_weight_mode","lossEntry","compile","handlerOrURL","handlers","weightDataAndSpecs","getNamedWeights","toJSON","includeOptimizer","getTrainingConfig","optimizerWeightData","optimizerWeightSpecs","Functional","modelFromJSON","modelAndWeightsConfig","uniqueWeightValues","Sequential","isLayerModelInstance","modelLayer","checkShape","lastLayerIndex","summary","predict","predictOnBatch","fit","trainOnBatch","configArray","extraModelConfig","conf","stopTraining","sequential","loadLayersModel","pathOrIOHandler","options","loadTrainingConfig","setUserDefinedMetadata","modelWeights","optimizerWeights","name2Tensor","decodeModelAndOptimizerWeights","loadLayersModelFromIOHandler","loadLayersModelInternal","registerCallbackConstructor","Activation","Linear","HardSigmoid","Softsign","Swish","serializeActivation","deserializeActivation","getActivation","assertObjectArgs","Regularizer","L1L2","hasL1","hasL2","regularization","REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeRegularizer","deserializeRegularizer","getRegularizer","ReLU","baseConfig","LeakyReLU","DEFAULT_ALPHA","PReLU","DEFAULT_ALPHA_INITIALIZER","alphaInitializer","alphaRegularizer","alphaConstraint","sharedAxes","paramShape","addWeight","ELU","ThresholdedReLU","DEFAULT_THETA","theta","DEFAULT_AXIS","normalizeArray","singleValue","convOutputLength","inputLength","outputLength","deconvLength","strideSize","kernelSize","preprocessConv2DInput","preprocessConv3DInput","conv2dWithBiasActivation","BaseConv","DEFAULT_KERNEL_INITIALIZER","DEFAULT_BIAS_INITIALIZER","verifyArgs","useBias","biasInitializer","biasConstraint","biasRegularizer","Conv","filters","kernelInitializer","kernelConstraint","kernelRegularizer","channelAxis","inputDim","kernelShape","biasValue","fusedActivationName","conv1dWithBias","conv3dWithBias","newSpace","space","newDim","Conv2DTranspose","hAxis","wAxis","kernelH","kernelW","strideH","strideW","heightAxis","widthAxis","SeparableConv","DEFAULT_DEPTHWISE_INITIALIZER","DEFAULT_POINTWISE_INITIALIZER","depthwiseKernel","pointwiseKernel","depthMultiplier","depthwiseInitializer","depthwiseRegularizer","depthwiseConstraint","pointwiseInitializer","pointwiseRegularizer","pointwiseConstraint","depthwiseKernelShape","pointwiseKernelShape","SeparableConv2D","Conv1D","Cropping2D","cropping","hSliced","UpSampling2D","DEFAULT_SIZE","interpolation","resized","DepthwiseConv2D","cols","outFilters","outRows","outCols","standardizeArgs","initialState","constants","numConstants","toListOrNull","rnn","stepFunction","initialStates","goBackwards","unroll","needPerStepOutputs","perStepOutputs","lastOutput","states","timeSteps","perStepInputs","perStepMasks","currentInput","stepOutputs","maskedOutputs","stepMask","negStepMask","RNN","cell","StackedRNNCells","cells","stateSize","returnSequences","returnState","stateSpec","states_","keptStates","outputDim","stateShape","stateMask","numStates","stepInputShape","standardized","additionalInputs","additionalSpecs","fullInput","fullInputSpec","originalInputSpec","getInitialState","cellCallKwargs","rnnOutputs","cellConfig","SimpleRNNCell","DEFAULT_ACTIVATION","DEFAULT_RECURRENT_INITIALIZER","units","recurrentInitializer","recurrentRegularizer","recurrentConstraint","recurrentDropout","dropoutMask","recurrentDropoutMask","recurrentKernel","prevOutput","generateDropoutMask","dpMask","recDpMask","SimpleRNN","GRUCell","DEFAULT_RECURRENT_ACTIVATION","resetAfter","recurrentActivation","implementation","hTMinus1","z","hh","matrixX","recurrentKernelValue","rk1","rk2","matrixInner","xZ","xR","xH","recurrentZ","recurrentR","recurrentH","GRU","LSTMCell","unitForgetBias","capturedBiasInit","capturedUnits","bI","bF","bCAndH","cTMinus1","z0","z1","z2","z3","LSTM","nestedStates","newNestedStates","callInputs","cellStates","tuples","numParams","inputWeights","droppedInputs","createMask","ConvRNN2D","computeSingleOutputShape","getStates","isChannelsFirst","hOut","wOut","ConvLSTM2DCell","recurrentKernelShape","applyDropout","xI","xF","xC","xO","recDropoutMask","hI","hF","hC","hO","kernelI","kernelF","kernelC","kernelO","biasI","biasF","biasC","biasO","inputConv","recKernelI","recKernelF","recKernelC","recKernelO","recurrentConv","getOwnPropertySymbols","propertyIsEnumerable","__rest","ConvLSTM2D","Dropout","invokeCallHook","SpatialDropout1D","Dense","inputLastDim","Flatten","RepeatVector","targetShape","isUnknown","errorMsg","finalShape","known","unknown","originalSize","anyUnknownDims","fixUnknownDimension","Permute","expectedSortedIndices","dimsIncludingBatch","Masking","maskValue","booleanMask","Embedding","embeddings","DEFAULT_EMBEDDINGS_INITIALIZER","embeddingsInitializer","embeddingsRegularizer","embeddingsConstraint","maskZero","inLens","s1","s2","Merge","shape1","shape2","computeElementwiseOpOutputShape","batchSizes","allRanks","reshapeRequired","reshapedInputs","inputDims","xNDim","mergeFunction","transposed","xTransposed","yNDim","yShape","Average","Concatenate","allNoneShape","shapeSet","shapeWithoutConcatAxis","exists","allNullMasks","concatenatedMasks","interpretAxis","Dot","normalize","interpretAxes","x1","axesArray","diffShape","adjX","adjY","idx","squeezeAxes","batchDot","GaussianNoise","GaussianDropout","AlphaDropout","_getNoiseShape","alphaP","keptIdx","batchNormalization","gamma","BatchNormalization","betaInitializer","gammaInitializer","movingMeanInitializer","movingVarianceInitializer","betaConstraint","gammaConstraint","betaRegularizer","gammaRegularizer","movingMean","movingVariance","sortedReductionAxes","needsBroadcasting","broadcastMovingMean","broadcastMovingVariance","broadcastBeta","broadcastGamma","normalizeInference","normedTraining","meanAndVariance","regularNormalizeBatchInTraining","broadcastMean","broadcastVariance","broadcastNormalizeBatchInTraining","normalizeBatchInTraining","doMovingAverage","origValue","updateDelta","updateMovingMeanAndVariance","LayerNormalization","nDims","broadcast","momentsTiling","scaleOffsetTiling","ZeroPadding2D","heightPadding","widthPadding","spatial2dPadding","pattern","pool2d","poolSize","poolMode","paddingString","pool3d","Pooling1D","poolingFunction","MaxPooling1D","AveragePooling1D","Pooling2D","MaxPooling2D","AveragePooling2D","Pooling3D","depths","MaxPooling3D","AveragePooling3D","GlobalPooling1D","GlobalAveragePooling1D","GlobalMaxPooling1D","GlobalPooling2D","GlobalAveragePooling2D","GlobalMaxPooling2D","Wrapper","newConfig","TimeDistributed","childInputShape","childOutputShape","timesteps","Bidirectional","forwDict","forwardLayer","backDict","backwardLayer","mergeMode","_trainable","numWeights","numeightsOver2","layerShapes","stateSpecs","isSymbolicTensor","yRev","forwardState","backwardState","rnnLayer","inputLayer","reLU","leakyReLU","thresholdedReLU","cropping2D","upSampling2d","dense","spatialDropout1d","repeatVector","permute","embedding","layerNormalization","zeroPadding2d","averagePooling1d","avgPool1d","avgPooling1d","averagePooling2d","avgPool2d","avgPooling2d","averagePooling3d","avgPooling3d","globalAveragePooling1d","globalAveragePooling2d","globalMaxPooling1d","globalMaxPooling2d","maxPooling1d","maxPooling2d","maxPooling3d","gru","gruCell","lstm","lstmCell","simpleRNN","simpleRNNCell","convLstm2d","convLstm2dCell","stackedRNNCells","bidirectional","timeDistributed","globalMaxPool1d","globalMaxPool2d","maxPool1d","maxPool2d","gaussianNoise","gaussianDropout","alphaDropout","masking","falseNegatives","l1l2","Callback","currVal","prevVal","EarlyStopping","restoreBestWeights","monitor","minDelta","patience","baseline","monitorFunc","wait","stoppedEpoch","best","current","getMonitorValue","monitorValue","earlyStopping","DataType","SaverDef","CheckpointFormatVersion","CUSTOM_OPS","registerOp","opFunc","opMapper","tfOpName","category","customExecutor","getRegisteredOp","deregisterOp","getParamValue","paramName","context","resourceManager","inputParam","inputParams","inputIndexStart","inputIndexEnd","getTensor","attrParam","attrParams","tensorsMap","nodeName","parseNodeName","getHashTableHandleByName","contextId","currentContextIds","find","getNodeNameWithContextId","getNodeNameAndIndex","currentContextId","parts","getPadding","explicitPadding","cloneTensor","OperationMapper","_instance","mappersJson","opMappers","mapper","graph","tfNodes","placeholders","initNodes","mapNode","inputNodeNameToKey","outputNodeNameToKey","mapSignatureEntries","allNodes","children","signatureKey","functions","library","function","func","mapFunction","newNode","rawAttrs","getStringParam","tfName","tfDeprecatedName","getStringArrayParam","getNumberParam","getNumericArrayParam","getBoolParam","getBoolArrayParam","getTensorShapeParam","getTensorShapeArrayParam","getDtypeParam","getDtypeArrayParam","getFuncParam","functionDef","nodeDef","inputArg","parseDtypeParam","returnNodeMap","outputArg","defaultOutput","mapArgsToSignature","methodName","mapArgToTensorInfo","parseStringParam","keepCase","decodeBase64","def","parseTensorShapeParam","unknownRank","NodeValueImpl","getInput","getAttr","assertShapesMatchAllowUndefinedSize","dim0","dim1","fullDefinedShape","elementShape","inferElementShape","listElementShape","partialShape","mergeElementShape","notfullDefinedShape","elementShapeA","elementShapeB","TensorArray","maxSize","identicalElementShapes","dynamicSize","clearAfterRead","closed_","idTensor","keepIds","tensorWithState","cleared","written","readMany","maxIndex","writeMany","totalLength","cumulativeLengths","elementPerRow","sizes","TensorList","elementDtype","maxNumElements","numElements","outputElementShape","reshapedTensors","elementIndex","fusedConvAndDepthWiseParams","extraOp","activationFunc","isBiasAdd","isPrelu","isBatchNorm","numArgs","biasArg","preluArg","nmsParams","HashTable","keyDType","valueDType","handle","clear","checkKeyAndValueTensor","$keys","$values","keysLength","valuesLength","findWithDefault","thenFunc","elseFunc","cond","functionMap","executeFunctionAsync","tensorArrayMap","tensorListMap","bodyFunc","condFunc","condResult","argIds","condValue","origResult","resultIds","pred","frameId","enterFrame","exitFrame","nextIteration","tensorArray","addTensorArray","writeTensor","writeTensorArray","getTensorArray","readId","readIndex","gatherId","gatherIndices","gatherDtype","scatterId","scatterIndices","scatterTensor","scatterTensorArray","scatter","concatId","concatTensorArray","concatDtype","splitId","splitTensor","lengths","splitTensorArray","sizeId","closeId","closeTensorArray","clearAndClose","getTensorList","elementDType","addTensorList","numElementsParam","reserve","fromTensor","pushBack","popBack","summarize","squeezedShape","mapped","sameShape","hashTable","addHashTable","getHashTableById","import","ExecutionContext","weightMap","rootContext","frameName","iterationId","contexts","lastId","generateCurrentContextIds","_currentContextIds","contextIdforContexts","newFrame","shift","getExecutionSubgraph","usedNodes","missingInputs","dynamicNode","syncInputs","inputNodeNames","initNodeNames","frontier","isControlFlow","isDynamicShape","isHashTable","child","CONTROL_FLOW_OPS","DYNAMIC_SHAPE_OPS","HASH_TABLE_OPS","GraphExecutor","parent","compiledMap","_weightMap","SEPERATOR","_functions","_functionExecutorMap","_outputs","_inputs","_initNodes","_signature","weightIds","_weightIds","functionExecutorMap","_resourceManager","sortedInputs","sortedOutputs","executionInfo","outNames","inNames","inputNodes","orderedNodes","getNodesInTopologicalOrder","mapInputs","checkInputs","checkInputShapeAndType","mapOutputs","checkOutputs","outputNodeNames","outputNodes","compilationKey","getCompilationKey","tensorsToKeep","getFrozenTensorIds","intermediateTensorConsumerCount","checkTensorForDisposal","ids","getTensorsForCurrentContenxt","_executeAsync","isFunctionExecution","executeWithControlFlow","outputIds","inputIds","mappedInputs","currentContext","added","processStack","missingOutputs","alternativeMsg","processChildNodes","childNode","notInGraph","normalizedName","ResourceManager","hashTableNameToHandle","hashTableMap","GraphModel","modelUrl","executor","findIOHandler","loadSync","producer","minConsumer","Instance","transformGraph","convertTensorMapToTensorsMap","executeAsync","normalizeInputs","normalizeOutputs","newMap","loadGraphModel","fromTFHub","deepMapInternal","mapFn","containedIn","recurse","mappedIterable","childResult","deepZip","zipFn","zipToList","deepZipInternal","deepMapAndAwaitAll","mappedValue","isView","cloneIfTensor","RingBuffer","capacity","RangeError","doubledCapacity","isFull","wrap","isEmpty","relativeIndex","GrowingRingBuffer","INITIAL_CAPACITY","expand","newCapacity","newData","iteratorFromItems","ArrayIterator","iteratorFromFunction","FunctionCallIterator","LazyIterator","stream","prefetch","shouldContinue","ErrorHandlingLazyIterator","FilterIterator","transform","MapIterator","AsyncMapIterator","serial","FlatmapIterator","resolveFully","serialMapAsync","resolveWhile","smallLastBatch","RowMajorBatchIterator","rowMajorBatch","baseErrorHandler","ChainedIterator","TakeIterator","SkipIterator","bufferSize","PrefetchIterator","windowSize","ShuffleIterator","SerialIterator","trav","deepMap","nextFn","upstream","lastRead","serialNext","maxCount","skipped","enableSmallLastBatch","OneToManyIterator","outputQueue","pump","mappedArray","pushAll","iterators","moreIterators","readFromChain","iteratorResult","handleErrors","itemResult","ZipMismatchMode","ZipIterator","mismatchMode","FAIL","currentPromise","afterState","numIterators","iteratorsDone","SHORTEST","LONGEST","nextState","refill","upstreamExhausted","randomInt","chosenIndex","chooseIndex","shuffleExcise","Dataset","datasetFromIteratorFn","columnMajorBatch","deepBatchConcat","forEachAsync","mapAsync","baseIterators","take","skip","reshuffleEachIteration","seed2","int32","toArray","toArrayForTest","iteratorFn","zip","datasets","ds","iteratorFromZipped","batchConcat","MAX_BUFFER_SIZE","TextLineDataset","decodeUTF8","CODE_QUOTE","STATE_OUT","STATE_FIELD","STATE_QUOTE","STATE_QUOTE_AFTER_QUOTE","STATE_WITHIN_QUOTE_IN_QUOTE","CSVDataset","csvConfig","hasHeader","fullColumnNames","columnNamesValidated","columnConfigs","configuredColumnsOnly","delimiter","delimWhitespace","columnNames","setColumnNames","columnNamesFromFile","maybeReadHeaderLine","counts","countAcc","duplicateNames","firstElement","firstLine","parseRow","makeDataElement","features","parsedValue","default","required","isLabel","valueAsNum","getBoolean","validateElementCount","readOffset","readLength","currentState","charAt","MicrophoneIterator","microphoneConfig","isClosed","fftSize","fftSizeLog2","numFrames","numFramesPerSpectrogram","sampleRateHz","columnTruncateLength","audioTrackConstraints","smoothingTimeConstant","includeSpectrogram","includeWaveform","microphoneIterator","mediaDevices","getUserMedia","audio","video","ctxConstructor","AudioContext","webkitAudioContext","audioContext","sampleRate","streamSource","createMediaStreamSource","analyser","createAnalyser","connect","freqData","timeData","spectrogramTensor","waveformTensor","audioDataQueue","getAudioData","flattenQueue","freqDataQueue","getTensorFromAudioDataArray","timeDataQueue","currentFrames","intervalID","setInterval","getFloatFrequencyData","getFloatTimeDomainData","clearInterval","disconnect","getTracks","queue","frameSize","WebcamIterator","webcamVideoElement","webcamConfig","resize","needToResize","resizeHeight","resizeWidth","cropBoxInd","centerCrop","widthCroppingRatio","heightCroppingRatio","widthCropStart","heightCropStart","widthCropEnd","heightCropEnd","cropBox","webcamIterator","facingMode","deviceId","srcObject","src","play","onloadedmetadata","cropAndResizeFrame","expandedImage","resizedImage","DataSource","StringIterator","separator","SplitIterator","impl","SplitIteratorImpl","carryover","chunkResult","ByteChunkIterator","Utf8Iterator","Utf8IteratorImpl","decoder","StringDecoder","chunk","FileChunkIterator","File","chunkSize","fileReader","onabort","isLocalPath","source","FileDataSource","fs","readFileSync","URLDataSource","fileOptions","urlString","request","headers","credentials","cache","redirect","referrer","integrity","uint8Array","statusText","urlChunkIterator","csv","generator","webcam","microphone","assertNotComplex","MathBackendCPU","firstUse","nextDataId","outId","encodedValues","complexTensorInfos","decodedData","unaryKernelFunc","cpuBackend","xSize","$dtype","makeTensorInfo","unaryKernelFuncFromImpl","unaryImpl","xi","eluConfig","identityConfig","outVals","leakyReluConfig","createSimpleBinaryKernelImpl","aVals","bVals","resultRank","resultStrides","aRank","bRank","aStrides","bStrides","aBroadcastDims","bBroadcastDims","aLoc","bLoc","preluImpl","xValue","aValue","resultData","preluConfig","reluConfig","relu6Config","realVals","imagVals","complexInfo","complexConfig","realVal","realConfig","zerosTensorInfo","floatX","disposeIntermediateTensorInfo","realPart","resultValues","castConfig","binaryKernelFunc","simpleImpl","complexImpl","$aComplex","$aComplexVals","aReal","aImag","aRealVals","aImagVals","$bComplex","$bComplexVals","bReal","bImag","bRealVals","bImagVals","resultRealData","resultImagData","resultReal","resultImag","createComplexBinaryKernelImpl","resultSize","resultRealVals","resultImagVals","aIdx","bIdx","opResult","addImpl","addComplexImpl","addConfig","$shape","$xSize","xData","reshapeConfig","batchMatMul","b3dShape","a3d","b3d","sharedDim","leftDim","rightDim","a3dValues","b3dValues","a3dStrides","b3dStrides","aBatch","aOuterStep","aInnerStep","bInnerStep","bOuterStep","bBatch","resVals","bi","i0","j0","k0","iBlock","jBlock","kBlock","batchOffsetA","batchOffsetB","batchMatMulConfig","_fusedMatMulConfig","addRes","activationRes","intermediates","simpleAbsImpl","absConfig","makeOutput","acosConfig","acoshConfig","addNConfig","outBuf","currVals","transposeImpl","xStrides","newLoc","transposeConfig","allConfig","permutedAxes","reduceShape","reshapedResult","anyConfig","anyVal","argMaxConfig","intermediateTensorInfos","argMinConfig","minIndex","asinConfig","asinhConfig","atanConfig","atan2Impl","bValue","atan2Config","atanhConfig","xValues","poolType","padTop","padLeft","POSITIVE_INFINITY","outputVals","outputBatchStrides","outputRowStrides","outputColStrides","outputBatchOffset","inputBatchOffset","yR","xRCorner","xRMin","xRMax","outputRowOffset","yC","xCCorner","xCMin","xCMax","minMaxValue","avgValue","xROffset","pixel","maxPoolPositions","flattenPositions","maxPositions","xBuf","maxPosition","wR","wC","padFront","outputDepthStrides","yDepth","xDepthCorner","xDepthMin","xDepthMax","outputDepthOffset","yRow","xRowCorner","xRowMin","xRowMax","yCol","xColCorner","xColMin","xColMax","outputColOffset","xDepth","xDepthOffset","xRow","xRowOffset","xCol","avgPoolConfig","avgPool3DConfig","avgMultiplier","dyBuf","bufferSync","dxDepth","dxRow","dxCol","dyDepthCorner","dyRowCorner","dyColCorner","dotProd","wDepth","dyDepth","wRow","dyRow","wCol","dyCol","dyData","dxR","dxC","dyRCorner","dyCCorner","dyR","dyC","batchNormConfig","mVals","varVals","sVals","offVals","offValsLength","sValsLength","varValsLength","mValsLength","offi","mi","si","vi","sliceImpl","isContinous","inBuf","outLoc","inLoc","$size","sliceConfig","batchToSpaceNDConfig","xReshaped","xTransposedReshaped","bincountImpl","weightsVals","weightsDtype","weightsShape","weightsSize","bincountReduceImpl","weightsBuf","bincountConfig","createSimpleUnaryImpl","ceilImpl","ceilConfig","clip","clipAttrs","clipConfig","complexAbsConfig","complexVals","hypot","concatImpl","simplyConcat","colOffset","tIdx","resIdx","col","imagVal","imagConfig","$inputs","reals","imags","realConcated","imagConcated","inputs2D","innerSize","inputsValShapes","finalOutShape","concatConfig","conv2D","isChannelsLast","filterStrides","xBatchStride","xRowStride","xColStride","xChannelStride","yBatchStride","yRowStride","yColStride","yChannelStride","wVals","xOffset1","yOffset1","yOffset2","wOffset1","xOffset2","yOffset3","xOffset3","wOffset3","d1","xVal","d2","conv2DConfig","conv2DBackpropFilterConfig","dW","leftPad","topPad","dyVals","yRMin","yRMax","yCMin","yCMax","conv2DBackpropInputConfig","dyStrides","dxValues","dyValues","fltValues","fltS0","fltS1","fltS2","dyOffset","fltOffset","conv3DConfig","yF","xFCorner","wF","wOffset2","yOffset4","xOffset4","wOffset4","conv3DBackpropFilterV2Config","dw","dwValues","dwS0","dwS1","dwS2","dwS3","dyS0","dyS1","dyS2","dyS3","xS0","xS1","xS2","xS3","frontPad","yFMin","yFMax","conv3DBackpropInputV2Config","dxS0","dxS1","dxS2","dxS3","fltS3","xFMin","cosConfig","coshConfig","cropAndResizeConfig","cropHeight","cropWidth","boxVals","boxIndVals","imageVals","inStride","outStride","startInd","y1","y2","bInd","heightScale","widthScale","yInd","ind","topInd","bottomInd","yLerp","xInd","leftInd","rightInd","xLerp","topLeft","topRight","bottomLeft","closestX","closestY","inInd","outInd","cumsumConfig","permutedAxis","resultDtype","finalDim","indexAdjuster","prevIdx","reverseTransposedResult","denseBincountConfig","depthToSpaceConfig","outputHeight","outputWidth","outputDepth","outputIdx","inH","offsetH","inW","offsetD","inputIdx","depthwiseConv2dNative","chMul","depthwiseConv2dNativeConfig","depthwiseConv2dNativeBackpropFilterConfig","dm","depthwiseConv2dNativeBackpropInputConfig","diagConfig","dilation2dConfig","filterVals","filterRank","outSize","outRank","hBeg","wBeg","curVal","hIn","wIn","filterIndex","dilation2dBackpropFilterConfig","hMax","wMax","dilation2dBackpropInputConfig","hInMax","wInMax","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","multiplyImpl","multiplyComplexImpl","multiplyConfig","realDivImpl","realDivConfig","subImpl","subComplexImpl","subConfig","fftBatch","innerDim","inputVals","real2D","imag2D","fftImpl","$realInfo","$imagInfo","inputSize","fftRadix2","realInfo","imagInfo","sizeInfo","sizeInfoCopy","divRealInfo","divImagInfo","divRealVals","divImagVals","term","fourierTransformByMatmul","evenComplex","evenRealVals","evenImagVals","evenShape","evenRealInfo","evenImagInfo","evenTensorInfo","oddComplex","oddRealVals","oddImagVals","oddShape","oddRealInfo","oddImagInfo","oddTensorInfo","$evenComplex","$evenRealVals","$evenImagVals","$evenShape","$evenRealInfo","$evenImagInfo","$evenTensorInfo","$oddComplex","$oddRealVals","$oddImagVals","$oddShape","$oddRealInfo","$oddImagInfo","$oddTensorInfo","eShape","eRealInfo","eImagInfo","exponentInfo","addPart","subPart","addPartReal","subPartReal","addPartImag","subPartImag","$realVals","$imagVals","fftConfig","input2D","resultReshaped","fillValues","fillConfig","flipLeftRightConfig","batchIdx","batchOffset","rowOffset","coordX","outputValue","floorImpl","floorConfig","floorDivImpl","floorDivConfig","fusedConv2DConfig","resultOld","fusedDepthwiseConv2DConfig","oldResult","gatherNdConfig","paramsSize","numSlices","indicesData","paramsData","flattenIndex","gatherV2Impl","indicesBuf","flattenOutputShape","originalLoc","indicesIdx","indicesIndex","originalIndex","gatherV2Config","$batchDims","shapeInfo","flattenX","greaterImpl","greaterConfig","greaterEqualImpl","greaterEqualConfig","ifftConfig","isFiniteConfig","isInfConfig","isNaNConfig","lessImpl","lessConfig","lessEqualImpl","lessEqualConfig","linSpaceImpl","linSpaceConfig","logImpl","logConfig","log1pConfig","logicalAndImpl","logicalAndConfig","logicalNotConfig","logicalOrImpl","logicalOrConfig","lRNConfig","channels","maxD","sumAcrossChannels","currentChannel","beginSumOffset","endSumOffset","lRNGradConfig","dySize","yValues","depthBegin","depthEnd","dyi","maxImpl","maxOutShape","maxConfig","maximumImpl","maximumConfig","maxPoolConfig","maxPool3DConfig","maxPosBuf","maxPool3dPositions","maxPoolWithArgmaxConfig","pooled","maxPools","maxPoolWithArgmaxImpl","pooledDataId","indexesDataId","permutedX","sumConfig","meanConfig","toDispose","reduceSizeScalar","minConfig","minimumImpl","minimumConfig","mirrorPadConfig","coords","inIndex","modImpl","rem","modConfig","logitsRank","maxLogit","expandedShape","maxLogitReshaped","sumExp","sumReshaped","softmaxConfig","multinomialConfig","probabilities","numEvents","probVals","resShape","cdf","outOffset","sampleId","negImpl","xDtype","minusOne","negConfig","nonMaxSuppressionV3Config","nonMaxSuppressionV4Config","nonMaxSuppressionV5Config","maxOutputSizeVal","iouThresholdVal","scoreThresholdVal","softNmsSigmaVal","notEqualImpl","notEqualConfig","oneHotConfig","indicesVal","imagPart","zerosLikeConfig","onesLikeConfig","pack","expandedT","packConfig","padV2Config","powImpl","powConfig","prodImpl","outDtype","prodConfig","rangeImpl","rangeConfig","reciprocalConfig","resizeBilinearConfig","imagesStrides","newHeight","newWidth","oldHeight","oldWidth","effectiveInputSize","effectiveOutputSize","effectiveRowSizeRatio","effectiveColSizeRatio","sourceFracRow","sourceRowFloor","rowFrac","sourceRowCeil","topRowOffset","botRowOffset","sourceFracCol","sourceColFloor","colFrac","sourceColCeil","topLeftOffest","botLeftOffset","topRightOffset","botRightOffest","xHeight","xWidth","yHeight","yWidth","effectiveXSize","effectiveYSize","bOffset","topDxRIndex","bottomDxRIndex","topDxROffset","bottomDxROffset","dxRLerp","inverseDxRLerp","leftDxCIndex","rightDxCIndex","dxCLerp","inverseDxCLerp","topLeftRCOffset","topRightRCOffset","bottomLeftRCOffset","bottomRightRCOffset","inverseDxRLerpTimesInverseDxCLerp","inverseDxRLerpTimesDxCLerp","dxRLerpTimesInverseDxCLerp","dxRLerpTimesDxCLerp","dyVal","resizeNearestNeighborConfig","outputOffset","sourceNearestRow","sourceNearestCol","invHeightScale","invWidthScale","winHeight","winWidth","startRLerp","startDyR","startCLerp","startDyC","accum","dyRIndex","dyROffset","dyCIndex","dyCOffset","reverseConfig","$dims","rotateWithOffsetConfig","centerX","centerY","sinFactor","cosFactor","coordY","roundConfig","rsqrtImpl","rsqrtConfig","scatterImpl","sumDupeIndices","flattenShape","updatesData","scatterNdConfig","selectConfig","conditionRank","tValues","eValues","seluConfig","sigmoidConfig","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","outputValues","kernelConfigs","valueRank","outIndex","tempRes","expanded","scalarValue","segmentId","maskCasted","sumTensorInfo","WEBGL_ATTRIBUTES","antialias","premultipliedAlpha","preserveDrawingBuffer","stencil","failIfMajorPerformanceCaveat","getWebGLContext","webGLVersion","newCtx","OffscreenCanvas","createCanvas","addEventListener","ev","preventDefault","getWebGLRenderingContext","gl","isContextLost","disable","DEPTH_TEST","STENCIL_TEST","BLEND","DITHER","POLYGON_OFFSET_FILL","SAMPLE_COVERAGE","enable","SCISSOR_TEST","CULL_FACE","cullFace","BACK","PackingScheme","TextureUsage","PhysicalTextureType","getUnpackedMatrixTextureShapeWidthHeight","getDenseTexShape","getPackedMatrixTextureShapeWidthHeight","getTextureConfig","textureHalfFloatExtension","glany","internalFormatFloat","internalFormatHalfFloat","internalFormatPackedHalfFloat","internalFormatPackedFloat","textureFormatFloat","downloadTextureFormat","downloadUnpackNumChannels","defaultNumChannels","textureTypeHalfFloat","textureTypeFloat","getNumber","R32F","R16F","RGBA16F","RGBA32F","RED","HALF_FLOAT","FLOAT","RGBA","HALF_FLOAT_OES","callAndCheck","returnValue","getError","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","INVALID_FRAMEBUFFER_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","getWebGLErrorMessage","checkWebGLError","canBeRepresented","getExtensionOrThrow","extensionName","throwIfNull","getExtension","lineNumberRegex","validateProgram","program","getProgramParameter","VALIDATE_STATUS","getProgramInfoLog","bindVertexBufferToProgramAttribute","attribute","arrayEntriesPerItem","itemStrideInBytes","itemOffsetInBytes","getAttribLocation","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","enableVertexAttribArray","bindTextureToProgramUniformSampler","texture","uniformSamplerLocation","textureUnit","maxTextureUnit","MAX_COMBINED_TEXTURE_IMAGE_UNITS","glTextureUnit","TEXTURE0","validateTextureUnit","activeTexture","bindTexture","TEXTURE_2D","bindTextureUnit","uniform1i","bindColorTextureToFramebuffer","framebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","unbindColorTextureFromFramebuffer","validateFramebuffer","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","getFramebufferErrorMessage","returnTOrNull","failureMessage","tOrNull","getBatchDim","dimsToSkip","getRowsCols","getShapeAs3D","shapeAs3D","isEven","isReshapeFree","shape1Cols","shape2Cols","MAX_TEXTURE_SIZE","MAX_TEXTURES_IN_SHADER","hasExtension","isWebGLVersionEnabled","createFloatTextureAndBindToFramebuffer","texConfig","createTexture","texImage2D","frameBuffer","createFramebuffer","isFrameBufferComplete","deleteTexture","deleteFramebuffer","getGlslDifferences","varyingVs","varyingFs","texture2D","defineOutput","defineSpecialNaN","defineSpecialInf","defineRound","getLogicalCoordinatesFromFlatIndex","getFlatIndexFrom3D","getParameter","getWebGLMaxTextureSize","MAX_TEXTURE_IMAGE_UNITS","getMaxTexturesInShader","queryTimerVersion","getWebGLDisjointQueryTimerVersion","isCapableOfRenderingToFloatTexture","COLOR_BUFFER_HALF_FLOAT","createHalfFloatTextureAndBindToFramebuffer","isDownloadFloatTextureEnabled","isWebGLFenceEnabled","fenceSync","ENCODE_FLOAT_SNIPPET","DecodeMatrixProgram","packedInputs","packedOutput","outPackingScheme","DENSE","texShape","glsl","userCode","DecodeMatrixPackedProgram","EncodeFloatProgram","outTexUsage","DOWNLOAD","EncodeFloatPackedProgram","EncodeMatrixProgram","inputIsUnsignedByte","EncodeMatrixPackedProgram","mainLoop","createAndConfigureTexture","internalFormat","textureFormat","textureType","maxTextureSize","tex2d","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","getInternalFormatForFloat32MatrixTexture","textureConfig","getInternalFormatForFloat16MatrixTexture","getInternalFormatForUnsignedBytesMatrixTexture","getInternalFormatForPackedMatrixTexture","getInternalFormatForFloat16PackedMatrixTexture","GPGPUContext","outputTexture","disposed","vertexAttrsAreBound","itemsToPoll","glVersion","setWebGLContext","COLOR_BUFFER_FLOAT","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","textureFloatExtension","colorBufferFloatExtension","colorBufferHalfFloatExtension","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","indexBuffer","ELEMENT_ARRAY_BUFFER","finish","deleteBuffer","UNSIGNED_BYTE","dataForUpload","texelDataType","downloadMatrixDriver","downloadTarget","readPixels","physicalRows","physicalCols","gl2","PIXEL_PACK_BUFFER","getBufferSubData","bindTextureToFrameBuffer","bufferSizeBytes","bytesPerFloat","STREAM_READ","unbindTextureToFrameBuffer","fenceContext","createFence","pollFence","isFencePassed","sync","SYNC_GPU_COMMANDS_COMPLETE","flush","clientWaitSync","ALREADY_SIGNALED","CONDITION_SATISFIED","beginQuery","endQuery","isQueryAvailable","packedRGBA","fragmentShaderSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","shaderInfoLog","lineNumberRegexResult","exec","lineNumber","shaderLines","linesWithLineNumbers","maxLineLength","beforeErrorLines","errorLine","afterErrorLines","logShaderSourceAndInfoLog","getShaderInfoLog","vertexShader","vertexShaderSource","VERTEX_SHADER","createProgram","attachShader","linkProgram","LINK_STATUS","debug","setProgram","deleteProgram","useProgram","uniformName","shouldThrow","getUniformLocation","inputMatrixTexture","uniformLocation","throwIfNoProgram","outputMatrixTexture","setOutputMatrixTextureDriver","outputPackedMatrixTexture","startRow","startColumn","setOutputMatrixWriteRegionDriver","debugValidate","drawElements","TRIANGLES","UNSIGNED_SHORT","disjointQueryTimerExtension","getQueryTimerExtension","ext","getQueryTimerExtensionWebGL2","createQuery","TIME_ELAPSED_EXT","getQueryTimerExtensionWebGL1","createQueryEXT","beginQueryEXT","endQueryEXT","getQueryTime","getQueryParameter","QUERY_RESULT","getQueryObjectEXT","QUERY_RESULT_EXT","available","QUERY_RESULT_AVAILABLE","disjoint","GPU_DISJOINT_EXT","QUERY_RESULT_AVAILABLE_EXT","addItemToPoll","linearSearchLastTrue","isDoneFn","resolveFn","pollItems","downloadAndDecode","outputMatrixTextureMaybePacked","viewport","scissor","makeShader","inputsInfo","usesPackedTextures","prefixSnippets","logicalShape","isUniform","inputPrefixSnippet","inputSamplingSnippet","inInfo","outShapeInfo","getPackedSamplerFromInInfo","getSamplerFromInInfo","inputInfo","texName","texFuncSnippet","funcName","broadcastDims","getCoordsDataType","rankDiff","coordsSnippet","unpackedCoordsSnippet","isInputScalar","isOutputScalar","getPackedSamplerAtOutputCoords","outTexShape","inTexShape","getSamplerAtOutputCoords","getInputSamplingSnippet","floatTextureSampleSnippet","getFloatTextureSampleSnippet","outputSamplingSnippet","floatTextureSetOutputSnippet","shaderPrefix","SAMPLE_1D_SNIPPET","SAMPLE_2D_SNIPPET","SAMPLE_3D_SNIPPET","getShaderPrefix","isPacked","packedTexShape","getOutputPacked1DCoords","texelsInLogicalRow","getOutputPacked2DCoords","texelsInBatch","getOutputPacked3DCoords","texelsInBatchN","getOutputPackedNDCoords","getPackedOutputSamplingSnippet","getFloatTextureSetRGBASnippet","getOutput2DCoords","coordsFromIndexSnippet","getOutput3DCoords","getOutput4DCoords","getOutput5DCoords","getOutput6DCoords","getOutputSamplingSnippet","getFloatTextureSetRSnippet","SHADER_PACKED_PREFIX","texNumR","texNumC","tNumR","tNumC","getFlatOffsetUniformName","getSamplerScalar","getUniformSampler","getSampler1D","squeezeInputInfo","getSqueezedParams","getSampler2D","stride0","stride1","getSampler3D","stride2","getSampler4D","stride3","getSampler5D","stride4","getSampler6D","getPackedSamplerScalar","getPackedSampler1D","getPackedSampler2D","valuesPerRow","getPackedSampler3D","getPackedSamplerND","newInputInfo","validateBinaryAndProgram","shapeInfos","texShapeA","texShapeB","texData","addImplCPU","bincountImplCPU","bincountReduceImplCPU","ceilImplCPU","concatImplCPU","expImplCPU","expm1ImplCPU","floorImplCPU","gatherV2ImplCPU","greaterImplCPU","lessImplCPU","linSpaceImplCPU","logImplCPU","maxImplCPU","maximumImplCPU","minimumImplCPU","multiplyImplCPU","negImplCPU","prodImplCPU","rangeImplCPU","rsqrtImplCPU","simpleAbsImplCPU","sliceImplCPU","stridedSliceImplCPU","subImplCPU","tileImplCPU","topKImplCPU","transposeImplCPU","uniqueImplCPU","getVecChannels","getChannels","PackProgram","outOfBoundsCondition","getOutOfBoundsCondition","setup","getSetup","sourceCoords","coord","getSourceCoordsArr","getOutput","ReshapePackedProgram","thisRC","TextureManager","gpgpu","numUsedTextures","numFreeTextures","_numBytesAllocated","_numBytesFree","freeTextures","logEnabled","usedTextures","shapeRC","usage","physicalTexType","getPhysicalFromLogicalTextureType","getKeyFromTextureShape","texBytes","computeBytes","newTexture","PACKED_2X2_FLOAT32","createPackedMatrixTexture","PACKED_2X2_FLOAT16","createFloat16PackedMatrixTexture","UNPACKED_FLOAT32","createFloat32MatrixTexture","UNPACKED_FLOAT16","createFloat16MatrixTexture","PACKED_4X1_UNSIGNED_BYTE","createUnsignedBytesMatrixTexture","logicalTexType","deleteTexThreshold","deleteMatrixTexture","texList","texIndex","freeRatio","tex","internalFormatForPhysicalTexType","packedWidth","packedHeight","numBytesForInternalFormat","UPLOAD","RENDER","getPhysicalTextureForRendering","PIXELS","shapeRowsCol","UnaryOpProgram","opSnippet","ABS","CLONE","UnaryOpPackedProgram","UnpackProgram","getSourceCoords","binaryCaches","MathBackendWebGL","pendingRead","pendingDisposal","WeakSet","dataRefCount","numBytesInGPU","uploadWaitMs","downloadWaitMs","lastGlFlushTime","warnedAboutMemory","warnedAboutCPUBackend","pendingDeletes","binaryCache","gpgpuCreatedLocally","textureManager","numMBBeforeWarning","screen","devicePixelRatio","checkNumericalProblems","runWebGLProgram","convertAndCacheOnCPU","shouldTimeProgram","activeTimers","getValuesFromTexture","subscribers","tmpDownloadTarget","tmpData","createBufferFromTexture","createAndWaitForFence","downloadFloat32MatrixFromBuffer","dTypeVals","tmpTarget","downloadMatrixFromPackedTexture","shouldUsePackedProgram","downloadByteEncodedFloatMatrixFromOutputTexture","oldActiveTimers","newActiveTimers","outerMostTime","programTimersStack","flattenedActiveTimerQueries","flattenedActiveTimerNames","ms","numBytesInGPUAllocated","numBytesAllocated","numBytesInGPUFree","numBytesFree","startMs","endMs","waitForQueryAndGetTime","timerQuery","releaseGPUData","origDataId","releaseTexture","uploadToGPU","sizeThreshold","getCPUBackend","compileAndRun","shouldExecuteOnCPU","outValues","packedUnaryOp","afterShape","input3DShape","input3D","afterShapeAs3D","outputDtype","customSetup","preventEagerUnpackingOfOutput","outData","texelShape","dataToDispose","inputsData","uniformValues","unpackTensor","packTensor","savedInput","packedReshape","outputData","keyInputs","hasOffset","keyUserCode","binary","getAndSaveBinary","inputInfos","inShapeInfos","webGLProgram","infLoc","nanLoc","uniformLocations","startTimer","outTex","setOutputPackedMatrixTexture","setOutputMatrixTexture","uniform1f","varLoc","varOffsetLoc","uniform1fv","setInputMatrixTexture","executeProgram","endTimer","glFlushThreshold","unpacked","getBinary","HTMLCanvasElement","remove","floatPrecisionValue","debugFlag","underflowCheckValue","logShape","maxTexSize","squeezeResult","isByteArray","tempDenseInputHandle","uploadDenseMatrixToTexture","getTexture","preventEagerUnpacking","encodedOutputTarget","outputTexData","acquireTexture","float32Values","float32ToTypedArray","texType","mb","BinaryOpProgram","BinaryOpPackedProgram","checkOutOfBounds","supportsBroadcasting","checkOutOfBoundsString","realTensorInfo","imagTensorInfo","LEAKYRELU","LEAKYRELU_PACKED","$alpha","PRELU","PRELU_PACKED","packedOpSnippet","cpuKernelImpl","webglBackend","supportsComplex","aData","bData","complexParts","aPart","bPart","aHandle","bHandle","complexOutput","mapActivationToShaderProgram","packed","CHECK_NAN_SNIPPET","MatMulPackedProgram","addBias","hasPreluActivation","hasLeakyreluActivation","sharedDimensionPacked","aSample","bSample","aSwizzle","bSwizzle","activationSnippet","applyActivationSnippet","addBiasSnippet","batchASnippet","batchBSnippet","BinaryOpComplexProgram","MUL","realProgram","imagProgram","xTexData","MeanProgram","reduceInfo","divisor","windowSizeNearestVec4","windowSizeVec4Remainder","updateSnippet","toPrecision","ReduceProgram","reduceType","initializationValue","compareOp","vecType","reductionType","reductionStages","stages","getReductionStages","previousResult","TransposeProgram","switched","originalOrder","switchedCoords","getSwitchedCoords","TransposePackedProgram","outputOrder","switchedOrder","nextColumn","getc","sumInputIsTransposed","sumInput","sumOutShape","reshapedInput","reduced","sumImpl","batchMatMulImpl","a3dShape","hasBias","hasPreluActivationWeights","hasLeakyreluAlpha","fusedActivation","aVec","bVec","shouldReshapeB","aVec3d","bVec3d","$leakyreluAlpha","outReshaped","ADD","addKernelFunc","AddNProgram","snippets","operation","AddNPackedProgram","midIndex","leftSide","rightSide","a2D","ArgMinMaxProgram","firstPass","compOp","indexSnippet","ArgMinMaxPackedProgram","sourceLocSetup","sourceRank","sourceLocDType","inChannel","intChannels","srcRCoords","srcGCoords","srcBCoords","srcACoords","fetchCandidateIdx","fetchValue","getBestIndicesAChannelSnippet","argReduce","bestIndicesA","argReducePacked","argMinMaxReduce","CHECK_NAN_SNIPPET_BINARY","Pool2DProgram","computePositions","isAvgPool","batchFlattenPositionStr","flattenPositionStr","filterWidthNearestVec4","filterWidthVec4Remainder","Pool3DProgram","avgPoolProgram","AvgPool2DBackpropProgram","AvgPool3DBackpropProgram","avgPoolGrad3DConfig","avgPoolBackpropProgram","BatchNormProgram","meanShape","varianceShape","offsetShape","scaleShape","offsetSnippet","scaleSnippet","BatchNormPackedProgram","finalInputs","SliceProgram","destSize","uniformPart","getCoords","startLoc","getUniformLocationNoThrow","uniform1iv","SlicePackedProgram","sourceLoc","getChannel","upperRow","lowerRow","getCustomSetupFunc","newTexData","shallowSlice","reshapedIntermediate","transposedIntermediate","reshapedIntermediate2","zerosTensor","CEIL","ClipProgram","minLoc","maxLoc","ClipPackedProgram","clipByValueConfig","ComplexAbsProgram","makeComplexComponentTensorInfo","complexTensor","complexPart","programInputs","ConcatProgram","offsets","lastIndex","lastShift","ConcatPackedProgram","lastChannels","allChannels","getValueSnippet","shiftedChannels","channelIdx","tensors2D","computeTensors2D","Conv2DProgram","inputDepthNearestVec4","inputDepthVec4Remainder","rowDim","colDim","channelDim","Conv3DProgram","Im2ColPackedProgram","itemsPerBlockRow","unrolled","conv2dByMatMul","sharedMatMulDim","outerShapeX","outerShapeFilter","batchMatMulWillBeUnpacked","reshapeWillBeExpensive","originalXTexDataShape","filterReshaped","pointwiseConv","pointwiseConvTexData","conv2dWithIm2Row","x2ColShape","xSqueezed","w2Row","im2ColProgram","im2Col","im2ColReshaped","matmulProgram","Conv2DDerFilterProgram","Conv2DDerInputProgram","Conv3DDerFilterProgram","Conv3DDerInputProgram","conv3DBackpropInputConfig","CHECK_NAN_SNIPPET_UNARY","CropAndResizeProgram","imageShape","boxShape","methodId","inputHeightFloat","inputWidthFloat","heightRatio","inY","widthRatio","inX","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","nextTexelOffset","DepthwiseConv2DDerFilterProgram","DepthwiseConv2DDerInputProgram","DiagProgram","flat","Dilation2DProgram","dilation2DConfig","EXP","EXPM1","FFTProgram","component","exponentMultiplierSnippet","resultDenominator","opString","complexOutputReshaped","FillProgram","valueLoc","FlipLeftRightProgram","FLOOR","FromPixelsProgram","FromPixelsPackedProgram","fromPixelsConfig","tempPixelHandle","uploadPixelDataToTexture","shouldPackDepthwiseConv","GatherNDProgram","stridesType","strideString","flattenIndices","GatherProgram","currentCoords","LRNProgram","radius","rad","powOperator","basis","LRNPackedProgram","LRNConfig","LRNGradProgram","LRNGradConfig","maxInputIsTransposed","maxInput","maxInputValues","reshapedOutput","maxPoolProgram","MaxPool2DBackpropProgram","MaxPool3DBackpropProgram","maxPoolGrad3DConfig","maxPool3dPositionsProgram","maxPoolBackpropProgram","maxPoolPositionsProgram","maxPoolBackPropProgram","poolOutput","meanInputIsTransposed","meanInput","meanInputValues","meanOutShape","meanImpl","MirrorPadProgram","unpackedCoords","MirrorPadPackedProgram","cLimit","padSetup","MultinomialProgram","seedLoc","realDiv","SUB","maxLogitsReshaped","sumExpReshaped","probs","NEG","OneHotProgram","numIndices","PadProgram","PadPackedProgram","componentSetup","paddingArea","ResizeBilinearProgram","effectiveInSize","effectiveOutSize","sourceFracIndexRC","ResizeBilinearPackedProgram","ResizeBilinearBackpropProgram","ResizeNearestNeighborProgram","roundBase","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","centerXString","centerYString","fillSnippet","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","SegmentOpProgram","segOpInfo","segOpType","checkValueOutOfBounds","checkSegmentIdOutOfBounds","segOpCompute","rangeInfo","tileInfo","regex","opts","exact","Configs","table_width","table_truncate","dtype_test_lim","table_max_row","table_max_col_in_console","utils","Utils","__in_object","df_list","df_object","duplicate_col_count","max_length","column","col_name","column_length","null_array","DataFrame","column_set","df_columns","not_exist","col_index","row_value","new_arr","Series","_set_column_property","col_vals","col_data","col_names","column_names","addColumn","csvFilePath","csvContent","require","writeFileSync","webCSV","encodeURI","params_needed","_throw_wrong_params_error","to_drop","new_col_data","new_dtype","col_idx","dtypes","old_cols","new_columns","df","__set_col_property","__update_frame_in_place","__key_in_object","new_data","new_index","data_idx","__remove_arr","row_data_tensor","tf","__set_index","indexLoc","row_len","indx","shuffled_index","iloc","other","__frame_is_compactible_for_operation","__get_ops_tensors","sum_vals","__get_df_from_tensor","operands","__get_tensor_and_idx","tensor_vals","sf","arraySync","col_data_tensor","median","__median","std","__count_nan","dp","new_vals","__round","ops","df_data","temp_val","temp_data","curr_val","__get_col_values","__cum_ops","inplace","copy","__reset_index","drop","numeric_df","select_dtypes","stats_arr","col_series","_stats","include","original_col_vals","__supported_dtypes","val_sums","temp_sum","abs_data","t_axis","operators","column_index","operator","data_value","elem","eval","new_df","column_name","data_length","new_val","new_dtypes","__get_t","new_col_names","col_dict","key_column","data1","data2","column_1_Unique","__unique","column_2_unique","col_value","col2_value","column_Unique","GroupBy","__arr_to_obj","__temp","final_data","nan_val","__isna","df_values","index_data","__is_function","callable","callable_data","new_row","__is_1D_array","__logical_ops","new_col_data_obj","temp_col_data","replaced_arr","old_arr","inner_arr","logical_type","int_vals","__is_number","series","__map_int_to_bool","new_array","__is_undefined","tensors_arr","this_tensor","other_tensor","new_values","Plot","new_types","col_types","col_values","new_col_values","temp_col","new_col_obj","cname","_unique","_index","data_set","_nunique","old_col_names","old_index","row_index","asc","index_val","__sort_by","column_val","row_data","col_obj","_res","_get_row_and_col_values","index_arr","df_index","sorted_val","__sort","duplicate_obj","__get_duplicate","indexs","row_i","df2","__is_object","d_types","Ndframe","NDframe","_read_array","_read_object","__is_string","__replace_undefined_with_NaN","_set_col_types","row_arr","data_arr","infer","new_idx","temp_arr","records","header","csv_str","json_arr","get_width","get_truncate","max_row","get_max_row","max_col_in_console","get_max_col_in_console","table_config","col_len","sub_idx","values_1","value_2","first_4_cols","last_3_cols","df_subset_1","df_subset_2","truncate","table_data","table","key_col","data_tensors","col1_index","col2_index","col1_value","key2","group_col_name","key1","group_col","ops_name","ops_map","is_array","count_group","arithemetic","to_DataFrame","operations","toLocaleLowerCase","key_1","key_val","key_2","k_data","key_data","ndframe","isColumnSplit","row_split","__range","row_idx","data_values","row_val","max_rowIndex","max_colIndex","final_row","__convert_2D_to_1D","__check_series_op_compactibility","div_result","tensor1","tensor2","_throw_str_dtype_error","_remove_nans","max_result","sorted_values","arr_obj","range_idx","sorted_idx","_sort_arr_with_index","is_callable","s_data","data_dict","__bool_ops","old_values","isna_vals","isna","ascending","sorted_index","sort_values","b_ops","r_series","l_series","l_val","r_val","Boolean","el","Str","timeseries","TimeSeries","preprocessed","__create_new_sf_from","f_char","l_char","new_str","position","final_arr","l_str","r_str","searchValue","replaceValue","startIndex","endIndex","splitVal","valToJoin","joinChar","r_char","new_char","__in_format","__monthName","__weekName","format_values","generate_format","date_list","date_string","format_dateString","__apply_format","valueDate","__is_validDate","is_timestamp","string2int","format_list","int2string","date_instance","toDateString","__date_ops","getMonth","getHours","getDay","getFullYear","getDate","getSeconds","getMinutes","to_datetime","destructive","selected","population","cols_len","cols_arr","first_col_len","rows_len","rows_arr","temp_row","isSeries","full_arr","ele","arr_val","lim","int_tracker","float_tracker","string_tracker","bool_tracker","get_dtype_test_lim","__checker","arr_map","return_val","null_count","val_count","result_arr","ele_arr","modes","arr_ele","gen_num","randi","recursive","recur_val","outer_val","tensor_data","zero_data","isNode","temp_obj","rslt_obj","arr1","arg1","read_csv","configs","tfdata","read_json","read_excel","sheet","header_index","data_index","workbook","XLSX","worksheet","Sheets","SheetNames","R","C","cell_ref","how","on","left_col_index","right_col_index","left_index","right_index","left_key_dict","right_key_dict","left_values","right_values","left_value","left_key_comb","left_value_filter","right_value","right_key_comb","right_value_filter","__create_columns","outer","inner","left_merge","right_merge","left_col","right_col","column_duplicate","temp_column","basic","left_keys","right_keys","key_array","left_row","left_i","left_row_row","right_row","r_i","right_row_row","inner_data","nan_array","merge","LabelEncoder","in_data","output_data","OneHotEncoder","onehot_data","__zeros","elem_index","MinMaxScaler","StandardScaler","date_range","period","freq","freq_list","freq_split","start_date","end_date","start_range","end_range","freq_type","start_year","end_year","month_end","day_end","range_array","offset_count","month_range","set_dateProps","toLocalString","date","ftype","rslt","d_array","r_array","new_date","valueOf","setYear","setMonth","setSeconds","setDate","setHours","setMinutes","toLocaleString","end_month","minus","y_val","m_range","prefix_sep","prefix_labels","get_dummies","is_dataframe","name_column","column_data","one_hotColumns","one_hotData","dt","final_columns","_version","Plotly","ret_params","__get_plot_params","this_config","trace","newPlot","xaxis","yaxis","____check_if_cols_exist","c_name","hoverinfo","automargin","cols_to_plot","cols_2_show","cols_data","root","parser_exit","SyntaxError","logHypot","_b","plus","loh","re","im","xx","cosm1","noIM","oneMinus","onePlus","places","E","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","P","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","cmp","xdL","ydL","xd","yd","pr","Ctor","sd","tinyPow","taylorSeries","times","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3","t3plusx","isZero","toExponential","divide","eq","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","inverseCosine","halfPi","isNeg","getPi","inverseHyperbolicCosine","lte","ln","inverseHyperbolicSine","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","px","isNegative","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","carry","getPrecision","sine","sin2_x","squareRoot","tangent","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","d0","n0","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","multiplyInteger","compare","aL","bL","subtract","more","prodL","qd","remL","rem0","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","guard","c0","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","pi","useDefaults","defaults","getRandomValues","randomBytes","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","p2","A","B","D","gcd","eps","cont","rec","excludeWhole","whole","dec","cycLen","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","asciiSize","baseProperty","string","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","tag","isFunc","stacked","subValue","objectCreate","baseCreate","proto","isSymbol","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","isPrototype","nativeKeys","nativeKeysIn","isProto","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","symbolProto","symbolToString","baseToString","stringToPath","baseSlice","baseIndexOf","strSymbols","chrSymbols","freeExports","nodeType","freeModule","allocUnsafe","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","setToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","types","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","hasUnicode","unicodeSize","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","CLONE_DEEP_FLAG","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsMap","baseUnary","nodeIsMap","baseIsRegExp","nodeIsRegExp","isRegExp","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseKeysIn","baseForOwn","baseIteratee","baseExtremum","baseGt","resolver","memoized","Cache","basePropertyDeep","castFunction","toInteger","MAX_ARRAY_LENGTH","nativeMin","toFinite","remainder","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","reTrimEnd","chars","stringSize","omission","strLength","newEnd","baseValues","matrix","predictable","randomSeed","_extends","freeze","MATRIX_OPTIONS","NUMBER_OPTIONS","is","extend","prop","deepStrictEqual","dependencies","meta","assertAndCreate","scope","deps","properties","pickShallow","stripOptionalNotation","dependency","isOptionalDependency","missingDependencies","assertDependencies","isFactory","createComplexClass","mathjs","phi","strRe","strIm","hasBase","isClass","hasher","hash","BigNumber","createBigNumberPi","createBigNumberClass","_ref","isBigNumber","fromJSON","createMatrixClass","Matrix","isMatrix","storage","datatype","subset","replacement","skipZeros","numberFactory","_ref2","createFractionClass","notation","newExp","valueWithoutExp","valueStr","toEngineering","lowerExp","upperExp","rounded","looksLikeFraction","formatArray","syntax","DimensionError","relation","IndexError","arraySize","_validate","dimNext","validate","validateIndex","_resize","oldLen","newLen","unsqueeze","_unsqueeze","ii","getArrayDataType","typeOf","itemType","isDimensionError","isIndexError","createDenseMatrixClass","DenseMatrix","_data","_size","_datatype","preprocess","isScalar","_getSubmatrix","last","_set","submatrix","sSize","iSize","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","createDenseMatrix","isDenseMatrix","getDataType","indexI","sizeArray","flatArray","totalSize","sizeIndex","tmpArray2","tmpArray","_reshape","me","diagonal","kSuper","kSub","_value","swapRows","_swapRows","_createTyped2","createTyped","typed","conversions","to","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","deepForEach","createIsInteger","createIsNumeric","createIsNaN","isNaNNumber","Unit","createEqualScalar","complexEquals","equalBase","createNumber","unit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","createApply","_apply","tran","I","J","createMultiplyScalar","_normalize","multiply","baseFormatter","2","8","16","createBaseFormatterFactory","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createSqrt","_sqrtNumber","createConj","conjugate","createMode","isNumeric","_mode","createSparseMatrixClass","equalScalar","SparseMatrix","_values","_ptr","_createFromArray","_createFromMatrix","ptr","_getsubset","kk","mvalues","mindex","mptr","_setsubset","x0","y0","_getValueIndex","_insert","k1","_toArray","createSparseMatrix","isSparseMatrix","density","_remove","colIndex","rowIndex","r1","_i2","_i3","_j","minRow","maxRow","minColumn","maxColumn","invoke","_k","_i5","_map","_k2","_i7","_forEachRow","kx","ky","vx","vy","createMatrix","_create","createAlgorithm01","denseMatrix","sparseMatrix","adata","asize","adt","bvalues","bindex","bptr","bsize","bdt","cf","cdata","mark","createAlgorithm04","avalues","aindex","aptr","cvalues","cindex","cptr","xa","xb","wa","wb","createAlgorithm10","createAlgorithm13","bdata","csize","_iterate","av","bv","cv","createAlgorithm14","createAlgorithm03","createAlgorithm05","wai","wbi","vc","createAlgorithm11","createAlgorithm12","createAlgorithm07","_scatter","va","vb","createIdentity","_identity","_identityVector","Big","noBignumber","noFraction","createSize","noMatrix","createCompare","algorithm03","algorithm05","algorithm12","algorithm13","algorithm14","createSmaller","algorithm07","createLarger","createFibonacciHeapClass","smaller","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","_cascadingCut","isFibonacciHeap","insert","extractMinimum","numberOfChildren","tempRight","numRoots","_linkNodes","_findMinimumNode","_decreaseKey","createAdd","addScalar","algorithm01","algorithm04","algorithm10","signatures","createDot","multiplyScalar","conj","_validateDim","aIsColumn","bIsColumn","_c","_c2","_c3","xindex","xvalues","yindex","yvalues","xLen","yLen","ySize","createAbs","createMultiply","algorithm11","_validateMatrixDimensions","size1","size2","_multiplyMatrixVector","arows","acolumns","af","mf","brows","ib","vbi","ka0","ka1","ka","ia","ic","_multiplyMatrixMatrix","bcolumns","jb","kb0","kb1","cij","kb","vbij","p0","xsize","ysize","_multiplyVectorVector","alength","_multiplyVectorDenseMatrix","_multiplyVectorMatrix","ArgumentsError","isArgumentsError","createPartitionSelect","_partitionSelect","quickSelect","pivot","createBignumber","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","outputType","inputType","improveErrorMessage","details","createSubtract","unaryMinus","checkEqualDimensions","createDivideScalar","numeric","createSpaClass","Spa","_heap","isSpa","accumulate","heap","swap","nodei","nodej","createLup","divideScalar","_denseLUP","lvalues","lindex","lptr","lsize","uvalues","uindex","uptr","usize","pvCo","pvOc","_loop","spa","vkj","vik","vjj","pabsv","absv","L","U","_sparseLUP","ldata","udata","vij","createDet","lup","decomp","det","evenCycles","_det","createInv","_inv","ABig","rBig","Ac","Bc","Ar","Br","createDivide","inv","DEFAULT_NORMALIZATION","createVariance","_var","_varDim","normalization","createStd","_std","createMedian","partitionSelect","_median","mid","middle2","containsCollections","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","isNegativeNumber","isPositiveNumber","isZeroNumber","isComplex","isFraction","isUnit","isCollection","isRange","isResultSet","isHelp","isDate","isNull","isUndefined","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","LN2","negate","roundDigits","splitNumber","coefficients","missingZeros","expDiff","decimalIdx","decimals","decimalVal","splitValue","pp","first","DBL_EPSILON","EPSILON","nearlyEqual","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","GLOBAL","startdenom","significance","overflow","oldRandom","ARC4","keylen","S","typ","mixkey","smear","stringseed","tostring","autoseed","plugins","use_entropy","entropy","arc4","resetGlobal","xor128","xorwow","xorshift7","xor4096","tychei","sr","Alea","mash","s0","xg","prng","double","quick","XorGen","strseed","X","math","nodecrypto","shortseed","msCrypto","browser","pass","is_math_call","isFullwidthCodePoint","astralRegex","ansiStyles","ESCAPES","wrapAnsi","code","insideEscape","escapeCode","visible","leftEscape","codePointAt","codes","colorConvert","wrapAnsi16","wrapAnsi256","wrapAnsi16m","rgb","styles","modifier","bold","italic","underline","hidden","strikethrough","color","black","red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","grey","groupName","styleName","style","ansi2ansi","rgb2rgb","ansi","ansi256","ansi16m","suite","ansi16","cssKeywords","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","hcg","apple","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","smin","lmin","hi","sl","vmin","wh","bl","ratio","hr","mult","colorString","char","integer","hue","chroma","mg","pure","route","fromModel","routes","toModel","wrappedFn","conversion","wrapRounded","raw","wrapRaw","link","wrapConversion","cur","models","buildGraph","adjacents","adjacent","deriveBFS","_isNumber2","_interopRequireDefault","_isString2","_stringWidth","__esModule","alignments","subject","containerWidth","alignment","subjectWidth","availableWidth","alignLeft","alignRight","halfWidth","alignCenter","_alignString","index1","_wrapCell","columnWidth","useWrapWord","_calculateCellWidthIndex","valueWidth","index0","_max2","_isBoolean2","_calculateCellHeight","tableWidth","rowSpanIndex","cellHeightIndex","wrapWord","_mapValues2","_values2","_trimEnd2","_makeStreamConfig","_drawRow","_drawBorder","_stringifyTableData","_truncateTableData","_mapDataUsingRowHeightIndex","_alignTableData","_padTableData","_calculateRowHeightIndex","prepareData","rowHeightIndex","userConfig","columnWidthIndex","paddingLeft","paddingRight","empty","columnCount","literalRow","border","drawBorderTop","drawBorderBottom","stdout","drawBorderJoin","drawBorder","columnSizeIndex","topBody","topJoin","joinBody","joinJoin","joinLeft","joinRight","bottomBody","bottomJoin","bottomRight","bodyLeft","bodyJoin","bodyRight","drawHorizontalLine","singleLine","realRowIndex","rowHeight","rowCount","_table","_cloneDeep2","_isUndefined2","_times2","_getBorderCharacters","_validateConfig","_calculateMaximumColumnWidthIndex","makeBorder","columnDefault","maximumColumnWidthIndex","makeColumns","_flatten2","unmappedRows","mappedRows","cellLine","index2","_drawTable","_makeConfig","_validateTableData","cellWidthIndex","_truncate2","content","refVal","refVal1","dataPath","parentData","parentDataProperty","rootData","vErrors","errors","key0","schema","schemaPath","additionalProperty","refVal2","pattern0","refVal3","refVal4","valid1","errs_1","schema1","enum","i1","allowedValues","errs__1","ruleErr1","columnNumber","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","return","_wrapString","_wrapWord","cellValue","cellLines","lineNr","lineChunks","_sliceAnsi","subjectSlice","chunks","onlyFirst","stripAnsi","emojiRegex","ansiRegex","notOk","undef","_types","anyType","_ignore","_conversions","ignore","findTypeByName","typeName","findInArray","hint","findTypeIndex","findTypeName","stringifyParams","typeNames","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","matches","filterConversions","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","test1","tests","compileTests","varIndex","lastTest","testRestParam","getParamAtIndex","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","uniq","flatMap","_name","matchingSignatures","nextMatchingDefs","actualType","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parsedParam","isInvalidParam","parseSignature","notNull","parsedSignature","conflictingSignature","hasOverlap","len1","len2","restParam1","restParam2","hasConflictingParams","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fns","fnConvert","compiledConversions","fnPreprocess","compileArgsPreprocessing","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","iStart","iEnd","generic","arg0","createSignaturesMap","array1","getName","extractSignatures","validateUnique","_fn","addType","beforeObjectTest","addConversion","cptable","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","Buffer_from","nbfs","enc","mdl","mdb","sbcs_encode","cp","EE","ee","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","jj","dbcs_decode","utf8_d","ww","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","F","dash","tt","o64","c3","e2","e3","e4","isstr","hascp","DO_NOT_EXPORT_JSZIP","JSZipSync","globalThis","$","1","_dereq_","_keyStr","utf8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","getContent","getCompressedContent","3","STORE","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","crc","getTypeOf","iTop","5","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","6","base64","dir","createFolders","compression","comment","7","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","9","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","alloc","12","Uint8ArrayReader","NodeBufferReader","13","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","fileAdd","dataType","prepareFileAttrs","parentFolder","folderAdd","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","filename","relativePath","fileClone","folder","newFolder","kids","generate","writer","dirEnd","zipData","localDirLength","centralDirLength","compressionName","zipPart","CENTRAL_DIRECTORY_END","finalize","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","17","arraybuffer","uint8array","blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","18","sig0","sig1","sig2","sig3","19","20","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","21","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","22","ZipEntry","jszipProto","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","windowBits","memLevel","strategy","opt","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflate","inflator","next_out_utf8","tail","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","32","trees","adler32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","head","total_in","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","extra","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","33","xflags","extra_len","34","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","TYPE","BAD","ZSWAP32","InflateState","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","updatewindow","inflateInfo","36","lbase","lext","dbase","dext","lens_index","table_index","incr","used","huff","base_index","MAXBITS","offs","extra_index","37","38","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","39","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","utf16leread","utf16beread","_getchar","_getansi","Base64","e1","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","Q","parse_date_code","b2","dow","dout","T","H","date1904","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","getTimezoneOffset","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","V","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","outl","commaify","_general_num","_general","write_num","pct1","write_num_exp","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","ri","ff","aval","den","rr","myn","myd","write_num_f1","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","ssm","bt","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","m1","m2","choose_fmt","load_entry","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","signed_crc_table","bstr","crc32_buf_8","_fs","CFB","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","ct","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","payload","MSSZ","new_buf","cnt","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","cdirs","start_cd","fcnt","fi","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","clens","cmap","MAX","maxlen","ccode","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read_file","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","saveAs","chrome","downloads","revokeObjectURL","appendChild","click","removeChild","Folder","ks","o2","evert_key","K","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","safegetzipfile","getzipfile","getzipdata","safe","getdatabin","getzipstr","zip_add_file","zip_new","resolve_path","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encregex","coderegex","encodings","rencoding","unescapexml","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","orig","utf8readb","corpus","utf8readc","mtcache","entities","vt_cache","matchtag","htmldecode","vtregex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","oo","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","cstr","decode_range","encode_range","cs","ce","safe_decode_range","format_cell","XF","numFmtId","safe_format_cell","sheet_to_workbook","sheets","sheet_add_aoa","_ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","O","_crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","parse_TypedPropertyValue","parse_dictionary","CodePage","pid","parse_BLOB","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecHeadingPair","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","fSharedNote","parse_BOF","BIFFVer","write_BOF","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","ref","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","push_value","topic","ETH","eth_to_sheet","eth_to_aoa","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet","firstbyte","prn_to_aoa_str","prn_to_sheet_str","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","font","shadow","outline","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","align","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","xmlns","main","Count","uniqueCount","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PadArray","InitialCode","XorMatrix","XorRor","crypto_CreateXorArray_Method1","byte1","byte2","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","G","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","pt","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","themes","NumberFmt","formatCode","parse_numFmts","Fonts","condense","vertAlign","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","grbit","write_FontFlags","sss","charset","write_BrtFont","write_FONTS_bin","write_FILLS_bin","write_BrtBorder","write_BORDERS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","xfId","builtinId","write_BrtStyle","write_STYLES_bin","write_DXFS_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_TABLESTYLES_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_ExtProp","extType","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_FullColorExt","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","run","write_StrRun","write_BrtCommentText","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml_sheetpr","sheetPr","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","sviewregex","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","parse_ws_xml_data","sdata","sstr","ftag","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","margin","relc","tooltip","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","ncell","write_BrtCellIsst","write_BrtCellSt","d100","write_RkNumber","write_BrtCellRk","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_BrtBeginWsView","write_WSVIEWS2","write_BrtColInfo","write_COLINFOS","cap","write_CELLTABLE","write_BrtSheetProtection","write_SHEETPROTECT","write_AUTOFILTER","write_BrtBeginMergeCells","write_MERGECELLS","locidx","write_BrtHLink","write_HLINKS","write_BrtMargins","write_BrtCellIgnoreEC","write_IGNOREECS","write_LEGACYDRAWING","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","vistab","write_BrtBookView","write_BOOKVIEWS","write_BUNDLESHS","parse_ws","ai","seencol","R_n","aii","relId","Rel","rfx","tmpref","parse_ws_bin","mtch","ridx","parse_ws_xml_dim","svs","parse_ws_xml_sheetviews","coli","colm","colM","parse_ws_xml_cols","afilter","parse_ws_xml_autofilter","_merge","hlink","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","parse_ws_xml","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","nf","sid","StyleID","interiors","Parent","UTC","safe_format_xlml","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_props_xlml","write_sty_xlml","write_names_xlml","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","PSCLSID","parse_xlscfb","CompObj","WorkbookP","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","parse_compobj","lastcell","cmnt","rngC","rngR","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","parse_workbook","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","ArchID","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","display","idObj","stAuthor","parse_NoteSh","Info","Data","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","parse_FilePassHeader","XorArrayIndex","XorArray","verificationBytes","verifier","Value","crypto_DecryptData_Method1","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkMoniker","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","cexts","cchComment","themeXML","parse_frtHeader","area","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","o1","write_FormulaValue","o3","write_Formula","write_Number","write_Bes","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_Font","write_FONTS_biff8","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","fix_write_opts","write_biff8_buf","write_ws_biff2","write_biff2_buf","html_to_sheet","mtch2","split_regex","hd","midx","colspan","rowspan","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","get_computed_style","ownerDocument","defaultView","getComputedStyle","get_get_computed_style_function","getPropertyValue","number_formats","parse_content_xml","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","fixed","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","parse_cs_bin","parse_cs_xml","parse_cs","dfile","drelsp","chartp","parse_drawing","crelsp","csheet","nc","parse_Cache","parse_chart","parse_ds","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","textMatch","parse_comments_xml","parse_cmnt","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_sst_bin","parse_sst_xml","parse_sst","parse_theme","parse_sty_bin","parse_sty","parse_xlink_bin","parse_xlink","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_wb","propdata","parse_ext_props","toks","parse_cust_props","bookDeps","parse_cc_bin","parse_cc_xml","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","W","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","parse_TransformInfoHeader","ename","cmode","parse_Primary","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","write_vt","write_cust_props","wsrels","need_vml","rId1","write_sty","f1","f3","write_ct","read_plaintext","read_prn","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","zip_read","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","cn","check_wb","write_stxt_type","wbpath","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","fill_vba_xls","write_xlscfb","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","Readable","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","__webpack_module_cache__","__webpack_require__","moduleId","loaded","__webpack_modules__","amdD","amdO","getter","definition","nmd"],"mappings":"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GACAC,GACAG,GACAC,GACAqD,GACAC,GACA,GACA,GACAvF,GACA+G,GACAoB,GACAU,GACA1M,GACA6M,GACAG,GACAxN,GACAyN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACAwB,GACAjb,GACA,GACAga,GACAM,GACAE,GACAE,GACAE,GACAqE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAE,GACAa,GACAK,GACAE,GACAvhB,GACAwhB,GACA3R,GACA4R,GACAC,GACAC,GACAzhB,GACA2hB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAe,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA7K,GACAwL,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACAtmB,GACAymB,GACAE,GACAnmB,GACAomB,GACA3mB,GACAC,GACA6C,GACA8jB,GACA,GACAkD,GACA,GACAiB,GACAE,GACAM,GACAE,GACAK,GACAC,GACAI,GACAC,GACAC,GACAC,GACAC,GACA3f,GACAyX,GACAsI,GACAC,GACAO,GACAC,GACAE,GACAC,GACAE,GACAE,GACAE,GACA/T,GACAoJ,GACA6K,GL5SsB,CACtBx+J,WAAYiU,GACZiB,YAAa,MACb0O,WAAY,IMKU,CACtB5jB,WAAYkU,GACZgB,YAAa,MACb0O,WAXG,SAAc3pB,GACjB,MAAM,OAAEmd,EAAM,QAAEvY,EAAO,MAAEikB,GAAU7oB,GAC7B,EAAE4G,GAAMuW,GACR,KAAEwnC,GAAS97B,EACjBqrH,GAAiBttI,EAAG,QACpB,MAAMi1I,EAAS2oB,GAAS5/J,EAAQg8I,WAAWh6I,GAAI+9C,GAC/C,OAAO//C,EAAQkwI,eAAe+G,EAAOl2I,MAAOk2I,EAAOj2I,MAAOi2I,EAAOn2I,UCM3C,CACtBK,WAAYmU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PASE7nI,eAAyBmpE,+DACmBnpE,yEAI1BuzH,2lBAgBlBE,kDAGqBF,mBACS,IAA5BC,8aAiBFC,yBACqC,IAA5BD,obAeTC,yBACqC,IAA5BD,+eAeTC,6DC9DL,MC4FD,GAAgB,CAClB4O,GACAE,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA1J,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAmC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAoC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAe,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA0B,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GDlPoC,CACpCv6L,WAAYuU,GACZW,YAAa,QACb0O,WA3DG,SAA4B3pB,GAC/B,MAAM,OAAEmd,EAAM,QAAEvY,EAAO,MAAEikB,GAAU7oB,GAC7B,EAAE4G,EAAC,WAAE02D,GAAengD,GACpB,YAAEogD,GAAgB10C,EAClBmnB,EAAQppC,EAAEjB,MAAMjH,OAChBk7J,EAAY,GAClB,IAAIvvJ,EAAO,EACX,MAAMouE,EAAc,GAAgC,CAACpuE,GAAO2lC,GAC5D,IAAIypH,EAAY7yJ,EACG,MAA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R,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,MAAQ,GAIJoD,GAAsB,CACzB,aAAc,OACd,cAAe,QACf,kBAAmB,YACnB,eAAgB,SAChB,kBAAmB,YACnB,mBAAoB,aACpB,aAAc,OACd,kBAAmB,YACnB,iBAAkB,WAClB,mBAAoB,aACpB,yBAA0B,mBAC1B,kBAAmB,YACnB,eAAgB,SAChB,kBAAmB,YACnB,cAAe,QACf,kBAAmB,YACnB,eAAgB,SAChB,qBAAsB,eACtB,wBAAyB,kBACzB,mBAAoB,aACpB,sBAAuB,gBACvB,kBAAmB,YACnB,qBAAsB,eACtB,mBAAoB,aACpB,gBAAiB,UACjB,eAAgB,SAChB,wBAAyB,kBACzB,qBAAsB,eACtB,YAAa,MACb,aAAc,OACd,iBAAkB,WAClB,qBAAsB,eACtB,qBAAsB,eACtB,YAAa,MACb,aAAc,OACd,aAAc,OACd,gBAAiB,UACjB,qBAAsB,eACtB,oBAAqB,cACrB,qBAAsB,eACtB,mBAAoB,aACpB,eAAgB,SAChB,kBAAmB,YACnB,cAAe,QACf,iBAAkB,WAClB,eAAgB,SAChB,kBAAmB,YACnB,mBAAoB,aACpB,sBAAuB,gBACvB,qBAAsB,eACtB,6BAA8B,uBAC9B,iCAAkC,2BAClC,0BAA2B,oBAC3B,wBAAyB,kBACzB,oBAAqB,cACrB,cAAe,QACf,mBAAoB,aACpB,kBAAmB,YACnB,wBAAyB,kBACzB,cAAe,QACf,qBAAsB,eACtB,gBAAiB,UACjB,aAAc,OACd,YAAa,MACb,eAAgB,SAChB,cAAe,QACf,cAAe,QACf,eAAgB,SAChB,cAAe,QACf,eAAgB,SAChB,eAAgB,SAChB,cAAe,QACf,kBAAmB,YACnB,oBAAqB,cACrB,mBAAoB,aACpB,qBAAsB,eACtB,oBAAqB,cACrB,eAAgB,SAChB,eAAgB,SAChB,kBAAmB,YACnB,kBAAmB,YACnB,cAAe,QACf,sBAAuB,gBACvB,yBAA0B,mBAC1B,iBAAkB,WAClB,kBAAmB,YACnB,iBAAkB,WAClB,oBAAqB,cACrB,mBAAoB,aACpB,oBAAqB,cACrB,kBAAmB,YACnB,uBAAwB,iBACxB,uBAAwB,iBACxB,wBAAyB,kBACzB,wBAAyB,kBACzB,qBAAsB,eACtB,YAAa,MACb,qBAAsB,eACtB,qBAAsB,eACtB,qBAAsB,eACtB,oBAAqB,cACrB,iBAAkB,WAClB,gBAAiB,UACjB,YAAa,MACb,YAAa,MACb,aAAc,OACd,cAAe,QACf,eAAgB,SAChB,eAAgB,SAChB,gBAAiB,UACjB,gBAAiB,UACjB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,kBAAmB,YACnB,kBAAmB,YACnB,cAAe,QACf,iBAAkB,WAClB,eAAgB,SAChB,iBAAkB,WAClB,gBAAiB,UACjB,gBAAiB,UACjB,cAAe,QACf,cAAe,QACf,mBAAoB,aACpB,qBAAsB,eACtB,qBAAsB,eACtB,YAAa,MACb,eAAgB,UAIjB,SAASsB,GAAmB/iU,GAY3B,MAXmB,OAAhBA,EAAElB,MAAM,EAAE,KAAakB,EAAIA,EAAElB,MAAM,IAEhB,IAAnBkB,EAAE+2B,WAAW,IAEO,KADtB/2B,EAAIA,EAAElB,MAAM,IACPi4B,WAAW,KAAU/2B,EAAIA,EAAElB,MAAM,KAMvCkB,GAFAA,GAFAA,EAAIA,EAAEiK,QAAQ,oBAAqB,KAE7BA,QAAQ,iDAAiD,SAASinR,EAAIC,GAAM,OAAOA,EAAGlnR,QAAQ,MAAM,QAEpGA,QAAQ,sBAAuB,OAC5BA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,KAS7C,SAAS+4T,GAAcphU,GACtB,IAAIF,EAAIE,EAAE2I,MAAM,KAEhB,MAAO,CADC7I,EAAE,GAAG6I,MAAM,KAAK,GACb7I,EAAE,GAAG6I,MAAM,KAAK,IAAM7I,EAAExI,OAAS,EAAK,KAAOwI,EAAE,GAAG6I,MAAM,KAAK,IAAM7I,EAAE,GAAG6I,MAAM,KAAK,IAAO,KAOtG,IAAIkoS,GAAO,GACPwwB,GAAW,GAEf5vB,GAAK6vB,GAAK,CACT,gFACA,qEAID,IAAIC,GAAiC,oBAAR73T,IAE7B,SAAS83T,GAAWvU,EAAK1/R,EAAKkuQ,GAC7B,IAAIlkS,EAAI,EAAGF,EAAM41T,EAAI31T,OACrB,GAAGmkS,GACF,GAAG8lC,GAAkB9lC,EAAI39R,IAAIyvB,GAAO3zB,OAAOK,UAAUQ,eAAeC,KAAK+gS,EAAKluQ,GAE7E,IADA,IAAIk0S,EAASF,GAAkB9lC,EAAInhS,IAAIizB,GAAOkuQ,EAAIluQ,GAC5Ch2B,EAAIkqU,EAAOnqU,SAAUC,EAC1B,GAAG01T,EAAIwU,EAAOlqU,IAAI+Q,IAAMilB,EAAqB,OAAd0/R,EAAII,QAAiBoU,EAAOlqU,QAGvD,KAAMA,EAAIF,IAAOE,EACvB,GAAG01T,EAAI11T,GAAG+Q,IAAMilB,EAAqB,OAAd0/R,EAAII,QAAiB91T,EAY7C,OAVA01T,EAAI51T,GAAO,CAAEiR,GAAS2kT,EAAII,QAAUJ,EAAIj6S,SACrCyoR,IACC8lC,IACE9lC,EAAI39R,IAAIyvB,IAAMkuQ,EAAIz9R,IAAIuvB,EAAK,IAC/BkuQ,EAAInhS,IAAIizB,GAAKjxB,KAAKjF,KAEduC,OAAOK,UAAUQ,eAAeC,KAAK+gS,EAAKluQ,KAAMkuQ,EAAIluQ,GAAO,IAC/DkuQ,EAAIluQ,GAAKjxB,KAAKjF,KAGTA,EAGR,SAASqqU,GAAUhrH,EAAGh5D,GACrB,IAAIviJ,EAAI,CAAEoE,IAAIm3M,EAAE,EAAEj3M,IAAIi3M,EAAE,GAEpBkwG,GAAO,EAQX,OAPGlpK,EAAI8zK,MAAKA,GAAM9zK,EAAI8zK,KACN,MAAb9zK,EAAI97I,MAAezG,EAAE62T,YAAc,EACnB,MAAXt0K,EAAI8pK,IAAaZ,EAAMc,GAAQhqK,EAAI8pK,KACxB,MAAX9pK,EAAIkpK,MAAaA,EAAMlpK,EAAIkpK,KAChCA,GAAO,GAAKzrT,EAAEyG,MAAQ6vT,GAAW7K,GAAMzrT,EAAE62T,YAAc,GACrC,MAAbt0K,EAAI97I,QAAezG,EAAEyG,MAAQ87I,EAAI97I,OACtC87I,EAAI0qG,SAAQjtP,EAAEitP,QAAS,GACnBjtP,EAGR,SAASwmU,GAAgBC,EAAS14Q,GACjC,GAAI04Q,EAAJ,CACA,IAAIC,EAAO,CAAC,GAAK,GAAK,IAAM,IAAM,GAAK,IAC5B,QAAR34Q,IAAgB24Q,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,GAAK,KACvB,MAAlBD,EAAQ/pR,OAAgB+pR,EAAQ/pR,KAASgqR,EAAK,IAC5B,MAAlBD,EAAQ9pR,QAAgB8pR,EAAQ9pR,MAAS+pR,EAAK,IAC5B,MAAlBD,EAAQjqR,MAAgBiqR,EAAQjqR,IAASkqR,EAAK,IAC5B,MAAlBD,EAAQhqR,SAAgBgqR,EAAQhqR,OAASiqR,EAAK,IAC5B,MAAlBD,EAAQ12H,SAAgB02H,EAAQ12H,OAAS22H,EAAK,IAC5B,MAAlBD,EAAQE,SAAgBF,EAAQE,OAASD,EAAK,KAGlD,SAASE,GAAeh6E,EAAQ30I,EAAMirF,GACrC,IAAInoF,EAAImoF,EAAK2jI,OAAiB,MAAV5uN,EAAK8C,EAAY9C,EAAK8C,EAAI,WAC1C3+G,EAAI,GAAMF,EAAM0wP,EAAOzwP,OAC3B,GAAQ,MAAL4+G,GAAamoF,EAAK4jI,IACpB,KAAM1qU,EAAI,MAASA,EAAG,GAAkB,MAAf8mM,EAAK4jI,IAAI1qU,GAAY,CAC7Cg0R,EAAI50P,KAAKy8E,EAAK8C,EAAG3+G,GAEjB8mM,EAAK4jI,IAAI1qU,GAAK67G,EAAK8C,EACnBmoF,EAAK2jI,OAAO5uN,EAAK8C,GAAKA,EAAI3+G,EAC1B,MAGF,IAAIA,EAAI,EAAGA,GAAKF,IAAOE,EAAG,GAAGwwP,EAAOxwP,GAAGq0S,WAAa11L,EAAG,OAAO3+G,EAS9D,OARAwwP,EAAO1wP,GAAO,CACbu0S,SAAS11L,EACT+/M,OAAO,EACPC,OAAO,EACPC,SAAS,EACTG,KAAK,EACL4L,kBAAkB,GAEZ7qU,EAGR,SAAS8qU,GAAYhnU,EAAGinU,EAAOC,EAAQhkI,EAAMs0H,EAAQ5qE,GACpD,IACI1pD,EAAKkrH,SAAQpuT,EAAE+6G,EAAIq1K,EAAIl4B,OAAO+uE,IAChC,MAAMxzS,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAChC,GAAW,MAARzzB,EAAEmN,EAAL,CAEA,GADW,MAARnN,EAAEmN,GAA4B,iBAARnN,EAAEwd,IAAgBxd,EAAEwd,EAAI+pR,EAAUvnS,EAAEwd,KACzD0lL,IAA0B,IAAlBA,EAAKirH,SAAoB,IAEpC,GADwB,MAArB/9B,EAAIl4B,OAAO+uE,IAAgB72C,EAAI50P,KAAKg9P,EAAYyuC,IAAU,UAAWA,GAC7D,MAARjnU,EAAEmN,EAAWnN,EAAE6pE,EAAI7pE,EAAE6pE,GAAKmrO,GAAKh1S,EAAEwd,QAC/B,GAAa,IAAVypT,EACP,GAAW,MAARjnU,EAAEmN,GACI,EAAJnN,EAAEwd,KAASxd,EAAEwd,EAAGxd,EAAE6pE,EAAIumN,EAAIuC,aAAa3yR,EAAEwd,GACxCxd,EAAE6pE,EAAIumN,EAAIyD,aAAa7zR,EAAEwd,QAE1B,GAAW,MAARxd,EAAEmN,EAAW,CACpB,IAAI2nR,EAAKgS,EAAQ9mS,EAAEwd,GACDxd,EAAE6pE,GAAb,EAAHirN,KAAUA,EAAU1E,EAAIuC,aAAamC,GAC9B1E,EAAIyD,aAAaiB,OAExB,SAAWj3R,IAARmC,EAAEwd,EAAiB,MAAO,GAC7Bxd,EAAE6pE,EAAIumN,EAAI0D,SAAS9zR,EAAEwd,EAAE0oT,QAEb,MAARlmU,EAAEmN,EAAWnN,EAAE6pE,EAAIumN,EAAIj3P,OAAO8tS,EAAMngC,EAAQ9mS,EAAEwd,GAAG0oT,IACpDlmU,EAAE6pE,EAAIumN,EAAIj3P,OAAO8tS,EAAMjnU,EAAEwd,EAAE0oT,IAC/B,MAAMzyS,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAChC,GAAIyvK,EAAKyhH,YACI,MAAVuiB,EAAgB,IAClBlnU,EAAEiI,EAAI2kP,EAAOwrE,MAAM8O,GACflnU,EAAEiI,EAAEqwT,SAAWt4T,EAAEiI,EAAEqwT,QAAQrkB,QAAUj0S,EAAEiI,EAAEqwT,QAAQ3rE,MACpD3sP,EAAEiI,EAAEqwT,QAAQ3rE,IAAMkpE,GAAS2B,EAAOS,cAAcC,UAAUl4T,EAAEiI,EAAEqwT,QAAQrkB,OAAOtnD,IAAK3sP,EAAEiI,EAAEqwT,QAAQnkB,MAAQ,GACnGjxG,EAAKioG,MAAKnrS,EAAEiI,EAAEqwT,QAAQ6O,QAAU3P,EAAOS,cAAcC,UAAUl4T,EAAEiI,EAAEqwT,QAAQrkB,OAAOtnD,MAElF3sP,EAAEiI,EAAEmmP,SAAWpuP,EAAEiI,EAAEmmP,QAAQ6lD,QAC9Bj0S,EAAEiI,EAAEmmP,QAAQzB,IAAMkpE,GAAS2B,EAAOS,cAAcC,UAAUl4T,EAAEiI,EAAEmmP,QAAQ6lD,OAAOtnD,IAAK3sP,EAAEiI,EAAEmmP,QAAQ+lD,MAAQ,GACnGjxG,EAAKioG,MAAKnrS,EAAEiI,EAAEmmP,QAAQ+4E,QAAU3P,EAAOS,cAAcC,UAAUl4T,EAAEiI,EAAEmmP,QAAQ6lD,OAAOtnD,MAErF,MAAMl5N,GAAK,GAAGyvK,EAAKioG,KAAOv+C,EAAOwrE,MAAO,MAAM3kS,IAGjD,SAAS2zS,GAAS9hH,EAAI2+G,EAAO7nU,GAC5B,GAAGkpN,GAAMA,EAAG,QAAS,CACpB,IAAItxJ,EAAQs8O,GAAkBhrF,EAAG,SACjC,GAAGtxJ,EAAMvgC,EAAE3oB,EAAIkpD,EAAM/rD,EAAE6C,GAAKkpD,EAAMvgC,EAAE5uB,EAAImvD,EAAM/rD,EAAEpD,EAAG,MAAM,IAAIpB,MAAM,cAAgBrH,EAAI,MAAQkpN,EAAG,UAOpG,IAAI+hH,GAAc,gDACdC,GAAiB,2DACjBC,GAAa,8BACbC,GAAW,cACXC,GAAW,6BACXC,GAAU,mEACVC,GAAa,gCACbC,GAAe,yCACfC,GAAW,oEAyFf,SAASC,GAAqBC,EAAS9/T,EAAG8rO,EAAIxwH,GAC7C,IAAIhhH,EAAOymS,GAAY++B,GACnBh0F,EAAG34B,OAAO73F,KAAMwwH,EAAG34B,OAAO73F,GAAO,IAClChhH,EAAKylU,WAAUj0F,EAAG34B,OAAO73F,GAAK0kN,SAAWx+B,GAAYW,GAAS7nS,EAAKylU,YAwBvE,IAAIE,GAAqB,CAAC,UAAW,YAAa,oBAAqB,uBACnEC,GAAoB,CACvB,gBAAiB,aAAc,cAC/B,gBAAiB,aAAc,mBAC/B,gBAAiB,aACjB,OAAQ,aAAc,eAmGnBC,GAAa,0CAkBjB,SAASC,GAAkBpwN,EAAMksM,EAAK7+F,EAAIpiB,GACzC,QAAcrlM,IAAXo6G,EAAKz6F,GAAqC,iBAAXy6F,EAAKh1G,GAA6B,MAAXg1G,EAAK9qG,EAAW,MAAO,GAChF,IAAIgqR,EAAK,GACLmxC,EAAOrwN,EAAK9qG,EAAGo7T,EAAOtwN,EAAKz6F,EAC/B,GAAc,MAAXy6F,EAAK9qG,EAAW,OAAO8qG,EAAK9qG,GAC9B,IAAK,IAAKgqR,EAAKl/K,EAAKz6F,EAAI,IAAM,IAAK,MACnC,IAAK,IAAK25Q,EAAK,GAAGl/K,EAAKz6F,EAAG,MAC1B,IAAK,IAAK25Q,EAAK6d,GAAK/8L,EAAKz6F,GAAI,MAC7B,IAAK,IACD0lL,GAAQA,EAAKquG,UAAWpa,EAAKoQ,EAAUtvL,EAAKz6F,GAAI,GAAGiuR,gBAErDxzL,EAAOyvL,GAAIzvL,IACN9qG,EAAI,IACTgqR,EAAK,IAAIl/K,EAAKz6F,EAAIspR,EAAQS,EAAUtvL,EAAKz6F,WAErB,IAAXy6F,EAAK8C,IAAmB9C,EAAK8C,EAAIq1K,EAAIl4B,OAAO,KACtD,MACD,QAASi/B,EAAKl/K,EAAKz6F,EAEpB,IAAIA,EAAI6tR,GAAS,IAAKzB,GAAUzS,IAAMv3R,EAAI,CAAEiF,EAAEs/S,GAE1ChhC,EAAKyjD,GAAe1jI,EAAKs2H,QAASvhN,EAAMirF,GAE5C,OADU,IAAPigF,IAAUvjR,EAAEqI,EAAIk7Q,GACZlrK,EAAK9qG,GACX,IAAK,IAAK,MACV,IAAK,IAAKvN,EAAEuN,EAAI,IAAK,MACrB,IAAK,IAAKvN,EAAEuN,EAAI,IAAK,MACrB,IAAK,IAAKvN,EAAEuN,EAAI,IAAK,MACrB,IAAK,IAAK,MACV,QAAS,GAAa,MAAV8qG,EAAKz6F,EAAW,QAASy6F,EAAK9qG,EAAG,MAC5C,GAAG+1L,GAAQA,EAAK6uH,QAAS,CACxBv0S,EAAI6tR,GAAS,IAAK,GAAGg7B,GAAWnjI,EAAKslI,QAASvwN,EAAKz6F,EAAG0lL,EAAKulI,aAC3D7oU,EAAEuN,EAAI,IAAK,MAEZvN,EAAEuN,EAAI,MAGR,GADG8qG,EAAK9qG,GAAKm7T,IAAQrwN,EAAK9qG,EAAIm7T,EAAMrwN,EAAKz6F,EAAI+qT,GACzB,iBAAVtwN,EAAKh1G,GAAiBg1G,EAAKh1G,EAAG,CACvC,IAAIqyR,EAAKr9K,EAAKkvJ,GAAKlvJ,EAAKkvJ,EAAEplQ,MAAM,EAAGoiT,EAAIhoT,SAAWgoT,EAAM,CAACh3S,EAAE,QAASg3S,IAAIlsM,EAAKkvJ,GAAK,KAClF3pP,EAAI+tR,GAAU,IAAK3B,GAAU3xL,EAAKh1G,GAAIqyR,IAAiB,MAAVr9K,EAAKz6F,EAAYA,EAAI,IAInE,OAFGy6F,EAAK/6F,GAAGooM,EAAG,UAAUnkN,KAAK,CAACgjT,EAAKlsM,EAAK/6F,IACrC+6F,EAAKntG,GAAGw6M,EAAG,aAAankN,KAAK,CAACgjT,EAAKlsM,EAAKntG,IACpCygS,GAAU,IAAK/tR,EAAG5d,GAG1B,IACK8oU,GAAiCC,GACjCpY,GAA+BqY,GAC/BC,GACAC,GAAyBC,GAJ1BC,IACCN,GAAY,oBAAqBC,GAAW,mBAC5CpY,GAAS,qBAAsBqY,GAAU,yCACzCC,GAAW,uBACXC,GAAUl+B,GAAS,KAAMm+B,GAAUn+B,GAAS,KAE1C,SAA2Bq+B,EAAOhhU,EAAGi7L,EAAMyjH,EAAO6Q,EAAQ5qE,GAWhE,IAVA,IAAmE5sP,EAC/Du2N,EACA2yG,EAAMC,EAEoCj2F,EAJ1CmiD,EAAK,EAAGhxR,EAAI,GAAI8zG,EAAQ,GAAIixN,EAAO,GAAI7lN,EAAI,EAAGnnH,EAAE,EAAGw4R,EAAG,EAAGlqR,EAAE,GACtD2+T,EAAO,EAAGC,EAAO,EAEtBrC,EAAQ,EAAGC,EAAS,EACpBqC,EAAYjtU,MAAMmE,QAAQmsP,EAAOisE,QACjCsM,EAAS,GACTH,EAAU,GACVr7M,EAAQrtH,MAAMmE,QAAQwH,GACtB00E,EAAO,GAAI6sP,EAAS,GAAIC,GAAU,EAClCn4B,IAAepuG,EAAKouG,WAChBo4B,EAAOT,EAAMz7T,MAAMm7T,IAAW/uC,EAAK,EAAG+vC,EAAUD,EAAKvtU,OAAQy9R,GAAM+vC,IAAW/vC,EAAI,CAEzF,IAAIgwC,GADJvlU,EAAIqlU,EAAK9vC,GAAIpnQ,QACAr2B,OACb,GAAY,IAATytU,EAAH,CAGA,IAAIv0C,EAAK,EAAGA,EAAKu0C,GAAoC,KAArBvlU,EAAE21B,WAAWq7P,KAApBA,GAGzB,KAHkEA,EAElEg0C,EAAgB,OADhB9yG,EAAMyyE,GAAY3kS,EAAEtC,MAAM,EAAEszR,IAAK,IACtBxwR,EAAY44F,SAAS84H,EAAI1xN,EAAG,IAAMwkU,EAAK,EAAGC,GAAQ,IAC1DpmI,EAAK8iH,WAAa9iH,EAAK8iH,UAAYqjB,GAAtC,CACG1iB,EAAM1+S,EAAEpD,EAAIwkU,EAAO,IAAG1iB,EAAM1+S,EAAEpD,EAAIwkU,EAAO,GACzC1iB,EAAMlzR,EAAE5uB,EAAIwkU,EAAO,IAAG1iB,EAAMlzR,EAAE5uB,EAAIwkU,EAAO,GAEzCnmI,GAAQA,EAAKyhH,aACf6kB,EAAS,GAAIC,GAAU,EACpBlzG,EAAIszG,KAAMJ,GAAU,EAAMD,EAAO7d,IAAMtuS,WAAWk5M,EAAIszG,IAAKL,EAAO5d,IAAMC,GAAM2d,EAAO7d,MACvE,KAAdp1F,EAAI02B,SAAiBw8E,GAAU,EAAMD,EAAOv8E,QAAS,GACjC,MAApB12B,EAAIuzG,eAAwBL,GAAU,EAAMD,EAAOvlP,OAASsyI,EAAIuzG,cAChEL,IAAS9sP,EAAK0sP,EAAK,GAAKG,IAI5BrxN,EAAQ9zG,EAAEtC,MAAMszR,GAAI7nR,MAAMk7T,IAC1B,IAAI,IAAIqB,EAAS,EAAGA,GAAU5xN,EAAMh8G,QAAuD,KAAlCg8G,EAAM4xN,GAAQv3S,OAAO+3G,OAAO,KAAvCw/L,GAE9C,IADA5xN,EAAQA,EAAMp2G,MAAMgoU,GAChB10C,EAAK,EAAGA,GAAMl9K,EAAMh8G,SAAUk5R,EAEjC,GAAgB,KADhBhxR,EAAI8zG,EAAMk9K,GAAI7iQ,QACTr2B,OAAL,CAGA,GAFAitU,EAAO/kU,EAAEwgC,MAAM0rR,IAAShtM,EAAM8xK,EAAIj5R,EAAE,EAAGw4R,EAAG,EAC1CvwR,EAAI,OAAuB,KAAdA,EAAEtC,MAAM,EAAE,GAAQ,IAAI,IAAMsC,EAC9B,MAAR+kU,GAAgC,IAAhBA,EAAKjtU,OAAc,CAErC,IADAonH,EAAM,EAAG74G,EAAE0+T,EAAK,GACZhtU,EAAE,EAAGA,GAAKsO,EAAEvO,WACXy4R,EAAGlqR,EAAEsvB,WAAW59B,GAAG,IAAM,GAAKw4R,EAAK,MADdx4R,EAEzBmnH,EAAM,GAAGA,EAAMqxK,EAGhB00C,IADE/lN,QAEM+lN,EACT,IAAIltU,EAAI,EAAGA,GAAKiI,EAAElI,QAAoC,KAApBkI,EAAE21B,WAAW59B,KAAnBA,GAO5B,KAPmEA,GACnEm6N,EAAMyyE,GAAY3kS,EAAEtC,MAAM,EAAE3F,IAAI,IACxByI,IAAG0xN,EAAI1xN,EAAI2qS,GAAY,CAAC3qS,EAAEwkU,EAAK,EAAGv+T,EAAEw+T,KAE5CtpU,EAAI,CAAEmN,EAAE,IAEqB,OAAzBi8T,GAHJ1+T,EAAIrG,EAAEtC,MAAM3F,IAGDyoC,MAAMikS,MAAgC,KAAZM,EAAK,KAAWppU,EAAEwd,EAAEisR,GAAY2/B,EAAK,KACvElmI,EAAK8mI,YAAa,CACpB,GAA6B,OAAzBZ,EAAK1+T,EAAEm6B,MAAMkkS,MAAgC,KAAZK,EAAK,IAIzC,GAFAppU,EAAEiD,EAAEwmS,GAAYW,GAASg/B,EAAK,KAAKl8T,QAAQ,QAAS,MAChDg2L,EAAK+mI,OAAMjqU,EAAEiD,EAAIy8T,GAAM1/T,EAAEiD,IAC1BmmU,EAAK,GAAG16S,QAAQ,cAAgB,EAClC1uB,EAAEmnQ,GAAKz8P,EAAEm6B,MAAMgkS,KAAW,IAAI,GAC3B7oU,EAAEmnQ,EAAEz4O,QAAQ,MAAQ,GAAGy2S,EAAOhkU,KAAK,CAACmvS,GAAkBtwS,EAAEmnQ,GAAInnQ,EAAEmnQ,SAC3D,GAAGiiE,EAAK,GAAG16S,QAAQ,eAAiB,EAAG,CAE7Cy6S,EAAOngC,GAAYogC,EAAK,IACxB,IAAIc,EAAOzgC,GAAYW,GAASg/B,EAAK,KACjClmI,EAAK+mI,OAAMC,EAAOxK,GAAMwK,IAC5BlF,EAAQvnO,SAAS0rO,EAAK9oL,GAAI,KAAO,CAAC8oL,EAAMe,EAAM3zG,EAAI1xN,SAEzCukU,EAAK1+T,EAAEm6B,MAAM,gBAEpBmgS,GADHmE,EAAOngC,GAAYogC,EAAK,KACR/oL,MAAKrgJ,EAAEiD,EAAIu8T,GAAmBwF,EAAQmE,EAAK9oL,IAAI,GAAI2kL,EAAQmE,EAAK9oL,IAAI,GAAek2E,EAAI1xN,IAGxG,IAAIslU,EAAOn6B,GAAYz5E,EAAI1xN,GAC3B,IAAIzI,EAAI,EAAGA,EAAI+oU,EAAOhpU,SAAUC,EAC5B+tU,EAAKtlU,GAAKsgU,EAAO/oU,GAAG,GAAG6L,EAAEpD,GAAKslU,EAAKtlU,GAAKsgU,EAAO/oU,GAAG,GAAGq3B,EAAE5uB,GACtDslU,EAAKr/T,GAAKq6T,EAAO/oU,GAAG,GAAG6L,EAAE6C,GAAKq/T,EAAKr/T,GAAKq6T,EAAO/oU,GAAG,GAAGq3B,EAAE3oB,IACzD9K,EAAEmnQ,EAAIg+D,EAAO/oU,GAAG,IAGpB,GAAY,MAATm6N,EAAIppN,QAAqBtP,IAARmC,EAAEwd,EACrB,GAAGxd,EAAEiD,GAAKjD,EAAEmnQ,EACXnnQ,EAAEwd,EAAI,EAAGxd,EAAEmN,EAAI,QACT,KAAImkS,EAAY,SAClBtxS,EAAEmN,EAAI,SAEPnN,EAAEmN,EAAIopN,EAAIppN,GAAK,IAIpB,OAHGw5S,EAAM1+S,EAAE6C,EAAIw+T,IAAM3iB,EAAM1+S,EAAE6C,EAAIw+T,GAC9B3iB,EAAMlzR,EAAE3oB,EAAIw+T,IAAM3iB,EAAMlzR,EAAE3oB,EAAIw+T,GAE1BtpU,EAAEmN,GACR,IAAK,IACJ,GAAU,IAAPnN,EAAEwd,GAAkB,MAAPxd,EAAEwd,EAAW,CAC5B,IAAI8zR,EAAY,SAChBtxS,EAAEmN,EAAI,SACAnN,EAAEwd,EAAIH,WAAWrd,EAAEwd,GAC1B,MACD,IAAK,IACJ,QAAiB,IAAPxd,EAAEwd,EAAkB,CAC7B,IAAI8zR,EAAY,SAChBtxS,EAAEmN,EAAI,SAEN+7T,EAAOxzB,GAAKj4M,SAASz9F,EAAEwd,EAAG,KAC1Bxd,EAAEwd,EAAI0rT,EAAK/7T,EACXnN,EAAE6E,EAAIqkU,EAAKrkU,EACRq+L,EAAKquH,WAAUvxT,EAAE+/C,EAAImpR,EAAKnpR,GAE9B,MACD,IAAK,MACJ//C,EAAEmN,EAAI,IACNnN,EAAEwd,EAAU,MAALxd,EAAEwd,EAAW4sR,GAASpqS,EAAEwd,GAAK,GACjC0lL,EAAKquH,WAAUvxT,EAAE+/C,EAAIgqP,GAAW/pS,EAAEwd,IACrC,MACD,IAAK,YACJ4rT,EAAO1+T,EAAEm6B,MAAM+jS,IACf5oU,EAAEmN,EAAI,IACK,MAARi8T,IAAiBF,EAAO7X,GAAS+X,EAAK,MACxCppU,EAAEwd,EAAI0rT,EAAK/7T,EACR+1L,EAAKquH,WAAUvxT,EAAE+/C,EAAImpR,EAAKnpR,IACvB//C,EAAEwd,EAAI,GACb,MACD,IAAK,IAAKxd,EAAEwd,EAAI2sR,GAAanqS,EAAEwd,GAAI,MACnC,IAAK,IACD0lL,EAAKquG,UAAWvxS,EAAEwd,EAAI+pR,EAAUvnS,EAAEwd,EAAG,IACjCxd,EAAEwd,EAAIspR,EAAQS,EAAUvnS,EAAEwd,EAAG,IAAKxd,EAAEmN,EAAI,KAC/C,MAED,IAAK,IACA+1L,IAA0B,IAAlBA,EAAKirH,WAAoBnuT,EAAE6pE,EAAI7pE,EAAEwd,GAC7Cxd,EAAEwd,EAAIy3R,GAAMj1S,EAAEwd,GAgBhB,GAbAypT,EAAQC,EAAS,EACjBh0F,EAAK,KACFq2F,QAAuB1rU,IAAV04N,EAAItuN,GAEV,OADTirO,EAAK0Z,EAAOisE,OAAOtiG,EAAItuN,MAEJ,MAAfirO,EAAGu9D,WAAkBw2B,EAAQ/zF,EAAGu9D,UAChCvtG,EAAKyhH,YACS,MAAbzxE,EAAG6nF,SAAgBmM,EAASh0F,EAAG6nF,SAIrCiM,GAAYhnU,EAAGinU,EAAOC,EAAQhkI,EAAMs0H,EAAQ5qE,GACzC1pD,EAAKquG,WAAag4B,GAAoB,KAAPvpU,EAAEmN,GAAYijR,EAAImH,QAAQnH,EAAIl4B,OAAO+uE,MAAWjnU,EAAEmN,EAAI,IAAKnN,EAAEwd,EAAIypR,EAAQjnS,EAAEwd,IAC1GmsG,EAAO,CACT,IAAIygN,EAAKp6B,GAAYz5E,EAAI1xN,GACrBoD,EAAEmiU,EAAGvlU,KAAIoD,EAAEmiU,EAAGvlU,GAAK,IACvBoD,EAAEmiU,EAAGvlU,GAAGulU,EAAGt/T,GAAK9K,OACViI,EAAEsuN,EAAI1xN,GAAK7E,KAGjB28E,EAAKxgF,OAAS,IAAG8L,EAAE,SAAW00E,KA+C9B0tP,GAAc9+B,GAAU,YAAa,KAAM,CAC9C,MAASK,GAAMqmB,KAAK,GACpB,UAAWrmB,GAAM/mS,IAGlB,SAASylU,GAAa/mN,EAAK2/E,EAAM6wC,EAAIsiE,GACpC,IAC4BsY,EADxB/uT,EAAI,CAAC+oS,GAAY0hC,IACjBpiU,EAAI8rO,EAAG14B,WAAW93F,GAAgBgnN,EAAQ,GAC1CjlH,EAAKyuB,EAAG34B,OAAOnzM,GACV,MAANq9M,IAAYA,EAAK,IACpB,IAAI6+F,EAAM7+F,EAAG,SAAW,KACpBtxJ,EAAQs8O,GAAkB6T,GAC9B,GAAGnwP,EAAMvgC,EAAE3oB,EAAI,OAAUkpD,EAAMvgC,EAAE5uB,EAAI,QAAS,CAC7C,GAAGq+L,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,SAAW0gT,EAAM,uCAC9CnwP,EAAMvgC,EAAE3oB,EAAIhH,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAG,OAChCkpD,EAAMvgC,EAAE5uB,EAAIf,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAG,SAChCq5S,EAAMhU,GAAan8O,GAEhBqiP,IAAMA,EAAO,IACjB/wF,EAAG,aAAe,GAClB,IAAIklH,EAAW,IAnahB,SAA8BllH,EAAIyuB,EAAIxwH,EAAK2/E,EAAMtjM,GAChD,IAAI6qU,GAAS,EACTrsU,EAAQ,GAAIy+R,EAAU,KAC1B,GAAqB,SAAlB35F,EAAKs+G,UAAuBztE,EAAG22F,OAAQ,CACzC,IAAIn9H,EAAQwmC,EAAG14B,WAAW93F,GAC1B,IAASwwH,EAAG42F,WAAUp9H,EAAQwmC,EAAG42F,SAASvvH,OAAO73F,GAAK0kN,UAAY16H,GAAS,MAAM95K,IACjFg3S,GAAS,EACTrsU,EAAM4pU,SAAWniC,GAAU+D,GAAUr8F,IAGtC,GAAG+X,GAAMA,EAAG,YAAa,CACxB,IAAIslH,EAAe,CAACC,aAAa,EAAGC,aAAa,GAC9CxlH,EAAG,YAAYylH,QAAOH,EAAaC,aAAe,GAClDvlH,EAAG,YAAY5oK,OAAMkuR,EAAaE,aAAe,GACpDjuC,GAAWA,GAAS,IAAM0O,GAAU,YAAa,KAAMq/B,IAGpDH,GAAW5tC,KACfj9R,EAAEA,EAAEzD,QAAWovS,GAAU,UAAW1O,EAASz+R,IAmZ7C4sU,CAAqB1lH,EAAIyuB,EAAIxwH,EAAK2/E,EAAMtjM,GAExCA,EAAEA,EAAEzD,QAAWovS,GAAU,YAAa,KAAM,CAAC,IAAO4Y,IAEpDvkT,EAAEA,EAAEzD,QAhSL,SAAiCmpN,EAAIpiB,EAAM3/E,EAAKwwH,GAC/C,IAAIk3F,EAAQ,CAAEC,eAAe,KAG7B,SADMn3F,GAAI,IAAI42F,UAAU,IAAIQ,OAAO,IAAI,KAAIF,EAAMG,YAAcr3F,EAAG42F,SAASQ,MAAM,GAAGE,IAAM,IAAM,KACzF9/B,GAAU,aAAcA,GAAU,YAAa,KAAM0/B,GAAQ,IA4RtDK,CAAwBhmH,EAAIpiB,EAAM3/E,EAAKwwH,GAGlD7wC,EAAKqoI,cAAa3rU,EAAEA,EAAEzD,QAAWovS,GAAU,gBAAiB,KAAM,CACpEigC,iBAAiBtoI,EAAKqoI,YAAYC,kBAAkB,KACpDC,aAAavoI,EAAKqoI,YAAYE,cAAc,KAC5CC,gBAAgBxoI,EAAKqoI,YAAYG,iBAAiB,OAGjC,MAAfpmH,EAAG,UAAoBA,EAAG,SAASnpN,OAAS,IAAGyD,EAAEA,EAAEzD,QArVvD,SAA2BmpN,EAAIhvG,GAE9B,IADA,IAAoBisC,EAAhB3iJ,EAAI,CAAC,UACDxD,EAAI,EAAGA,GAAKk6G,EAAKn6G,SAAUC,GAC7BmmJ,EAAMjsC,EAAKl6G,MAChBwD,EAAEA,EAAEzD,QAAWovS,GAAU,MAAO,KAAMg7B,GAAUnqU,EAAGmmJ,KAGpD,OADA3iJ,EAAEA,EAAEzD,QAAU,UACPyD,EAAE0N,KAAK,IA8UkD,CAAmBg4M,EAAIA,EAAG,WAE1F1lN,EAAE+uT,EAAO/uT,EAAEzD,QAAU,eACrBmpN,EAAG,UAAY,GACE,MAAdA,EAAG,UACLilH,EApFF,SAA2BjlH,EAAIpiB,EAAM3/E,EAAKwwH,GACzC,IAAoEowE,EAE7CvnS,EAFnBhd,EAAI,GAAIiF,EAAI,GAAImvD,EAAQs8O,GAAkBhrF,EAAG,SAAUrtG,EAAK,GAASw9K,EAAK,GAAIn/K,EAAO,GAAIglG,EAAE,EAAGC,EAAE,EAAG5+H,EAAO2oI,EAAG,SAC7G37F,EAAQrtH,MAAMmE,QAAQ6kN,GACtBr4M,EAAS,CAAEpI,EAAE4wR,GAAW/tP,GAAU,EACtC,IAAI6zK,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAGjlG,EAAKilG,GAAKo0F,GAAWp0F,GAC7D,IAAID,EAAItnJ,EAAM/rD,EAAEpD,EAAGy2M,GAAKtnJ,EAAMvgC,EAAE5uB,IAAKy2M,EAAG,CAGvC,IAFAz2M,EAAI,GACJ4wR,EAAKia,GAAWp0F,GACZC,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CACvC4oG,EAAM7tM,EAAKilG,GAAKk6E,EAChB,IAAIk2C,EAAQhiN,GAAS27F,EAAGhK,IAAI,IAAIC,GAAI+J,EAAG6+F,QAC1BtmT,IAAV8tU,GAC6D,OAA5D1zN,EAAOowN,GAAkBsD,EAAOxnB,EAAK7+F,EAAIpiB,KAAyBr+L,EAAE1D,KAAK82G,IAE3EpzG,EAAE1I,OAAS,GAAMwgF,GAAQA,EAAK2+H,MAChCruM,EAAS,CAAEpI,EAAE4wR,GACV94M,GAAQA,EAAK2+H,MACf1+L,EAAM+/D,EAAK2+H,IACJ2xC,SAAQhgP,EAAOggP,OAAS,GAC/BvlN,GAAU,EACP9qB,EAAIgvS,IAAKlkR,EAAS8kR,GAAM5vS,EAAIgvS,KACvBhvS,EAAI+uS,MAAKjkR,EAAS9qB,EAAI+uS,KAC3BjkR,GAAU,IAAKz6B,EAAO48T,GAAKniS,EAAQz6B,EAAO2+T,aAAe,GACzDhvT,EAAIqnE,QAASh3E,EAAO68T,aAAeltT,EAAIqnE,QAE3CrkF,EAAEA,EAAEzD,QAAWovS,GAAU,MAAO1mS,EAAEyI,KAAK,IAAKL,IAG9C,GAAG0vE,EAAM,KAAM2+H,EAAI3+H,EAAKxgF,SAAUm/M,EAC9B3+H,GAAQA,EAAK2+H,KACfruM,EAAS,CAAEpI,EAAEy2M,EAAE,IACf1+L,EAAM+/D,EAAK2+H,IACJ2xC,SAAQhgP,EAAOggP,OAAS,GAC/BvlN,GAAU,EACN9qB,EAAIgvS,IAAKlkR,EAAS8kR,GAAM5vS,EAAIgvS,KACvBhvS,EAAI+uS,MAAKjkR,EAAS9qB,EAAI+uS,KAC3BjkR,GAAU,IAAKz6B,EAAO48T,GAAKniS,EAAQz6B,EAAO2+T,aAAe,GACzDhvT,EAAIqnE,QAASh3E,EAAO68T,aAAeltT,EAAIqnE,OAC3CrkF,EAAEA,EAAEzD,QAAWovS,GAAU,MAAO,GAAIt+R,IAGtC,OAAOrN,EAAE0N,KAAK,IA2CLu+T,CAAkBvmH,EAAIpiB,IACrB/mM,OAAS,IAAGyD,EAAEA,EAAEzD,QAAU,GAEjCyD,EAAEzD,OAAOwyT,EAAK,IAAK/uT,EAAEA,EAAEzD,QAAU,eAAkByD,EAAE+uT,GAAM/uT,EAAE+uT,GAAMzhT,QAAQ,KAAK,MAI9D,MAAlBo4M,EAAG,cAAqB1lN,EAAEA,EAAEzD,QAjahC,SAAiCmoU,GAEhC,IAAI1kU,EAAI,CAAEk7M,MAAM,GAKhB,OAJAotH,GAAmBt+T,SAAQ,SAAS/H,GAAiB,MAATyiU,EAAGziU,IAAcyiU,EAAGziU,KAAIjC,EAAEiC,GAAK,QAC3EsmU,GAAkBv+T,SAAQ,SAAS/H,GAAiB,MAATyiU,EAAGziU,IAAeyiU,EAAGziU,KAAIjC,EAAEiC,GAAK,QAExEyiU,EAAGvP,WAAUn1T,EAAEm1T,SAAWZ,GAAsCmQ,EAAGvP,UAAUjzT,SAAS,IAAI28E,eACtF8sN,GAAU,kBAAmB,KAAM3rS,GA0ZDksU,CAAwBxmH,EAAG,cAK5C,MAArBA,EAAG,iBAAwB1lN,EAAEA,EAAEzD,QAxVnC,SAAiCoG,EAAM+iN,EAAIyuB,EAAIxwH,GAC9C,IAAI4gM,EAAyB,iBAAZ5hT,EAAK4hT,IAAkB5hT,EAAK4hT,IAAMhU,GAAa5tS,EAAK4hT,KACjEpwE,EAAG42F,WAAU52F,EAAG42F,SAAW,CAAEvvH,OAAO,KACpC24B,EAAG42F,SAASoB,QAAOh4F,EAAG42F,SAASoB,MAAQ,IAC3C,IAAIz7S,EAAQyjN,EAAG42F,SAASoB,MACpB/3Q,EAAQk8O,GAAaiU,GACtBnwP,EAAM/rD,EAAEpD,GAAKmvD,EAAMvgC,EAAE5uB,IAAKmvD,EAAMvgC,EAAE5uB,EAAIqrS,GAAa5qF,EAAG,SAAS7xL,EAAE5uB,EAAGs/S,EAAMhU,GAAan8O,IAC1F,IAAI,IAAI53D,EAAI,EAAGA,EAAIk0B,EAAMn0B,SAAUC,EAAG,CACrC,IAAI4F,EAAOsuB,EAAMl0B,GACjB,GAAgB,yBAAb4F,EAAKohT,MACLphT,EAAKgqU,OAASzoN,EAAjB,CACAvhH,EAAKiqU,IAAM,IAAMl4F,EAAG14B,WAAW93F,GAAO,KAAO4gM,EAAK,OAGnD,OADG/nT,GAAKk0B,EAAMn0B,QAAQm0B,EAAMnvB,KAAK,CAAEiiT,KAAM,wBAAyB4oB,MAAOzoN,EAAK0oN,IAAK,IAAMl4F,EAAG14B,WAAW93F,GAAO,KAAO4gM,IAC9G5Y,GAAU,aAAc,KAAM,CAAC4Y,IAAIA,IA0UE+nB,CAAwB5mH,EAAG,eAAgBA,EAAIyuB,EAAIxwH,IAM3E,MAAjB+hG,EAAG,YAAsBA,EAAG,WAAWnpN,OAAS,IAAGyD,EAAEA,EAAEzD,QAtd3D,SAA6BgwU,GAC5B,GAAqB,IAAlBA,EAAOhwU,OAAc,MAAO,GAE/B,IADA,IAAIyD,EAAI,sBAAwBusU,EAAOhwU,OAAS,KACxCC,EAAI,EAAGA,GAAK+vU,EAAOhwU,SAAUC,EAAGwD,GAAK,mBAAqBuwS,GAAag8B,EAAO/vU,IAAM,MAC5F,OAAOwD,EAAI,gBAkdyD,CAAqB0lN,EAAG,aAM5F,IAAe8xF,EAnYcg1B,EAmYzBC,GAAQ,EAAQt0B,GAAO,EAsD3B,OArDGzyF,EAAG,UAAUnpN,OAAS,IACxByD,EAAEA,EAAEzD,QAAU,eAChBmpN,EAAG,UAAU17M,SAAQ,SAASsT,GACvBA,EAAE,GAAGo6R,SACTF,EAAM,CAAE,IAAMl6R,EAAE,IACY,KAAzBA,EAAE,GAAGo6R,OAAO/sK,OAAO,KACrBwtK,EAAMD,GAASzB,GAAO,EAAGzM,GAAU1sR,EAAE,GAAGo6R,QAAQpqS,QAAQ,OAAQ,IAAKopS,GAAKG,OAC1EW,EAAI,QAAU,MAAMW,IAEjBs0B,EAAOnvT,EAAE,GAAGo6R,OAAO5oR,QAAQ,OAAS,IAAG0oR,EAAIvqS,SAAW+8R,GAAU1sR,EAAE,GAAGo6R,OAAOv1S,MAAMsqU,EAAK,KACxFnvT,EAAE,GAAGunS,UAASrN,EAAIk1B,QAAU1iC,GAAU1sR,EAAE,GAAGunS,UAC9C7kT,EAAEA,EAAEzD,QAAUovS,GAAU,YAAY,KAAK6L,OAE1Cx3S,EAAEA,EAAEzD,QAAU,wBAERmpN,EAAG,UAIW,MAAlBA,EAAG,cAAqB1lN,EAAEA,EAAEzD,SAtZ/BqqU,GAD6B4F,EAuZkC9mH,EAAG,aArZ3DimF,GAAU,cAAe,KAAM6gC,KA8ZlClpI,IAAQA,EAAKqpI,UAA8B,MAAjBrpI,EAAKqpI,WAAuB3sU,EAAEA,EAAEzD,QAAUkvS,GAAS,gBAAiBE,GAAU,eAAgB,KAAM,CAACihC,mBAAmB,EAAGC,MAAMtoB,MAI5JqmB,EAASruU,OAAS,IACpB47S,EAAMD,GAASzB,GAAO,EAAG,uBAAyB9yL,EAAI,GAAK,OAAQ+yL,GAAK+mB,MACxEz9T,EAAEA,EAAEzD,QAAUovS,GAAU,UAAW,KAAM,CAAC,OAAO,MAAQwM,IACzDzyF,EAAG,YAAcklH,GAGfllH,EAAG,aAAanpN,OAAS,IAC3B47S,EAAMD,GAASzB,GAAO,EAAG,0BAA4B9yL,EAAI,GAAK,OAAQ+yL,GAAKI,KAC3E92S,EAAEA,EAAEzD,QAAUovS,GAAU,gBAAiB,KAAM,CAAC,OAAO,MAAQwM,IAC/DzyF,EAAG,WAAayyF,GAWdn4S,EAAEzD,OAAO,IAAKyD,EAAEA,EAAEzD,QAAU,eAAkByD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MACjEtN,EAAE0N,KAAK,IAkEf,SAASo/T,GAAiB19B,EAAI1pF,EAAItxJ,EAAOsnJ,GACxC,IAAI17M,EAjDL,SAAyB07M,EAAGtnJ,EAAOsxJ,GAClC,IAAI1lN,EAAIm9R,GAAQ,KACZngR,GAAO0oM,EAAG,UAAU,IAAIhK,IAAI,GAChC17M,EAAEs5R,YAAY,EAAG59E,GAEjB17M,EAAEs5R,YAAY,EAAG,GAEjB,IAAI0oB,EAAQ,IACThlS,EAAIgvS,IAAKhK,EAAyB,GAAjB4K,GAAM5vS,EAAIgvS,KACtBhvS,EAAI+uS,MAAK/J,EAAkB,GAAVhlS,EAAI+uS,KAC7B/rT,EAAEs5R,YAAY,EAAG0oB,GAEjBhiT,EAAEs5R,YAAY,EAAG,GAEjB,IAAIntR,EAAQ,EACT6Q,EAAIqnE,QAAOl4E,GAAS6Q,EAAIqnE,OACxBrnE,EAAIqwO,SAAQlhP,GAAS,KACrB6Q,EAAIgvS,KAAOhvS,EAAI+uS,OAAK5/S,GAAS,IAChCnM,EAAEs5R,YAAY,EAAGntR,GAEjBnM,EAAEs5R,YAAY,EAAG,GAGjB,IAAIyzC,EAAW,EAAGC,EAAMhtU,EAAEsd,EAC1Btd,EAAEsd,GAAK,EAGP,IADA,IAAI2vT,EAAQ,CAAChoU,EAAEy2M,EAAGxwM,EAAE,GACZ1O,EAAI,EAAGA,EAAI,KAAMA,EACxB,KAAI43D,EAAM/rD,EAAE6C,EAAM1O,EAAE,GAAM,IAAS43D,EAAMvgC,EAAE3oB,EAAK1O,GAAK,IAArD,CAEA,IADA,IAAIgoP,GAAS,EAAG1Z,GAAQ,EAChBhiO,EAAKtM,GAAG,GAAKsM,EAAMtM,EAAE,GAAI,KAAOsM,EACvCmkU,EAAM/hU,EAAIpC,GACCpM,MAAMmE,QAAQ6kN,IAAOA,EAAGunH,EAAMhoU,IAAI,IAAIgoU,EAAM/hU,GAAKw6M,EAAGkqF,GAAYq9B,OAC7DzoF,EAAQ,IAAGA,EAAQ17O,GAAGgiO,EAAOhiO,GAEzC07O,EAAQ,MACTuoF,EACF/sU,EAAEs5R,YAAY,EAAG90C,GACjBxkP,EAAEs5R,YAAY,EAAGxuD,IAGlB,IAAIxtN,EAAItd,EAAEsd,EAKV,OAJAtd,EAAEsd,EAAI0vT,EACNhtU,EAAEs5R,YAAY,EAAGyzC,GACjB/sU,EAAEsd,EAAIA,EAECtd,EAAEzD,OAASyD,EAAEsd,EAAItd,EAAEmC,MAAM,EAAGnC,EAAEsd,GAAKtd,EAGlCktU,CAAgBxxH,EAAGtnJ,EAAOsxJ,IAC9B1lN,EAAEzD,OAAS,KAAQmpN,EAAG,UAAU,IAAIhK,KAAIyzF,GAAaC,EAAI,YAAapvS,GAI3E,IAAImtU,GAAiBp5B,GACjBq5B,GAAiBp5B,GA8KrB,IAAIq5B,GAAqBt5B,GACrBu5B,GAAqBt5B,GAiFrBu5B,GAAgB,CAAC,OAAO,QAAQ,MAAM,SAAS,SAAS,UAgW5D,SAASC,GAAkBp+B,EAAI/2L,EAAMqjG,EAAGC,EAAGrY,EAAMoiB,GAChD,QAAcznN,IAAXo6G,EAAKz6F,EAAR,CACA,IAAI25Q,EAAK,GACT,OAAOl/K,EAAK9qG,GACX,IAAK,IAAKgqR,EAAKl/K,EAAKz6F,EAAI,IAAM,IAAK,MACnC,IAAK,KACJy6F,EAAOyvL,GAAIzvL,IACN8C,EAAI9C,EAAK8C,GAAKq1K,EAAIl4B,OAAO,IAC9BjgJ,EAAKz6F,EAAIspR,EAAQS,EAAUtvL,EAAKz6F,IAAKy6F,EAAK9qG,EAAI,IAC9C,MAED,IAAK,IAAK,IAAK,IAAKgqR,EAAK,GAAGl/K,EAAKz6F,EAAG,MACpC,QAAS25Q,EAAKl/K,EAAKz6F,EAEpB,IAAI5d,EAAI,CAAEiF,EAAEy2M,EAAGxwM,EAAEywM,GAKjB,OAHA37M,EAAEqI,EAAI2+T,GAAe1jI,EAAKs2H,QAASvhN,EAAMirF,GACtCjrF,EAAK/6F,GAAGooM,EAAG,UAAUnkN,KAAK,CAACquS,GAAY5vS,GAAIq4G,EAAK/6F,IAChD+6F,EAAKntG,GAAGw6M,EAAG,aAAankN,KAAK,CAACquS,GAAY5vS,GAAIq4G,EAAKntG,IAC/CmtG,EAAK9qG,GACX,IAAK,IAAK,IAAK,MASd,YARG+1L,EAAK6uH,SACP56B,EAAKkvC,GAAWnjI,EAAKslI,QAAUvwN,EAAM,EAAGirF,EAAKulI,YAC7C7oU,EAAEuN,EAAI,IAAKvN,EAAE4d,EAAI25Q,EACjB4X,GAAaC,EAAI,cA1jBrB,SAA2B/2L,EAAMo1N,EAAOztU,GAIvC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1B+V,GAAeu6B,EAAOztU,GACtBA,EAAEs5R,YAAY,EAAGm0C,EAAM7vT,GAChB5d,EAsjB4B0tU,CAAkBr1N,EAAMr4G,MAExDA,EAAEuN,EAAI,MACN4hS,GAAaC,EAAI,YArhBrB,SAAyB/2L,EAAMo1N,EAAOztU,GAIrC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,GAAK,EAAI9kL,EAAKz6F,EAAErhB,SAC1C22S,GAAeu6B,EAAOztU,GACtBgyS,GAAmB35L,EAAKz6F,EAAG5d,GACpBA,EAAEzD,OAASyD,EAAEsd,EAAItd,EAAEmC,MAAM,EAAGnC,EAAEsd,GAAKtd,EAihBT2tU,CAAgBt1N,EAAMr4G,MAGtD,IAAK,IAIJ,YAFGq4G,EAAKz6F,IAAe,EAATy6F,EAAKz6F,IAAUy6F,EAAKz6F,GAAK,KAAQy6F,EAAKz6F,EAAI,IAAMuxR,GAAaC,EAAI,YAxiBlF,SAAyB/2L,EAAMo1N,EAAOztU,GAIrC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1B+V,GAAeu6B,EAAOztU,GAp0TvB,SAAwB2C,EAAM3C,GACpB,MAALA,IAAWA,EAAIm9R,GAAQ,IAC3B,IAAIwW,EAAQ,EAAGC,EAAO,EAAGg6B,EAAc,IAAPjrU,EAGhC,GAFKA,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,GAAQixS,EAAO,EACvEg6B,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,KAAQh6B,EAAO,EAAGD,EAAQ,IAC7FC,EACC,MAAM,IAAI/vS,MAAM,wBAA0BlB,GADrC3C,EAAEs5R,aAAa,IAAKqa,EAAQi6B,EAAOjrU,IAAS,IAAMgxS,EAAQ,IAg0TpEk6B,CAAex1N,EAAKz6F,EAAG5d,GAChBA,EAoiBuF8tU,CAAgBz1N,EAAMr4G,IAC7GmvS,GAAaC,EAAI,cAtjBzB,SAA2B/2L,EAAMo1N,EAAOztU,GAIvC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1B+V,GAAeu6B,EAAOztU,GACtBk0S,GAAW77L,EAAKz6F,EAAG5d,GACZA,EAkjBgC+tU,CAAkB11N,EAAMr4G,KAE9D,IAAK,IAGJ,OAFAA,EAAEuN,EAAI,SACN4hS,GAAaC,EAAI,cA3lBpB,SAA2B/2L,EAAMo1N,EAAOztU,GAIvC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,IAC1B+V,GAAeu6B,EAAOztU,GACtBA,EAAEs5R,YAAY,EAAGjhL,EAAKz6F,EAAI,EAAI,GACvB5d,EAulB2BguU,CAAkB31N,EAAMr4G,IAEzD,IAAK,IAAuBA,EAAEuN,EAAI,IAEnC4hS,GAAaC,EAAI,eA3mBlB,SAA4B/2L,EAAMo1N,EAAOztU,GAExC,OADQ,MAALA,IAAWA,EAAIm9R,GAAQ,IACnB+V,GAAeu6B,EAAOztU,GAymBIiuU,CAAmB51N,EAAMr4G,KAsH3D,SAASkuU,GAAavqN,EAAK2/E,EAAM6wC,EAAIsiE,GACpC,IAAIrH,EAAKP,KACLxmS,EAAI8rO,EAAG14B,WAAW93F,GAAM+hG,EAAKyuB,EAAG34B,OAAOnzM,IAAM,GAC7C6C,EAAI7C,EAAG,IAAS8rO,GAAMA,EAAG42F,WAAU7/T,EAAIipO,EAAG42F,SAASvvH,OAAO73F,GAAK0kN,UAAYn9T,GAAK,MAAM2oB,IAC1F,IAAI5uB,EAAIyrS,GAAkBhrF,EAAG,SAAW,MACxC,GAAGzgN,EAAE4uB,EAAE3oB,EAAI,OAAUjG,EAAE4uB,EAAE5uB,EAAI,QAAS,CACrC,GAAGq+L,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,UAAY6hN,EAAG,SAAW,MAAQ,uCAC/DzgN,EAAE4uB,EAAE3oB,EAAIhH,KAAKM,IAAIS,EAAE4uB,EAAE3oB,EAAG,OACxBjG,EAAE4uB,EAAE5uB,EAAIf,KAAKM,IAAIS,EAAE4uB,EAAE3oB,EAAG,SA6CzB,OA3CAw6M,EAAG,UAAY,GAEfA,EAAG,aAAe,GAClBypF,GAAaC,EAAI,iBACdj7D,EAAG22F,QAAQ37B,GAAaC,EAAI,YA9vBhC,SAAyB58Q,EAAKxyB,GACrB,MAALA,IAAWA,EAAIm9R,GAAQ,GAAG,EAAE3qQ,EAAIj2B,SACnC,IAAI,IAAIC,EAAI,EAAGA,EAAI,IAAKA,EAAGwD,EAAEs5R,YAAY,EAAE,GAK3C,OAJA6a,GAAe,CAACC,KAAK,GAAIp0S,GACzBA,EAAEs5R,aAAa,GAAG,GAClBt5R,EAAEs5R,aAAa,GAAG,GAClB8Z,GAAmB5gR,EAAKxyB,GACjBA,EAAEmC,MAAM,EAAGnC,EAAEsd,GAuvBwB6wT,CAAgBjjU,IAC5DikS,GAAaC,EAAI,WAAYg+B,GAAenoU,IAzC7C,SAAwBmqS,EAAI1pF,EAAIqlH,GAC/B57B,GAAaC,EAAI,mBAGhBD,GAAaC,EAAI,iBAtdnB,SAA8B1pF,EAAIqlH,EAAU/qU,GACnC,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1B,IAAI95R,EAAI,IAcR,SAbM0nU,GAAU,IAAIQ,OAAO,IAAI,IAAI,IAAIE,MAAKpoU,GAAK,IACjDrD,EAAEs5R,YAAY,EAAGj2R,GACjBrD,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,KACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACVt5R,EAsc6BouU,CAAqB1oH,EAAIqlH,IAK5D57B,GAAaC,EAAI,gBAGlBD,GAAaC,EAAI,iBA8BjBi/B,CAAej/B,EAAI1pF,EAAIyuB,EAAG42F,UApG3B,SAAwB37B,EAAI1pF,GACvBA,GAAOA,EAAG,WACdypF,GAAaC,EAAI,oBACjB1pF,EAAG,SAAS17M,SAAQ,SAAS4pB,EAAGp3B,GAAQo3B,GAAGu7Q,GAAaC,EAAI,aA9b7D,SAA0BzzF,EAAGh5D,EAAK3iJ,GACzB,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1B,IAAI/8R,EAAIumU,GAAUhrH,EAAGh5D,GACrB3iJ,EAAEs5R,aAAa,EAAG39E,GAClB37M,EAAEs5R,aAAa,EAAG39E,GAClB37M,EAAEs5R,YAAY,EAAqB,KAAjBl5R,EAAEyG,OAAS,KAC7B7G,EAAEs5R,YAAY,EAAG,GACjB,IAAIntR,EAAQ,EAKZ,OAJGw2I,EAAI0qG,SAAQlhP,GAAS,GACH,iBAAX/L,EAAEyG,QAAmBsF,GAAS,GACrCw2I,EAAIt+D,QAAOl4E,GAAUw2I,EAAIt+D,OAAS,GACrCrkF,EAAEs5R,YAAY,EAAGntR,GACVnM,EAkbmEsuU,CAAiB9xU,EAAGo3B,OAC9Fu7Q,GAAaC,EAAI,mBAkGjBm/B,CAAen/B,EAAI1pF,GArIpB,SAAyB0pF,EAAI1pF,EAAI/hG,EAAK2/E,GACrC,IAAmDihH,EAA/CnwP,EAAQs8O,GAAkBhrF,EAAG,SAAW,MAAYmwE,EAAK,GAAIn/K,EAAO,GACxEy4L,GAAaC,EAAI,qBACjB,IAAIrlL,EAAQrtH,MAAMmE,QAAQ6kN,GACtB8oH,EAAMp6Q,EAAMvgC,EAAE5uB,EACfygN,EAAG,WAAU8oH,EAAMtqU,KAAKQ,IAAI0vD,EAAMvgC,EAAE5uB,EAAGygN,EAAG,SAASnpN,OAAS,IAC/D,IAAI,IAAIm/M,EAAItnJ,EAAM/rD,EAAEpD,EAAGy2M,GAAK8yH,IAAO9yH,EAKlC,GAJAm6E,EAAKia,GAAWp0F,GAGhBoxH,GAAiB19B,EAAI1pF,EAAItxJ,EAAOsnJ,GAC7BA,GAAKtnJ,EAAMvgC,EAAE5uB,EAAG,IAAI,IAAI02M,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CAE3DD,IAAMtnJ,EAAM/rD,EAAEpD,IAAGyxG,EAAKilG,GAAKo0F,GAAWp0F,IACzC4oG,EAAM7tM,EAAKilG,GAAKk6E,EAChB,IAAIx9K,EAAO0R,GAAS27F,EAAGhK,IAAI,IAAIC,GAAK+J,EAAG6+F,GACnClsM,GAEJm1N,GAAkBp+B,EAAI/2L,EAAMqjG,EAAGC,EAAGrY,EAAMoiB,GAG1CypF,GAAaC,EAAI,mBAiHjBq/B,CAAgBr/B,EAAI1pF,EAAI/hG,EAAK2/E,GAzB9B,SAA4B8rG,EAAI1pF,GAC3BA,EAAG,aAEPypF,GAAaC,EAAI,qBA5clB,SAAkCs1B,EAAI1kU,GAwBrC,OAvBQ,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1Bn9R,EAAEs5R,YAAY,EAAGorC,EAAGvP,SAAWZ,GAAsCmQ,EAAGvP,UAAY,GACpFn1T,EAAEs5R,YAAY,EAAG,GACjB,CACC,CAAC,WAAuB,GACxB,CAAC,aAAuB,GACxB,CAAC,eAAwB,GACzB,CAAC,iBAAwB,GACzB,CAAC,cAAwB,GACzB,CAAC,iBAAwB,GACzB,CAAC,cAAwB,GACzB,CAAC,oBAAwB,GACzB,CAAC,iBAAwB,GACzB,CAAC,cAAwB,GACzB,CAAC,qBAAuB,GACxB,CAAC,QAAwB,GACzB,CAAC,cAAwB,GACzB,CAAC,eAAwB,GACzB,CAAC,uBAAuB,IACvBtvR,SAAQ,SAAS/H,GACjBA,EAAE,GAAIjC,EAAEs5R,YAAY,EAAe,MAAZorC,EAAGziU,EAAE,KAAgByiU,EAAGziU,EAAE,IAAU,EAAJ,GAC9CjC,EAAEs5R,YAAY,EAAe,MAAZorC,EAAGziU,EAAE,KAAeyiU,EAAGziU,EAAE,IAAM,EAAI,MAExDjC,EAobgC0uU,CAAyBhpH,EAAG,cAwBnEipH,CAAmBv/B,EAAI1pF,GAzExB,SAA0B0pF,EAAI1pF,EAAIyuB,EAAIxwH,GACrC,GAAI+hG,EAAG,eAAP,CACA,IAAI/iN,EAAO+iN,EAAG,eACV6+F,EAA0B,iBAAb5hT,EAAK4hT,IAAmB5hT,EAAK4hT,IAAMhU,GAAa5tS,EAAK4hT,KAGlEpwE,EAAG42F,WAAU52F,EAAG42F,SAAW,CAAEvvH,OAAO,KACpC24B,EAAG42F,SAASoB,QAAOh4F,EAAG42F,SAASoB,MAAQ,IAC3C,IAAIz7S,EAAQyjN,EAAG42F,SAASoB,MACpB/3Q,EAAQk8O,GAAaiU,GACtBnwP,EAAM/rD,EAAEpD,GAAKmvD,EAAMvgC,EAAE5uB,IAAKmvD,EAAMvgC,EAAE5uB,EAAIqrS,GAAa5qF,EAAG,SAAS7xL,EAAE5uB,EAAGs/S,EAAMhU,GAAan8O,IAC1F,IAAI,IAAI53D,EAAI,EAAGA,EAAIk0B,EAAMn0B,SAAUC,EAAG,CACrC,IAAI4F,EAAOsuB,EAAMl0B,GACjB,GAAgB,yBAAb4F,EAAKohT,MACLphT,EAAKgqU,OAASzoN,EAAjB,CACAvhH,EAAKiqU,IAAM,IAAMl4F,EAAG14B,WAAW93F,GAAO,KAAO4gM,EAAK,OAEhD/nT,GAAKk0B,EAAMn0B,QAAQm0B,EAAMnvB,KAAK,CAAEiiT,KAAM,wBAAyB4oB,MAAOzoN,EAAK0oN,IAAK,IAAMl4F,EAAG14B,WAAW93F,GAAO,KAAO4gM,IAErHpV,GAAaC,EAAI,kBAAmB4E,GAAmBtD,GAAkB6T,KAIzEpV,GAAaC,EAAI,kBAqDjBw/B,CAAiBx/B,EAAI1pF,EAAIyuB,EAAIxwH,GAnH9B,SAA0ByrL,EAAI1pF,GACzBA,GAAOA,EAAG,aACdypF,GAAaC,EAAI,qBArflB,SAAkChS,EAAKp9R,GAGtC,OAFQ,MAALA,IAAWA,EAAIm9R,GAAQ,IAC1Bn9R,EAAEs5R,YAAY,EAAG8D,GACVp9R,EAkfgC6uU,CAAyBnpH,EAAG,WAAWnpN,SAC9EmpN,EAAG,WAAW17M,SAAQ,SAAS4pB,GAAKu7Q,GAAaC,EAAI,eAAgBk+B,GAAmB15S,OACxFu7Q,GAAaC,EAAI,qBAmHjB0/B,CAAiB1/B,EAAI1pF,GAlGtB,SAAsB0pF,EAAI1pF,EAAI+wF,GAE7B/wF,EAAG,UAAU17M,SAAQ,SAASsT,GAC7B,GAAIA,EAAE,GAAGo6R,OAAT,CACA,IAAIS,EAAMD,GAASzB,GAAO,EAAGn5R,EAAE,GAAGo6R,OAAOpqS,QAAQ,OAAQ,IAAKopS,GAAKG,OACnE1H,GAAaC,EAAI,WA1fnB,SAAwB9xR,EAAG66R,GAC1B,IAAIn4S,EAAIm9R,GAAQ,GAAG,GAAG7/Q,EAAE,GAAGo6R,OAAOn7S,QAAU+gB,EAAE,GAAGunS,SAAW,IAAItoT,SAChEy3S,GAAmB,CAAC3rS,EAAE+nS,GAAY9yR,EAAE,IAAKuW,EAAEu8Q,GAAY9yR,EAAE,KAAMtd,GAC/DyzS,GAAY,MAAQ0E,EAAKn4S,GACzB,IAAI+uU,EAASzxT,EAAE,GAAGo6R,OAAO5oR,QAAQ,KAKjC,OAHAkjR,KADqB,GAAX+8B,EAAe,GAAKzxT,EAAE,GAAGo6R,OAAOv1S,MAAM4sU,EAAO,KAC7B,GAAI/uU,GAC9BgyS,GAAmB10R,EAAE,GAAGunS,SAAW,GAAI7kT,GACvCgyS,GAAmB,GAAIhyS,GAChBA,EAAEmC,MAAM,EAAGnC,EAAEsd,GAifU0xT,CAAe1xT,EAAG66R,eAEzCzyF,EAAG,UA+FVupH,CAAa7/B,EAAI1pF,EAAI+wF,GAElB/wF,EAAG,aAAaypF,GAAaC,EAAI,aA3hBrC,SAA0By3B,EAAS7mU,GAIlC,OAHQ,MAALA,IAAWA,EAAIm9R,GAAQ,KAC1BypC,GAAgBC,GAChB0G,GAAcvjU,SAAQ,SAASkY,GAAKgyR,GAAW,EAAUhyR,GAAIliB,MACtDA,EAuhB2CkvU,CAAiBxpH,EAAG,cAOlEpiB,IAAQA,EAAKqpI,UAA8B,MAAjBrpI,EAAKqpI,UAtHpC,SAAyBv9B,EAAI1pF,GACxBA,GAAOA,EAAG,UACdypF,GAAaC,EAAI,yBACjBD,GAAaC,EAAI,kBA9YlB,SAA+BmV,GAC9B,IAAIvkT,EAAIm9R,GAAQ,IAIhB,OAHAn9R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjB0a,GAAmBuQ,EAAKvkT,GACjBA,EAyY6BmvU,CAAsBz+B,GAAkBhrF,EAAG,WAC/EypF,GAAaC,EAAI,wBAkHyCggC,CAAgBhgC,EAAI1pF,GAtG/E,SAA6B0pF,EAAI1pF,EAAI/hG,EAAK8yL,GAEzC,GAAG/wF,EAAG,aAAanpN,OAAS,EAAG,CAC9B,IAAI47S,EAAMD,GAASzB,GAAO,EAAG,0BAA4B9yL,EAAI,GAAK,OAAQ+yL,GAAKI,KAC/E3H,GAAaC,EAAI,mBAAoBqE,GAAY,MAAQ0E,IACzDzyF,EAAG,WAAayyF,GAoGjBk3B,CAAoBjgC,EAAI1pF,EAAI/hG,EAAK8yL,GAQjCtH,GAAaC,EAAI,eACVA,EAAG/wR,MAEXq4R,GAAK44B,MAAQ,4EACb54B,GAAK64B,QAAU,iEA+Cf74B,GAAK84B,GAAK,iFAEQ7jC,GAAU,aAAc,KAAM,CAC/C,MAASK,GAAMqmB,KAAK,GACpB,UAAWrmB,GAAM/mS,IAuGlB,IAAIwqU,GAAa,CAChB,CAAC,qBAA+B,EAAO,QACvC,CAAC,wBAA+B,EAAO,QACvC,CAAC,cAA+B,EAAO,QACvC,CAAC,sBAA+B,EAAO,QACvC,CAAC,WAA+B,IAChC,CAAC,YAA+B,EAAO,QACvC,CAAC,sBAA+B,EAAQ,OACxC,CAAC,iBAA+B,EAAO,QACvC,CAAC,sBAA+B,EAAO,QACvC,CAAC,qBAA+B,EAAO,QACvC,CAAC,gBAA+B,EAAO,QACvC,CAAC,yBAA+B,EAAO,QACvC,CAAC,0BAA+B,EAAO,QACvC,CAAC,8BAA+B,EAAO,QACvC,CAAC,qBAA+B,EAAO,QACvC,CAAC,cAA+B,OAChC,CAAC,wBAA+B,EAAO,QACvC,CAAC,cAAe,YAIbC,GAAY,CACf,CAAC,YAA+B,EAAQ,OACxC,CAAC,0BAA+B,EAAO,QACvC,CAAC,aAA+B,EAAQ,OACxC,CAAC,aAA+B,EAAO,QACvC,CAAC,wBAA+B,EAAO,QACvC,CAAC,iBAA+B,EAAO,QACvC,CAAC,sBAA+B,EAAO,QACvC,CAAC,WAA+B,IAAQ,OACxC,CAAC,aAA+B,YAK7BC,GAAW,GAKXC,GAAY,CACf,CAAC,gBAAiB,QAClB,CAAC,WAAY,QACb,CAAC,aAAc,QACf,CAAC,iBAAkB,QACnB,CAAC,iBAAkB,SACnB,CAAC,gBAAiB,QAClB,CAAC,UAAW,SACZ,CAAC,eAAgB,OACjB,CAAC,eAAgB,SACjB,CAAC,UAAW,OAyBb,SAASC,GAAoBtxU,EAAQmwN,GACpC,IAAI,IAAI5lN,EAAI,EAAGA,GAAKvK,EAAOhC,SAAUuM,EACpC,IADyC,IAAImhE,EAAI1rE,EAAOuK,GAChDtM,EAAE,EAAGA,GAAKkyN,EAASnyN,SAAUC,EAAG,CAAE,IAAI2+G,EAAIuzG,EAASlyN,GAC1D,GAAc,MAAXytE,EAAEkxC,EAAE,IAAalxC,EAAEkxC,EAAE,IAAMA,EAAE,QAC3B,OAAOA,EAAE,IACd,IAAK,OAA6B,iBAAXlxC,EAAEkxC,EAAE,MAAiBlxC,EAAEkxC,EAAE,IAAMovL,GAAatgO,EAAEkxC,EAAE,MAAM,MAC7E,IAAK,MAA4B,iBAAXlxC,EAAEkxC,EAAE,MAAiBlxC,EAAEkxC,EAAE,IAAMtd,SAAS5zB,EAAEkxC,EAAE,IAAK,OAK1E,SAAS20N,GAAcvxU,EAAQmwN,GAC9B,IAAI,IAAIlyN,EAAI,EAAGA,GAAKkyN,EAASnyN,SAAUC,EAAG,CAAE,IAAI2+G,EAAIuzG,EAASlyN,GAC5D,GAAmB,MAAhB+B,EAAO48G,EAAE,IAAa58G,EAAO48G,EAAE,IAAMA,EAAE,QACrC,OAAOA,EAAE,IACb,IAAK,OAAkC,iBAAhB58G,EAAO48G,EAAE,MAAiB58G,EAAO48G,EAAE,IAAMovL,GAAahsS,EAAO48G,EAAE,MAAM,MAC5F,IAAK,MAAiC,iBAAhB58G,EAAO48G,EAAE,MAAiB58G,EAAO48G,EAAE,IAAMtd,SAASt/F,EAAO48G,EAAE,IAAK,OAKzF,SAAS40N,GAAkB57F,GAC1B27F,GAAc37F,EAAG67F,QAASP,IAC1BK,GAAc37F,EAAG87F,OAAQL,IAEzBC,GAAoB17F,EAAG+7F,OAAQR,IAC/BG,GAAoB17F,EAAG34B,OAAQm0H,IAE/BrJ,GAAS/zC,SAAWgY,GAAap2D,EAAG67F,QAAQz9C,UAU7C,IAAI49C,GAAW,UAAWviU,MAAM,IAChC,SAASwiU,GAAcnuU,EAAGwmS,GACzB,GAAGxmS,EAAE1F,OAAS,GAAI,CAAE,GAAGksS,EAAM,OAAO,EAAO,MAAM,IAAI5kS,MAAM,sCAC3D,IAAIwsU,GAAQ,EAMZ,OALAF,GAASnmU,SAAQ,SAASkB,GACzB,IAAoB,GAAjBjJ,EAAE6sB,QAAQ5jB,GAAb,CACA,IAAIu9R,EAAM,MAAM,IAAI5kS,MAAM,4CAC1BwsU,GAAQ,MAEFA,EAqBR,IAAIC,GAAY,gBA+JZC,GAAc5kC,GAAU,WAAY,KAAM,CAC7C,MAASK,GAAMqmB,KAAK,GAGpB,UAAWrmB,GAAM/mS,IAGlB,SAASurU,GAAar8F,GACrB,IAAIn0O,EAAI,CAAC+oS,IACT/oS,EAAEA,EAAEzD,QAAUg0U,GAEd,IAAIE,EAAet8F,EAAG42F,WAAa52F,EAAG42F,SAASoB,OAAO,IAAI5vU,OAAS,EAK/Dm0U,EAAa,CAAEtI,SAAS,gBACzBj0F,EAAG42F,UAAY52F,EAAG42F,SAASiF,UAC7BP,GAAWzlU,SAAQ,SAASvF,GACI,MAA9B0vO,EAAG42F,SAASiF,QAAQvrU,EAAE,KACnB0vO,EAAG42F,SAASiF,QAAQvrU,EAAE,KAAQA,EAAE,KACpCisU,EAAWjsU,EAAE,IAAO0vO,EAAG42F,SAASiF,QAAQvrU,EAAE,QAE1C0vO,EAAG42F,SAASiF,QAAQ3H,WAAYqI,EAAWtI,SAAWj0F,EAAG42F,SAASiF,QAAQ3H,gBAAiBqI,EAAWrI,WAExGroU,EAAEA,EAAEzD,QAAWovS,GAAU,aAAc,KAAM+kC,GAI7C,IAAI1/B,EAAS78D,EAAG42F,UAAY52F,EAAG42F,SAASvvH,QAAU,GAC9Ch/M,EAAI,EAGR,GAAGw0S,GAAUA,EAAO,IAAQA,EAAO,GAAG2/B,OAAQ,CAE7C,IADA3wU,EAAEA,EAAEzD,QAAU,cACVC,EAAI,EAAGA,GAAK23O,EAAG14B,WAAWl/M,QACzBy0S,EAAOx0S,IACPw0S,EAAOx0S,GAAGm0U,SAFyBn0U,GAIrCA,GAAK23O,EAAG14B,WAAWl/M,SAAQC,EAAI,GAClCwD,EAAEA,EAAEzD,QAAU,6BAA+BC,EAAI,gBAAkBA,EAAI,MACvEwD,EAAEA,EAAEzD,QAAU,eAIf,IADAyD,EAAEA,EAAEzD,QAAU,WACVC,EAAI,EAAGA,GAAK23O,EAAG14B,WAAWl/M,SAAUC,EAAG,CAC1C,IAAI0uT,EAAM,CAAE9oT,KAAK4nS,GAAU71D,EAAG14B,WAAWj/M,GAAG2F,MAAM,EAAE,MAGpD,GAFA+oT,EAAI0lB,QAAU,IAAIp0U,EAAE,GACpB0uT,EAAI,QAAU,OAAO1uT,EAAE,GACpBw0S,EAAOx0S,GAAI,OAAOw0S,EAAOx0S,GAAGm0U,QAC9B,KAAK,EAAGzlB,EAAInnS,MAAQ,SAAU,MAC9B,KAAK,EAAGmnS,EAAInnS,MAAQ,aAErB/jB,EAAEA,EAAEzD,QAAWovS,GAAU,QAAQ,KAAKuf,GAgCvC,OA9BAlrT,EAAEA,EAAEzD,QAAU,YAKXk0U,IACFzwU,EAAEA,EAAEzD,QAAU,iBACX43O,EAAG42F,UAAY52F,EAAG42F,SAASoB,OAAOh4F,EAAG42F,SAASoB,MAAMniU,SAAQ,SAAS/H,GACvE,IAAI6I,EAAI,CAAC1I,KAAKH,EAAEuhT,MACbvhT,EAAE4uU,UAAS/lU,EAAEygQ,QAAUtpQ,EAAE4uU,SACd,MAAX5uU,EAAEmqU,QAAethU,EAAEgmU,aAAe,GAAG7uU,EAAEmqU,OACvCnqU,EAAE0uU,SAAQ7lU,EAAEuiP,OAAS,KACpBprP,EAAEoqU,MACNrsU,EAAEA,EAAEzD,QAAUovS,GAAU,cAAe3B,GAAU/nS,EAAEoqU,KAAMvhU,OAE1D9K,EAAEA,EAAEzD,QAAU,mBAcZyD,EAAEzD,OAAO,IAAIyD,EAAEA,EAAEzD,QAAU,cAAeyD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MAC7DtN,EAAE0N,KAAK,IAWf,SAASqjU,GAAkBpuU,EAAM3C,GAMhC,OALIA,IAAGA,EAAIm9R,GAAQ,MACnBn9R,EAAEs5R,YAAY,EAAG32R,EAAKguU,QACtB3wU,EAAEs5R,YAAY,EAAG32R,EAAKquU,QACtBv9B,GAAY9wS,EAAKsuU,SAAUjxU,GAC3BgyS,GAAmBrvS,EAAKP,KAAKD,MAAM,EAAE,IAAKnC,GACnCA,EAAEzD,OAASyD,EAAEsd,EAAItd,EAAEmC,MAAM,EAAGnC,EAAEsd,GAAKtd,EAyP3C,SAASkxU,GAAa/8F,EAAI7wC,GACzB,IAAI8rG,EAAKP,KAyBT,OAxBAM,GAAaC,EAAI,gBACjBD,GAAaC,EAAI,iBAlElB,SAA8BzsS,EAAM3C,GAC/BA,IAAGA,EAAIm9R,GAAQ,MACnB,IAAI,IAAI3gS,EAAI,EAAQ,GAALA,IAAUA,EAAGwD,EAAEs5R,YAAY,EAAG,GAM7C,OALA0Y,GAAmB,UAAWhyS,GAC9BgyS,GAAmB12F,EAAKzqK,QAAS7wC,GACjCgyS,GAAmB12F,EAAKzqK,QAAS7wC,GACjCgyS,GAAmB,OAAQhyS,GAC3BA,EAAEzD,OAASyD,EAAEsd,EACNtd,EAAEzD,OAASyD,EAAEsd,EAAItd,EAAEmC,MAAM,EAAGnC,EAAEsd,GAAKtd,EA0DPmxU,IAEnChiC,GAAaC,EAAI,YAnOlB,SAAyBzsS,EAAM3C,GAC1BA,IAAGA,EAAIm9R,GAAQ,KACnB,IAAIhxR,EAAQ,EAQZ,OAPGxJ,GAECA,EAAKyuU,gBAAejlU,GAAS,GAEjCnM,EAAEs5R,YAAY,EAAGntR,GACjBnM,EAAEs5R,YAAY,EAAG,GACjB8Z,GAAmBzwS,GAAQA,EAAK0lU,UAAY,eAAgBroU,GACrDA,EAAEmC,MAAM,EAAGnC,EAAEsd,GAyNU+zT,CAAgBl9F,EAAG42F,UAAY52F,EAAG42F,SAASiF,SAAW,OA1CrF,SAAyB5gC,EAAIj7D,GAE5B,GAAIA,EAAG42F,UAAa52F,EAAG42F,SAASvvH,OAAhC,CAGA,IAFA,IAAIw1F,EAAS78D,EAAG42F,SAASvvH,OACrBh/M,EAAI,EAAG80U,GAAU,EAAGjkF,GAAU,EAC5B7wP,EAAIw0S,EAAOz0S,SAAUC,GACtBw0S,EAAOx0S,KAAOw0S,EAAOx0S,GAAGm0U,SAAqB,GAAXW,EAAcA,EAAS90U,EACjC,GAApBw0S,EAAOx0S,GAAGm0U,SAA0B,GAAXtjF,IAAcA,EAAS7wP,GAEtD6wP,EAASikF,IACZniC,GAAaC,EAAI,qBACjBD,GAAaC,EAAI,cAzBlB,SAA2BzrL,EAAK3jH,GAW/B,OAVIA,IAAGA,EAAIm9R,GAAQ,KACnBn9R,EAAEs5R,aAAa,EAAG,GAClBt5R,EAAEs5R,aAAa,EAAG,KAClBt5R,EAAEs5R,YAAY,EAAI,OAClBt5R,EAAEs5R,YAAY,EAAI,OAClBt5R,EAAEs5R,YAAY,EAAI,KAClBt5R,EAAEs5R,YAAY,EAAI31K,GAClB3jH,EAAEs5R,YAAY,EAAI31K,GAElB3jH,EAAEs5R,YAAY,EADF,KAELt5R,EAAEzD,OAASyD,EAAEsd,EAAItd,EAAEmC,MAAM,EAAGnC,EAAEsd,GAAKtd,EAcVuxU,CAAkBD,IAElDniC,GAAaC,EAAI,qBAgCjBoiC,CAAgBpiC,EAAIj7D,GAlFrB,SAAyBi7D,EAAIj7D,GAC5Bg7D,GAAaC,EAAI,qBACjB,IAAI,IAAIzrL,EAAM,EAAGA,GAAOwwH,EAAG14B,WAAWl/M,SAAUonH,EAG/CwrL,GAAaC,EAAI,cAAe2hC,GADxB,CAAEJ,OADAx8F,EAAG42F,UAAY52F,EAAG42F,SAASvvH,QAAU24B,EAAG42F,SAASvvH,OAAO73F,IAAQwwH,EAAG42F,SAASvvH,OAAO73F,GAAKgtN,QAAU,EACrFK,OAAQrtN,EAAI,EAAGstN,SAAU,OAASttN,EAAI,GAAIvhH,KAAM+xO,EAAG14B,WAAW93F,MAGtFwrL,GAAaC,EAAI,mBA4EjBqiC,CAAgBriC,EAAIj7D,GAepBg7D,GAAaC,EAAI,cAEVA,EAAG/wR,MAOX,SAASqzT,GAAS/uU,EAAMP,EAAMuhH,EAAK2/E,EAAMmzG,EAAMtiE,EAAIyjF,EAAQ5qE,GAC1D,MAAoB,SAAjB5qP,EAAKD,OAAO,GAjzChB,SAAsBQ,EAAMw7R,EAAOx6K,EAAK8yL,EAAMtiE,EAAIyjF,EAAQ5qE,GACzD,IAAIrqP,EAAM,OAAOA,EACjB,IAAI2gM,EAAO66F,GAAS,GAChBsY,IAAMA,EAAO,CAAC,MAAM,KAExB,IAEI8N,EAKAvnS,EAAK5c,EAAGkzO,EAAI53B,EAAGC,EAAG8/E,EAAM6tC,EAAMzzC,EAAIx9K,EAPlChwG,EAAKi7L,EAAKv5E,MAAQ,GAAK,GAGvBklM,EAAW,CAAC5mT,EAAG,CAACpD,EAAE,IAASiG,EAAE,KAAU2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAElD6Y,EAAQ,GACR8nO,GAAO,EAAOxtO,GAAM,EAEpBkuT,EAAS,GACbjpI,EAAKmsG,KAAO,GACZnsG,EAAK,QAAU,EAEf,IAAIquI,EAAK,EAAGj4F,GAAK,EAEb6rF,EAAS,GACTH,EAAU,GACVnB,EAAW3gI,EAAK2gI,UAAY9vF,EAAG8vF,UAAY,CAAE,IAIjD,GAHAA,EAASmB,QAAUA,EACnBnB,EAASsB,OAASA,EAClBtB,EAASxoH,WAAa04B,EAAG14B,YAAc04B,EAAG34B,OAAOpzM,KAAI,SAAS3D,GAAK,OAAOA,EAAErC,SACxEkhM,EAAK2gI,WACR3gI,EAAK2gI,SAAWA,EACb9vF,EAAGg4F,OAAO,IAAI,IAAI3vU,EAAI,EAAGA,EAAI23O,EAAGg4F,MAAM5vU,SAAUC,EAAGynU,EAAS,GAAGznU,EAAE,GAAK23O,EAAGg4F,MAAM3vU,GAGnF,IAAI4uT,EAAU,GAAID,EAAU,GACxBymB,GAAU,EA8Nd,GA5NArjC,GAAa5rS,GAAM,SAAkBiC,EAAKitU,EAAKljC,GAC9C,IAAGtwR,EACH,OAAOswR,GACN,KAAK,IACJ4V,EAAM3/S,EAAK,MACZ,KAAK,EACJoY,EAAMpY,EACH0+L,EAAK8iH,WAAa9iH,EAAK8iH,WAAappS,EAAI/X,IAAGoZ,GAAI,GAClDw3Q,EAAKia,GAAWp0F,EAAI1+L,EAAI/X,GACxBq+L,EAAK,QAAUtmL,EAAI/X,GAChBL,EAAIyoP,QAAUzoP,EAAImnT,KAAoB,MAAbnnT,EAAIy/E,SAC5Bz/E,EAAImnT,MAAKnnT,EAAIonT,IAAMC,GAAMrnT,EAAImnT,MAChCZ,EAAQvmT,EAAIK,GAAKL,GAElB,MAED,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GAEJ,OADAxE,EAAI,CAAEmN,EAAE3I,EAAI,IACLA,EAAI,IACV,IAAK,IAAKxE,EAAEwd,EAAIhZ,EAAI,GAAI,MACxB,IAAK,IAAK0kU,EAAOxzB,GAAKlxS,EAAI,IAAKxE,EAAEwd,EAAI0rT,EAAK/7T,EAAGnN,EAAE6E,EAAIqkU,EAAKrkU,EAAG,MAC3D,IAAK,IAAK7E,EAAEwd,IAAIhZ,EAAI,GAAmB,MACvC,IAAK,IAAKxE,EAAEwd,EAAIhZ,EAAI,IAAyB,IAAlB0+L,EAAKirH,WAAoBnuT,EAAE6pE,EAAImrO,GAAKh1S,EAAEwd,IAAI,MACrE,IAAK,MAAOxd,EAAEmN,EAAI,IAAKnN,EAAEwd,EAAIhZ,EAAI,GAMlC,IAJI0uO,EAAK0Z,EAAOisE,OAAOr0T,EAAI,GAAGquS,aAAam0B,GAAYhnU,EAAEkzO,EAAGu9D,SAAS,KAAKvtG,EAAMs0H,EAAQ5qE,GACxFrxC,EAAI/2M,EAAI,GAAGsG,EACRo4L,EAAKv5E,OAAa1hH,EAAEqzM,KAAIrzM,EAAEqzM,GAAK,IAAIrzM,EAAEqzM,GAAGC,GAAKv7M,GAC3CiI,EAAE0nS,GAAWp0F,GAAKk6E,GAAMz1R,EAC1BkjM,EAAK8mI,YAAa,CAEpB,IADA1wF,GAAK,EACDi4F,EAAK,EAAGA,EAAKpM,EAAOhpU,SAAUo1U,EAAI,CACrC,IAAIG,EAAMvM,EAAOoM,GACd30T,EAAI/X,GAAK6sU,EAAI,GAAGzpU,EAAEpD,GAAK+X,EAAI/X,GAAK6sU,EAAI,GAAGj+S,EAAE5uB,GACxC02M,GAAKm2H,EAAI,GAAGzpU,EAAE6C,GAAKywM,GAAKm2H,EAAI,GAAGj+S,EAAE3oB,IACnC9K,EAAEmnQ,EAAIgpC,GAAauhC,EAAI,IAAKp4F,GAAK,IAGhCA,GAAM90O,EAAIrI,OAAS,IAAG6D,EAAEiD,EAAIuB,EAAI,IAMrC,GAJGqqT,EAAS5mT,EAAEpD,EAAI+X,EAAI/X,IAAGgqT,EAAS5mT,EAAEpD,EAAI+X,EAAI/X,GACzCgqT,EAAS5mT,EAAE6C,EAAIywM,IAAGszG,EAAS5mT,EAAE6C,EAAIywM,GACjCszG,EAASp7R,EAAE5uB,EAAI+X,EAAI/X,IAAGgqT,EAASp7R,EAAE5uB,EAAI+X,EAAI/X,GACzCgqT,EAASp7R,EAAE3oB,EAAIywM,IAAGszG,EAASp7R,EAAE3oB,EAAIywM,GACjCrY,EAAKquG,WAAar+D,GAAa,KAAPlzO,EAAEmN,GAAYijR,EAAImH,QAAQnH,EAAIl4B,OAAOhlB,EAAGu9D,WAAY,CAC9E,IAAI3vS,EAAKsvR,EAAIyB,gBAAgB7xR,EAAEwd,GAAO1c,IAAMd,EAAEmN,EAAI,IAAKnN,EAAEwd,EAAI,IAAIuV,KAAKjyB,EAAGilB,EAAGjlB,EAAG0yB,EAAE,EAAE1yB,EAAG4J,EAAE5J,EAAGoxR,EAAEpxR,EAAG+nE,EAAE/nE,EAAG0oP,EAAE1oP,EAAG8yD,IAE3G,MAED,KAAK,EACJ,IAAIsvI,EAAKouG,YAAc7lD,EAAM,MAC7BzrP,EAAI,CAAEmN,EAAE,IAAIqQ,OAAE3f,GACd09M,EAAI/2M,EAAI,GAAGsG,EACRo4L,EAAKv5E,OAAa1hH,EAAEqzM,KAAIrzM,EAAEqzM,GAAK,IAAIrzM,EAAEqzM,GAAGC,GAAKv7M,GAC3CiI,EAAE0nS,GAAWp0F,GAAKk6E,GAAMz1R,EAC1B6uT,EAAS5mT,EAAEpD,EAAI+X,EAAI/X,IAAGgqT,EAAS5mT,EAAEpD,EAAI+X,EAAI/X,GACzCgqT,EAAS5mT,EAAE6C,EAAIywM,IAAGszG,EAAS5mT,EAAE6C,EAAIywM,GACjCszG,EAASp7R,EAAE5uB,EAAI+X,EAAI/X,IAAGgqT,EAASp7R,EAAE5uB,EAAI+X,EAAI/X,GACzCgqT,EAASp7R,EAAE3oB,EAAIywM,IAAGszG,EAASp7R,EAAE3oB,EAAIywM,GACpC,MAED,KAAK,IACJ4wH,EAAOhrU,KAAKqD,GAAM,MAEnB,KAAK,IACJ,IAAI4yS,EAAMf,EAAK,OAAO7xS,EAAImtU,OAQ1B,IAPGv6B,GACF5yS,EAAI8yS,OAASF,EAAIE,OACd9yS,EAAI8Z,MAAK9Z,EAAI8yS,QAAU,IAAI9yS,EAAI8Z,KAClC9Z,EAAIotU,IAAMx6B,GACY,IAAb5yS,EAAImtU,QACbntU,EAAI8yS,OAAS,IAAM9yS,EAAI8Z,KAEpBg9L,EAAE92M,EAAIqtU,IAAI5pU,EAAEpD,EAAEy2M,GAAG92M,EAAIqtU,IAAIp+S,EAAE5uB,IAAIy2M,EAAG,IAAIC,EAAE/2M,EAAIqtU,IAAI5pU,EAAE6C,EAAEywM,GAAG/2M,EAAIqtU,IAAIp+S,EAAE3oB,IAAIywM,EACrErY,EAAKv5E,OACH1hH,EAAEqzM,KAAIrzM,EAAEqzM,GAAK,IACbrzM,EAAEqzM,GAAGC,KAAItzM,EAAEqzM,GAAGC,GAAK,CAACpuM,EAAE,IAAIqQ,OAAE3f,IAChCoK,EAAEqzM,GAAGC,GAAGr+L,EAAI1Y,IAEZ62R,EAAOmU,GAAY,CAAC1kS,EAAEywM,EAAE12M,EAAEy2M,IACtBrzM,EAAEozR,KAAOpzR,EAAEozR,GAAQ,CAACluR,EAAE,IAAIqQ,OAAE3f,IAChCoK,EAAEozR,GAAMn+Q,EAAI1Y,GAGd,MAED,KAAK,IACJ,IAAI0+L,EAAK8mI,YAAa,MACtB7E,EAAOhkU,KAAKqD,IACZyzG,EAASirF,EAAKv5E,MAAQ1hH,EAAEqzM,GAAGC,GAAKtzM,EAAE0nS,GAAWp0F,GAAKk6E,IAC7CxyR,EAAIkhU,GAAkB3/T,EAAI,GAAIqqT,EAAU,CAAChqT,EAAE+X,EAAI/X,EAAGiG,EAAEywM,GAAIsoH,EAAU3gI,GACvEjrF,EAAKkvJ,EAAIgpC,GAAa3rS,EAAI,IAC1B,MACD,KAAK,IACJ,IAAI0+L,EAAK8mI,YAAa,MACtBhF,EAAQx1B,GAAYhrS,EAAI,GAAGyD,IAAMzD,EAAI,IACrCyzG,EAAQirF,EAAKv5E,MAAQ1hH,EAAEqzM,GAAGC,GAAKtzM,EAAE0nS,GAAWp0F,GAAKk6E,IAC5CxyR,EAAIkhU,GAAkB3/T,EAAI,GAAIqqT,EAAU,CAAChqT,EAAE+X,EAAI/X,EAAGiG,EAAEywM,GAAIsoH,EAAU3gI,GACvE,MAGD,KAAK,GACJ,IAAIA,EAAKyhH,WAAY,MACrB,KAAMngT,EAAIivB,GAAKjvB,EAAIyD,GAClB+iT,EAAQxmT,EAAIivB,KAAO,CAAEhtB,MAAOjC,EAAIqlE,EAAE,IAAKojL,UAAuB,EAAZzoP,EAAIuH,OAAek4E,MAAOz/E,EAAIy/E,OAC5EutP,IAAWA,GAAU,EAAM9a,GAAclyT,EAAIqlE,EAAE,MACnD6hP,GAAYV,EAAQxmT,EAAIivB,EAAE,IAE3B,MAED,KAAK,IACJxrB,EAAE,eAAiB,CAAEk8S,IAAIhU,GAAa3rS,IACtC,MAED,KAAK,IACJyD,EAAE,YAAczD,EAChB,MAED,KAAK,IACAuvO,EAAG34B,OAAO73F,KAAMwwH,EAAG34B,OAAO73F,GAAO,IAClC/+G,EAAIxC,OAAM+xO,EAAG34B,OAAO73F,GAAK0kN,SAAWzjU,EAAIxC,MAC3C,MAED,KAAK,IACA+xO,EAAGo3F,QAAOp3F,EAAGo3F,MAAQ,CAAC,KACtBp3F,EAAGo3F,MAAM,KAAIp3F,EAAGo3F,MAAM,GAAK,IAC5B3mU,EAAI6mU,MAAKt3F,EAAGo3F,MAAM,GAAGE,KAAM,GAC9B,MAED,KAAK,IACJ,MAED,KAAK,GACL,KAAK,KAGL,KAAK,IACJ,MACD,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,GACL,KAAK,KACL,KAAK,KACJ,MAED,KAAK,GACJ5/E,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MACf,KAAK,GACJ9nO,EAAMxiB,KAAKswU,GAAMhmF,GAAO,EAAM,MAC/B,KAAK,GACJ9nO,EAAMkH,MAAO4gO,GAAO,EAAO,MAE5B,QACC,IAAIgmF,GAAK,IAAI/iT,QAAQ,SAAW,QAC3B,IAAI+iT,GAAK,IAAI/iT,QAAQ,OAAS,QAC9B,IAAI+8N,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,qBAAuB8qS,EAAK,IAAMkjC,MAE7EvuI,UAEIA,EAAK2gI,gBACL3gI,EAAK,SAERj7L,EAAE,UAAY4mT,EAAS5mT,EAAEpD,EAAI,KAAWs/S,IAAQA,EAAI1wR,EAAE5uB,EAAI,GAAKs/S,EAAI1wR,EAAE3oB,EAAI,GAAKq5S,EAAIl8S,EAAEpD,EAAI,GAAKs/S,EAAIl8S,EAAE6C,EAAI,MAAK7C,EAAE,QAAUkoS,GAAagU,GAAO0K,IAC7I3rH,EAAK8iH,WAAa/9S,EAAE,QAAS,CAC/B,IAAI6pU,EAASxhC,GAAkBroS,EAAE,SAC9Bi7L,EAAK8iH,YAAc8rB,EAAOr+S,EAAE5uB,IAC9BitU,EAAOr+S,EAAE5uB,EAAIq+L,EAAK8iH,UAAY,EAC3B8rB,EAAOr+S,EAAE5uB,EAAIgqT,EAASp7R,EAAE5uB,IAAGitU,EAAOr+S,EAAE5uB,EAAIgqT,EAASp7R,EAAE5uB,GACnDitU,EAAOr+S,EAAE5uB,EAAIitU,EAAO7pU,EAAEpD,IAAGitU,EAAO7pU,EAAEpD,EAAIitU,EAAOr+S,EAAE5uB,GAC/CitU,EAAOr+S,EAAE3oB,EAAI+jT,EAASp7R,EAAE3oB,IAAGgnU,EAAOr+S,EAAE3oB,EAAI+jT,EAASp7R,EAAE3oB,GACnDgnU,EAAOr+S,EAAE3oB,EAAIgnU,EAAO7pU,EAAE6C,IAAGgnU,EAAO7pU,EAAE6C,EAAIgnU,EAAOr+S,EAAE3oB,GAClD7C,EAAE,YAAcA,EAAE,QAClBA,EAAE,QAAUkoS,GAAa2hC,IAM3B,OAHG3F,EAAOhwU,OAAS,IAAG8L,EAAE,WAAakkU,GAClCnhB,EAAQ7uT,OAAS,IAAG8L,EAAE,SAAW+iT,GACjCD,EAAQ5uT,OAAS,IAAG8L,EAAE,SAAW8iT,GAC7B9iT,EAqiC4B8pU,CAAa,EAAQ7uI,EAAM3/E,EAAK8yL,EAAMtiE,EAAIyjF,EAAQ5qE,GA1yEtF,SAAsBrqP,EAAM2gM,EAAM3/E,EAAK8yL,EAAMtiE,EAAIyjF,EAAQ5qE,GACxD,IAAIrqP,EAAM,OAAOA,EACb8zS,IAAMA,EAAO,CAAC,MAAM,KAIxB,IAAIpuS,EAAIi7L,EAAKv5E,MAAQ,GAAO,GACxBklM,EAAW,CAAE5mT,EAAG,CAACpD,EAAE,IAASiG,EAAE,KAAU2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAEnD4/L,EAAQ,GAAIC,EAAQ,GACpBqnI,EAAOzvU,EAAKsiC,MAAMyiS,IACnB0K,GACFtnI,EAAQnoM,EAAKR,MAAM,EAAGiwU,EAAKnuU,OAC3B8mM,EAAQpoM,EAAKR,MAAMiwU,EAAKnuU,MAAQmuU,EAAK,GAAG71U,SAClCuuM,EAAQC,EAAQpoM,EAGvB,IAAIwlU,EAAUr9H,EAAM7lK,MAAM+iS,IACvBG,GAASD,GAAqBC,EAAQ,GAAI9/T,EAAG8rO,EAAIxwH,GAGpD,IAAI0uN,GAAQvnI,EAAM7lK,MAAM,wBAAwB,CAAChhC,OAAO,IAAIA,MAC5D,GAAGouU,EAAO,EAAG,CACZ,IAAI9tB,EAAMz5G,EAAM3oM,MAAMkwU,EAAKA,EAAK,IAAIptS,MAAM2iS,IACvCrjB,GAvCL,SAA0B7+F,EAAIr9M,GAC7B,IAAIyC,EAAI4lS,GAAkBroS,GACvByC,EAAEzC,EAAEpD,GAAG6F,EAAE+oB,EAAE5uB,GAAK6F,EAAEzC,EAAE6C,GAAGJ,EAAE+oB,EAAE3oB,GAAKJ,EAAEzC,EAAEpD,GAAG,GAAK6F,EAAEzC,EAAE6C,GAAG,IAAGw6M,EAAG,QAAU6qF,GAAazlS,IAqC1EwnU,CAAiBjqU,EAAGk8S,EAAI,IAIjC,IAAIguB,EAAMznI,EAAM7lK,MAAMgjS,IACnBsK,GAAOA,EAAI,IA6Lf,SAAiC5vU,EAAMwxO,GAClCA,EAAGo3F,QAAOp3F,EAAGo3F,MAAQ,CAAC,MACzB5oU,EAAKsiC,MAAMujS,KAAa,IAAIx+T,SAAQ,SAAS/E,EAAGzI,GAChD,IAAIm6N,EAAMyyE,GAAYnkS,GAElBkvO,EAAGo3F,MAAM/uU,KAAI23O,EAAGo3F,MAAM/uU,GAAK,IAE5B+tS,GAAa5zE,EAAI60G,eAAcr3F,EAAGo3F,MAAM/uU,GAAGivU,KAAM,MApMnC+G,CAAwBD,EAAI,GAAIp+F,GAGlD,IAAIn3J,EAAU,GACd,GAAGsmH,EAAKyhH,WAAY,CAEnB,IAAIruM,EAAOo0F,EAAM7lK,MAAM4iS,IACpBnxN,GAwIL,SAA2B15B,EAAS05B,GAEnC,IADA,IAAIk7N,GAAU,EACNa,EAAO,EAAGA,GAAQ/7N,EAAKn6G,SAAUk2U,EAAM,CAC9C,IAAIzb,EAAO5tB,GAAY1yL,EAAK+7N,IAAO,GAChCzb,EAAK3pE,SAAQ2pE,EAAK3pE,OAASk9C,GAAaysB,EAAK3pE,SAChD,IAAIqlF,EAAK70O,SAASm5N,EAAKxyT,IAAK,IAAI,EAAGmuU,EAAK90O,SAASm5N,EAAKtyT,IAAI,IAAI,EAI9D,WAHOsyT,EAAKxyT,WAAYwyT,EAAKtyT,IAAKsyT,EAAKnwT,OAASmwT,EAAKnwT,OACjD+qU,GAAW5a,EAAKnwT,QAAS+qU,GAAU,EAAM9a,GAAcE,EAAKnwT,QAChEilT,GAAYkL,GACN0b,GAAQC,GAAM31P,EAAQ01P,KAAU5qC,GAAIkvB,IAjJjC4b,CAAkB51P,EAAS05B,GAIlC07N,GAAMhJ,GAAkBgJ,EAAK,GAAI/pU,EAAGi7L,EAAM2rH,EAAU2I,EAAQ5qE,GAG/D,IAAI6lF,EAAU9nI,EAAM9lK,MAAM6iS,IACvB+K,IAASxqU,EAAE,eAsJf,SAAiC1F,GAEhC,MADQ,CAAE4hT,KAAM5hT,EAAKsiC,MAAM,kBAAkB,IAAI,IAvJlB6tS,CAAwBD,EAAQ,KAG/D,IAAItG,EAAS,GACTwG,EAAShoI,EAAM9lK,MAAMwiS,IACzB,GAAGsL,EAAQ,IAAIV,EAAO,EAAGA,GAAQU,EAAOx2U,SAAU81U,EACjD9F,EAAO8F,GAAQ3hC,GAAkBqiC,EAAOV,GAAMlwU,MAAM4wU,EAAOV,GAAMvjT,QAAQ,KAAM,IAGhF,IAAIkkT,EAAQjoI,EAAM9lK,MAAM0iS,IACrBqL,GA4EJ,SAA6B3qU,EAAG1F,EAAM8zS,GAErC,IADA,IAAI1sL,EAAQrtH,MAAMmE,QAAQwH,GAClB7L,EAAI,EAAGA,GAAKmG,EAAKpG,SAAUC,EAAG,CACrC,IAAIoI,EAAMwkS,GAAYoB,GAAS7nS,EAAKnG,KAAK,GACzC,IAAIoI,EAAI2/S,IAAK,OACb,IAAI/M,IAAQf,GAAQ,IAAI,QAAQ,IAAI7xS,EAAIoa,IACrCw4R,GACF5yS,EAAI8yS,OAASF,EAAIE,OACd9yS,EAAIqI,WAAUrI,EAAI8yS,QAAU,IAAI9yS,EAAIqI,YAEvCrI,EAAI8yS,OAAS,IAAM9yS,EAAIqI,SACvBuqS,EAAM,CAACE,OAAQ9yS,EAAI8yS,OAAQE,WAAY,aAExChzS,EAAIotU,IAAMx6B,EACP5yS,EAAI8nU,UAAW9nU,EAAIigT,QAAUjgT,EAAI8nU,eAAgB9nU,EAAI8nU,SAExD,IADA,IAAIuG,EAAMviC,GAAkB9rS,EAAI2/S,KACxB7oG,EAAEu3H,EAAI5qU,EAAEpD,EAAEy2M,GAAGu3H,EAAIp/S,EAAE5uB,IAAIy2M,EAAG,IAAI,IAAIC,EAAEs3H,EAAI5qU,EAAE6C,EAAEywM,GAAGs3H,EAAIp/S,EAAE3oB,IAAIywM,EAAG,CACnE,IAAI8/E,EAAOmU,GAAY,CAAC1kS,EAAEywM,EAAE12M,EAAEy2M,IAC3B3xF,GACE1hH,EAAEqzM,KAAIrzM,EAAEqzM,GAAK,IACbrzM,EAAEqzM,GAAGC,KAAItzM,EAAEqzM,GAAGC,GAAK,CAACpuM,EAAE,IAAIqQ,OAAE3f,IAChCoK,EAAEqzM,GAAGC,GAAGr+L,EAAI1Y,IAERyD,EAAEozR,KAAOpzR,EAAEozR,GAAQ,CAACluR,EAAE,IAAIqQ,OAAE3f,IAChCoK,EAAEozR,GAAMn+Q,EAAI1Y,KApGLsuU,CAAoB7qU,EAAG2qU,EAAOv8B,GAGxC,IAAIowB,EAAU97H,EAAM9lK,MAAM8iS,IAI1B,GAHGlB,IAASx+T,EAAE,YAsGf,SAA8BmkU,GAC7B,IAAIxsU,EAAI,GAIR,MAHA,CAAC,OAAQ,QAAS,MAAO,SAAU,SAAU,UAAUgK,SAAQ,SAASkY,GACpEsqT,EAAOtqT,KAAIliB,EAAEkiB,GAAKzE,WAAW+uT,EAAOtqT,QAEjCliB,EA3GqBmzU,CAAqB/pC,GAAYy9B,EAAQ,OAEjEx+T,EAAE,SAAW4mT,EAASp7R,EAAE3oB,GAAK+jT,EAAS5mT,EAAE6C,GAAK+jT,EAASp7R,EAAE5uB,GAAKgqT,EAAS5mT,EAAEpD,IAAGoD,EAAE,QAAUkoS,GAAa0e,IACrG3rH,EAAK8iH,UAAY,GAAK/9S,EAAE,QAAS,CACnC,IAAI6pU,EAASxhC,GAAkBroS,EAAE,SAC9Bi7L,EAAK8iH,YAAc8rB,EAAOr+S,EAAE5uB,IAC9BitU,EAAOr+S,EAAE5uB,EAAIq+L,EAAK8iH,UAAY,EAC3B8rB,EAAOr+S,EAAE5uB,EAAIgqT,EAASp7R,EAAE5uB,IAAGitU,EAAOr+S,EAAE5uB,EAAIgqT,EAASp7R,EAAE5uB,GACnDitU,EAAOr+S,EAAE5uB,EAAIitU,EAAO7pU,EAAEpD,IAAGitU,EAAO7pU,EAAEpD,EAAIitU,EAAOr+S,EAAE5uB,GAC/CitU,EAAOr+S,EAAE3oB,EAAI+jT,EAASp7R,EAAE3oB,IAAGgnU,EAAOr+S,EAAE3oB,EAAI+jT,EAASp7R,EAAE3oB,GACnDgnU,EAAOr+S,EAAE3oB,EAAIgnU,EAAO7pU,EAAE6C,IAAGgnU,EAAO7pU,EAAE6C,EAAIgnU,EAAOr+S,EAAE3oB,GAClD7C,EAAE,YAAcA,EAAE,QAClBA,EAAE,QAAUkoS,GAAa2hC,IAK3B,OAFGl1P,EAAQzgF,OAAS,IAAG8L,EAAE,SAAW20E,GACjCuvP,EAAOhwU,OAAS,IAAG8L,EAAE,WAAakkU,GAC9BlkU,EAguEA+qU,CAAa,EAAQ9vI,EAAM3/E,EAAK8yL,EAAMtiE,EAAIyjF,EAAQ5qE,GA+C1D,SAASqmF,GAASl/F,EAAI/xO,EAAMkhM,GAC3B,OAAyB,SAAjBlhM,EAAKD,OAAO,GAAc+uU,GAAeV,IAAcr8F,EAAI7wC,GAGpE,SAASgwI,GAAS3wU,EAAMP,EAAMkhM,EAAM6wC,EAAIsiE,GACvC,OAAyB,SAAjBr0S,EAAKD,OAAO,GAAc+rU,GAAexD,IAAc/nU,EAAM2gM,EAAM6wC,EAAIsiE,GAYhF,SAAS88B,GAAU5wU,EAAMP,EAAMkhM,GAC9B,OAAyB,SAAjBlhM,EAAKD,OAAO,GAAcuwT,GAAgBT,IAAetvT,EAAM2gM,GAGxE,SAASkwI,GAAW7wU,EAAMP,EAAMkhM,GAC/B,OAAyB,SAAjBlhM,EAAKD,OAAO,GAAcw8T,GAAqBH,IAAoB77T,EAAM2gM,GAOlF,IAAImwI,GAAW,kDACXC,GAAU,qDACd,SAASC,GAAiBh9G,EAAK0yE,GAC9B,IAAIuqC,EAAQj9G,EAAI/oN,MAAM,OAClButG,EAAI,GACR,GADkBkuL,IAAWluL,EAAE,GAAKy4N,EAAM,IACtB,IAAjBA,EAAMr3U,OAAc,OAAO4+G,EAC9B,IAA+Bh1F,EAAGrd,EAAMtM,EAApCo3B,EAAI+iM,EAAI1xL,MAAMwuS,IAClB,GAAG7/S,EAAG,IAAIp3B,EAAI,EAAGA,GAAKo3B,EAAEr3B,SAAUC,GAEL,KAA1BsM,GADFqd,EAAIyN,EAAEp3B,GAAGyoC,MAAMyuS,KACT,GAAG5kT,QAAQ,MAAcqsF,EAAEh1F,EAAE,IAAMA,EAAE,GAAGhkB,MAAM,EAAEgkB,EAAE,GAAG5pB,OAAO,GAIjE4+G,EAFuB,WAApBh1F,EAAE,GAAGhkB,MAAM,EAAE,GAAqB,QAAQgkB,EAAE,GAAGhkB,MAAM,GAC/CgkB,EAAE,GAAGhkB,MAAM2G,EAAE,IACfqd,EAAE,GAAGhkB,MAAM,EAAEgkB,EAAE,GAAG5pB,OAAO,GAGlC,OAAO4+G,EAER,SAAS04N,GAAoBl9G,GAC5B,IACIx7G,EAAI,GACR,GAAoB,IAFRw7G,EAAI/oN,MAAM,OAEbrR,OAAc,OAAO4+G,EAC9B,IAA+Bh1F,EAAGrd,EAAMtM,EAApCo3B,EAAI+iM,EAAI1xL,MAAMwuS,IAClB,GAAG7/S,EAAG,IAAIp3B,EAAI,EAAGA,GAAKo3B,EAAEr3B,SAAUC,GAEL,KAA1BsM,GADFqd,EAAIyN,EAAEp3B,GAAGyoC,MAAMyuS,KACT,GAAG5kT,QAAQ,MAAcqsF,EAAEh1F,EAAE,IAAMA,EAAE,GAAGhkB,MAAM,EAAEgkB,EAAE,GAAG5pB,OAAO,GAIjE4+G,EAFuB,WAApBh1F,EAAE,GAAGhkB,MAAM,EAAE,GAAqB,QAAQgkB,EAAE,GAAGhkB,MAAM,GAC/CgkB,EAAE,GAAGhkB,MAAM2G,EAAE,IACfqd,EAAE,GAAGhkB,MAAM,EAAEgkB,EAAE,GAAG5pB,OAAO,GAGlC,OAAO4+G,EAWR,SAAS24N,GAAkBC,EAAW92U,EAAKgpQ,EAAIrhQ,GAC9C,IAAIovU,EAAOpvU,EACX,QAAQqhQ,EAAG,GAAGhhO,MAAM,qBAAqB,CAAC,GAAG,KAAK,IACjD,IAAK,UAAW+uS,EAAOzpC,GAAa3lS,GAAM,MAC1C,IAAK,KAAM,IAAK,MAAOovU,EAAOn2O,SAASj5F,EAAK,IAAK,MACjD,IAAK,KAAM,IAAK,QAASovU,EAAOv2T,WAAW7Y,GAAM,MACjD,IAAK,OAAQ,IAAK,cAAeovU,EAAOrsC,EAAU/iS,GAAM,MACxD,IAAK,KAAM,IAAK,SAAU,IAAK,QAAS,IAAK,OAAQ,IAAK,aAAc,MACxE,QAAS,MAAM,IAAIf,MAAM,gBAAkBoiQ,EAAG,IAE/C8tE,EAAUlqC,GAAY5sS,IAAQ+2U,EAyB/B,SAASC,GAAmBjnF,EAAQknF,EAAM5wI,GACzC,GAAGA,EAAKyhH,YACJmvB,EAAKC,SAAU,CACjB,IAAI5lG,EAAI2lG,EAAKC,SACV5lG,EAAE6lG,UAAS7lG,EAAEkqF,YAAcjB,GAAmBjpF,EAAE6lG,UAAY7lG,EAAE6lG,SAGnEpnF,EAAOknF,EAAKG,IAAMH,EAInB,SAASI,GAAgBpgB,EAAKpgC,EAAInxR,EAAM01G,EAAM74G,EAAMwtP,EAAQunF,EAAMv3T,EAAKuoT,EAAQvlU,GAC9E,IAAIw0U,EAAK,UAAWC,EAAMp8N,EAAKq8N,QAAS9qF,EAAI,GAAI5pP,EAAIA,GAAK,GACzD,IAAI20U,EAAY,GACZn4U,EAAI,EAGR,SAFWyB,IAARw2U,GAAqBz3T,IAAKy3T,EAAMz3T,EAAI03T,cAC5Bz2U,IAARw2U,GAAqBF,IAAME,EAAMF,EAAKG,cACnBz2U,IAAhB+uP,EAAOynF,KACTznF,EAAOynF,GAAKD,KAAIA,EAAKxnF,EAAOynF,GAAKD,IACjCxnF,EAAOynF,GAAKN,UAAUQ,EAAUpzU,KAAKyrP,EAAOynF,GAAKN,UAChDnnF,EAAOynF,GAAKG,SAChBH,EAAMznF,EAAOynF,GAAKG,OAEnB,OAAOjyU,EAAK80S,MACX,IAAK,UACJp/L,EAAK9qG,EAAI,IACT8qG,EAAKz6F,EAAI2sR,GAAa2pB,GACtB,MACD,IAAK,SACJ77M,EAAK9qG,EAAI,IAAK8qG,EAAKpzG,EAAImlS,GAAYP,GAAYqqB,IAC/C77M,EAAKz6F,EAAKs2S,EAAIplS,QAAQ,MAAQ,EAAI+6Q,GAAY/V,GAAIogC,GAAK5mT,QAAQ,SAAU,IAAM+qG,EAAKpzG,EACpF,MACD,IAAK,WACgB,KAAjBivT,EAAI/xT,OAAO,KAAW+xT,GAAO,KAChC77M,EAAKz6F,GAAK+pR,EAAUusB,GAAO,IAAI/gS,KAAKA,KAAK0hT,IAAI,KAAM,GAAI,MAAQ,MAC5Dx8N,EAAKz6F,GAAMy6F,EAAKz6F,EAAGy6F,EAAKz6F,EAAIisR,GAAYqqB,GACnC77M,EAAKz6F,EAAE,KAAIy6F,EAAKz6F,EAAIy6F,EAAKz6F,EAAG,GAChC42T,GAAY,WAANA,IAAiBA,EAAK,cAEjC,IAAK,cACUv2U,IAAXo6G,EAAKz6F,IAAiBy6F,EAAKz6F,GAAGs2S,GAC7B77M,EAAK9qG,IAAG8qG,EAAK9qG,EAAI,KACrB,MACD,IAAK,QAAS8qG,EAAK9qG,EAAI,IAAK8qG,EAAKz6F,EAAIy3R,GAAM6e,IAAwB,IAAfl0T,EAAEuuT,WAAoBl2M,EAAKpuC,EAAIiqP,GAAK,MACxF,QACW,IAAPA,GAAmB,IAANpgC,EAAYz7K,EAAK9qG,EAAI,KAC9B8qG,EAAK9qG,EAAI,IAAK8qG,EAAKz6F,EAAIwsR,GAAYtW,GAAIogC,IAIhD,GAxED,SAA0B77M,EAAMm8N,EAAIx0U,GACnC,GAAc,MAAXq4G,EAAK9qG,EAAR,CACA,IAAIvN,IAAoB,IAAfA,EAAEuuT,SAAoB,IAChB,MAAXl2M,EAAK9qG,EAAa8qG,EAAKpuC,EAAIouC,EAAKpuC,GAAKmrO,GAAK/8L,EAAKz6F,GACnC,YAAP42T,EACO,MAAXn8N,EAAK9qG,GACI,EAAP8qG,EAAKz6F,KAASy6F,EAAKz6F,EAAGy6F,EAAKpuC,EAAIumN,EAAIuC,aAAa16K,EAAKz6F,GACpDy6F,EAAKpuC,EAAIumN,EAAIyD,aAAa57K,EAAKz6F,GAEhCy6F,EAAKpuC,EAAIumN,EAAI0D,SAAS77K,EAAKz6F,GAE5By6F,EAAKpuC,GA9BS1wC,EA8BOi7S,GAAI,UA9BHp3U,EA8Bci7G,EAAKz6F,EA5BpC,aADPg2Q,EAAM+E,EAAcp/P,IAAWswQ,GAAYtwQ,IAClBi3P,EAAI0D,SAAS92R,GACnCozR,EAAIj3P,OAAOq6P,EAAKx2R,IA4BrB,MAAMy2B,GAAK,GAAG7zB,EAAEurS,IAAK,MAAM13Q,EA/B9B,IAAqB0F,EAAQn8B,EACxBw2R,EA+BJ,IACC,IAAIz4K,EAAIw9K,EAAc67C,IAAKA,GAAI,UAE/B,GADGx0U,EAAEwuT,SAAQn2M,EAAK8C,EAAIA,GACnBn7G,EAAE2xS,WAAuB,KAAVt5L,EAAK9qG,GAAYijR,EAAImH,QAAQx8K,GAAI,CAClD,IAAIj6G,EAAKsvR,EAAIyB,gBAAgB55K,EAAKz6F,GAAO1c,IAAMm3G,EAAK9qG,EAAI,IAAK8qG,EAAKz6F,EAAI,IAAIuV,KAAKjyB,EAAGilB,EAAGjlB,EAAG0yB,EAAE,EAAE1yB,EAAG4J,EAAE5J,EAAGoxR,EAAEpxR,EAAG+nE,EAAE/nE,EAAG0oP,EAAE1oP,EAAG8yD,KAEnH,MAAMngC,GAAK,GAAG7zB,EAAEurS,IAAK,MAAM13Q,IAoD7BihT,CAAiBz8N,EAAMm8N,EAAIx0U,IACN,IAAlBA,EAAEoqU,YACJ,GAAG/xN,EAAK08N,QAAS,CAChB,IAAIxV,EAAO11B,GAAYxxL,EAAK08N,SAEH,IAAtBxV,EAAKnlS,WAAW,KAAkBmlS,EAAOA,EAAKp9T,MAAM,IACvDk2G,EAAKh1G,EAAIsoT,GAAS4T,EAAM//T,UACjB64G,EAAK08N,QACU,MAAnB18N,EAAK28N,WAAoB38N,EAAKkvJ,EAAIokD,GAAS,QAASnsT,GAC/C64G,EAAK28N,aACZ38N,EAAKkvJ,EAAIokD,GAAStzM,EAAK28N,WAAYx1U,GACnC+lU,EAAOhkU,KAAK,CAACmvS,GAAkBr4L,EAAKkvJ,GAAIlvJ,EAAKkvJ,UAG9C,IAAI/qQ,EAAI,EAAGA,EAAI+oU,EAAOhpU,SAAUC,EAC5BgD,EAAKyF,GAAKsgU,EAAO/oU,GAAG,GAAG6L,EAAEpD,GAAKzF,EAAKyF,GAAKsgU,EAAO/oU,GAAG,GAAGq3B,EAAE5uB,GACtDzF,EAAK0L,GAAKq6T,EAAO/oU,GAAG,GAAG6L,EAAE6C,GAAK1L,EAAK0L,GAAKq6T,EAAO/oU,GAAG,GAAGq3B,EAAE3oB,IACzDmtG,EAAKkvJ,EAAIg+D,EAAO/oU,GAAG,IAGrBwD,EAAE+kT,aACJ4vB,EAAU3qU,SAAQ,SAASvF,IACtBmlP,EAAE6uE,aAAeh0T,EAAEg0T,cAAa7uE,EAAE6uE,YAAch0T,EAAEg0T,gBAEvDpgN,EAAKhwG,EAAIuhP,QAEU3rP,IAAjBo6G,EAAKq8N,UAAuBr8N,EAAKqoM,KAAOroM,EAAKq8N,SAGjD,SAASO,GAAmB1pE,GAC3BA,EAAQh+P,EAAIg+P,EAAQ3tP,GAAK,GACzB2tP,EAAQh+P,EAAIg+P,EAAQh+P,EAAED,QAAQ,QAAQ,MAAMA,QAAQ,MAAM,MAC1Di+P,EAAQ3tP,EAAI2tP,EAAQthM,EAAIshM,EAAQm1C,UAAOziT,EAGxC,SAASi3U,GAAepqU,GACvB,GAAG46P,GAAWvzO,OAAO+hM,SAASppN,GAAI,OAAOA,EAAE5I,SAAS,QACpD,GAAgB,iBAAN4I,EAAgB,OAAOA,EAEjC,GAAyB,oBAAf5B,YAA8B4B,aAAa5B,WAAY,OAAOshS,GAASra,EAAIC,EAAKtlR,KAC1F,MAAM,IAAIjH,MAAM,+CAKjB,IAAIsxU,GAAY,6DAEhB,SAASC,GAAetqU,EAAGqzR,GAC1B,IAAI76F,EAAO66F,GAAS,GACpB1N,EAASD,GACT,IAAIh+P,EAAM+8P,EAAM2lD,GAAepqU,IACf,UAAbw4L,EAAKliL,MAAiC,SAAbkiL,EAAKliL,MAAgC,UAAbkiL,EAAKliL,OACrBoR,EAAb,oBAAZqyO,QAA+BA,QAAQ/gE,MAAMnpL,OAAO,MAAO20Q,EAAW98P,IACrEg4Q,GAASh4Q,IAErB,IAGI+8R,EAHA8lB,EAAU7iT,EAAIrwB,MAAM,EAAG,MAAM2L,cAAewnU,GAAS,EAEzD,IADgC,GAA7BD,EAAQvmT,QAAQ,UAAgB,CAAC,OAAQ,QAAS,OAAQ,OAAQ,SAAU,QAAS,OAAO9kB,SAAQ,SAAS2sN,GAAU0+G,EAAQvmT,QAAQ,IAAM6nM,IAAQ,IAAG2+G,GAAS,MACjKA,EAAQ,OAAOC,GAAMhvB,YAAY/zR,EAAK8wK,GAEzC,IAAgBnsH,EAYAo9P,EAZZxwT,EAAQ,GAERitR,EAAS,GAAIwkC,EAAa,GAAIC,EAAYnyI,EAAKv5E,MAAQ,GAAK,GAAK2rN,EAAY,GACjEr9N,EAAO,GAAMr7F,EAAM,GAC/B24T,EAAOhC,GAAiB,2BAA4BiC,EAAO,EAC3D1qU,EAAI,EAAGjG,EAAI,EACXgqT,EAAW,CAAC5mT,EAAG,CAACpD,EAAE,IAASiG,EAAE,KAAU2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAClD8hP,EAAS,GAAIknF,EAAO,GACpBpgD,EAAK,GAAI+hD,EAAO,EAChBtJ,EAAS,GACTnxB,EAAQ,GAAI24B,EAAY,GAAI+B,EAAO,EAAG7vE,EAAK,GAC3C8vC,EAAW,GAAIxqC,EAAU,GACzBwqE,EAAQ,GAAUnE,GAAU,EAC5BrM,EAAS,GACTpa,EAAU,GAAIye,EAAS,GAAI50C,EAAK,EAAGa,EAAK,EACxCk1C,EAAW,CAAGvvH,OAAO,GAAIw0H,QAAQ,CAACz9C,UAAS,IAAWyjD,EAAU,GACpEb,GAAUv+I,UAAY,EACtBpkK,EAAMA,EAAIllB,QAAQ,sBAAsB,IAExC,IADA,IAAI2oU,EAAU,GACP1mB,EAAK4lB,GAAU3gK,KAAKhiJ,WAAe+8R,EAAG,IAAM0mB,EAAU1mB,EAAG,IAAIzhT,eACnE,IAAK,OACJ,GAAc,QAAXmoU,EAAmB,CACrB,GAAW,MAAR1mB,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,UAC/C,MAAjC6hT,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAYwnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACjE,MAED,GAAGxrS,EAAMA,EAAMxnB,OAAO,GAAG,GAAI,MAClB,MAARgzT,EAAG,GAAU+kB,GAAgB9hT,EAAIrwB,MAAMyzU,EAAMrmB,EAAGtrT,OAAQ6vR,EAAI6hD,EAA6C,WAAvC5xT,EAAMA,EAAMxnB,OAAO,GAAG,GAA2BgvQ,EAAQlzJ,EAAM,CAACntG,EAAEA,EAAEjG,EAAEA,GAAI+nP,EAAQ+oF,EAAM7qU,GAAI8R,EAAKuoT,EAAQjiI,IACvKwwF,EAAK,GAAI6hD,EAAOhC,GAAiBpkB,EAAG,IAAKqmB,EAAOrmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,QACxE,MACD,IAAK,OACJ,GAAW,MAARgzT,EAAG,GAkBL,GAjBGxZ,EAASx5S,OAAS,IAAG87G,EAAKntG,EAAI6qS,KAC5BzyG,EAAK8iH,WAAa9iH,EAAK8iH,UAAYnhT,SAAiBhH,IAAXo6G,EAAKz6F,IAC/C0lL,EAAKv5E,OACH0rN,EAASxwU,KAAIwwU,EAASxwU,GAAK,IAC/BwwU,EAASxwU,GAAGiG,GAAKmtG,GACXo9N,EAAS1lC,GAAW7kS,GAAK4kS,GAAW7qS,IAAMozG,GAE/CA,EAAK69N,OACP79N,EAAK/6F,EAAI,CAAEo6R,OAAOr/L,EAAK69N,MACpB79N,EAAK89N,gBAAe99N,EAAK/6F,EAAEunS,QAAUxsM,EAAK89N,sBACtC99N,EAAK69N,YAAa79N,EAAK89N,gBAE5B99N,EAAK+9N,aAAe/9N,EAAKg+N,aAC3BrhD,EAAK9pR,GAAmC,EAA9B2yF,SAASwa,EAAK+9N,YAAY,KACpCvgD,EAAK5wR,GAAiC,EAA5B44F,SAASwa,EAAKg+N,UAAU,KAClC9J,EAAOhrU,KAAK,CAAC8G,EAAE,CAAC6C,EAAEA,EAAEjG,EAAEA,GAAG4uB,EAAE,CAAC3oB,EAAE8pR,EAAG/vR,EAAE4wR,MAEhCvyF,EAAKouG,WACJ,GAAGr5L,EAAK+9N,aAAe/9N,EAAKg+N,UAAW,CAChD,IAAI,IAAIC,EAAMprU,EAAGorU,GAAOthD,IAAMshD,EACxB,IAAI,IAAIC,EAAMtxU,EAAGsxU,GAAO1gD,IAAM0gD,GAC1BD,EAAMprU,GAAKqrU,EAAMtxU,KAChBq+L,EAAKv5E,OACH0rN,EAASc,KAAMd,EAASc,GAAO,IACnCd,EAASc,GAAKD,GAAO,CAAC/oU,EAAE,MAClBkoU,EAAS1lC,GAAWumC,GAAOxmC,GAAWymC,IAAQ,CAAChpU,EAAE,MAI3DrC,EAAI8pR,EAAK,QAEH9pR,OAdmBmtG,EAAK+9N,YAAalrU,EAAI8pR,EAAK,IAAU9pR,OAgB/DmtG,EAAOw7N,GAAoBtkB,EAAG,KACtBoG,QAAOzqT,GAAKmtG,EAAKs9M,MAAQ,GAC9BzqT,EAAI+jT,EAAS5mT,EAAE6C,IAAG+jT,EAAS5mT,EAAE6C,EAAIA,GACjCA,EAAI+jT,EAASp7R,EAAE3oB,IAAG+jT,EAASp7R,EAAE3oB,EAAIA,GACb,OAApBqkT,EAAG,GAAGptT,OAAO,MAAe+I,EAC/B6qS,EAAW,GAEZ,MACD,IAAK,MACO,MAARwZ,EAAG,IAAgC,OAApBA,EAAG,GAAGptT,OAAO,IAC3B8C,EAAIgqT,EAAS5mT,EAAEpD,IAAGgqT,EAAS5mT,EAAEpD,EAAIA,GACjCA,EAAIgqT,EAASp7R,EAAE5uB,IAAGgqT,EAASp7R,EAAE5uB,EAAIA,GACb,OAApBsqT,EAAG,GAAGptT,OAAO,KACf6a,EAAM22T,GAAiBpkB,EAAG,KACnBoG,QAAO1wT,GAAK+X,EAAI24S,MAAQ,GAEhCzqT,EAAI,IAAKjG,KAET+X,EAAM22T,GAAiBpkB,EAAG,KACnBoG,QAAO1wT,GAAK+X,EAAI24S,MAAQ,GAC/BiU,EAAS,IACe,KAArB5sT,EAAIw5T,eAAwBx5T,EAAIy5T,UAClC7M,EAAO5d,IAAMnuN,SAAS7gF,EAAIy5T,OAAQ,IAAK7M,EAAO7d,IAAMa,GAAMgd,EAAO5d,KACjEb,EAAQlmT,GAAK2kU,GAEG,KAAd5sT,EAAI2zT,SAAiB/G,EAAOv8E,QAAS,EAAM89D,EAAQlmT,GAAK2kU,IAE5D,MACD,IAAK,YACJ,GAAW,MAARra,EAAG,GAAS,CACd,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,MACxE8nU,EAAWj0U,KAAKm0U,GACbzmB,EAAS5mT,EAAEpD,GAAKgqT,EAASp7R,EAAE5uB,GAAKgqT,EAAS5mT,EAAE6C,GAAK+jT,EAASp7R,EAAE3oB,IAC7DuqU,EAAS,QAAUllC,GAAa0e,GAC7B3rH,EAAK8iH,WAAa9iH,EAAK8iH,WAAa6I,EAASp7R,EAAE5uB,IACjDwwU,EAAS,YAAcA,EAAS,QAChCxmB,EAASp7R,EAAE5uB,EAAIq+L,EAAK8iH,UAAY,EAChCqvB,EAAS,QAAUllC,GAAa0e,KAG/Bsd,EAAOhwU,SAAQk5U,EAAS,WAAalJ,GACrCwJ,EAAMx5U,OAAS,IAAGk5U,EAAS,SAAWM,GACtC5qB,EAAQ5uT,OAAS,IAAGk5U,EAAS,SAAWtqB,GAC3Cna,EAAO0kC,GAAaD,OAEpBxmB,EAAW,CAAC5mT,EAAG,CAACpD,EAAE,IAASiG,EAAE,KAAU2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAClDjG,EAAIiG,EAAI,EACR6Y,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACnBp4O,EAAMw8P,GAAiBpkB,EAAG,IAC1BmmB,EAAY7rC,GAAY1yN,EAAIqsO,MAC5BiyB,EAAYnyI,EAAKv5E,MAAQ,GAAK,GAC9BwiN,EAAS,GACThH,EAAS,GACTpa,EAAU,GACV6qB,EAAU,CAAC5zU,KAAKszU,EAAW/E,OAAO,GAClC5F,EAASvvH,OAAOj6M,KAAKy0U,GAEtB,MACD,IAAK,QACJ,GAAW,MAARzmB,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,UACnF,IAAsB,MAAnB6hT,EAAG,GAAGptT,OAAO,GAAY,MAExBwxU,GAAiBpkB,EAAG,IAC5BxrS,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACnBwmB,EAAQ,GAAInE,GAAU,EAEvB,MAED,IAAK,QACO,MAARriB,EAAG,GAAU0kB,GAAmBjnF,EAAQknF,EAAM5wI,GAC5C4wI,EAAOP,GAAiBpkB,EAAG,IAChC,MAED,IAAK,eACJ2kB,EAAKM,GAAK3qC,GAAY8pC,GAAiBpkB,EAAG,IAAImnB,QAAU,WACrD/9C,EAAcu7C,EAAKM,MAAKN,EAAKM,GAAK77C,EAAcu7C,EAAKM,KACxD,IAAI,IAAImC,EAAS,EAAa,KAAVA,GAA8BnmD,EAAIl4B,OAAOq+E,IAAWzC,EAAKM,KAAtCmC,GACvC,GAAa,KAAVA,EAAiB,IAAIA,EAAS,GAAgB,KAAVA,IAAmBA,EAAQ,GAAyB,MAAtBnmD,EAAIl4B,OAAOq+E,GAAiB,CAAEnmD,EAAI50P,KAAKs4S,EAAKM,GAAImC,GAAS,MAC9H,MAED,IAAK,SACJ,GAA2C,UAAxC5yT,EAAMA,EAAMxnB,OAAO,GAAG,GAA2B,MAIpD,IAHAg4U,EAAOZ,GAAiBpkB,EAAG,KACnBohB,SAAU4D,EAAKlnF,QAAS,SAAaknF,EAAK5D,QAC/C4D,EAAKqC,QAAOrC,EAAK9nB,IAAM5uN,SAAS02O,EAAKqC,MAAO,MAC3ChF,GAAW2C,EAAK9nB,IAAM,GAAI,CAC7BmlB,GAAU,EAAMnb,GAt7NN,EAu7NV,IAAI,IAAIogB,EAAO,EAAGA,EAAOd,EAAMx5U,SAAUs6U,EAASd,EAAMc,IAAO/qB,GAAYiqB,EAAMc,IAE/EjF,GAAS9lB,GAAYyoB,GACxBwB,EAAOxB,EAAK5e,MAAM,GAAGogB,EAAMx5U,QAAWg4U,EACtC,IAAI,IAAI/3U,EAAI,EAAGA,GAAK+3U,EAAKuC,OAAQt6U,EAAGu5U,EAAMA,EAAMx5U,QAAUurS,GAAIysC,GAC9D,MAED,IAAK,aACJ,GAAW,MAARhlB,EAAG,GAAU,MACZwb,EAASoB,QAAOpB,EAASoB,MAAQ,IACrC,IAAI4K,EAAc3tC,GAAYmmB,EAAG,IAC7BynB,EAAe,CAClBxzB,KAAMuzB,EAAYvzB,KAClB6oB,IAAK1gB,GAASorB,EAAYE,SAAS90U,MAAM,GAAI,CAAC8C,EAAE,EAAGiG,EAAE,KAEnD6/T,EAASvvH,OAAOj/M,OAAO,IAAGy6U,EAAa5K,MAAMrB,EAASvvH,OAAOj/M,OAAO,GAC1EwuU,EAASoB,MAAM5qU,KAAKy1U,GACjB,MAED,IAAK,YACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YAEL,IAAK,UACL,IAAK,SAA4B,MACjC,IAAK,OACJ,GAAuB,OAApBznB,EAAG,GAAGptT,OAAO,GAAa,MACb,MAARotT,EAAG,GAAUz7B,GAAMthQ,EAAIrwB,MAAM0zU,EAAMtmB,EAAGtrT,OACzC4xU,EAAOtmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,OAC7B,MACD,IAAK,WACJ,IAAI+mM,EAAKyhH,WAAY,MACrBmvB,EAAKC,SAAWR,GAAiBpkB,EAAG,IACpC,MACD,IAAK,aAAoC,MAEzC,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,gBACL,IAAK,UACL,IAAK,gBACL,IAAK,aACL,IAAK,WACL,IAAK,UACJ,GAAuB,OAApBA,EAAG,GAAGptT,OAAO,GAAa,MACb,MAARotT,EAAG,GAAUpU,GAAcC,EAAO66B,EAASzjT,EAAIrwB,MAAM2zU,EAAMvmB,EAAGtrT,QACjE6xU,EAAOvmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,OAC7B,MACD,IAAK,aAAoC,MAEzC,IAAK,SACL,IAAK,WACJ,GAAW,MAARgzT,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,WACnFqW,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACxB,MAED,IAAK,UACJ,GAAW,MAARA,EAAG,GAAS,CACd,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,MACxEunU,GAAmB1pE,GACnBwqC,EAASx0S,KAAKgqQ,QAEdxnP,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IAEnBhkD,EAAU,CAAExmQ,GADZoyE,EAAMw8P,GAAiBpkB,EAAG,KACRrV,QAEnB,MAED,IAAK,aACJ,GAAW,MAARqV,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,WACnF,GAAoC,MAAjC6hT,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,GAAY,CAC7C,IAAI26U,GAAavD,GAAiBpkB,EAAG,IACrCkmB,EAAS,eAAiB,CAAElxB,IAAIoH,GAASurB,GAAWthU,OAAOtI,QAAQ,MAAM,KACzEyW,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IAEpB,MAED,IAAK,OAAwB,MAE7B,IAAK,iBACJ,GAAW,MAARA,EAAG,IACL,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,UAEpC,MAAjC6hT,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAYwnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IAE7D,MAED,IAAK,gBACJ,MACD,IAAK,mBACL,IAAK,qBACL,IAAK,2BACL,IAAK,yBACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,wBACL,IAAK,eACL,IAAK,YACL,IAAK,gBACL,IAAK,kBACL,IAAK,mBACJ,GAAW,MAARA,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,MAAM,IAAI1rT,MAAM,cAAcszE,EAAIzpE,KAAK,UAC/C,MAAjC6hT,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAYwnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACjE,MAED,QAEC,GAAmB,GAAhBxrS,EAAMxnB,QAAwB,YAATgzT,EAAG,GAAkB,OAAO4nB,GAAW3kT,EAAK8wK,GAEpE,GAAmB,GAAhBv/K,EAAMxnB,QAAwB,OAATgzT,EAAG,GAAsB,OAAO4nB,GAAW3kT,EAAK8wK,GAExE,IAAIthL,IAAO,EACX,OAAO+B,EAAMA,EAAMxnB,OAAO,GAAG,IAE5B,IAAK,yBAA4D,OAAOgzT,EAAG,IAC1E,IAAK,WACL,IAAK,4BACL,IAAK,qBACL,IAAK,uBACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,MACL,IAAK,mBACL,IAAK,sBAAsD,MAC3D,QAASvtS,IAAO,EACf,MAGF,IAAK,mBAAgD,OAAOutS,EAAG,IAC9D,IAAK,UACL,IAAK,iBACL,IAAK,qBACL,IAAK,QACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,kBAA8C,MACnD,QAASvtS,IAAO,EACf,MAGF,IAAK,gBAA0C,OAAOutS,EAAG,IACxD,IAAK,WACVwb,EAASiF,QAAQz9C,UAAW,EACtB,MACD,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,mBACL,IAAK,gBACL,IAAK,iBACL,IAAK,cACL,IAAK,kBACL,IAAK,oBACL,IAAK,UACL,IAAK,YACL,IAAK,aACL,IAAK,kBACL,IAAK,iBACL,IAAK,MACL,IAAK,yBACL,IAAK,sBACL,IAAK,YACL,IAAK,gBACL,IAAK,YACL,IAAK,OACL,IAAK,MACL,IAAK,QACL,IAAK,iBACL,IAAK,cACL,IAAK,WACL,IAAK,gBACL,IAAK,MACL,IAAK,aACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,gBACL,IAAK,iBACL,IAAK,2BACL,IAAK,SACL,IAAK,cACL,IAAK,qBAAoD,MACzD,QAASvwQ,IAAO,EACf,MAGF,IAAK,kBAA8C,OAAOutS,EAAG,IAC5D,IAAK,aACL,IAAK,SACL,IAAK,QAA0B,MAC/B,QAASvtS,IAAO,EACf,MAGF,IAAK,mBAAgD,OAAOutS,EAAG,IAC9D,IAAK,UACJ,GAAuB,OAApBA,EAAG,GAAGptT,OAAO,SACX,GAAW,MAARotT,EAAG,GAAU,OAAO/8R,EAAIrwB,MAAM2zU,EAAMvmB,EAAGtrT,QAC9C,IAAK,cAAe+xU,EAAQrF,OAAS,EAAG,MACxC,IAAK,kBAAmBqF,EAAQrF,OAAS,OAErCmF,EAAOvmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,OAC7B,MACD,IAAK,SACAk5U,EAAS,aAAa7O,GAAgB6O,EAAS,YAAY,GAAI,QACnEA,EAAS,YAAYtlI,OAASi5F,GAAYmmB,EAAG,IAAI6nB,OACjD,MACD,IAAK,SACA3B,EAAS,aAAa7O,GAAgB6O,EAAS,YAAY,GAAI,QACnEA,EAAS,YAAY1O,OAAS39B,GAAYmmB,EAAG,IAAI6nB,OACjD,MACD,IAAK,cACJ,IAAIC,GAAcjuC,GAAYmmB,EAAG,IAC7BkmB,EAAS,aAAa7O,GAAgB6O,EAAS,YAAY,GAAG,QAC/D4B,GAAYC,MAAK7B,EAAS,YAAY74R,IAAMy6R,GAAYC,KACxDD,GAAYE,OAAM9B,EAAS,YAAY34R,KAAOu6R,GAAYE,MAC1DF,GAAYG,QAAO/B,EAAS,YAAY14R,MAAQs6R,GAAYG,OAC5DH,GAAYI,SAAQhC,EAAS,YAAY54R,OAASw6R,GAAYI,QACjE,MACD,IAAK,qBACA1M,EAASQ,QAAOR,EAASQ,MAAQ,IACjCR,EAASQ,MAAM,KAAIR,EAASQ,MAAM,GAAK,IAC3CR,EAASQ,MAAM,GAAGE,KAAM,EACxB,MAED,IAAK,cACL,IAAK,gBAA0C,MAE/C,IAAK,kBACL,IAAK,gBAGL,IAAK,wBAGL,IAAK,YACL,IAAK,YACL,IAAK,mBACL,IAAK,sBAEL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,YACL,IAAK,WACL,IAAK,iBACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACL,IAAK,uBACL,IAAK,qBACL,IAAK,iBACL,IAAK,aACL,IAAK,gBACL,IAAK,oBACL,IAAK,YACL,IAAK,iBACL,IAAK,iBACL,IAAK,iBACL,IAAK,gBACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,iBACL,IAAK,OACL,IAAK,cACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,wBACL,IAAK,mBACL,IAAK,gBACL,IAAK,gBACL,IAAK,2BACL,IAAK,gBACL,IAAK,uBACL,IAAK,qBACL,IAAK,8BACL,IAAK,gBACL,IAAK,oBACL,IAAK,mBACL,IAAK,iBACL,IAAK,sBACL,IAAK,gBACL,IAAK,sBACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,kBAA8C,MACnD,QAASzpT,IAAO,EACf,MAGF,IAAK,aAAoC,IAAK,aAAoC,OAAOutS,EAAG,IAC3F,IAAK,uBACL,IAAK,4BACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,yBACL,IAAK,WACL,IAAK,YACL,IAAK,gBACL,IAAK,aACL,IAAK,sBACL,IAAK,SACL,IAAK,WACL,IAAK,YACL,IAAK,gBACL,IAAK,WACL,IAAK,oBACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,qBACL,IAAK,oBACL,IAAK,uBACL,IAAK,wBACL,IAAK,cAAsC,MAC3C,QAASvtS,IAAO,EACf,MAGF,IAAK,aAAoC,OAAOutS,EAAG,IAClD,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SAA4B,MACjC,QAASvtS,IAAO,EACf,MAGF,IAAK,aAAoC,OAAOutS,EAAG,IAClD,IAAK,mBACL,IAAK,sBACL,IAAK,gBACL,IAAK,eAAwC,MAC7C,QAASvtS,IAAO,EACf,MAGF,IAAK,aAAoC,OAAOutS,EAAG,IAClD,IAAK,KACL,IAAK,iBACL,IAAK,oBACL,IAAK,cACL,IAAK,YACL,IAAK,qBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,iBACL,IAAK,qBACL,IAAK,qBACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,oBACL,IAAK,uBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,qBAAoD,MACzD,QAASvtS,IAAO,EACf,MAEF,IAAK,iBACL,OAAOutS,EAAG,IACT,IAAK,QAEL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,gBACL,IAAK,QACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SAEL,IAAK,gBAA0C,MAC/C,QAASvtS,IAAO,EACf,MAEF,IAAK,UACL,IAAK,wBACL,OAAOutS,EAAG,IACT,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,gBACL,IAAK,QACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SAA4B,MACjC,QAASvtS,IAAO,EACf,MAGF,IAAK,UAA8B,IAAK,SAA4B,IAAK,OAAwB,OAAOutS,EAAG,IAC1G,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,gBAA0C,MAE/C,IAAK,SACL,IAAK,UACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,UAEL,IAAK,MAAsB,MAC3B,QAASvtS,IAAO,EACf,MAGF,IAAK,YAAkC,MAEvC,QAASA,IAAO,EAEjB,GAAGA,GAAM,MAET,GAAGutS,EAAG,GAAGtqR,MAAM,YAAa,MAC5B,IAAIlhB,EAAMA,EAAMxnB,OAAO,GAAG,GAAI,KAAM,qBAAuBgzT,EAAG,GAAK,IAAMxrS,EAAMrW,KAAK,KACpF,GAA4D,6BAAzDqW,EAAMA,EAAMxnB,OAAO,GAAG,GAA+D,CACvF,GAAuB,OAApBgzT,EAAG,GAAGptT,OAAO,GAAa,MACb,MAARotT,EAAG,GAAUukB,GAAkBC,EAAWkC,EAAShwE,EAAIzzO,EAAIrwB,MAAM2zU,EAAMvmB,EAAGtrT,SAC3EgiQ,EAAKspD,EAAIumB,EAAOvmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,QACxC,MAED,GAAG+mM,EAAKioG,IAAK,KAAM,qBAAuBgkB,EAAG,GAAK,IAAMxrS,EAAMrW,KAAK,KAErE,IAAI+Z,GAAM,GAOV,OANI67K,EAAKo0I,YAAep0I,EAAKq0I,YAAWlwT,GAAI+zL,OAASw1F,GACrDvpR,GAAIg0L,WAAa+5H,EACjB/tT,GAAIsjT,SAAWA,EACftjT,GAAI+oQ,IAAMA,EAAI+H,YACd9wQ,GAAI2zR,MAAQA,EACZ3zR,GAAIssT,UAAYA,EACTtsT,GAGR,SAASmwT,GAAWj1U,EAAM2gM,GAEzB,OADAu0I,GAAcv0I,EAAKA,GAAM,IAClBA,EAAKliL,MAAM,UACjB,IAAK,SAAU,OAAOg0T,GAAexlD,EAAOj1Q,OAAOhY,GAAO2gM,GAC1D,IAAK,SAAU,IAAK,SAAU,IAAK,OAAQ,OAAO8xI,GAAezyU,EAAM2gM,GACvE,IAAK,QAAS,OAAO8xI,GAAejlD,EAAIxtR,GAAO2gM,IAgCjD,SAASw0I,GAAgB71U,GAAK,OAAO0pS,GAAU,aAAc,KAAM,CAAC,UAAW1pS,EAAEuhT,KAAM,cAAc,IAAM8I,GAASrqT,EAAEoqU,IAAK,CAACpnU,EAAE,EAAEiG,EAAE,MAiJlI,SAAS6sU,GAAmB1/N,EAAMksM,EAAK7+F,EAAIpiB,EAAM3/E,EAAKwwH,EAAIsnD,GACzD,IAAIpjL,GAAmBp6G,MAAVo6G,EAAKz6F,GAA4B3f,MAAVo6G,EAAKh1G,EAAiB,MAAO,GAEjE,IAAIo8C,EAAO,GAEX,GADG44D,EAAKh1G,IAAGo8C,EAAK,cAAgB,IAAMuqP,GAAUsiB,GAASj0M,EAAKh1G,EAAGo4R,KAC9DpjL,EAAKkvJ,GAAKlvJ,EAAKkvJ,EAAEplQ,MAAM,EAAGoiT,EAAIhoT,SAAWgoT,EAAK,CAChD,IAAIlmS,EAAM+xR,GAAY/3L,EAAKkvJ,EAAEplQ,MAAMoiT,EAAIhoT,OAAS,IAChDkjD,EAAK,iBAAmB,QAAUphC,EAAIpZ,GAAKw2R,EAAKx2R,EAAI,GAAK,KAAOoZ,EAAIpZ,EAAIw2R,EAAKx2R,GAAK,KAAO,KAAOoZ,EAAInT,GAAKuwR,EAAKvwR,EAAI,GAAK,KAAOmT,EAAInT,EAAIuwR,EAAKvwR,GAAK,KAQjJ,GALGmtG,EAAK/6F,GAAK+6F,EAAK/6F,EAAEo6R,SACnBj4P,EAAK,WAAauqP,GAAU3xL,EAAK/6F,EAAEo6R,QAChCr/L,EAAK/6F,EAAEunS,UAASplQ,EAAK,mBAAqBuqP,GAAU3xL,EAAK/6F,EAAEunS,WAG5Dn/F,EAAG,WAEL,IADA,IAAIokH,EAAOpkH,EAAG,WACNllE,EAAK,EAAGA,GAAMspL,EAAKvtU,SAAUikJ,EACjCspL,EAAKtpL,GAAIn4I,EAAE6C,GAAKuwR,EAAKvwR,GAAK4+T,EAAKtpL,GAAIn4I,EAAEpD,GAAKw2R,EAAKx2R,IAC/C6kU,EAAKtpL,GAAI3sH,EAAE3oB,EAAI4+T,EAAKtpL,GAAIn4I,EAAE6C,IAAGu0C,EAAK,kBAAoBqqR,EAAKtpL,GAAI3sH,EAAE3oB,EAAI4+T,EAAKtpL,GAAIn4I,EAAE6C,GAChF4+T,EAAKtpL,GAAI3sH,EAAE5uB,EAAI6kU,EAAKtpL,GAAIn4I,EAAEpD,IAAGw6C,EAAK,gBAAkBqqR,EAAKtpL,GAAI3sH,EAAE5uB,EAAI6kU,EAAKtpL,GAAIn4I,EAAEpD,IAInF,IAAIsI,EAAI,GAAInN,EAAI,GAChB,OAAOi4G,EAAK9qG,GACX,IAAK,IAAK,IAAI+1L,EAAKouG,WAAY,MAAO,GAAI,MAC1C,IAAK,IAAKnkS,EAAI,SAAUnN,EAAI8J,OAAOmuG,EAAKz6F,GAAI,MAC5C,IAAK,IAAKrQ,EAAI,UAAWnN,EAAKi4G,EAAKz6F,EAAI,IAAM,IAAM,MACnD,IAAK,IAAKrQ,EAAI,QAASnN,EAAIg1S,GAAK/8L,EAAKz6F,GAAI,MACzC,IAAK,IAAKrQ,EAAI,WAAYnN,EAAI,IAAI+yB,KAAKklF,EAAKz6F,GAAGiuR,cAA4B,MAAVxzL,EAAK8C,IAAW9C,EAAK8C,EAAI9C,EAAK8C,GAAKq1K,EAAIl4B,OAAO,KAAK,MACpH,IAAK,IAAK/qP,EAAI,SAAUnN,IAAei4G,EAAKz6F,GAAG,IA52ajC,IACNtQ,QAAQw8R,IAAU,SAAS3jR,GAAK,OAAOyjR,GAAUzjR,MAAO7Y,QAAQ48R,IAAa,SAAS7hS,GAAK,MAAO,MAASA,EAAE+xB,WAAW,GAAGl4B,SAAS,IAAK28E,cAAgB,OA82alK,IAAI0kM,EAAKyjD,GAAe1jI,EAAKs2H,QAASvhN,EAAMirF,GAC5C7jJ,EAAK,cAAgB,KAAO,GAAG8jO,GAC/B9jO,EAAK,YAAcg8O,EAAKvwR,EAAI,EAC5B,IAAI8sU,EAAgB,MAAV3/N,EAAKz6F,EAAYxd,EAAI,GAC3BwzB,EAAc,KAAVykF,EAAK9qG,EAAW,GAAM,kBAAoBA,EAAI,KAAOyqU,EAAK,UAIlE,OAFI3/N,EAAKntG,GAAG,IAAI3O,OAAS,IAAGq3B,GAA2BykF,EAAKntG,EA/C5C9C,KAAI,SAAS8C,GAE5B,IACIJ,EAAG6gS,GAAU,WADKzgS,EAAEqC,GAAG,IA7zaoBD,QAAQ,iBAAiB,SA8zazC,CAAC,MAAQ,oCACxC,OAAOq+R,GAAU,UAAW7gS,EAAG,CAAC,YAAYI,EAAEnG,OAC5C2I,KAAK,KA4CDi+R,GAAU,OAAQ/3Q,EAAG6rB,GAE7B,SAASw4R,GAAkBv8H,EAAG1+L,GAC7B,IAAIhd,EAAI,mBAAqB07M,EAAE,GAAK,IAMpC,OALG1+L,IACCA,EAAI+uS,MAAQ/uS,EAAIgvS,MAAKhvS,EAAIgvS,IAAMC,GAAMjvS,EAAI+uS,MACzC/uS,EAAIgvS,MAAKhsT,GAAK,oCAAsCgd,EAAIgvS,IAAM,KAC9DhvS,EAAIqwO,SAAQrtP,GAAK,mBAEdA,EAAI,IAwCZ,SAASk4U,GAAcv0N,EAAK2/E,EAAM6wC,GACjC,IAAIn0O,EAAI,GACJqI,EAAI8rO,EAAG14B,WAAW93F,GAClB+hG,EAAKyuB,EAAG34B,OAAOnzM,GAEfkF,EAAIm4M,EApOT,SAA6BA,EAAIpiB,EAAM3/E,EAAKwwH,GAC3C,IAAIzuB,EAAI,MAAO,GACf,MAAMyuB,GAAI,IAAI42F,UAAU,IAAIoB,MAAO,MAAO,GAG1C,IAFD,IAAIz7S,EAAQyjN,EAAG42F,SAASoB,MACnB1kT,EAAM,GACFjrB,EAAI,EAAGA,EAAIk0B,EAAMn0B,SAAUC,EAAG,CACrC,IAAIyF,EAAIyuB,EAAMl0B,GACXyF,EAAEmqU,OAASzoN,IAIX1hH,EAAEuhT,KAAKv+Q,MAAM,aAChBxd,EAAIlmB,KAAKu2U,GAAgB71U,KAE1B,OAAOwlB,EAAI/Z,KAAK,IAsNHyqU,CAAoBzyH,EAAIpiB,EAAM3/E,EAAKwwH,GAAM,GAUtD,OATG5mO,EAAEhR,OAAS,GAAGyD,EAAEuB,KAAK,UAAYgM,EAAI,aAGxCA,EAAIm4M,EA9CL,SAA6BA,EAAIpiB,EAAM3/E,EAAKwwH,GAC3C,IAAIzuB,EAAG,QAAS,MAAO,GACvB,IAAItxJ,EAAQs8O,GAAkBhrF,EAAG,SAC7BokH,EAAOpkH,EAAG,YAAc,GAAIllE,EAAK,EACjCxgJ,EAAI,GACL0lN,EAAG,UAAUA,EAAG,SAAS17M,SAAQ,SAAS/H,EAAGzF,GAC/CsvT,GAAY7pT,GACZ,IAAIgoE,IAAMhoE,EAAE4E,MACRzG,EAAIumU,GAAUnqU,EAAGyF,GACjBigB,EAAI,CAAC,WAAW1lB,EAAE,GACnBytE,IAAG/nD,EAAE,YAAcwqS,GAAStsT,EAAEyG,QAC9B5E,EAAEorP,SAAQnrO,EAAE,aAAa,KAC5BliB,EAAEuB,KAAKoqS,GAAU,SAAS,KAAKzpR,OAGhC,IADA,IAAI6nG,EAAQrtH,MAAMmE,QAAQ6kN,GAClBhK,EAAItnJ,EAAM/rD,EAAEpD,EAAGy2M,GAAKtnJ,EAAMvgC,EAAE5uB,IAAKy2M,EAAG,CAE3C,IADA,IAAI1+L,EAAM,CAACi7T,GAAkBv8H,GAAIgK,EAAG,UAAU,IAAIhK,KAC1CC,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CAC3C,IAAIp0E,GAAO,EACX,IAAIiZ,EAAK,EAAGA,GAAMspL,EAAKvtU,SAAUikJ,EAChC,KAAGspL,EAAKtpL,GAAIn4I,EAAE6C,EAAIywM,GACfmuH,EAAKtpL,GAAIn4I,EAAEpD,EAAIy2M,GACfouH,EAAKtpL,GAAI3sH,EAAE3oB,EAAIywM,GACfmuH,EAAKtpL,GAAI3sH,EAAE5uB,EAAIy2M,GAAlB,CACGouH,EAAKtpL,GAAIn4I,EAAE6C,GAAKywM,GAAKmuH,EAAKtpL,GAAIn4I,EAAEpD,GAAKy2M,IAAGn0E,GAAO,GAClD,MAED,IAAGA,EAAH,CACA,IAAIk0J,EAAO,CAACx2R,EAAEy2M,EAAExwM,EAAEywM,GACd4oG,EAAM3U,GAAYnU,GAAOpjL,EAAO0R,GAAS27F,EAAGhK,IAAI,IAAIC,GAAK+J,EAAG6+F,GAChEvnS,EAAIzb,KAAKw2U,GAAmB1/N,EAAMksM,EAAK7+F,EAAIpiB,EAAM3/E,EAAKwwH,EAAIsnD,KAE3Dz+Q,EAAIzb,KAAK,UACNyb,EAAIzgB,OAAS,GAAGyD,EAAEuB,KAAKyb,EAAItP,KAAK,KAEpC,OAAO1N,EAAE0N,KAAK,IAWL0qU,CAAoB1yH,EAAIpiB,GAAiB,IAC7C/mM,OAAS,GAAGyD,EAAEuB,KAAK,UAAYgM,EAAI,YAGxCvN,EAAEuB,KA3NH,SAA8BmkN,EAAIpiB,EAAM3/E,EAAKwwH,GAC5C,IAAIzuB,EAAI,MAAO,GACf,IAAI1lN,EAAI,GA0CR,GA1BG0lN,EAAG,cACL1lN,EAAEuB,KAAK,eACJmkN,EAAG,YAAYvV,QAAQnwM,EAAEuB,KAAKoqS,GAAU,SAAU,KAAM,CAAC,WAAWjmF,EAAG,YAAYvV,UACnFuV,EAAG,YAAYqhH,QAAQ/mU,EAAEuB,KAAKoqS,GAAU,SAAU,KAAM,CAAC,WAAWjmF,EAAG,YAAYqhH,UACtF/mU,EAAEuB,KAAKoqS,GAAU,cAAe,KAAM,CACrC,WAAYjmF,EAAG,YAAY7oK,QAAU,OACrC,SAAU6oK,EAAG,YAAY5oK,MAAQ,MACjC,UAAW4oK,EAAG,YAAY3oK,OAAS,MACnC,QAAS2oK,EAAG,YAAY9oK,KAAO,UAEhC58C,EAAEuB,KAAK,iBAgBL4yO,GAAMA,EAAG42F,UAAY52F,EAAG42F,SAASvvH,QAAU24B,EAAG42F,SAASvvH,OAAO73F,GAEhE,GAAGwwH,EAAG42F,SAASvvH,OAAO73F,GAAKgtN,OAAQ3wU,EAAEuB,KAAKoqS,GAAU,UAA8C,GAAlCx3D,EAAG42F,SAASvvH,OAAO73F,GAAKgtN,OAAc,cAAgB,kBAAoB,SACrI,CAEJ,IAAI,IAAIn0U,EAAI,EAAGA,EAAImnH,KAAawwH,EAAG42F,SAASvvH,OAAOh/M,IAAO23O,EAAG42F,SAASvvH,OAAOh/M,GAAGm0U,UAAtDn0U,GACvBA,GAAKmnH,GAAK3jH,EAAEuB,KAAK,eAsDtB,UAhDO4yO,GAAI,IAAI42F,UAAU,IAAIQ,OAAO,IAAI,IAAI,IAAIE,KAAKzrU,EAAEuB,KAAK,yBA2BzDmkN,EAAG,cACL1lN,EAAEuB,KAAKkqS,GAAS,kBAAmB,SAChC/lF,EAAG,YAAY2yH,SAASr4U,EAAEuB,KAAKkqS,GAAS,iBAAkB,SAC1D/lF,EAAG,YAAY4yH,WAAWt4U,EAAEuB,KAAKkqS,GAAS,mBAAoB,SAC1B,MAApC/lF,EAAG,YAAY6yH,mBAA8B7yH,EAAG,YAAY6yH,kBACjB,MAAtC7yH,EAAG,YAAY8yH,qBAAgC9yH,EAAG,YAAY8yH,qBAAqBx4U,EAAEuB,KAAKkqS,GAAS,kBAAmB,kBAD5CzrS,EAAEuB,KAAKkqS,GAAS,kBAAmB,gBAEtH,CACC,CAAE,cAAe,oBACjB,CAAE,gBAAiB,iBACnB,CAAE,aAAc,iBAChB,CAAE,gBAAiB,mBACnB,CAAE,aAAc,mBAChB,CAAE,mBAAoB,yBACtB,CAAE,gBAAiB,mBACnB,CAAE,aAAc,mBAChB,CAAE,OAAQ,aACV,CAAE,aAAc,eAChB,CAAE,cAAe,wBAChBzhS,SAAQ,SAASvF,GAAQihN,EAAG,YAAYjhN,EAAE,KAAKzE,EAAEuB,KAAK,IAAIkD,EAAE,GAAG,UAGlD,GAAZzE,EAAEzD,OAAoB,GAClBovS,GAAU,mBAAoB3rS,EAAE0N,KAAK,IAAK,CAAC0kT,MAAMnmB,KAkHjDwsC,CAAqB/yH,EAAIpiB,EAAM3/E,EAAKwwH,IAEpCn0O,EAAE0N,KAAK,IAEf,SAASgrU,GAAWvkG,EAAI7wC,GACnBA,IAAMA,EAAO,IACb6wC,EAAGq8C,MAAKr8C,EAAGq8C,IAAMA,EAAI+H,aACtBpkD,EAAGq8C,MACLC,EAASD,GAAMA,EAAIgI,WAAWrkD,EAAGq8C,KAEjCltF,EAAK2jI,OAAShgC,EAAU9yD,EAAGq8C,KAAMltF,EAAK2jI,OAAO9yF,EAAGq8C,IAAI,QAAU,EAC9DltF,EAAK4jI,IAAM/yF,EAAGq8C,IACdltF,EAAKs2H,QAAU,GACfoN,GAAe1jI,EAAKs2H,QAAS,GAAI,CAACqN,OAAO,CAAC,QAAU,MAErD,IAAIn8T,EAAI,GACRA,EAAEvJ,KApSH,SAA0B4yO,EAAI7wC,GAC7B,IAAItjM,EAAI,GAKR,OAHGm0O,EAAGinE,OAAOp7S,EAAEuB,KA/nWhB,SAA6B65S,EAAO93G,GACnC,IAAItjM,EAAI,GAgBR,OAfAykB,EAAKs1R,IAAiB3xS,KAAI,SAASwrB,GAClC,IAAI,IAAIp3B,EAAI,EAAGA,EAAIg8S,GAAWj8S,SAAUC,EAAG,GAAGg8S,GAAWh8S,GAAG,IAAMo3B,EAAG,OAAO4kR,GAAWh8S,GACvF,IAAIA,EAAI,EAAGA,EAAIw8S,GAAUz8S,SAAUC,EAAG,GAAGw8S,GAAUx8S,GAAG,IAAMo3B,EAAG,OAAOolR,GAAUx8S,GAChF,MAAMo3B,KACJ5pB,SAAQ,SAAS5J,GACnB,GAAkB,MAAfg7S,EAAMh7S,EAAE,IAAX,CACA,IAAIwzB,EAAI0vK,GAAQA,EAAK83G,OAA6B,MAApB93G,EAAK83G,MAAMh7S,EAAE,IAAckjM,EAAK83G,MAAMh7S,EAAE,IAAMg7S,EAAMh7S,EAAE,IACpF,OAAOA,EAAE,IACR,IAAK,OAAQwzB,EAAI,IAAIT,KAAKS,GAAGi4Q,cAAcv+R,QAAQ,SAAS,KAE9C,iBAALsmB,EAAeA,EAAI1pB,OAAO0pB,IACtB,IAANA,IAAoB,IAANA,EAAeA,EAAIA,EAAI,IAAM,IAC3CA,aAAaT,OAAMS,EAAI,IAAIT,KAAKS,GAAGi4Q,cAAcv+R,QAAQ,SAAS,KAC1EtN,EAAEuB,KAAKkqS,GAASsO,GAAgB35S,EAAE,KAAOA,EAAE,GAAIwzB,QAEzC+3Q,GAAU,qBAAsB3rS,EAAE0N,KAAK,IAAK,CAAC0kT,MAAMnmB,KA8mWtC0sC,CAAoBxkG,EAAGinE,MAAO93G,IAE/C6wC,EAAG4/F,WAAW/zU,EAAEuB,KA9mWpB,SAA8B65S,EAAO24B,GACpC,IAAI6E,EAAY,CAAC,aAAa,cAC1BvmD,EAAI,2BACJryR,EAAI,GAyBR,OAxBGo7S,GAAO32R,EAAK22R,GAAOpxS,SAAQ,SAASkY,GACxC,GAAIrjB,OAAOK,UAAUQ,eAAeC,KAAKy7S,EAAOl5R,GAAhD,CACE,IAAI,IAAI1lB,EAAI,EAAGA,EAAIg8S,GAAWj8S,SAAUC,EAAG,GAAG0lB,GAAKs2R,GAAWh8S,GAAG,GAAI,OACrE,IAAIA,EAAI,EAAGA,EAAIw8S,GAAUz8S,SAAUC,EAAG,GAAG0lB,GAAK82R,GAAUx8S,GAAG,GAAI,OAC/D,IAAIA,EAAI,EAAGA,EAAIo8U,EAAUr8U,SAAUC,EAAG,GAAG0lB,GAAK02T,EAAUp8U,GAAI,OAE5D,IAAIo3B,EAAIwnR,EAAMl5R,GACV3U,EAAI,SACO,iBAALqmB,GAAiBrmB,EAAI,QAASqmB,EAAI1pB,OAAO0pB,KACrC,IAANA,IAAoB,IAANA,GAAermB,EAAI,UAAWqmB,EAAIA,EAAI,IAAM,KAC7DA,EAAI1pB,OAAO0pB,GAChB5zB,EAAEuB,KAAKoqS,GAAU1B,GAAa/nR,GAAI0R,EAAG,CAAC,QAAQrmB,SAE5CwmU,GAAWtvT,EAAKsvT,GAAW/pU,SAAQ,SAASkY,GAChD,GAAIrjB,OAAOK,UAAUQ,eAAeC,KAAKo0U,EAAW7xT,MAC/Ck5R,IAASv8S,OAAOK,UAAUQ,eAAeC,KAAKy7S,EAAOl5R,IAAxD,CACA,IAAI0R,EAAImgT,EAAU7xT,GACd3U,EAAI,SACO,iBAALqmB,GAAiBrmB,EAAI,QAASqmB,EAAI1pB,OAAO0pB,KACrC,IAANA,IAAoB,IAANA,GAAermB,EAAI,UAAWqmB,EAAIA,EAAI,IAAM,KAC1DA,aAAaT,MAAQ5lB,EAAI,cAAeqmB,EAAIA,EAAEi4Q,eACjDj4Q,EAAI1pB,OAAO0pB,GAChB5zB,EAAEuB,KAAKoqS,GAAU1B,GAAa/nR,GAAI0R,EAAG,CAAC,QAAQrmB,SAExC,IAAM8kR,EAAI,WAAa4Z,GAAW,KAAOjsS,EAAE0N,KAAK,IAAM,KAAO2kR,EAAI,IAklWhDwmD,CAAqB1kG,EAAGinE,MAAOjnE,EAAG4/F,YACnD/zU,EAAE0N,KAAK,IA8RPorU,CAAiB3kG,EAAI7wC,IAC5Bx4L,EAAEvJ,KAzRK,IA0RPuJ,EAAEvJ,KAAK,IACPuJ,EAAEvJ,KAAK,IACP,IAAI,IAAI/E,EAAI,EAAGA,EAAI23O,EAAG14B,WAAWl/M,SAAUC,EAC1CsO,EAAEvJ,KAAKoqS,GAAU,YAAausC,GAAc17U,EAAG8mM,EAAM6wC,GAAK,CAAC,UAAU61D,GAAU71D,EAAG14B,WAAWj/M,OAG9F,OAFAsO,EAAE,GA3RH,SAAwBqpO,EAAI7wC,GAE3B,IAAI0pD,EAAS,CAAC,mEAQd,OAPA1pD,EAAKs2H,QAAQ5vT,SAAQ,SAASgvT,EAAIh6S,GACjC,IAAIi+Q,EAAU,GACdA,EAAQ17R,KAAKoqS,GAAU,eAAgB,KAAM,CAAC,YAAa3B,GAAUxZ,EAAIl4B,OAAO0gE,EAAGnoB,cAEnF,IAAI7wS,EAAI,CAAC,QAAS,KAAO,GAAGgf,IAC5BguO,EAAOzrP,KAAKoqS,GAAU,QAAS1O,EAAQvvR,KAAK,IAAK1N,OAE3C2rS,GAAU,SAAU3+C,EAAOt/O,KAAK,KAiRhCqrU,CAAe5kG,EAAI7wC,GAC1Bx4L,EAAE,GA/QH,SAA0BqpO,GACzB,MAAMA,GAAI,IAAI42F,UAAU,IAAIoB,MAAO,MAAO,GAG1C,IAFD,IAAIz7S,EAAQyjN,EAAG42F,SAASoB,MACnB1kT,EAAM,GACFjrB,EAAI,EAAGA,EAAIk0B,EAAMn0B,SAAUC,EAAG,CACrC,IAAIyF,EAAIyuB,EAAMl0B,GACA,MAAXyF,EAAEmqU,QACFnqU,EAAEuhT,KAAKv+Q,MAAM,aAChBxd,EAAIlmB,KAAKu2U,GAAgB71U,KAE1B,OAAO0pS,GAAU,QAASlkR,EAAI/Z,KAAK,KAqQ5BsrU,CAAiB7kG,GACjB40D,GAAa4C,GAAU,WAAY7gS,EAAE4C,KAAK,IAAK,CACrD,MAAcu+R,GACd,UAAcA,GACd,UAAcA,GACd,WAAcA,GACd,WApxaO,4CAqxaP,aAlxaO,oCAuzaT,SAASgtC,GAAMv9H,EAAG+1D,EAAMl1Q,EAAQ+mM,GAC/B,IAAIhmL,EAAI/gB,EACJ+zR,EAAO,GACPxlR,EAAI2mQ,EAAKtvQ,MAAMsvQ,EAAKn0P,EAAEm0P,EAAKn0P,EAAEA,GACjC,GAAGgmL,GAAQA,EAAKuiE,KAAOviE,EAAKuiE,IAAIqzE,OAAQ,OAAOx9H,EAAEz5M,GACjD,IAAK,MAAO,IAAK,WAAY,IAAK,WAAY,IAAK,eAAgB,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,MACnH,QACC,GAAgB,IAAb6I,EAAEvO,OAAc,MACnB+mM,EAAKuiE,IAAIqzE,OAAOpuU,GAEjBwlR,EAAK/uR,KAAKuJ,GACV2mQ,EAAKn0P,GAAKA,EAGV,IAFA,IAAIhc,EAAQ63U,GAAchtC,GAAe16B,EAAKA,EAAKn0P,IAC/C9S,EAAQ,EACE,MAARlJ,GAAsC,aAAtBA,EAAKW,EAAEE,MAAM,EAAE,IACpCmb,EAAI6uR,GAAe16B,EAAKA,EAAKn0P,EAAE,GAC/B9S,EAAQinQ,EAAKn0P,EAAI,EACJ,eAAVhc,EAAKW,EAAoBuI,GAAS,EACP,eAAtBlJ,EAAKW,EAAEE,MAAM,EAAE,MAAsBqI,GAAS,IACtD8lR,EAAK/uR,KAAKkwQ,EAAKtvQ,MAAMqI,EAAMinQ,EAAKn0P,EAAE,EAAEA,IACpCm0P,EAAKn0P,GAAK,EAAEA,EACZhc,EAAQ63U,GAAchtC,GAAe16B,EAAMA,EAAKn0P,IAEjD,IAAItY,EAAKqrR,EAAQC,GACjBmJ,GAAUz0R,EAAG,GACb,IAAIo0U,EAAK,EAAGp0U,EAAEshR,KAAO,GACrB,IAAI,IAAIx9Q,EAAI,EAAGA,EAAIwnR,EAAK/zR,SAAUuM,EAAK9D,EAAEshR,KAAK/kR,KAAK63U,GAAKA,GAAM9oD,EAAKxnR,GAAGvM,OACtE,OAAOm/M,EAAEr4M,EAAE2B,EAAGA,EAAEzI,OAAQ+mM,GAGzB,SAAS+1I,GAAej5U,EAAGkjM,EAAMivF,GAChC,GAAW,MAARnyR,EAAEmN,GACDnN,EAAEwwS,GAAN,CACA,IAAIy2B,EAAQ,EACZ,IACCA,EAAQjnU,EAAE+6G,GAAK/6G,EAAEwwS,GAAGC,UAAY,EAC7BvtG,EAAKkrH,SAAQpuT,EAAE+6G,EAAIq1K,EAAIl4B,OAAO+uE,IAChC,MAAMxzS,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAChC,IAAIyvK,IAA0B,IAAlBA,EAAKirH,SAAoB,IACzB,MAARnuT,EAAEmN,EAAanN,EAAE6pE,EAAI7pE,EAAE6pE,GAAKmrO,GAAKh1S,EAAEwd,GACpB,IAAVypT,GAAwB,WAATA,EACX,MAARjnU,EAAEmN,GACI,EAAJnN,EAAEwd,KAASxd,EAAEwd,EAAGxd,EAAE6pE,EAAIumN,EAAIuC,aAAa3yR,EAAEwd,GACxCxd,EAAE6pE,EAAIumN,EAAIyD,aAAa7zR,EAAEwd,GAE1Bxd,EAAE6pE,EAAIumN,EAAI0D,SAAS9zR,EAAEwd,GAEtBxd,EAAE6pE,EAAIumN,EAAIj3P,OAAO8tS,EAAMjnU,EAAEwd,EAAG,CAAC20Q,WAAWA,IAC5C,MAAM1+P,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAChC,GAAGyvK,EAAKquG,WAAa01B,GAAgB,KAAPjnU,EAAEmN,GAAYijR,EAAImH,QAAQnH,EAAIl4B,OAAO+uE,IAAUn9T,OAAOm9T,IAAS,CAC5F,IAAInmU,EAAKsvR,EAAIyB,gBAAgB7xR,EAAEwd,GAAO1c,IAAMd,EAAEmN,EAAI,IAAKnN,EAAEwd,EAAI,IAAIuV,KAAKjyB,EAAGilB,EAAGjlB,EAAG0yB,EAAE,EAAE1yB,EAAG4J,EAAE5J,EAAGoxR,EAAEpxR,EAAG+nE,EAAE/nE,EAAG0oP,EAAE1oP,EAAG8yD,MAI5G,SAASslR,GAAU10U,EAAK87S,EAAMnzS,GAC7B,MAAO,CAAEqQ,EAAEhZ,EAAK87S,KAAKA,EAAMnzS,EAAEA,GA4vB9B,IAAIgsU,GACC,mCADDA,GAEE,mCA8CN,SAASC,GAAaj8C,EAAK7tL,GAK3B,IAAI+pO,EAAS9iC,EAeT+iC,EAEAlvG,EAhBJ,GALI96H,IAASA,EAAU,IACvBmoO,GAAcnoO,GACd2/K,IACG3/K,EAAQg3M,UAAUv3B,EAASz/K,EAAQg3M,UAEnCnpB,EAAIvB,UAAW,CACjB,GAAG9C,EAAI1pK,KAAK+tK,EAAK,eAAgB,MAAM,IAAI15R,MAAM,8BACjD41U,EAAUvgD,EAAI1pK,KAAK+tK,EAAK,YACxBoZ,EAAKzd,EAAI1pK,KAAK+tK,EAAK,cAAgBrE,EAAI1pK,KAAK+tK,EAAK,aAC3C,CACN,OAAO7tL,EAAQtuF,MACd,IAAK,SAAUm8Q,EAAMvN,EAAIJ,EAAOj1Q,OAAO4iR,IAAO,MAC9C,IAAK,SAAUA,EAAMvN,EAAIuN,GAAM,MAC/B,IAAK,SAAU,MACf,IAAK,QAAa7gS,MAAMmE,QAAQ08R,KAAMA,EAAM7gS,MAAMwC,UAAUiD,MAAMxC,KAAK49R,IAExE9D,GAAU8D,EAAK,GACfoZ,EAAK,CAAEh9C,QAAS4jC,GAMjB,GADGk8C,GA35BH,SAAuB33U,GACtB,IAAI8b,EAAI,GACJ5d,EAAI8B,EAAI63P,QAOZ,GALA35P,EAAEsd,EAAI,GAENM,EAAE+7T,aAAe35U,EAAE05R,WAAW,EAAG,cACjC97Q,EAAEg8T,oBAt9YH,SAA2C55U,GAAK,OAAOw0S,GAA8Bx0S,EAAG,GAs9Y/D65U,CAAkC75U,GAEvDA,EAAEzD,OAASyD,EAAEsd,GAAK,EAAG,OAAOM,EAE/B,IAAIgW,EAAI5zB,EAAE05R,WAAW,GACb,GAAL9lQ,GAAUA,EAAI,KACjB5zB,EAAEsd,GAAG,EAAGM,EAAEk8T,UAAY95U,EAAE05R,WAAW,EAAG,cAEnC15R,EAAEzD,OAASyD,EAAEsd,GAAK,GAEZ,cADTsW,EAAI5zB,EAAE05R,WAAW,MAEjB97Q,EAAEm8T,uBAh+YH,SAA8C/5U,GAAK,OAAOw0S,GAA8Bx0S,EAAG,GAg+Y/Dg6U,CAAqCh6U,GAGxD,IADR4zB,EAAI5zB,EAAE05R,WAAW,KACJ9lQ,EAAI,KACjB5zB,EAAEsd,GAAG,EAAGM,EAAEq8T,UAAYj6U,EAAE05R,WAAW,EAAG,aAq4B3BwgD,CAAcT,GACvB/pO,EAAQioO,YAAcjoO,EAAQgoO,WAAYgC,EAAY,OACpD,CACJ,IAAIrnD,EAAI3sB,EAAU,SAAW,QAC7B,GAAGixC,GAAMA,EAAGh9C,QAAS+/E,EAn0BtB,SAAwBjoE,EAAM/hK,GAC7B,IAUIyqO,EAA0BnlD,EAAIolD,EAAMC,EAAMC,EAG1C5xI,EACA6xI,EAgEA3iB,EA9EAzjF,EAAK,CAAE7wC,KAAK,IACZkY,EAAS,GAET/zL,EAAQioF,EAAQqa,MAAQ,GAAK,GAC7BywN,EAAY,GACZpmR,EAAQ,GACRqmR,EAAe,KACfvoB,EAAM,GACNwoB,EAAY,GACZC,EAAW,GACDC,EAAY,GACtBxV,EAAU,GACVG,EAAS,GAGTsV,GAAa,EACbC,EAAM,GACNC,EAAU,GACVhQ,EAAW,CAAGvvH,OAAO,GAAIw0H,QAAQ,CAACz9C,UAAS,GAAQg5C,MAAM,CAAC,KAAQyK,EAAU,GAC5EgF,EAAU,SAAgB5iB,GAC7B,OAAGA,EAAM,EAAUjjB,GAAOijB,GACvBA,EAAM,IAAW2iB,EAAQ3iB,EAAI,IACzBjjB,GAAOijB,IAWX6iB,EAAU,SAAiB5iO,EAAMthB,EAAM2Y,GAC1C,KAAGwrO,EAAa,KACbxrO,EAAQ02M,WAAa/tM,EAAKpzG,GAAKyqG,EAAQ02M,YAAWy0B,GAAa,GAC9DA,GAAJ,CAUA,GATGnrO,EAAQq1M,YAAchuN,EAAK65M,IAAM75M,EAAK65M,GAAGjuS,MAbpB,SAAa01G,EAAMthB,EAAM2Y,GACjD,IAIIniG,EAJA4tU,EAAMpkP,EAAK65M,GAAGjuS,KACdw4U,GAAQA,EAAI1iB,aAAgB/oN,GAAYA,EAAQq1M,aACpDhuN,EAAK1uF,EAAI,GACT0uF,EAAK1uF,EAAEowT,YAAc0iB,EAAI1iB,aAErBlrT,EAAIyoT,GAAQglB,EAAQG,EAAIC,aAAcrkP,EAAK1uF,EAAEqwT,QAAU,CAAC3rE,IAAIx/O,KAC5DA,EAAIyoT,GAAQglB,EAAQG,EAAIE,aAActkP,EAAK1uF,EAAEmmP,QAAU,CAACzB,IAAIx/O,KAMd+tU,CAAmBjjO,EAAMthB,EAAM2Y,UAC1E3Y,EAAK2pN,YAAa3pN,EAAK65M,GAC9BupC,EAAW9hO,EACXuiO,EAAYhrC,GAAYv3L,GACpBjkD,GAAUA,EAAM/rD,GAAM+rD,EAAMvgC,IAAGugC,EAAQ,CAAC/rD,EAAE,CAACpD,EAAE,EAAEiG,EAAE,GAAG2oB,EAAE,CAAC5uB,EAAE,EAAEiG,EAAE,KAC9DmtG,EAAKpzG,EAAImvD,EAAM/rD,EAAEpD,IAAGmvD,EAAM/rD,EAAEpD,EAAIozG,EAAKpzG,GACrCozG,EAAKntG,EAAIkpD,EAAM/rD,EAAE6C,IAAGkpD,EAAM/rD,EAAE6C,EAAImtG,EAAKntG,GACrCmtG,EAAKpzG,EAAI,EAAImvD,EAAMvgC,EAAE5uB,IAAGmvD,EAAMvgC,EAAE5uB,EAAIozG,EAAKpzG,EAAI,GAC7CozG,EAAKntG,EAAI,EAAIkpD,EAAMvgC,EAAE3oB,IAAGkpD,EAAMvgC,EAAE3oB,EAAImtG,EAAKntG,EAAI,GAC7CwkG,EAAQ06N,aAAerzO,EAAK1zF,EAC9B,IAAI,IAAIk4U,EAAM,EAAGA,EAAMhW,EAAOhpU,SAAUg/U,EACvC,KAAGhW,EAAOgW,GAAK,GAAGlzU,EAAE6C,EAAImtG,EAAKntG,GAAKq6T,EAAOgW,GAAK,GAAGlzU,EAAEpD,EAAIozG,EAAKpzG,GACzDsgU,EAAOgW,GAAK,GAAG1nT,EAAE3oB,EAAImtG,EAAKntG,GAAKq6T,EAAOgW,GAAK,GAAG1nT,EAAE5uB,EAAIozG,EAAKpzG,GAA5D,CACA8xF,EAAKwwK,EAAIgpC,GAAag1B,EAAOgW,GAAK,IAC/BhW,EAAOgW,GAAK,GAAGlzU,EAAE6C,GAAKmtG,EAAKntG,GAAKq6T,EAAOgW,GAAK,GAAGlzU,EAAEpD,GAAKozG,EAAKpzG,UAAU8xF,EAAK1zF,EAC1E0zF,EAAK1zF,IAAG0zF,EAAK1zF,EAAI,GAAKkhU,GAAkBgB,EAAOgW,GAAK,GAAInnR,EAAOikD,EAAM4rN,EAAU3gI,IAClF,MAIE5zF,EAAQqa,OACNtiG,EAAI4wF,EAAKpzG,KAAIwiB,EAAI4wF,EAAKpzG,GAAK,IAC/BwiB,EAAI4wF,EAAKpzG,GAAGozG,EAAKntG,GAAK6rF,GAChBtvE,EAAImzT,GAAa7jP,IAGtBusG,EAAO,CACVuiE,KAAK,EACLw9C,MAAO,EACP2L,OAAQ,GACRoW,QAASA,EACTG,OAAQA,EACRiW,QAAS,GACTC,SAAU,GACVhsC,KAAM,EACNiX,SAAU,EACVg1B,UAAW,EACX32B,aAAcr1M,KAAaA,EAAQq1M,WACnCxZ,MAAO77L,KAAaA,EAAQisO,KAE1BjsO,EAAQylN,WAAU7xH,EAAK6xH,SAAWzlN,EAAQylN,UAE7C,IAAIoX,EAAS,GACT8L,EAAU,GACVjtB,EAAU,GAAID,EAAU,GAGxBymB,GAAU,EACV3N,EAAW,GACfA,EAASxoH,WAAanY,EAAK0rH,OAC3BiV,EAASmB,QAAU9hI,EAAK8hI,QACxBnB,EAASsB,OAASjiI,EAAKiiI,OACvBtB,EAASvzS,MAAQ,GACjBuzS,EAASC,IAAM,GACf,IAII0X,EAJAC,EAAU,GACVX,EAAa,EACbY,EAAW,EAAGC,EAAgB,GAC9BC,EAAkB,GAItB14I,EAAKojH,SAAW,KAChBt3B,EAAO,MAEP,IADA,IAAI6sD,GAAgB,EACdxqE,EAAKn0P,EAAIm0P,EAAKl1Q,OAAS,GAAG,CAC/B,IAAI8L,EAAIopQ,EAAKn0P,EACT4+T,EAAazqE,EAAKioB,WAAW,GACjC,GAAkB,IAAfwiD,GAAgC,QAAZL,EAAmB,MAC1C,IAAIt/U,EAAUk1Q,EAAKn0P,IAAMm0P,EAAKl1Q,OAAS,EAAIk1Q,EAAKioB,WAAW,GACvDh+E,EAAIy9H,GAAc+C,GAGtB,GAAGxgI,GAAKA,EAAEr4M,EAAG,CACZ,GAAGqsG,EAAQgoO,YACK,gBAAZmE,GAAqC,gBAARngI,EAAEz5M,EAAqB,MAGxD,GADA45U,EAAUngI,EAAEz5M,EACD,IAARy5M,EAAEz2M,GAAkB,IAAPy2M,EAAEz2M,EAAS,CAC1B,IAAI09T,EAAKlxD,EAAKioB,WAAW,GACzB,GAD6Bn9R,GAAU,GACnC+mM,EAAKuiE,KAAO88D,IAAOuZ,KAAoB,IAAHvZ,IAAU,EAAIA,GAAI,KAAQuZ,EAAY,MAAM,IAAIr4U,MAAM,gBAAkB8+T,EAAK,KAAOuZ,GAClH,IAAPxgI,EAAEz2M,IAAUwsQ,EAAKn0P,GAAK,GAAI/gB,GAAU,IAGxC,IAAIqI,EAAM,GACQA,EAAP,QAAR82M,EAAEz5M,EAAmBy5M,EAAEr4M,EAAEouQ,EAAMl1Q,EAAQ+mM,GAC/B21I,GAAMv9H,EAAG+1D,EAAMl1Q,EAAQ+mM,GAClC,IAAIisH,EAAK7zG,EAAEz5M,EACd,GAAiB,GAAdi5U,GAAyB,OAAN3rB,EAAa,SAEhC,OAAOA,GAEN,IAAK,WACTp7E,EAAG7wC,KAAK64I,SAAWpR,EAASiF,QAAQz9C,SAAW3tR,EAAK,MAChD,IAAK,eAAgBuvO,EAAG7wC,KAAK84I,cAAe,EAAM,MAClD,IAAK,WAGJ,GAFI94I,EAAKuiE,MAAK4L,EAAKn0P,EAAI,GACvBgmL,EAAKuiE,IAAMjhQ,GACP8qG,EAAQylN,SAAU,MAAM,IAAItxT,MAAM,8BACtC,GAAgB,MAAbe,EAAIyuT,MAAe,MAAM,IAAIxvT,MAAM,iCACtC,IAAIe,EAAIyuT,MAAO,MAAM,IAAIxvT,MAAM,yBAC/B,MACD,IAAK,cAAey/L,EAAKm4I,SAAW72U,EAAK,MACzC,IAAK,cAAe,MACpB,IAAK,WACJ,IAAIy3U,EAAQh3U,OAAOT,GAEnB,OAAOy3U,GACN,KAAK,MAAQA,EAAS,KAAM,MAC5B,KAAK,MAAQA,EAAQ,IAAO,MAC5B,KAAK,MAAQA,EAAS,KAEvBjtD,EAAO9rF,EAAKojH,SAAW21B,GACvBJ,GAAgB,EAChB,MACD,IAAK,UAAW34I,EAAKk4I,QAAU52U,EAAK,MACpC,IAAK,aAAc0+L,EAAKo4I,UAAY92U,EAAK,MACzC,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,cAAe,MACpB,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,iBACJuvO,EAAG7wC,KAAKisH,GAAM3qT,EAAK,MACpB,IAAK,cAAe0+L,EAAKg5I,YAAc13U,EAAK,MAC5C,IAAK,WAAY,MACjB,IAAK,uBAAwBuvO,EAAG7wC,KAAKi5I,SAAW33U,EAAK,MACrD,IAAK,SACDA,EAAI43U,UAAS/0T,EAAI,SAAW,UAC/B,MACD,IAAK,KACJqzT,EAAIv5U,KAAKqD,GAAM,MAChB,IAAK,SACL,IAAK,UACL,IAAK,iBACL,IAAK,QAAS,MAEd,IAAK,UACJq/T,EAAS1iU,KAAK,CAACqD,IACfq/T,EAASA,EAAS1nU,OAAO,GAAG2nU,IAAM,GAClC,MACD,IAAK,aACJD,EAASA,EAAS1nU,OAAO,GAAGgF,KAAKqD,GACjC,MACD,IAAK,QAAS,MACd,IAAK,MACJg3U,EAAW,CACVp4B,KAAM5+S,EAAI4+S,KACV6oB,IAAK9H,GAAkB3/T,EAAIm/S,KAAK3vP,EAAM,KAAK6vQ,EAAS3gI,IAElD1+L,EAAIi/S,KAAO,IAAG+3B,EAASxP,MAAQxnU,EAAIi/S,KAAO,GAC7CogB,EAASvzS,MAAMnvB,KAAKq6U,GAChB3X,EAAS,KAAMA,EAAS,GAAK,GAAIA,EAAS,GAAGC,IAAM,IACvDD,EAASA,EAAS1nU,OAAO,GAAGgF,KAAKqD,GAClB,yBAAZA,EAAI4+S,MAAmC5+S,EAAIi/S,KAAO,GACjDj/S,EAAIm/S,MAAQn/S,EAAIm/S,KAAK,IAAMn/S,EAAIm/S,KAAK,GAAG,IAA2B,aAArBn/S,EAAIm/S,KAAK,GAAG,GAAG,KAC9Di4B,EAAgBp3U,EAAIi/S,KAAO,GAAK,CAAEU,IAAKhU,GAAa3rS,EAAIm/S,KAAK,GAAG,GAAG,GAAG,MACxE,MACD,IAAK,cAAezgH,EAAKm5I,YAAc73U,EAAK,MAC5C,IAAK,cACkB,GAAnBq/T,EAAS1nU,SAAe0nU,EAAS,GAAK,GAAIA,EAAS,GAAGC,IAAM,IAC/DD,EAASA,EAAS1nU,OAAS,GAAG2nU,IAAMD,EAASA,EAAS1nU,OAAS,GAAG2nU,IAAI57T,OAAO1D,GAAMq/T,EAASC,IAAMD,EAASC,IAAI57T,OAAO1D,GAAM,MAC7H,IAAK,UAEJ,GAAG0+L,EAAKmsG,KAAO,EAAG,MACH,MAAZmsC,IAAkBA,EAAS/K,QAAUjsU,EAAI,IAC5C,MAED,IAAK,UAAW6iB,EAAI,YAAc7iB,EAAK,MACvC,IAAK,WAAuB,IAARA,GAAa0+L,EAAKioG,KAAK9+R,QAAQpP,MAAM,sBAAwBuH,GAAM,MACvF,IAAK,WAAY,IAAK,eAAgB,MAEtC,IAAK,cACJ41U,EAAU51U,EAAI4vF,KAAO5vF,EACrB0+L,EAAK0rH,OAAOztT,KAAKqD,EAAIxC,MACpB,MACF,IAAK,MACJ,KAAK84U,EAAY,MACjB,GAAG9mR,EAAMvgC,EAAG,CACX,GAAGugC,EAAMvgC,EAAE5uB,EAAI,GAAKmvD,EAAMvgC,EAAE3oB,EAAI,EAAG,CAGlC,GAFAkpD,EAAMvgC,EAAE5uB,IAAKmvD,EAAMvgC,EAAE3oB,IACrBuc,EAAI,QAAU8oR,GAAan8O,GACxBs7C,EAAQ02M,WAAa12M,EAAQ02M,WAAahyP,EAAMvgC,EAAE5uB,EAAG,CACvD,IAAIy3U,GAAQtoR,EAAMvgC,EAAE5uB,EACpBmvD,EAAMvgC,EAAE5uB,EAAIyqG,EAAQ02M,UAAY,EAChC3+R,EAAI,YAAcA,EAAI,QACtBA,EAAI,QAAU8oR,GAAan8O,GAC3BA,EAAMvgC,EAAE5uB,EAAIy3U,GAEbtoR,EAAMvgC,EAAE5uB,IAAKmvD,EAAMvgC,EAAE3oB,IAEnBqhU,EAAOhwU,OAAS,IAAGkrB,EAAI,WAAa8kT,GACpC8L,EAAQ97U,OAAS,IAAGkrB,EAAI,YAAc4wT,GACtCjtB,EAAQ7uT,OAAS,IAAGkrB,EAAI,SAAW2jS,GACnCD,EAAQ5uT,OAAS,IAAGkrB,EAAI,SAAW0jS,GACtC4f,EAASvvH,OAAOj6M,KAAKy0U,GAEL,KAAd0E,EAAkBC,EAAWlzT,EAAU+zL,EAAOk/H,GAAajzT,EAC9DA,EAAQioF,EAAQqa,MAAQ,GAAK,GAC5B,MACF,IAAK,MAeJ,GAdiB,IAAdu5E,EAAKmsG,OAAYnsG,EAAKmsG,KAAO,CACrC,EAAO,EACP,IAAO,EACP,KAAO,GACAysC,IAAe,CACtB,IAAO,EACP,IAAO,EACP,KAAO,EACP,KAAO,EACP,KAAO,EACP,EAAO,EACP,EAAO,GACAt3U,EAAI88S,UAAY,GACF,GAAbp+G,EAAKmsG,MAA4B,GAAf7qS,EAAI88S,SAA0B,IAAV98S,EAAI68M,KAAUne,EAAKmsG,KAAO,GAChEyrC,IAAc,MAKjB,GAJAL,GAAa,EACbpzT,EAAQioF,EAAQqa,MAAQ,GAAK,GAE1Bu5E,EAAKmsG,KAAO,IAAMwsC,IAAiBA,GAAgB,EAAM7sD,EAAO9rF,EAAKojH,SAAWh3M,EAAQg3M,UAAY,OACpGpjH,EAAKmsG,KAAO,EAAG,CACA,KAAdirC,IAAkBA,EAAY,UACjCtmR,EAAQ,CAAC/rD,EAAE,CAACpD,EAAE,EAAEiG,EAAE,GAAG2oB,EAAE,CAAC5uB,EAAE,EAAEiG,EAAE,IAE9B,IAAIyxU,GAAU,CAACnoP,IAAKi9K,EAAKn0P,EAAI/gB,EAAQ6F,KAAKs4U,GAC1CF,EAAUmC,GAAQnoP,KAAOmoP,GACzBr5I,EAAK0rH,OAAOztT,KAAKm5U,QAEbA,GAAaF,EAAUnyU,IAAM,CAACjG,KAAK,KAAKA,KAChC,IAAVwC,EAAI68M,KAAYh6L,EAAI,SAAW,SACrB,IAAV7iB,EAAI68M,KAAYh6L,EAAI,SAAW,SAClC8kT,EAAS,GACT8L,EAAU,GACV/0I,EAAKiiI,OAASA,EAAS,GACvBna,EAAU,GAAID,EAAU,GAExBymB,GAAU,EACVoE,EAAU,CAACrF,QAAQ6J,EAAUnyU,IAAI,CAACy5S,GAAG,IAAIA,GAAI1/S,KAAKs4U,GACjD,MAEF,IAAK,SAAU,IAAK,WAAY,IAAK,WACjB,SAAhBjzT,EAAI,WAAwBioF,EAAQqa,OAAStiG,EAAI7iB,EAAIK,IAAI,IAAIL,EAAIsG,GAAIuc,EAAImoR,GAAY,CAAC1kS,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,SAAQL,EAAIsG,EACpHw9L,EAAW,CAAEg4G,KAAM97S,EAAI87S,KAAM9P,GAAIkqC,EAAIl2U,EAAI87S,OAAO,GAAI9iS,EAAEhZ,EAAIA,IAAK2I,EAAE,KAC9DuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GACrC,MACF,IAAK,UACJg5F,EAAW,CAAEg4G,KAAM97S,EAAI87S,KAAM9P,GAAIkqC,EAAIl2U,EAAI87S,MAAO9iS,EAAEhZ,EAAIA,IAAK2I,EAAE3I,EAAI2I,GAC9DuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GACrC,MACF,IAAK,KACJg5F,EAAW,CAAEg4G,KAAM97S,EAAI87S,KAAM9P,GAAIkqC,EAAIl2U,EAAI87S,MAAO9iS,EAAEhZ,EAAIg4U,MAAOrvU,EAAE,KAC5DuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GACrC,MACF,IAAK,QACJ,IAAI,IAAI5mG,GAAIlE,EAAIsG,EAAGpC,IAAKlE,EAAI+2M,IAAK7yM,GAAG,CACnC,IAAI43S,GAAO97S,EAAIi4U,MAAM/zU,GAAElE,EAAIsG,GAAG,GAC9Bw9L,EAAU,CAAEg4G,KAAKA,GAAM9P,GAAGkqC,EAAIp6B,IAAO9iS,EAAEhZ,EAAIi4U,MAAM/zU,GAAElE,EAAIsG,GAAG,GAAIqC,EAAE,KAC7DuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEpC,GAAG7D,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GAElC,MACF,IAAK,UACJ,GAAc,UAAX9qG,EAAIA,IAAiB,CAAE61U,EAAe71U,EAAK,MAG9C,IAFA8jM,EAAW4wI,GAAU10U,EAAIA,IAAKA,EAAIyzG,KAAKqoM,KAAM97S,EAAI6iQ,KACxCmpC,GAAKkqC,EAAIpyI,EAASg4G,MACxBhxM,EAAQ06N,YAAa,CACvB,IAAIljB,GAAKtiT,EAAI8mT,QACb,GAAGxE,IAAMA,GAAG,IAAMA,GAAG,GAAG,IAAqB,UAAfA,GAAG,GAAG,GAAG,GAAgB,CACtD,IAAI41B,GAAM51B,GAAG,GAAG,GAAG,GAAG,GAAI61B,GAAM71B,GAAG,GAAG,GAAG,GAAG,GACxC81B,GAAMptC,GAAY,CAAC3qS,EAAE63U,GAAK5xU,EAAE6xU,KAC7B3X,EAAQ4X,IAAMt0I,EAASrlM,EAAI,GAAGkhU,GAAkB3/T,EAAI8mT,QAAQt3P,EAAMxvD,EAAIyzG,KAAK4rN,EAAU3gI,GACnFoF,EAAS6+D,IAAM73J,EAAQqa,OAAStiG,EAAIq1T,KAAM,IAAIC,IAAMt1T,EAAIu1T,MAAS,IAAIz1E,OACpE7+D,EAASrlM,EAAI,GAAGkhU,GAAkB3/T,EAAI8mT,QAAQt3P,EAAMxvD,EAAIyzG,KAAK4rN,EAAU3gI,GAE5Ew4I,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQr2U,EAAIyzG,KAAMqwF,EAAUh5F,GAC5B+qO,EAAe71U,EACd,MACF,IAAK,SACJ,IAAG61U,EAWI,MAAM,IAAI52U,MAAM,iCAVtB42U,EAAa71U,IAAMA,GACnB8jM,EAAW4wI,GAAU10U,EAAK61U,EAAapiO,KAAKqoM,KAAM,MACzC9P,GAAKkqC,EAAIpyI,EAASg4G,MACxBhxM,EAAQ06N,cACV1hI,EAASrlM,EAAI,GAAGkhU,GAAkBkW,EAAa/uB,QAASt3P,EAAOqmR,EAAapiO,KAAM4rN,EAAU3gI,IAE1Fw4I,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQR,EAAapiO,KAAMqwF,EAAUh5F,GACrC+qO,EAAe,KAEf,MACF,IAAK,QACJlV,EAAOhkU,KAAKqD,GACZ,IAAIq4U,GAAcrtC,GAAYhrS,EAAI,GAAGyD,GAErC,GADA2sR,EAAKtlL,EAAQqa,OAAStiG,EAAI7iB,EAAI,GAAGyD,EAAEpD,IAAI,IAAIL,EAAI,GAAGyD,EAAE6C,GAAKuc,EAAIw1T,IAC1DvtO,EAAQ06N,aAAep1C,EAAI,CAC7B,IAAIylD,EAAc,MAClB,IAAIwC,KAAgBjoD,EAAI,MACxBA,EAAG3xR,EAAI,GAAGkhU,GAAkB3/T,EAAI,GAAIwvD,EAAOxvD,EAAI,GAAIq/T,EAAU3gI,GAC7D0xF,EAAGztB,EAAIgpC,GAAa3rS,EAAI,IAExB,MACF,IAAK,UACJ,IAAIi2U,EAAY,MAChB,IAAInrO,EAAQ06N,YAAa,MACzB,GAAGwQ,EAAW,CAEb,IAAIH,EAAc,MAClBrV,EAAQx1B,GAAY6qC,EAAapiO,OAAQzzG,EAAI,KAC7CowR,EAAKtlL,EAAQqa,OAAStiG,EAAIgzT,EAAapiO,KAAKpzG,IAAI,IAAIw1U,EAAapiO,KAAKntG,GAAKuc,EAAImoR,GAAY6qC,EAAapiO,SACnG,IAAIh1G,EAAI,GAAGkhU,GAAkB3/T,EAAI,GAAIwvD,EAAO+lR,EAAUlW,EAAU3gI,GAErE,MACF,IAAK,WACJoF,EAAS4wI,GAAUpnB,EAAIttT,EAAIs4U,MAAM3vU,EAAG3I,EAAI87S,KAAM,KAC3CwR,EAAIttT,EAAIs4U,MAAM/8R,IAAGuoJ,EAASvoJ,EAAI+xQ,EAAIttT,EAAIs4U,MAAM/8R,GAC/CuoJ,EAASkoG,GAAKkqC,EAAIpyI,EAASg4G,MACxBo7B,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GACtC,MACD,IAAK,QAAYA,EAAQgiM,aACxBhpG,EAAW,CAAEg4G,KAAM97S,EAAI87S,KAAM9P,GAAIkqC,EAAIl2U,EAAI87S,MAAOnzS,EAAE,KAC/CuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,IACrC,MACF,IAAK,WAAY,GAAGA,EAAQgiM,WAC3B,IAAI,IAAIjgE,GAAK7sO,EAAIsG,EAAGumO,IAAM7sO,EAAI+2M,IAAK81B,GAAI,CACtC,IAAI0rG,GAAQv4U,EAAI87S,KAAKjvE,GAAG7sO,EAAIsG,GAC5Bw9L,EAAU,CAAEg4G,KAAKy8B,GAAOvsC,GAAGkqC,EAAIqC,IAAQ5vU,EAAE,KACtCuuU,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEumO,GAAIxsO,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GAEnC,MACF,IAAK,UACL,IAAK,QAAS,IAAK,YAClBg5F,EAAS4wI,GAAU10U,EAAIA,IAAKA,EAAI87S,KAAM,MAC7B9P,GAAKkqC,EAAIpyI,EAASg4G,MACxBo7B,EAAW,IAAGpzI,EAASvtF,EAAI4gO,EAAerzI,EAASg4G,MAAM,EAAK,KACjE24B,GAAe3wI,EAAUh5F,EAASykI,EAAG7wC,KAAK64I,UAC1ClB,EAAQ,CAAC/vU,EAAEtG,EAAIsG,EAAGjG,EAAEL,EAAIK,GAAIyjM,EAAUh5F,GACtC,MAED,IAAK,aACc,IAAfwrO,IAAkB9mR,EAAQxvD,GAC5B,MACF,IAAK,MACJstT,EAAMttT,EACL,MACF,IAAK,SACJ,GAAgB,GAAb0+L,EAAKmsG,KAAW,CAClBssC,EAAcD,KAAcl3U,EAAI,GAChC,IAAI,IAAIw4U,GAAQ,EAAGA,GAAQtB,EAAW,KAAiBtrD,EAAIl4B,OAAO8kF,KAAUx4U,EAAI,KAAnCw4U,IAC1CA,IAAS,KAAK5sD,EAAI50P,KAAKh3B,EAAI,GAAIk3U,EAAW,UAEzCtrD,EAAI50P,KAAKh3B,EAAI,GAAIA,EAAI,IACzB,MACF,IAAK,cACJm3U,EAAcD,KAAcl3U,EAC5B,IAAI,IAAIy4U,GAAQ,EAAGA,GAAQvB,EAAW,KAAiBtrD,EAAIl4B,OAAO+kF,KAAUz4U,IAA/By4U,IAC1CA,IAAS,KAAK7sD,EAAI50P,KAAKh3B,EAAKk3U,EAAW,KACzC,MAEF,IAAK,aAAcvP,EAASA,EAAOjkU,OAAO1D,GAAM,MAEhD,IAAK,MAAOyzU,EAAQzzU,EAAI04U,IAAI,IAAMh6I,EAAKi6I,QAAU34U,EAAK,MACtD,IAAK,MAAO0+L,EAAKi6I,QAAQC,IAAM54U,EAAK,MACpC,IAAK,SAAU0+L,EAAKi6I,QAAQE,OAAS74U,EAAK,MAE1C,IAAK,QACJ,IAAI01U,EAAO11U,EAAI,GAAGyD,EAAEpD,EAAGq1U,GAAQ11U,EAAI,GAAGivB,EAAE5uB,IAAKq1U,EAC5C,IAAID,EAAOz1U,EAAI,GAAGyD,EAAE6C,EAAGmvU,GAAQz1U,EAAI,GAAGivB,EAAE3oB,IAAKmvU,GAC5CrlD,EAAKtlL,EAAQqa,OAAStiG,EAAI6yT,IAAO,IAAID,GAAQ5yT,EAAImoR,GAAY,CAAC1kS,EAAEmvU,EAAKp1U,EAAEq1U,QAChEtlD,EAAG13Q,EAAI1Y,EAAI,IAEnB,MACF,IAAK,eACJ,IAAI01U,EAAO11U,EAAI,GAAGyD,EAAEpD,EAAGq1U,GAAQ11U,EAAI,GAAGivB,EAAE5uB,IAAKq1U,EAC5C,IAAID,EAAOz1U,EAAI,GAAGyD,EAAE6C,EAAGmvU,GAAQz1U,EAAI,GAAGivB,EAAE3oB,IAAKmvU,GAC5CrlD,EAAKtlL,EAAQqa,OAAStiG,EAAI6yT,IAAO,IAAID,GAAQ5yT,EAAImoR,GAAY,CAAC1kS,EAAEmvU,EAAKp1U,EAAEq1U,OAC9DtlD,EAAG13Q,IAAG03Q,EAAG13Q,EAAEunS,QAAUjgT,EAAI,IAEnC,MAGF,IAAK,OACJ,GAAG0+L,EAAKmsG,MAAQ,GAAKnsG,EAAKmsG,MAAQ,EAAG,MACrCza,EAAKtlL,EAAQqa,OAAStiG,EAAI7iB,EAAI,GAAGK,IAAI,IAAIL,EAAI,GAAGsG,GAAKuc,EAAImoR,GAAYhrS,EAAI,KACzE,IAAI84U,GAAUrF,EAAQzzU,EAAI,IACtBowR,IACAtlL,EAAQqa,OACNtiG,EAAI7iB,EAAI,GAAGK,KAAIwiB,EAAI7iB,EAAI,GAAGK,GAAK,IACnC+vR,EAAKvtQ,EAAI7iB,EAAI,GAAGK,GAAGL,EAAI,GAAGsG,GAAK,CAAEqC,EAAE,MAEnCynR,EAAKvtQ,EAAImoR,GAAYhrS,EAAI,KAAO,CAAE2I,EAAE,KAErC6mD,EAAMvgC,EAAE5uB,EAAIf,KAAKQ,IAAI0vD,EAAMvgC,EAAE5uB,EAAGL,EAAI,GAAGK,GACvCmvD,EAAM/rD,EAAEpD,EAAIf,KAAKM,IAAI4vD,EAAM/rD,EAAEpD,EAAGL,EAAI,GAAGK,GACvCmvD,EAAMvgC,EAAE3oB,EAAIhH,KAAKQ,IAAI0vD,EAAMvgC,EAAE3oB,EAAGtG,EAAI,GAAGsG,GACvCkpD,EAAM/rD,EAAE6C,EAAIhH,KAAKM,IAAI4vD,EAAM/rD,EAAE6C,EAAGtG,EAAI,GAAGsG,IAEpC8pR,EAAG9pR,IAAG8pR,EAAG9pR,EAAI,IACjBkvU,EAAO,CAACr1U,EAAEH,EAAI,GAAG2I,EAAEmwU,GAAQF,IAAIjwU,GAC/BynR,EAAG9pR,EAAE3J,KAAK64U,GACT,MAEF,QAAS,OAAO1+H,EAAEz5M,GAClB,IAAK,aAAc,MACnB,IAAK,QAAsB64U,EAAIl2U,EAAI87S,MAAO97S,EAAImyK,IA/mO3C/sK,SAAQ,SAAS2zU,GACfA,EAAI,MA8mO2C,MAEpD,IAAK,cAA+B,MACpC,IAAK,mBAAgC/4U,EAAI,GAAI,MAE7C,IAAK,UACJ,IAAI0+L,EAAKyhH,WAAY,MACrB,KAAMngT,EAAIivB,GAAKjvB,EAAIyD,GAClB+iT,EAAQxmT,EAAIivB,KAAO,CAAEhtB,MAAOjC,EAAIqlE,EAAE,KAC9B2nQ,IAAWA,GAAU,EAAM9a,GAAclyT,EAAIqlE,EAAE,MACnD6hP,GAAYV,EAAQxmT,EAAIivB,EAAE,IAE1B,MACF,IAAK,MACJ,IAAI+1S,GAAS,GACG,MAAbhlU,EAAIy/E,QAAiB8mO,EAAQvmT,EAAIK,GAAK2kU,GAAQA,GAAOvlP,MAAQz/E,EAAIy/E,OACjEz/E,EAAIyoP,SAAU89D,EAAQvmT,EAAIK,GAAK2kU,GAAQA,GAAOv8E,QAAS,GACvDzoP,EAAImnT,MACNZ,EAAQvmT,EAAIK,GAAK2kU,GACjBA,GAAO7d,IAAMnnT,EAAImnT,IAAK6d,GAAO5d,IAAMC,GAAMrnT,EAAImnT,MAE7C,MAEF,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,eACAtkS,EAAI,aAAam/S,GAAgBn/S,EAAI,YAAc,IACvDA,EAAI,YAAY8nS,EAAGptT,MAAM,GAAG,GAAG2L,eAAiBlJ,EAChD,MAED,IAAK,QACA6iB,EAAI,aAAam/S,GAAgBn/S,EAAI,YAAc,IACvDA,EAAI,YAAY0oL,OAASvrM,EAAIurM,OAC7B1oL,EAAI,YAAYs/S,OAASniU,EAAImiU,OAC7B,MAED,IAAK,UAEDniU,EAAI6mU,MAAKV,EAASQ,MAAM,GAAGE,KAAM,GACpC,MAED,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,MACL,IAAK,MACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,YACL,IAAK,OAAQ,MACb,IAAK,UAAW,IAAK,YAAa,MAClC,IAAK,YAAa,IAAK,YAAa,IAAK,SAAU,MACnD,IAAK,UAAW8O,EAAU31U,EAAK,MAC/B,IAAK,WACL,IAAK,SAAU,MACf,IAAK,MAAO,IAAK,OAAQ,IAAK,WAC9B,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,WAAY,MACjB,IAAK,UAAWm2U,EAAUn2U,EAAK,MAC/B,IAAK,QAASgzT,EAAShzT,EAAK,MAE5B,IAAK,kBACL,IAAK,aAGL,IAAK,YAGL,IAAK,QACL,IAAK,cACL,IAAK,aACL,IAAK,oBAGL,IAAK,aACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,QAGL,IAAK,UAGL,IAAK,OAGL,IAAK,YAGL,IAAK,cACL,IAAK,YACL,IAAK,YAEL,IAAK,MACL,IAAK,MAEL,IAAK,MAGL,IAAK,WAGL,IAAK,mBAKL,IAAK,aAGL,IAAK,SAEH,MACF,IAAK,WACL81U,EACM1E,EAAQ3N,SAAWzjU,GAAOoxU,EAAQ5zU,KAD7B2oU,EAASiF,QAAQ3H,SAAWzjU,GAAO,eAE5C,MACF,IAAK,cAIL,IAAK,OACL,IAAK,eAEL,IAAK,gBAAiB,MAGtB,IAAK,MAAO,IAAK,OAAQ,IAAK,SAAU,IAAK,aAAc,IAAK,aAAc,MAG9E,IAAK,KAAM,IAAK,OAAQ,MAGxB,IAAK,OAAQ,IAAK,SAAU,IAAK,aAGjC,IAAK,QACL,IAAK,eACL,IAAK,aAEL,IAAK,YACL,IAAK,YAGL,IAAK,aAAc,MACnB,IAAK,UAAW,IAAK,KAAM,IAAK,OAAQ,IAAK,OAG7C,IAAK,aACL,IAAK,QAAS,MACd,IAAK,eAAgB,IAAK,MAAO,IAAK,eAAgB,IAAK,MAC3D,IAAK,sBAAgF,MAErF,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,IAAK,OACrD,IAAK,YAAa,IAAK,iBAAkB,IAAK,eAC9C,IAAK,OAAQ,MACb,QAAS,OAAO82M,EAAEz5M,GAElB,IAAK,MACL,IAAK,QAAS,IAAK,MACnB,IAAK,aAAc,IAAK,WACxB,IAAK,QAAS,IAAK,OACnB,IAAK,OAAQ,IAAK,WAAY,IAAK,OAAQ,MAC3C,IAAK,WACL,IAAK,cAAe,IAAK,eAAgB,IAAK,UAAW,IAAK,UAAW,IAAK,WAAY,IAAK,mBAAoB,MACnH,IAAK,aAAc,IAAK,aACxB,IAAK,QAAS,IAAK,UAAW,IAAK,kBAAmB,IAAK,cAAe,IAAK,eAAgB,MAC/F,IAAK,WAAY,IAAK,aAAc,MACpC,IAAK,aAAc,IAAK,YAAa,IAAK,cAAe,MACzD,IAAK,aAAc,IAAK,WAAY,IAAK,QAAS,MAClD,IAAK,cAAe,IAAK,SAAU,IAAK,SACxC,IAAK,WAAY,MACjB,IAAK,cAAe,IAAK,OAAQ,IAAK,SACtC,IAAK,qBAAsB,MAC3B,IAAK,SAAU,IAAK,kBAAmB,MACvC,IAAK,MAAO,IAAK,UAAW,MAC5B,IAAK,YAAa,IAAK,eAAgB,MACvC,IAAK,cAAe,IAAK,YAAa,MACtC,IAAK,SAAU,IAAK,aACpB,IAAK,UAAW,MAChB,IAAK,gBAAiB,IAAK,QAAS,MAGpC,IAAK,OAAQ,IAAK,MAClB,IAAK,OAGL,IAAK,aACL,IAAK,MACL,IAAK,aAGL,IAAK,YACL,IAAK,aACL,IAAK,iBACL,IAAK,WACL,IAAK,kBAGL,IAAK,QACL,IAAK,SACL,IAAK,WAAY,MAGjB,IAAK,MAAO,IAAK,OAAQ,IAAK,OAAQ,IAAK,WAC3C,IAAK,SAGL,IAAK,aAAc,MACnB,IAAK,aAAc,IAAK,iBACxB,IAAK,eACL,IAAK,iBACL,IAAK,OACL,IAAK,WAGL,IAAK,mBAAoB,MACzB,IAAK,aAAc,IAAK,kBAAmB,IAAK,sBAAuB,MAEvE,IAAK,SAAU,IAAK,aAAc,MAGlC,IAAK,eAAgB,IAAK,YAAa,IAAK,MAC5C,IAAK,uBAAwB,IAAK,qBAAsB,MAExD,IAAK,SAAU,IAAK,mBAAoB,IAAK,WAAY,MAGzD,IAAK,WAAY,IAAK,gBAAiB,MAGvC,IAAK,cAAe,IAAK,aAAc,MAEvC,QAAS,OAAOy5M,EAAEz5M,GAElB,IAAK,YAAa,IAAK,QAAS,IAAK,YAAa,IAAK,UAAW,IAAK,OAAQ,IAAK,YAAa,IAAK,eAAgB,MAGtH,IAAK,eAAgB,IAAK,cAAe,IAAK,gBAAiB,MAC/D,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,MAChD,IAAK,cAAe,IAAK,WAAY,IAAK,eAAgB,MAG1D,IAAK,WAAY,IAAK,UAAW,IAAK,OAAQ,IAAK,aACnD,IAAK,MAAO,IAAK,SAAU,IAAK,eAAgB,IAAK,eACrD,IAAK,OAAQ,MACb,IAAK,WAAY,IAAK,cAAe,IAAK,UAAW,IAAK,MAAO,MACjE,IAAK,UAAW,IAAK,YACrB,IAAK,SACL,IAAK,UAAW,MAChB,IAAK,aAAc,IAAK,aACxB,IAAK,aACL,IAAK,aAAc,MACnB,QAAS,GAAGytG,EAAQ67L,IAAK,KAAM,uBAAyB7vF,EAAEz5M,WAErDwvQ,EAAKn0P,GAAK/gB,EAclB,OAZA43O,EAAG14B,WAAWh3L,EAAK+1T,GAAW3xU,MAAK,SAAS9D,EAAEC,GAAK,OAAOK,OAAON,GAAKM,OAAOL,MAAOoD,KAAI,SAAS3D,GAAG,OAAO+1U,EAAU/1U,GAAGrC,QACpHstG,EAAQgoO,aAAYvjG,EAAG34B,OAAOA,GAC/B24B,EAAG34B,QAAQwgI,EAAgBhyU,SAAQ,SAAS/E,EAAEzI,GAAK23O,EAAG34B,OAAO24B,EAAG14B,WAAWj/M,IAAI,eAAiByI,KACnGkvO,EAAGwmG,SAASA,EACZxmG,EAAGy0F,QAAU1W,EACb/9E,EAAGq8C,IAAMA,EAAI+H,YACVj1F,EAAKuiE,MAAK1xB,EAAGypG,WAAat6I,EAAKuiE,KAC/B+xD,IAAQzjF,EAAG0oF,OAASjF,GACvBzjF,EAAG0pG,SAAW,QACC5/U,IAAZs8U,IAAuBpmG,EAAG0pG,SAASC,QAAUvD,GAC7CtW,EAASvzS,MAAMn0B,OAAS,IAAGwuU,EAASoB,MAAQlI,EAASvzS,OACxDyjN,EAAG42F,SAAWA,EACP52F,EA+E0B4pG,CAAepnC,EAAGh9C,QAASjqJ,QAEvD,IAAI86H,EAAM0uD,EAAI1pK,KAAK+tK,EAAK,wBAA0B/yD,EAAMmvB,QAAS+/E,EAAY7qB,GAAItI,YAAY/7E,EAAMmvB,SAAUjqJ,EAAQtuF,KAAOixQ,EAAG3iL,QAE/H,MAAI86H,EAAM0uD,EAAI1pK,KAAK+tK,EAAK,yBAA0B/yD,EAAMmvB,QACxD,MAAM,IAAI91P,MAAM,+BADiD61U,EAAY7qB,GAAItI,YAAY/7E,EAAMmvB,SAAUjqJ,EAAQtuF,KAAOixQ,EAAG3iL,IAEjIA,EAAQsuO,SAAWzgD,EAAIvB,WAAa9C,EAAI1pK,KAAK+tK,EAAK,+BAA8Bm8C,EAAU5O,OA3mO9F,SAAsBvtC,GACrB,IAAI0gD,EAAS/kD,EAAIp1F,MAAMqhG,QAAQ,CAACxiF,KAAK,MAMrC,OALA46E,EAAIvB,UAAUhyR,SAAQ,SAAS5J,EAAG5D,GACjC,GAAmB,MAAhB4D,EAAE+B,OAAO,IAAe/B,EAAE6kC,MAAM,oBAAnC,CACA,IAAIi5S,EAAU99U,EAAEkN,QAAQ,UAAU,KAAKA,QAAQ,4BAA6B,IAC5E4rR,EAAIp1F,MAAM4gG,QAAQu5C,EAAQC,EAAS3gD,EAAIxB,UAAUv/R,GAAGm9P,aAE9Cu/B,EAAItvQ,MAAMq0T,GAomOqFE,CAAa5gD,IAGpH,IAAI/+R,EAAQ,GAMZ,OALG++R,EAAIvB,WAhFP,SAAyBuB,EAAK/+R,EAAOwB,GAEpC,IAAIo+U,EAAMllD,EAAI1pK,KAAK+tK,EAAK,+BACxB,GAAG6gD,GAAOA,EAAIj4U,KAAO,EAAG,IACvB,IAAIk4U,EAAapgC,GAAwBmgC,EAAKzpC,GAAkB4kC,IAChE,IAAI,IAAIzuU,KAAKuzU,EAAY7/U,EAAMsM,GAAKuzU,EAAWvzU,GAC9C,MAAM+oB,GAAI,GAAG7zB,EAAEurS,IAAK,MAAM13Q,EAG5B,IAAIyqT,EAAKplD,EAAI1pK,KAAK+tK,EAAK,uBACvB,GAAG+gD,GAAMA,EAAGn4U,KAAO,EAAG,IACrB,IAAIo4U,EAAUtgC,GAAwBqgC,EAAIzpC,GAAc0kC,IACxD,IAAI,IAAIlxU,KAAKk2U,EAAwB,MAAZ//U,EAAM6J,KAAY7J,EAAM6J,GAAKk2U,EAAQl2U,IAC7D,MAAMwrB,GAAI,GAAG7zB,EAAEurS,IAAK,MAAM13Q,EAEzBr1B,EAAMggV,cAAgBhgV,EAAMigV,gBAC9BxlC,GAAiBz6S,EAAMggV,aAAchgV,EAAMigV,cAAejgV,EAAOwB,UAC1DxB,EAAMggV,oBAAqBhgV,EAAMigV,eA+DxBC,CAAgBnhD,EAAK/+R,EAAOkxG,GAE9CgqO,EAAUt+B,MAAQs+B,EAAU3F,UAAYv1U,EACrCkxG,EAAQivO,YAAWjF,EAAUn8C,IAAMA,GAE/Bm8C,EAwBP,IAAI9qC,GAAiB,CACrB3gB,EAAQ,CAAEhsR,EAAE,YAAaoB,EAt5HzB,SAAyBV,EAAMpG,GAC9B,IAAI4+G,EAAI,GACJy+K,EAAMj3R,EAAK2a,EAAI/gB,EACnB4+G,EAAEl2G,EAAItC,EAAK+2R,WAAW,GACtB/2R,EAAK2a,GAAK,EACV,IAAI0kS,EAAQr/S,EAAK+2R,WAAW,GAC5B/2R,EAAK2a,GAAK,EACV,IAAInR,EAAQxJ,EAAK+2R,WAAW,GAK5B,OAJA/2R,EAAK2a,EAAIs8Q,EACE,EAARztR,IAAcgvG,EAAE92B,MAAgB,EAARl4E,GAChB,GAARA,IAAcgvG,EAAEkyI,QAAS,GACjB,GAARlhP,IAAcgvG,EAAE4wM,IAAM/J,EAAQ,IAC1B7mM,IA24HR,EAAQ,CAAEl5G,EAAE,eAAgBoB,EAxzH5B,SAA4BV,GAE3B,MAAO,CADIqwS,GAAerwS,MAwzH3B,EAAQ,CAAEV,EAAE,YAAaoB,EAhwHzB,SAAyBV,GAGxB,MAAO,CAFIqwS,GAAerwS,GACd+wS,GAAe/wS,GACN,OA8vHtB,EAAQ,CAAEV,EAAE,eAAgBoB,EAlyH5B,SAA4BV,GAG3B,MAAO,CAFIqwS,GAAerwS,GACbA,EAAK+2R,WAAW,GACP,OAgyHvB,EAAQ,CAAEz3R,EAAE,cAAeoB,EAhzH3B,SAA2BV,GAG1B,MAAO,CAFIqwS,GAAerwS,GACdA,EAAK+2R,WAAW,GACP,OA8yHtB,EAAQ,CAAEz3R,EAAE,cAAeoB,EAhxH3B,SAA2BV,GAG1B,MAAO,CAFIqwS,GAAerwS,GACdsxS,GAAWtxS,GACF,OA8wHtB,EAAQ,CAAEV,EAAE,YAAaoB,EAtvHzB,SAAyBV,GAGxB,MAAO,CAFIqwS,GAAerwS,GACdmvS,GAAmBnvS,GACV,SAovHtB,EAAQ,CAAEV,EAAE,cAAeoB,EA/xH3B,SAA2BV,GAG1B,MAAO,CAFIqwS,GAAerwS,GACfA,EAAK+2R,WAAW,GACP,OA6xHrB,EAAQ,CAAEz3R,EAAE,gBAAiBoB,EA3rH7B,SAA6BV,EAAMpG,EAAQ+mM,GAC1C,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACf87G,EAAO26L,GAAerwS,GAC1B01G,EAAKpzG,EAAIq+L,EAAK,QACd,IACItjM,EAAI,CAACq4G,EADGy5L,GAAmBnvS,GACT,OACtB,GAAG2gM,EAAK8mI,YAAa,CACpBznU,EAAK2a,GAAK,EACV,IAAIouS,EAAUua,GAA4BtjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAC9DtjM,EAAE,GAAKukU,GAAkB7Y,EAAS,EAAerzM,EAAMirF,EAAK2gI,SAAU3gI,QAElE3gM,EAAK2a,EAAIe,EACd,OAAOre,IAgrHR,EAAQ,CAAEiC,EAAE,aAAcoB,EA5sH1B,SAA0BV,EAAMpG,EAAQ+mM,GACvC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACf87G,EAAO26L,GAAerwS,GAC1B01G,EAAKpzG,EAAIq+L,EAAK,QACd,IACItjM,EAAI,CAACq4G,EADG47L,GAAWtxS,GACD,KACtB,GAAG2gM,EAAK8mI,YAAa,CACpBznU,EAAK2a,GAAK,EACV,IAAIouS,EAAUua,GAA4BtjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAC9DtjM,EAAE,GAAKukU,GAAkB7Y,EAAS,EAAerzM,EAAMirF,EAAK2gI,SAAU3gI,QAElE3gM,EAAK2a,EAAIe,EACd,OAAOre,IAisHR,GAAQ,CAAEiC,EAAE,cAAeoB,EA7uH3B,SAA2BV,EAAMpG,EAAQ+mM,GACxC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACf87G,EAAO26L,GAAerwS,GAC1B01G,EAAKpzG,EAAIq+L,EAAK,QACd,IACItjM,EAAI,CAACq4G,EADG11G,EAAK+2R,WAAW,GACN,KACtB,GAAGp2F,EAAK8mI,YAAa,CACpBznU,EAAK2a,GAAK,EACV,IAAIouS,EAAUua,GAA4BtjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAC9DtjM,EAAE,GAAKukU,GAAkB7Y,EAAS,EAAerzM,EAAMirF,EAAK2gI,SAAU3gI,QAElE3gM,EAAK2a,EAAIe,EACd,OAAOre,IAkuHR,GAAQ,CAAEiC,EAAE,eAAgBoB,EA9tH5B,SAA4BV,EAAMpG,EAAQ+mM,GACzC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACf87G,EAAO26L,GAAerwS,GAC1B01G,EAAKpzG,EAAIq+L,EAAK,QACd,IACItjM,EAAI,CAACq4G,EADG11G,EAAK+2R,WAAW,GACN,KACtB,GAAGp2F,EAAK8mI,YAAa,CACpBznU,EAAK2a,GAAK,EACV,IAAIouS,EAAUua,GAA4BtjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAC9DtjM,EAAE,GAAKukU,GAAkB7Y,EAAS,EAAerzM,EAAMirF,EAAK2gI,SAAU3gI,QAElE3gM,EAAK2a,EAAIe,EACd,OAAOre,IAmtHR,GAAQ,CAAEiC,EAAE,gBAAiBoB,EA/8E7B,SAA6BV,EAAMpG,GAClC,IAAIyD,EAAI,GAIR,OAHA2C,EAAK+2R,WAAW,GAChB15R,EAAE4+U,OAASj8U,EAAK+2R,WAAW,GAC3B/2R,EAAK2a,GAAK/gB,EAAS,EACZyD,IA28ER,GAAQ,CAAEiC,EAAE,aAAcoB,EAAEgvS,IAC5B,GAAQ,CAAEpwS,EAAE,kBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,mBACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,mBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,mBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,oBACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,cACZ,GAAQ,CAAEA,EAAE,YACZ,GAAQ,CAAEA,EAAE,UAAWoB,EA39EvB,SAAuBV,EAAMpG,EAAQ+mM,GACpC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACnBoG,EAAK2a,GAAK,EACV3a,EAAK2a,GAAK,EACV,IAAIumS,EAAOlhT,EAAK+2R,WAAW,GACvBt3R,EAAOmxS,GAAuB5wS,GAC9B+oT,EAAUwa,GAA4BvjU,EAAM,EAAG2gM,GAC/CioE,EAAU8nC,GAA2B1wS,GAOzCA,EAAK2a,EAAIe,EACT,IAAIoJ,EAAM,CAAE+7R,KAAKphT,EAAMy8U,IAAInzB,GAG3B,OAFG7H,EAAO,YAAWp8R,EAAI2kT,MAAQvoB,GAC9Bt4C,IAAS9jP,EAAIopT,QAAUtlE,GACnB9jP,IA08ER,GAAQ,CAAExlB,EAAE,oBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,UAAWoB,EAzwQvB,SAAuBV,EAAMpG,EAAQ+mM,GACpC,IAAI77K,EAAM,GAEVA,EAAIkyQ,GAAKh3R,EAAK+2R,WAAW,GAAK,GAE9B,IAAI+gC,EAhuKL,SAAyB93T,GACxB,IAAImI,EAAInI,EAAK+2R,WAAW,GAYxB,OAXA/2R,EAAK2a,IACK,CACTwhU,MAAW,EAAJh0U,EACPi0U,QAAa,EAAJj0U,EACTk0U,WAAgB,EAAJl0U,EACZm0U,WAAgB,EAAJn0U,EACZo0U,SAAc,GAAJp0U,EACVq0U,QAAa,GAAJr0U,EACTs0U,UAAe,GAAJt0U,EACXu0U,QAAa,IAAJv0U,GAqtKEw0U,CAAgB38U,GAW5B,OAVG83T,EAAMskB,UAASt3T,EAAI0lO,OAAS,GAC5BstE,EAAM2kB,YAAW33T,EAAIwwS,SAAW,GAChCwC,EAAM4kB,UAAS53T,EAAIq+M,OAAS,GAC5B20F,EAAM0kB,UAAS13T,EAAI2oS,OAAS,GAC5BqK,EAAMykB,WAAUz3T,EAAI4oS,QAAU,GAC9BoK,EAAMwkB,aAAYx3T,EAAI6oS,OAAS,GAGvB,MADD3tT,EAAK+2R,WAAW,KACPjyQ,EAAIylO,KAAO,GAEvBvqP,EAAK+2R,WAAW,IAEtB,KAAK,EAAGjyQ,EAAIywS,UAAY,cAAe,MACvC,KAAK,EAAGzwS,EAAIywS,UAAY,YAGzB,IAAI9qE,EAAYzqP,EAAK+2R,WAAW,GAChB,GAAbtsC,IAAgB3lO,EAAI2lO,UAAYA,GAEnC,IAAIojE,EAAS7tT,EAAK+2R,WAAW,GAC1B82B,EAAS,IAAG/oS,EAAI+oS,OAASA,GAE5B,IAAI+uB,EAAW58U,EAAK+2R,WAAW,GAM/B,OALG6lD,EAAW,IAAG93T,EAAImzS,QAAU2kB,GAE/B58U,EAAK2a,IACLmK,EAAI8lO,MA5zKL,SAAwB5qP,GACvB,IAAI8kB,EAAM,GAIN+3T,EAHI78U,EAAK+2R,WAAW,KAGD,EAEnBz1R,EAAQtB,EAAK+2R,WAAW,GACxB4a,EAAM3xS,EAAK+2R,WAAW,EAAG,KACzB+lD,EAAK98U,EAAK+2R,WAAW,GACrBgmD,EAAK/8U,EAAK+2R,WAAW,GACrBimD,EAAKh9U,EAAK+2R,WAAW,GAGzB,OAFA/2R,EAAK2a,IAEGkiU,GACP,KAAK,EAAG/3T,EAAI2sR,KAAO,EAAG,MACtB,KAAK,EACJ3sR,EAAIxjB,MAAQA,EACZ,IAAIm0T,EAAMjjB,GAAOlxS,GAEbm0T,IAAK3wS,EAAIslO,IAAMipE,GAAQoC,IAC3B,MACD,KAAK,EAEJ3wS,EAAIslO,IAAMipE,GAAQ,CAACypB,EAAIC,EAAIC,IAC3B,MACD,KAAK,EAAGl4T,EAAI4sR,MAAQpwS,EAIrB,OAFW,GAAPqwS,IAAU7sR,EAAI8sR,KAAOD,EAAM,EAAIA,EAAM,MAAQA,EAAM,OAEhD7sR,EA8xKKm4T,CAAej9U,GAEpBA,EAAK+2R,WAAW,IAEtB,KAAK,EAAGjyQ,EAAIoT,OAAS,QAAS,MAC9B,KAAK,EAAGpT,EAAIoT,OAAS,QAKtB,OAFApT,EAAIrlB,KAAO0vS,GAAmBnvS,GAEvB8kB,IAguQR,GAAQ,CAAExlB,EAAE,SAAUoB,EAzxQtB,SAAsBV,EAAMpG,GAG3B,MAAO,CAFQoG,EAAK+2R,WAAW,GACfoY,GAAmBnvS,MAwxQpC,GAAQ,CAAEV,EAAE,UAAWoB,EAAE42T,IACzB,GAAQ,CAAEh4T,EAAE,YAAaoB,EAAEi3T,IAC3B,GAAQ,CAAEr4T,EAAE,QAASoB,EAppQrB,SAAqBV,EAAMpG,GAC1B,IAAIq9R,EAAMj3R,EAAK2a,EAAI/gB,EACfsjV,EAAal9U,EAAK+2R,WAAW,GAC7BomD,EAAOn9U,EAAK+2R,WAAW,GAE3B,OADA/2R,EAAK2a,EAAIs8Q,EACF,CAAC8mB,KAAKm/B,EAAYhvC,SAASivC,KAgpQnC,GAAQ,CAAE79U,EAAE,YACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,oBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,aAAcoB,EAAEyhT,IAC5B,GAAQ,CAAE7iT,EAAE,kBACZ,GAAQ,CAAEA,EAAE,oBAAqBoB,EA7hPjC,SAAiCV,GAChC,IAAI8kB,EAAM,GACVA,EAAIjrB,EAAImG,EAAK+2R,WAAW,GACxB,IAAIrhL,EAAO,GACXA,EAAKpzG,EAAItC,EAAK+2R,WAAW,GACzBrhL,EAAKntG,EAAIvI,EAAK+2R,WAAW,GACzBjyQ,EAAIxiB,EAAI2qS,GAAYv3L,GACpB,IAAIlsG,EAAQxJ,EAAK+2R,WAAW,GAG5B,OAFW,EAARvtR,IAAasb,EAAInK,EAAI,KACb,EAARnR,IAAasb,EAAI1iB,EAAI,KACjB0iB,IAohPR,GAAQ,CAAExlB,EAAE,UAAWoB,EA9jHvB,cA+jHA,GAAQ,CAAEpB,EAAE,iBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,iBACZ,GAAQ,CAAEA,EAAE,kBACZ,GAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,eAAgBoB,EAAEirS,GAAWluS,EAAE,GAC3C,IAAQ,CAAE6B,EAAE,cACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBAAkBoB,EA3oH9B,SAA8BV,GAC7B,IAAIU,EAAIV,EAAK+2R,WAAW,GAExB,OADA/2R,EAAK2a,GAAK,GACH,CAAEmuT,IAAS,GAAJpoU,KAyoHf,IAAQ,CAAEpB,EAAE,gBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,YAAaoB,EA35HzB,SAAyBV,EAAMpG,GAC9B,IAAI4+G,EAAI,GAIR,OAFAx4G,EAAK2a,GAAK,GACV69F,EAAE/4G,KAAO+wS,GAAmBxwS,EAAMpG,EAAS,IACpC4+G,IAu5HR,IAAQ,CAAEl5G,EAAE,WAAYoB,EAAE8pU,GAAgB/sU,EAAE,IAC5C,IAAQ,CAAE6B,EAAE,UAAWoB,EAptHvB,cAqtHA,IAAQ,CAAEpB,EAAE,UACZ,IAAQ,CAAEA,EAAE,YAAaoB,EA7jFzB,SAAyBV,EAAMpG,GAC9B,IAAIyD,EAAI,GACJmM,EAAQxJ,EAAK+2R,WAAW,GAC5B15R,EAAE+/U,oBAAsBp9U,EAAK+2R,WAAW,GACxC,IAAIsmD,EAAWzjV,EAAS,EAAKu1S,GAAmBnvS,GAAQ,GAiBxD,OAhBGq9U,EAAQzjV,OAAS,IAAGyD,EAAEqoU,SAAW2X,GACpChgV,EAAEigV,wBAAkC,MAAR9zU,GAC5BnM,EAAEkgV,cAAwB,GAAR/zU,GAClBnM,EAAEmgV,sBAAgC,KAARh0U,GAC1BnM,EAAEuyR,YAAsB,EAARpmR,GAChBnM,EAAEoxU,iBAA2B,EAARjlU,GACrBnM,EAAEogV,sBAAgC,KAARj0U,GAC1BnM,EAAEqgV,qBAA+B,GAARl0U,GACzBnM,EAAEsgV,gBAA0B,KAARn0U,GACpBnM,EAAEugV,yBAAmC,OAARp0U,GAC7BnM,EAAEwgV,0BAAoC,IAARr0U,GAC9BnM,EAAEygV,8BAAwC,EAARt0U,GAClCnM,EAAE0gV,qBAA+B,GAARv0U,GACzBnM,EAAE2gV,YAAc,CAAC,MAAO,eAAgB,QAASx0U,GAAS,GAAM,GAChEnM,EAAE4gV,wBAAkC,MAARz0U,GAC5BnM,EAAE6gV,YAAc,CAAC,UAAW,QAAS,UAAW10U,GAAS,EAAK,GACvDnM,IAyiFR,IAAQ,CAAEiC,EAAE,gBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,cAAeoB,EAllF3B,SAA2BV,EAAMpG,GAChC,IAAI4+G,EAAI,GAKR,OAJAA,EAAEw1N,OAAShuU,EAAK+2R,WAAW,GAC3Bv+K,EAAE61N,OAASruU,EAAK+2R,WAAW,GAC3Bv+K,EAAE81N,SAAWz9B,GAAY7wS,EAAKpG,EAAO,GACrC4+G,EAAE/4G,KAAO0vS,GAAmBnvS,GACrBw4G,IA6kFR,IAAQ,CAAEl5G,EAAE,eACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,cAAeoB,EAxxS3B,SAA2BV,GAC1B,MAAO,CAACA,EAAK+2R,WAAW,GAAI/2R,EAAK+2R,WAAW,MAwxS7C,IAAQ,CAAEz3R,EAAE,aACZ,IAAQ,CAAEA,EAAE,kBAAmBoB,EAAE0wS,IACjC,IAAQ,CAAE9xS,EAAE,iBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,eAAgBoB,EAAEgqU,IAC9B,IAAQ,CAAEprU,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,6BACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,gBAAiBoB,EAAEmwS,IAC/B,IAAQ,CAAEvxS,EAAE,cACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,iBAAkBoB,EAAE+gT,IAChC,IAAQ,CAAEniT,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,aAAcoB,EAh+H1B,SAA0BV,EAAMpG,EAAQ+mM,GACvC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EACf01U,EAAMn+B,GAAUnxS,GAChBm+U,EAAcn+U,EAAK+2R,WAAW,GAC9B15R,EAAI,CAACiyU,GACT,GADejyU,EAAE,GAAK8gV,EACnBx9I,EAAK8mI,YAAa,CACpB,IAAI1e,EAAUsa,GAA6BrjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAC/DtjM,EAAE,GAAK0rT,OACD/oT,EAAK2a,EAAIe,EAChB,OAAOre,IAw9HR,IAAQ,CAAEiC,EAAE,aAAcoB,EAp9H1B,SAA0BV,EAAMpG,EAAQ+mM,GACvC,IAAIjlL,EAAM1b,EAAK2a,EAAI/gB,EAEfyD,EAAI,CADE+zS,GAAmBpxS,EAAM,KAEnC,GAAG2gM,EAAK8mI,YAAa,CACpB,IAAI1e,EAAUya,GAA8BxjU,EAAM0b,EAAM1b,EAAK2a,EAAGgmL,GAChEtjM,EAAE,GAAK0rT,EACP/oT,EAAK2a,EAAIe,OACH1b,EAAK2a,EAAIe,EAChB,OAAOre,IA48HR,IAAQ,CAAEiC,EAAE,YACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,iCACZ,IAAQ,CAAEA,EAAE,+BACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,aAAcoB,EAt+H1B,SAA0BV,GACzB,IAAIkkU,EAAU,GAEd,OADA0G,GAAcvjU,SAAQ,SAASkY,GAAK2kT,EAAQ3kT,GAAK+xR,GAAWtxS,MACrDkkU,IAo+HR,IAAQ,CAAE5kU,EAAE,mBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,eAAgBoB,EA7uI5B,cA8uIA,IAAQ,CAAEpB,EAAE,eACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,WAAYoB,EAjkIxB,SAAwBV,EAAMpG,GAC7B,IAAI8hB,EAAM1b,EAAK2a,EAAI/gB,EACf01U,EAAMl+B,GAAmBpxS,EAAM,IAC/BovU,EAAQ1+B,GAA2B1wS,GACnC+b,EAAMozR,GAAmBnvS,GACzB+pU,EAAU56B,GAAmBnvS,GAC7Bo+U,EAAUjvC,GAAmBnvS,GACjCA,EAAK2a,EAAIe,EACT,IAAIre,EAAI,CAAEiyU,IAAIA,EAAKF,MAAMA,EAAOrzT,IAAIA,EAAKqiU,QAAQA,GAEjD,OADGrU,IAAS1sU,EAAE6kT,QAAU6nB,GACjB1sU,IAwjIR,IAAQ,CAAEiC,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,aAAcoB,EAAEmwS,IAC5B,IAAQ,CAAEvxS,EAAE,oBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,mBAAoBoB,EAAEq7T,IAClC,IAAQ,CAAEz8T,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,kBAAmBoB,EApxP/B,SAA+BV,GAC9B,IAAI8kB,EAAM,GACVA,EAAIg3S,QAAU97T,EAAK+2R,WAAW,GAC9B,IAAIu4C,EAAMl+B,GAAmBpxS,EAAM,IAInC,OAHA8kB,EAAIwqT,IAAMA,EAAI5pU,EACdof,EAAI88R,IAAM3U,GAAYqiC,EAAI5pU,GAC1B1F,EAAK2a,GAAK,GACHmK,IA8wPR,IAAQ,CAAExlB,EAAE,iBACZ,IAAQ,CAAEA,EAAE,iBAAkBoB,EAAE0vS,IAChC,IAAQ,CAAE9wS,EAAE,sBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,2BACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,iCACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,YAAaoB,EA9/GzB,SAAyBV,EAAMpG,GAG9B,OAFAoG,EAAK2a,GAAK,GAEH,CAAElb,KADE0vS,GAAmBnvS,MA6/G/B,IAAQ,CAAEV,EAAE,kBACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,0BACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,oBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,iBACZ,IAAQ,CAAEA,EAAE,qBACZ,IAAQ,CAAEA,EAAE,wBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,sBACZ,IAAQ,CAAEA,EAAE,yBACZ,IAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,mCACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,YAAaoB,EApnIzB,cAqnIA,KAAQ,CAAEpB,EAAE,mBACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,gCACZ,KAAQ,CAAEA,EAAE,8BACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,8BACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,qCACZ,KAAQ,CAAEA,EAAE,mCACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,oCACZ,KAAQ,CAAEA,EAAE,kCACZ,KAAQ,CAAEA,EAAE,kCACZ,KAAQ,CAAEA,EAAE,gCACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,kCACZ,KAAQ,CAAEA,EAAE,gCACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,gCACZ,KAAQ,CAAEA,EAAE,8BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,sCACZ,KAAQ,CAAEA,EAAE,oCACZ,KAAQ,CAAEA,EAAE,gCACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,mCACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,iCACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,qCACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,uBACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,8BACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,yBACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,0BACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,8BACZ,KAAQ,CAAEA,EAAE,4BACZ,KAAQ,CAAEA,EAAE,6BACZ,KAAQ,CAAEA,EAAE,2BACZ,KAAQ,CAAEA,EAAE,+BACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,wBACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,kBACZ,MAAQ,CAAEA,EAAE,KAGRotS,GAASvI,EAAU8H,GAAgB,KAGnCuqC,GAAgB,CACpB,EAAQ,CAAEl3U,EAAE,WAAYoB,EAxiXxB,SAAwBouQ,GACvB,IAAIp5J,EAAOooM,GAAchvC,KACvBA,EAAKn0P,EACP,IAAIhU,EAAM2qS,GAAWxiC,GAGrB,OAFAp5J,EAAK9qG,EAAI,IACT8qG,EAAKzzG,IAAM0E,EACJ+uG,IAmiXR,EAAQ,CAAEp2G,EAAE,WAAYoB,EAljXxB,SAAwBouQ,EAAMl1Q,EAAQ+mM,GACrC,IAAIjrF,EAAOooM,GAAchvC,KACvBA,EAAKn0P,EACP,IAAIkV,EAAM0tR,GAAuBzuC,EAAMl1Q,EAAU+mM,GAGjD,OAFAjrF,EAAK9qG,EAAI,MACT8qG,EAAKzzG,IAAM4tB,EACJ6lF,IA6iXR,EAAQ,CAAEp2G,EAAE,UAAWoB,EAAEqiU,IACzB,EAAQ,CAAEzjU,EAAE,MAAOoB,EAAEo+S,IACrB,GAAQ,CAAEx/S,EAAE,MAAOoB,EAAE27S,IACrB,GAAQ,CAAE/8S,EAAE,YAAaoB,EAAE67S,IAC3B,GAAQ,CAAEj9S,EAAE,WAAYoB,EAAE67S,IAC1B,GAAQ,CAAEj9S,EAAE,gBAAiBoB,EAAEm6S,IAC/B,GAAQ,CAAEv7S,EAAE,cAAeoB,EAAEm6S,IAC7B,GAAQ,CAAEv7S,EAAE,YAAaoB,EAAE4wS,IAC3B,GAAQ,CAAEhyS,EAAE,WAAYoB,EAAEm6S,IAC1B,GAAQ,CAAEv7S,EAAE,UAAWoB,EAAEm6S,IACzB,GAAQ,CAAEv7S,EAAE,WAAYoB,EAAE67S,IAC1B,GAAQ,CAAEj9S,EAAE,SAAUoB,EAAEw/S,IACxB,GAAQ,CAAE5gT,EAAE,SAAUoB,EAAEw/S,IACxB,GAAQ,CAAE5gT,EAAE,cAAeoB,EAAE+gT,IAC7B,GAAQ,CAAEniT,EAAE,MAAOoB,EAAEqgT,IACrB,GAAQ,CAAEzhT,EAAE,aAAcoB,EAAEm6S,IAC5B,GAAQ,CAAEv7S,EAAE,sBACZ,GAAQ,CAAEA,EAAE,wBACZ,GAAQ,CAAEA,EAAE,OAAQoB,EApzXpB,SAAoBouQ,EAAMl1Q,EAAQ+mM,GAEjC,OAZD,SAAsBmuE,EAAMl1Q,EAAQ+mM,GACnC,KAAGA,EAAKmsG,KAAO,GAAf,CACA,IAAIzyR,EAAMy0P,EAAKioB,WAAW,GAAI/2I,EAAM8uH,EAAKioB,WAAW,GAChDvtR,EAAQslQ,EAAKioB,WAAW,GAAIsnD,EAAQvvE,EAAKioB,WAAW,GACpDunD,EAAW/gC,GAAuBzuC,EAAM,EAAGnuE,GAE/C,OADGA,EAAKmsG,KAAO,GAAGh+B,EAAKioB,WAAW,GAC3B,CAAC,CAACz0R,EAAMiG,EAAEy3I,GAAMs+L,EAAUD,EAAO70U,IAMjC+0U,CAAazvE,EAAMl1Q,EAAQ+mM,KAmzXnC,GAAQ,CAAErhM,EAAE,aACZ,GAAQ,CAAEA,EAAE,WAAYoB,EAAEm6S,IAC1B,GAAQ,CAAEv7S,EAAE,aAAcoB,EAAEy/S,IAC5B,GAAQ,CAAE7gT,EAAE,YACZ,GAAQ,CAAEA,EAAE,aAAcoB,EAAE4wS,IAC5B,GAAQ,CAAEhyS,EAAE,cAAeoB,EAAE4wS,IAC7B,GAAQ,CAAEhyS,EAAE,YAAaoB,EAAE4wS,IAC3B,GAAQ,CAAEhyS,EAAE,eAAgBoB,EAAE4wS,IAC9B,GAAQ,CAAEhyS,EAAE,cAAeoB,EAAEm6S,IAC7B,GAAQ,CAAEv7S,EAAE,YAAaoB,EAAEm6S,IAC3B,GAAQ,CAAEv7S,EAAE,WAAYoB,EA/rTxB,SAAwBouQ,EAAMl1Q,EAAQ+mM,GACrC,IAAItjM,EAAI,CAAGy3S,KAAMn0G,EAAKmsG,MAAQ,EAAIh+B,EAAKioB,WAAW,GAAK,GAGvD,OAFG15R,EAAEy3S,KARN,SAA8BhmC,EAAMl1Q,EAAQqxS,GAC3C,IAAI5tS,EAAI4tS,GAAM,GAAI5tS,EAAEmhV,KAAO1vE,EAAKioB,WAAW,GAAIjoB,EAAKn0P,GAAK,EAC3C,IAAXtd,EAAEmhV,KAAYnhV,EAAEohV,KA5HpB,SAAyB3vE,GACxB,IAAIzxQ,EAAI,GACJwvT,EAAOxvT,EAAEqhV,sBAAwBxuB,GAAoBphD,EAAM,GAC/D,GAAiB,GAAd+9C,EAAKsD,OAA4B,GAAdtD,EAAKuD,MAAY,KAAM,6BAA+BvD,EAAKsD,MAAQ,MAAQtD,EAAKuD,MAItG,OAHA/yT,EAAE2zT,KAAOliD,EAAKioB,WAAW,IACzB15R,EAAEshV,kBAAoB7vE,EAAKioB,WAAW,IACtC15R,EAAEuhV,sBAAwB9vE,EAAKioB,WAAW,IACnC15R,EAqHmBwhV,CAAgB/vE,GACrCzxQ,EAAEohV,KAzIR,SAA+B3vE,EAAMl1Q,GACpC,IAAIyD,EAAI,GACJwvT,EAAOxvT,EAAEqhV,sBAAwBxuB,GAAoBphD,EAAM,GAC/D,GADmEl1Q,GAAU,EAC5D,GAAdizT,EAAKuD,MAAY,MAAM,IAAIlvT,MAAM,oCAAsC2rT,EAAKuD,OAC/E,GAAGvD,EAAKsD,MAAQ,GAAKtD,EAAKsD,MAAQ,EAAG,MAAM,IAAIjvT,MAAM,oCAAsC2rT,EAAKsD,OAChG9yT,EAAEmzT,MAAQ1hD,EAAKioB,WAAW,GAAIn9R,GAAU,EACxC,IAAIo9R,EAAKloB,EAAKioB,WAAW,GAGzB,OAH6Bn9R,GAAU,EACvCyD,EAAEyhV,iBAAmBvuB,GAAuBzhD,EAAMkoB,GAAKp9R,GAAUo9R,EACjE35R,EAAE0hV,mBAAqBhuB,GAAyBjiD,EAAMl1Q,GAC/CyD,EAgIO2hV,CAAsBlwE,EAAMl1Q,GAK/BqlV,CAAqBnwE,EAAMl1Q,EAAO,EAAGyD,GAjBjD,SAA8ByxQ,EAAMl1Q,EAAQ+mM,EAAM77K,GACjD,IAXsC0tS,EAClC0sB,EAAmBC,EAUnB9hV,EAAI,CAAG/C,IAAKiiT,GAAYztC,GAAOswE,kBAAmB7iC,GAAYztC,IAC/DnuE,EAAK6xH,WAAUn1T,EAAEgiV,SAAWztB,GAAsCjxH,EAAK6xH,WAC1E1tS,EAAI4rS,MAAQrzT,EAAE+hV,oBAAsB/hV,EAAEgiV,SACnCv6T,EAAI4rS,QAAO5rS,EAAIyxT,QAdoB/jB,EAca7xH,EAAK6xH,SAbpD0sB,EAAgB,EAAGC,EAAW/sB,GAA8BI,GACzD,SAASisB,GACf,IAAI5uC,EAlB2B,SAAS2iB,EAAUisB,EAAMS,EAAeC,EAAUtvC,GAIlF,IAAImjB,EAAOssB,EACX,IAHIzvC,IAAGA,EAAI4uC,GACPU,IAAUA,EAAW/sB,GAeW,KAbhCY,EAAQ,EAAGA,GAASyrB,EAAK7kV,SAAUo5T,EACtCssB,EAAQb,EAAKzrB,GAEbssB,EAAoC,MADpCA,GAASH,EAASD,KACD,EAAMI,GAAO,GAC9BzvC,EAAEmjB,GAASssB,IACTJ,EAEH,MAAO,CAACrvC,EAAGqvC,EAAeC,GAMjBI,CAA2B,EAAId,EAAMS,EAAeC,GAE5D,OADAD,EAAgBrvC,EAAE,GACXA,EAAE,MAuBL2vC,CAAqB1wE,EAAMnuE,EAAKmsG,KAAiCnsG,EAAMtjM,GACrEA,IA4rTR,GAAQ,CAAEiC,EAAE,OAAQoB,EAxsYpB,SAAoBouQ,EAAMl1Q,EAAQ+mM,GACjC,IAAItjM,EAAI,CACPoiV,SAAU3wE,EAAKioB,WAAW,GAC1B2oD,GAAI5wE,EAAKioB,WAAW,IAErB,OAAQp2F,GAAQA,EAAKmsG,MAAS,GAC7B,KAAK,EAAG,MACR,KAAK,EAAG,KAAK,EAAGh+B,EAAKn0P,GAAK,EAAG,MAC7B,QAASm0P,EAAKn0P,GAAK,GAGpB,OADAtd,EAAEoC,KAAOk9S,GAA2B7tC,EAAM,EAAGnuE,GACtCtjM,IA8rYR,GAAQ,CAAEiC,EAAE,YAAaoB,EAAE67S,IAC3B,GAAQ,CAAEj9S,EAAE,YACZ,GAAQ,CAAEA,EAAE,UAAWoB,EArvYvB,SAAuBouQ,GAItB,MAAO,CAAE6wE,IAAK,CAHJ7wE,EAAKioB,WAAW,GAAUjoB,EAAKioB,WAAW,IAG1B6oD,IAAK,CAHgC9wE,EAAKioB,WAAW,GAAWjoB,EAAKioB,WAAW,IAG7Dy5B,MAFjC1hD,EAAKioB,WAAW,GAE+B8oD,OAFjB/wE,EAAKioB,WAAW,GAGzD+oD,SAHyEhxE,EAAKioB,WAAW,GAGpEgpD,SAFRjxE,EAAKioB,WAAW,GAEWipD,SAFKlxE,EAAKioB,WAAW,MAmvY/D,GAAQ,CAAEz3R,EAAE,SAAUoB,EAAEm6S,IACxB,GAAQ,CAAEv7S,EAAE,OAAQoB,EAjtYpB,cAktYA,GAAQ,CAAEpB,EAAE,WAAYoB,EAAE67S,IAC1B,GAAQ,CAAEj9S,EAAE,OACZ,GAAQ,CAAEA,EAAE,QACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,YACZ,GAAQ,CAAEA,EAAE,cAAeoB,EAAE67S,IAC7B,GAAQ,CAAEj9S,EAAE,OACZ,GAAQ,CAAEA,EAAE,OACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,cAAeoB,EAz4Y3B,SAA2BouQ,EAAMl1Q,EAAQ+mM,GACxC,GAAGA,EAAKuiE,IAAyB,OAAlB4L,EAAKn0P,GAAK/gB,EAAe,GACxC,IAAI+gB,EAAIm0P,EAAKn0P,EAETslU,EAAW1iC,GAAuBzuC,EAAM,EAAGnuE,GAE/C,OADAmuE,EAAKioB,WAAWn9R,EAAS+gB,EAAIm0P,EAAKn0P,GAC3BslU,IAo4YR,GAAQ,CAAE3gV,EAAE,MAAOoB,EA5zXnB,SAAmBouQ,EAAMl1Q,EAAQ+mM,GAChC,GAAGA,GAAQA,EAAKmsG,KAAO,EAAG,OAsB3B,SAAwBh+B,EAAMl1Q,EAAQ+mM,GACrCmuE,EAAKn0P,GAAK,EACV,IAAI+jS,EAAK5vC,EAAKioB,WAAW,GACrB16Q,EAAKyyP,EAAKioB,WAAW,GACrB+gC,EAAQhpD,EAAKioB,WAAW,GAC5BjoB,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACV/gB,GAAU,GACV,IAAIsmV,EAAM,GAEV,OADAA,EAAIthV,MAAMkjT,GAAcpD,IAAK/S,IAAW78B,EAAMl1Q,EAAQ+mM,IAC/C,CAAEg6I,IAAK,CAACt+T,EAAIqiS,EAAIoZ,GAAQ9U,GAAGk9B,GAxCDC,CAAerxE,EAAMl1Q,EAAQ+mM,GAC9D,IAAIg6I,EAAMl8B,GAAY3vC,GAEtB,MAAO,CAAE6rE,IAAKA,EAAK33B,GAxpBpB,SAAuBl0C,EAAMl1Q,GAG5B,IAFA,IAAIq9R,EAAMnoB,EAAKn0P,EAAI/gB,EACfsmV,EAAM,GACJpxE,EAAKn0P,EAAIs8Q,GAAK,CACnB,IAAI+rB,EAAKl0C,EAAKioB,WAAW,GACzBjoB,EAAKn0P,GAAG,EACR,IACCulU,EAAIthV,KAAKggT,GAAMoE,GAAIl0C,EAAMmoB,EAAMnoB,EAAKn0P,IACnC,MAAMuW,GAAmB,OAAd49O,EAAKn0P,EAAIs8Q,EAAYipD,GAGnC,OADGpxE,EAAKn0P,GAAKs8Q,IAAKnoB,EAAKn0P,EAAIs8Q,GACpBipD,EA4oBGE,CAActxE,EAAMl1Q,EAAO,GAAI+gV,EAAI,OA0zX9C,GAAQ,CAAEr7U,EAAE,YACZ,GAAQ,CAAEA,EAAE,iBAAkBoB,EAAEm6S,IAChC,GAAQ,CAAEv7S,EAAE,YACZ,GAAQ,CAAEA,EAAE,QACZ,GAAQ,CAAEA,EAAE,aAAcoB,EAAEm6S,IAC5B,IAAQ,CAAEv7S,EAAE,UAAWoB,EAAEyhT,IACzB,IAAQ,CAAE7iT,EAAE,OAAQoB,EArhYpB,SAAoBouQ,GACnBA,EAAKn0P,GAAK,EACV,IAAImK,EAAM,CAACgqP,EAAKioB,WAAW,GAAIjoB,EAAKioB,WAAW,IAG/C,GAFc,IAAXjyQ,EAAI,IAAUA,EAAI,KACP,IAAXA,EAAI,IAAUA,EAAI,KAClBA,EAAI,GAAK,GAAKA,EAAI,GAAK,EAAG,MAAM,IAAI5jB,MAAM,gBAAkB4jB,EAAI/Z,KAAK,MACxE,OAAO+Z,IAghYR,IAAQ,CAAExlB,EAAE,SAAUoB,EA93YtB,SAAsBouQ,EAAMl1Q,EAAQ+mM,GAEnC,MAAO,CAAEk5I,QAAiB,IADdl5I,GAAqB,GAAbA,EAAKmsG,MAAuB,GAAVlzS,EAAck1Q,EAAKioB,WAAW,IAAMjoB,EAAKn0P,GAAK/gB,EAAQ,OA83Y7F,IAAQ,CAAE0F,EAAE,UAAWoB,EAAE67S,IACzB,IAAQ,CAAEj9S,EAAE,UAAWoB,EAAEm6S,IACzB,IAAQ,CAAEv7S,EAAE,UAAWoB,EAAEm6S,IACzB,IAAQ,CAAEv7S,EAAE,cAAeoB,EA53Y3B,SAA2BouQ,EAAMl1Q,EAAQ+mM,GACxC,IAAI9uG,EAAMi9K,EAAKioB,WAAW,GACtBrsC,EAA8B,EAArBokB,EAAKioB,WAAW,GACzBj4E,EAAKgwD,EAAKioB,WAAW,GACzB,OAAOj4E,GACN,KAAK,EAAGA,EAAK,YAAa,MAC1B,KAAK,EAAGA,EAAK,aAAc,MAC3B,KAAK,EAAGA,EAAK,aAAc,MAC3B,KAAK,EAAGA,EAAK,YAEd,IAAIr/M,EAAOk9S,GAA2B7tC,EAAM,EAAGnuE,GAE/C,OADmB,IAAhBlhM,EAAK7F,SAAc6F,EAAO,UACtB,CAAEoyF,IAAIA,EAAKstN,GAAGz0D,EAAQ5rC,GAAGA,EAAIr/M,KAAKA,KAi3Y1C,IAAQ,CAAEH,EAAE,gBACZ,IAAQ,CAAEA,EAAE,UAAWoB,EA/sXvB,SAAuBouQ,GACtB,IAAe3mQ,EAAX9K,EAAI,CAAC,EAAE,GAGX,OAFA8K,EAAI2mQ,EAAKioB,WAAW,GAAI15R,EAAE,GAAKi1S,GAAYnqS,IAAMA,EACjDA,EAAI2mQ,EAAKioB,WAAW,GAAI15R,EAAE,GAAKi1S,GAAYnqS,IAAMA,EAC1C9K,IA4sXR,IAAQ,CAAEiC,EAAE,UAAWoB,EAAE67S,IACzB,IAAQ,CAAEj9S,EAAE,QACZ,IAAQ,CAAEA,EAAE,UAAWoB,EA5rXvB,SAAuBouQ,GAGtB,IAFA,IAAIuxE,EAAMvxE,EAAKioB,WAAW,GACtB15R,EAAI,GACFgjV,KAAM,GAAGhjV,EAAEuB,KAAKi/S,GAAc/uC,IACpC,OAAOzxQ,IAyrXR,IAAQ,CAAEiC,EAAE,QACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,sBAAuBoB,EAAE67S,IACrC,IAAQ,CAAEj9S,EAAE,kBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,MAAOoB,EAAEgiT,IACrB,IAAQ,CAAEpjT,EAAE,QAASoB,EArqXrB,SAAqBouQ,EAAMl1Q,GAC1B,IAAIyD,EAAI,GACR,OAAGzD,EAAS,KACZk1Q,EAAKn0P,GAAK,GACVtd,EAAEmwM,OAAS8jG,GAAWxiC,GACtBzxQ,EAAE+mU,OAAS9yB,GAAWxiC,GACtBA,EAAKn0P,GAAK,GAJatd,IAoqXxB,IAAQ,CAAEiC,EAAE,WACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,QAASoB,EAlpYrB,SAAqBouQ,EAAMl1Q,GAI1B,IAHA,IAAIgC,EAASkzQ,EAAKn0P,EAAI/gB,EAAS,EAC3B0mV,EAAKxxE,EAAKioB,WAAW,GAAI/2I,EAAM8uH,EAAKioB,WAAW,GAC/CwpD,EAAS,GACPzxE,EAAKn0P,EAAI/e,GAAQ2kV,EAAO3hV,KAAKs/S,GAAYpvC,IAC/C,GAAGA,EAAKn0P,IAAM/e,EAAQ,MAAM,IAAIsF,MAAM,oBACtC,IAAIs/U,EAAU1xE,EAAKioB,WAAW,GAC9B,GAAGwpD,EAAO3mV,QAAU4mV,EAAUxgM,EAAM,EAAG,MAAM,IAAI9+I,MAAM,yBACvD,MAAO,CAACoB,EAAMiG,EAAEy3I,EAAKg5D,EAAEwnI,EAAStG,MAAMqG,KA2oYvC,IAAQ,CAAEjhV,EAAE,WAAYoB,EAxoYxB,SAAwBouQ,EAAMl1Q,GAI7B,IAHA,IAAIgC,EAASkzQ,EAAKn0P,EAAI/gB,EAAS,EAC3B0mV,EAAKxxE,EAAKioB,WAAW,GAAI/2I,EAAM8uH,EAAKioB,WAAW,GAC/C0pD,EAAQ,GACN3xE,EAAKn0P,EAAI/e,GAAQ6kV,EAAM7hV,KAAKkwQ,EAAKioB,WAAW,IAClD,GAAGjoB,EAAKn0P,IAAM/e,EAAQ,MAAM,IAAIsF,MAAM,uBACtC,IAAIs/U,EAAU1xE,EAAKioB,WAAW,GAC9B,GAAG0pD,EAAM7mV,QAAU4mV,EAAUxgM,EAAM,EAAG,MAAM,IAAI9+I,MAAM,4BACtD,MAAO,CAACoB,EAAMiG,EAAEy3I,EAAKg5D,EAAEwnI,EAASziC,KAAK0iC,KAioYtC,IAAQ,CAAEnhV,EAAE,MAAOoB,EAAE27S,IACrB,IAAQ,CAAE/8S,EAAE,QACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SAAUoB,EAAEm6S,IACxB,IAAQ,CAAEv7S,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,WAAYoB,EAAE67S,IAC1B,IAAQ,CAAEj9S,EAAE,gBACZ,IAAQ,CAAEA,EAAE,kBAAmBoB,EAAEm6S,IACjC,IAAQ,CAAEv7S,EAAE,iBACZ,IAAQ,CAAEA,EAAE,KAAMoB,EAzmYlB,SAAkBouQ,EAAMl1Q,EAAQ+mM,GAC/B,IAAItjM,EAAI,GAKR,OAJAA,EAAEoyS,KAAO3gC,EAAKioB,WAAW,GAAI15R,EAAE6wS,SAAWp/B,EAAKioB,WAAW,GAAI15R,EAAEmM,MAAQslQ,EAAKioB,WAAW,GACxF15R,EAAEqjV,OAAUrjV,EAAEmM,OAAS,EAAK,EAE5BnM,EAAE2C,KAjDH,SAA2B8uQ,EAAMl1Q,EAAQqzP,EAAOtsD,GAC/C,IAAItjM,EAAI,GACJ+E,EAAI0sQ,EAAKioB,WAAW,GAAI10R,EAAIysQ,EAAKioB,WAAW,GAC5CxuR,EAAIumQ,EAAKioB,WAAW,GAAI5uR,EAAI2mQ,EAAKioB,WAAW,GAGhD,OAFA15R,EAAEy4T,YAAcvjB,GAAehqS,GAAK,IAEhCo4L,EAAKyhH,YACT/kT,EAAEsjV,IAAU,EAAJv+U,EACR/E,EAAEujV,MAASx+U,GAAK,EAAK,EACrB/E,EAAEwjV,KAAQz+U,GAAK,EAAK,EACpB/E,EAAEyjV,UAAa1+U,GAAK,EAAK,EACzB/E,EAAE0jV,KAAQ3+U,GAAK,EAAK,IACpB/E,EAAE2jV,QAAW5+U,GAAK,GAAM,GACxB/E,EAAE4jV,aAAgB7+U,GAAK,GAAM,EAC7B/E,EAAE6jV,WAAc9+U,GAAK,GAAM,EAC3B/E,EAAE8jV,QAAW/+U,GAAK,GAAM,EACxB/E,EAAE+jV,QAAWh/U,GAAK,GAAM,EACxB/E,EAAEgkV,QAAWj/U,GAAK,GAAM,EACxB/E,EAAEikV,QAAWl/U,GAAK,GAAM,EACxB/E,EAAEkkV,QAAWn/U,GAAK,GAAM,EACxB/E,EAAEmkV,SAAYp/U,GAAK,GAAM,EAEzB/E,EAAEokV,OAAa,GAAJp/U,EACXhF,EAAEqkV,QAAWr/U,GAAK,EAAK,GACvBhF,EAAEskV,MAASt/U,GAAK,EAAK,GACrBhF,EAAEukV,SAAYv/U,GAAK,GAAM,GACzBhF,EAAEwkV,QAAWx/U,GAAK,GAAM,IACxBhF,EAAEykV,SAAYz/U,GAAK,GAAM,IACzBhF,EAAE0kV,UAAa1/U,GAAK,GAAM,EAE1BhF,EAAE2kV,OAAa,IAAJz5U,EACXlL,EAAE4kV,UAAa15U,GAAK,EAAK,IACzBlL,EAAE6kV,QAAW35U,GAAK,GAAM,IACxBlL,EAAE8kV,OAAU55U,GAAK,GAAM,GAEvBlL,EAAEo7U,QAAc,IAAJtwU,EACZ9K,EAAEq7U,QAAWvwU,GAAK,EAAK,IACvB9K,EAAE+kV,UAAaj6U,GAAK,GAAM,EACnB9K,GAhCqBA,EA2CnBglV,CAAkBvzE,EAAMl1Q,EAAQyD,EAAEqjV,OAAQ//I,GAC5CtjM,IAomYR,IAAQ,CAAEiC,EAAE,eAAgBoB,EAn9Y5B,SAA4BouQ,EAAMl1Q,GACjC,OAAc,IAAXA,GACCk1Q,EAAKioB,WAAW,GADI,OAm9YzB,IAAQ,CAAEz3R,EAAE,eAAgBoB,EAAE27S,IAC9B,IAAQ,CAAE/8S,EAAE,QACZ,IAAQ,CAAEA,EAAE,aAAcoB,EA94X1B,SAA0BouQ,EAAMl1Q,GAG/B,IAFA,IAAIgwU,EAAS,GACT0Y,EAAOxzE,EAAKioB,WAAW,GACpBurD,KAAQ1Y,EAAOhrU,KAAKu/S,GAAYrvC,IACvC,OAAO86D,IA24XR,IAAQ,CAAEtqU,EAAE,SACZ,IAAQ,CAAEA,EAAE,mBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,uBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,MAAOoB,EAx6YnB,SAAmBouQ,EAAMl1Q,GAKxB,IAJA,IAAI8hB,EAAMozP,EAAKn0P,EAAI/gB,EACf6gS,EAAM3rB,EAAKioB,WAAW,GACtBwrD,EAAOzzE,EAAKioB,WAAW,GACvBoc,EAAO,GACHt5S,EAAI,EAAGA,GAAK0oV,GAAQzzE,EAAKn0P,EAAIe,IAAO7hB,EAC3Cs5S,EAAKv0S,KAAKi+S,GAAkC/tC,IAG7C,OADAqkC,EAAKwc,MAAQl1B,EAAK0Y,EAAK79R,OAASitU,EACzBpvC,IAg6YR,IAAQ,CAAE7zS,EAAE,WAAYoB,EAhxYxB,SAAwBouQ,GACvB,IAAIp5J,EAAOooM,GAAchvC,GAEzB,OADAp5J,EAAK6kO,KAAOzrE,EAAKioB,WAAW,GACrBrhL,IA8wYR,IAAQ,CAAEp2G,EAAE,SAAUoB,EAn5YtB,SAAsBouQ,EAAMl1Q,GAC3B,IAAI4oV,EAAS,GAGb,OAFAA,EAAOC,KAAO3zE,EAAKioB,WAAW,GAC9BjoB,EAAKn0P,GAAK/gB,EAAO,EACV4oV,IAg5YR,IAAQ,CAAEljV,EAAE,UACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,UAAWoB,EAAE+7S,IACzB,IAAQ,CAAEn9S,EAAE,eACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,WAAYoB,EAAEm6S,IAC1B,IAAQ,CAAEv7S,EAAE,MAAOoB,EAAE27S,IACrB,IAAQ,CAAE/8S,EAAE,QACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,UACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,kBACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,UAAWoB,EAxlYvB,SAAuBouQ,EAAMl1Q,EAAQ+mM,GACpC,IAAIjlL,EAAMozP,EAAKn0P,EAAI/gB,EACf8oV,EAAO5zE,EAAKioB,WAAW,GACvB6lB,EAAM9tC,EAAKioB,WAAW,GAE1B,GADAp2F,EAAK+/G,MAAQ9D,EACH,MAAPA,GAAwB,OAAPA,EAAe,MAAO,CAACA,EAAK8lC,GAChD,GAAG9lC,EAAM,GAAQA,EAAK,IAAM,MAAM,IAAI17S,MAAM,4BAA4B07S,GAIxE,IAHA,IAAI+lC,EAAWtlC,GAA2BvuC,EAAM8tC,GAE5CgmC,EAAO,GACLlnU,EAAMozP,EAAKn0P,GAAGioU,EAAKhkV,KAAK0+S,GAAsBxuC,IACpD,MAAO,CAAC8tC,EAAK8lC,EAAMC,EAAUC,KA8kY9B,IAAQ,CAAEtjV,EAAE,WAAYoB,EAAEm6S,IAC1B,IAAQ,CAAEv7S,EAAE,WACZ,IAAQ,CAAEA,EAAE,MACZ,IAAQ,CAAEA,EAAE,QACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,MAAOoB,EAh5XnB,SAAmBouQ,EAAMl1Q,EAAQ+mM,GAChC,IAAIj7L,EAAIopQ,EAAKn0P,EACTkoU,EAAQ,GACb,IACC/zE,EAAKn0P,GAAK,EACV,IAAI+jS,GAAM/9G,EAAKi6I,SAAS,CAACD,IAAI,CAAC,EAAE,KAAKA,IAAI,IAEL,GAAjC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAIxuT,QAAQuyR,GAAW5vC,EAAKn0P,GAAK,EAr8BlD,SAA2Bm0P,GAC1B,IAAItlQ,EAAQslQ,EAAKioB,WAAW,GAC5BjoB,EAAKn0P,IACL,IAAImoU,EAAQh0E,EAAKioB,WAAW,GAC5BjoB,EAAKn0P,GAAK,EAk8BSooU,CAAkBj0E,GACrC,IAAIk0E,EAAUl0E,EAAKioB,WAAW,GACbjoB,EAAKioB,WAAW,GACbwlB,GAAYztC,GAChC,IAAIn1Q,EAAMm1Q,EAAKioB,WAAW,GAC1BjoB,EAAKn0P,GAAKhhB,EAGV,IAAI,IAAIE,EAAI,EAAGA,EAAIi1Q,EAAK6U,KAAK/pR,OAAO,IAAKC,EAAG,CAC3C,GAAGi1Q,EAAKn0P,EAAEjV,GAAKopQ,EAAK6U,KAAK9pR,GAAI,MAAM,IAAIqH,MAAM,4BAC7C,IAAIg6S,EAAMpsC,EAAKA,EAAKn0P,GAGpB,IADAkoU,GADQxlC,GAA2BvuC,EAAMA,EAAK6U,KAAK9pR,EAAE,GAAGi1Q,EAAK6U,KAAK9pR,GAAG,IAE5DD,SAAWshT,EAAM8nC,EAAU,EAAEA,GAAU,MAEjD,GAAGH,EAAMjpV,SAAWopV,GAAWH,EAAMjpV,SAAmB,EAARopV,EAC/C,MAAM,IAAI9hV,MAAM,YAAc8hV,EAAU,OAASH,EAAMjpV,QAWxD,OARAk1Q,EAAKn0P,EAAIjV,EAAI9L,EAQN,CAAEgR,EAAGi4U,GACX,MAAM3xT,GAA0B,OAArB49O,EAAKn0P,EAAIjV,EAAI9L,EAAe,CAAEgR,EAAGi4U,MA62X9C,IAAQ,CAAEvjV,EAAE,aAAcoB,EAAEm6S,IAC5B,IAAQ,CAAEv7S,EAAE,QAASoB,EA12XrB,SAAqBouQ,EAAMl1Q,GAC1B,IAAIgoT,EAAMzD,GAAYrvC,GAGtB,OAFAA,EAAKn0P,GAAK,GAEH,CAACinS,EAn7BT,SAAyB9yC,EAAMl1Q,GAC9B,IAAI8hB,EAAMozP,EAAKn0P,EAAI/gB,EACfqpV,EAAOn0E,EAAKioB,WAAW,GAC3B,GAAY,IAATksD,EAAY,MAAM,IAAI/hV,MAAM,+BAAiC+hV,GAChE,IAAIz5U,EAAQslQ,EAAKioB,WAAW,GAC5BjoB,EAAKn0P,GAAK,EACV,IAAI8qO,EAAay9F,EAAiBC,EAASC,EAAoBC,EAAMC,EAAdC,EAAI,GAChD,GAAR/5U,IAAgBi8O,EAAcg4D,GAAsB3uC,EAAYA,EAAKn0P,IAC7D,IAARnR,IAAgB05U,EAAkBzlC,GAAsB3uC,EAAYA,EAAKn0P,IACpD,MAAZ,IAARnR,KAA4B25U,EAAU1lC,GAAsB3uC,EAAYA,EAAKn0P,IACzD,IAAZ,IAARnR,KAA4B45U,EA3BjC,SAAgCt0E,EAAMl1Q,GACrC,IAAIggS,EAAQ9qB,EAAKioB,WAAW,IAC5B,OAAO6C,GACN,IAAK,mCAAoC,OAhC3C,SAA0B9qB,GACzB,IAAIn1Q,EAAMm1Q,EAAKioB,WAAW,GAAIlvR,EAAQinQ,EAAKn0P,EACvCgmQ,GAAQ,EACThnR,EAAM,KAERm1Q,EAAKn0P,GAAKhhB,EAAM,GACW,qCAAxBm1Q,EAAKioB,WAAW,MAA4CpW,GAAQ,GACvE7R,EAAKn0P,EAAI9S,GAEV,IAAIoqB,EAAM68O,EAAKioB,YAAYpW,EAAMhnR,EAAI,GAAGA,IAAM,EAAG,WAAWgR,QAAQijR,EAAK,IAEzE,OADGjN,IAAO7R,EAAKn0P,GAAK,IACbsX,EAqB0CuxT,CAAiB10E,GACjE,IAAK,mCAAoC,OAlB3C,SAA2BA,GAC1BA,EAAKn0P,GAAK,EACV,IAAI8oU,EAAW30E,EAAKioB,WAAW,EAAG,cAElC,GADAjoB,EAAKn0P,GAAK,EACe,OAAtBm0P,EAAKioB,WAAW,GAAc,MAAM,IAAI71R,MAAM,mBAEjD,GAAU,IADD4tQ,EAAKioB,WAAW,GACZ,OAAO0sD,EAAS94U,QAAQ,MAAM,KAC3C,IAAIvD,EAAQ0nQ,EAAKioB,WAAW,GAC5B,GAAyB,GAAtBjoB,EAAKioB,WAAW,GAAS,MAAM,IAAI71R,MAAM,mBAE5C,OADkB4tQ,EAAKioB,WAAW3vR,GAAO,EAAG,WAAWuD,QAAQijR,EAAK,IASnB81D,CAAkB50E,GAClE,QAAS,MAAM,IAAI5tQ,MAAM,uBAAyB04R,IAsBN+pD,CAAuB70E,EAAYA,EAAKn0P,IAC1E,EAARnR,IAAgB+5U,EAAM9lC,GAAsB3uC,EAAYA,EAAKn0P,IACrD,GAARnR,IAAgB65U,EAAOv0E,EAAKioB,WAAW,KAC/B,GAARvtR,IAAgB85U,EAAW5qC,GAAe5pC,IAC7CA,EAAKn0P,EAAIe,EACT,IAAI9f,EAASsnV,GAAiBC,GAASC,GAAY,GAChDxnV,GAAU2nV,IAAK3nV,GAAQ,IAAI2nV,GAC1B3nV,IAAQA,EAAS,IAAM2nV,GAC3B,IAAIz+T,EAAM,CAAEiwR,OAAOn5S,GAInB,OAHGynV,IAAMv+T,EAAIu+T,KAAOA,GACjBC,IAAUx+T,EAAIpM,KAAO4qU,GACrB79F,IAAa3gO,EAAIo9R,QAAUz8D,GACvB3gO,EA45BK8+T,CAAgB90E,EAAMl1Q,EAAO,OAw2X1C,IAAQ,CAAE0F,EAAE,OACZ,IAAQ,CAAEA,EAAE,WAAYoB,EAAE48S,IAC1B,IAAQ,CAAEh+S,EAAE,aACZ,IAAQ,CAAEA,EAAE,eAAgBoB,EAAE67S,IAC9B,IAAQ,CAAEj9S,EAAE,cACZ,IAAQ,CAAEA,EAAE,MACZ,IAAQ,CAAEA,EAAE,aAAcoB,EAAE27S,IAC5B,IAAQ,CAAE/8S,EAAE,WAAYoB,EAj6YxB,SAAwBouQ,GAEvB,OADAA,EAAKioB,WAAW,GACTjoB,EAAKioB,WAAW,IA+5YkBz0R,EAAE,GAC5C,IAAQ,CAAEhD,EAAE,UAAWoB,EAAE27S,IACzB,IAAQ,CAAE/8S,EAAE,aAAcoB,EAAEm/S,IAC5B,IAAQ,CAAEvgT,EAAE,QAASoB,EAAE+hT,IACvB,IAAQ,CAAEnjT,EAAE,SAAUoB,EA5nYtB,SAAsBouQ,GACrB,IAAIp5J,EAAOooM,GAAchvC,GACrB+0E,EAAOvyC,GAAWxiC,GAEtB,OADAp5J,EAAKzzG,IAAM4hV,EACJnuO,IAynYR,IAAQ,CAAEp2G,EAAE,QAASoB,EA9zYrB,SAAqBouQ,EAAMl1Q,EAAQ+mM,GACrBmuE,EAAKn0P,EAAlB,IACI+6F,EAAOooM,GAAchvC,GACT,GAAbnuE,EAAKmsG,MAAWh+B,EAAKn0P,IACxB,IAAIkV,EAAMytR,GAAsBxuC,EAAeA,EAAKn0P,EAAGgmL,GAEvD,OADAjrF,EAAKzzG,IAAM4tB,EACJ6lF,IAyzYR,IAAQ,CAAEp2G,EAAE,UAAWoB,EAAEs/S,IACzB,IAAQ,CAAE1gT,EAAE,UAAWoB,EAAEqiU,IACzB,IAAQ,CAAEzjU,EAAE,SAAUoB,EAAEiiT,IACxB,IAAQ,CAAErjT,EAAE,MAAOoB,EAx8YnB,SAAmBouQ,GAClB,IAAIt2J,EAAI,GACRA,EAAEl2G,EAAIwsQ,EAAKioB,WAAW,GACtBv+K,EAAEjwG,EAAIumQ,EAAKioB,WAAW,GACtBv+K,EAAEiiL,IAAM3rB,EAAKioB,WAAW,GAAKv+K,EAAEjwG,EAC/B,IAAI82S,EAAQvwC,EAAKioB,WAAW,GAC5BjoB,EAAKn0P,GAAK,EACV,IAAInR,EAAQslQ,EAAKioB,WAAW,GAM5B,OALAjoB,EAAKn0P,GAAK,EACC,EAARnR,IAAcgvG,EAAE92B,MAAgB,EAARl4E,GAEhB,GAARA,IAAcgvG,EAAEkyI,QAAS,GACjB,GAARlhP,IAAcgvG,EAAE4wM,IAAM/J,EAAQ,IAC1B7mM,IA47YR,IAAQ,CAAEl5G,EAAE,SACZ,IAAQ,CAAEA,EAAE,QAASoB,EAAEihT,IACvB,IAAQ,CAAEriT,EAAE,mBAAoBoB,EAAE0+S,IAClC,IAAQ,CAAE9/S,EAAE,SACZ,IAAQ,CAAEA,EAAE,UAAWoB,EAt4YvB,SAAuBouQ,EAAMl1Q,EAAQ+mM,GACpC,OAAGA,GAAQA,EAAKmsG,MAAQ,GAAKnsG,EAAKmsG,KAAO,EAAU,GAE5C,CAAEg8B,IAAS,GADVh6D,EAAKioB,WAAW,MAq4YzB,IAAQ,CAAEz3R,EAAE,KAAMoB,EA7wYlB,SAAkBouQ,GACjB,IAAIwxE,EAAKxxE,EAAKioB,WAAW,GAAI/2I,EAAM8uH,EAAKioB,WAAW,GAC/CmjD,EAAQh8B,GAAYpvC,GACxB,MAAO,CAACxsQ,EAAEg+U,EAAI/3U,EAAEy3I,EAAK+9J,KAAKm8B,EAAM,GAAID,MAAMC,EAAM,MA2wYjD,IAAQ,CAAE56U,EAAE,SACZ,KAAQ,CAAEA,EAAE,UAAWoB,EAAEqiU,IACzB,KAAQ,CAAEzjU,EAAE,WACZ,KAAQ,CAAEA,EAAE,SAAUoB,EAxzYtB,SAAsBouQ,EAAMl1Q,EAAQ+mM,GAGnC,MAAO,CAFQmuE,EAAKioB,WAAW,GAClBwmB,GAAuBzuC,EAAM,EAAGnuE,MAuzY9C,KAAQ,CAAErhM,EAAE,mBACZ,KAAQ,CAAEA,EAAE,UAAWoB,EAvhYvB,SAAuBouQ,EAAMl1Q,EAAQ+mM,GACpC,IAAIihH,EAAMrD,GAAWzvC,GACrBA,EAAKn0P,IACL,IAAImpU,EAAOh1E,EAAKioB,WAAW,GAE3B,MAAO,CAAC+rC,GAA0Bh0D,EADlCl1Q,GAAU,EACsC+mM,GAAOmjJ,EAAMliC,KAmhY9D,KAAQ,CAAEtiT,EAAE,eAAgBoB,EAt3X5B,SAA4BouQ,EAAMl1Q,GACjCk1Q,EAAKioB,WAAW,GAChB,IAAI6qB,EAAMzD,GAAYrvC,GAClBi1E,EAAYj1E,EAAKioB,YAAYn9R,EAAO,IAAI,EAAG,aAE/C,MAAO,CAACgoT,EADRmiC,EAAYA,EAAUp5U,QAAQijR,EAAK,OAm3XpC,KAAQ,CAAEtuR,EAAE,UACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,MAAOoB,EAAEo+S,IACrB,KAAQ,CAAEx/S,EAAE,aACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,UAAWgD,EAAE,IACzB,KAAQ,CAAEhD,EAAE,UACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,UAAWoB,EAAE27S,IACzB,KAAQ,CAAE/8S,EAAE,QACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,sBACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,QAASoB,EAt3XrB,SAAqBouQ,GACpBA,EAAKn0P,GAAK,EACV,IAAItd,EAAI,CAAC2mV,KAAK,EAAG38E,IAAI,GAGrB,OAFAhqQ,EAAE2mV,KAAOl1E,EAAKioB,WAAW,GACzB15R,EAAEgqQ,IAAMyH,EAAKioB,WAAW,GACjB15R,GAi3X4BiF,EAAE,IACtC,KAAQ,CAAEhD,EAAE,QAASoB,EArmRrB,SAAqBouQ,EAAMl1Q,GAChBk1Q,EAAKn0P,EACfm0P,EAAKn0P,GAAK,EACV,IAAIojS,EAAOjvC,EAAKioB,WAAW,GAC3BjoB,EAAKn0P,GAAK,EAGV,IAFA,IAAIspU,EAAQn1E,EAAKioB,WAAW,GACxB3iH,EAAM,GACJ6vK,KAAU,GAAG7vK,EAAIx1K,KAAKw7T,GAActrD,EAAUA,EAAKn0P,IACzD,MAAO,CAACojS,KAAKA,EAAM3pI,IAAIA,IA6lRY9xK,EAAE,IACtC,KAAQ,CAAEhD,EAAE,gBACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,WAAYoB,EAAEm6S,GAAWv4S,EAAE,IACvC,KAAQ,CAAEhD,EAAE,OACZ,KAAQ,CAAEA,EAAE,cAAegD,EAAE,IAC7B,KAAQ,CAAEhD,EAAE,cACZ,KAAQ,CAAEA,EAAE,qBACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,UAAWoB,EAvmYvB,SAAuBouQ,EAAMl1Q,EAAQ+mM,GACpC,KAAGA,EAAKmsG,KAAO,GAAf,CACA,IAAI0V,EAAU1zC,EAAKioB,WAAW,GAC1BmtD,EAAap1E,EAAKioB,WAAW,GAGjC,MAAO,CAFIsmB,GAA2BvuC,EAAM0zC,EAAS7hH,GACvC08G,GAA2BvuC,EAAMo1E,EAAYvjJ,IAJvCmuE,EAAKn0P,GAAK/gB,GAsmYS0I,EAAE,IAC1C,KAAQ,CAAEhD,EAAE,YACZ,KAAQ,CAAEA,EAAE,QAASoB,EAprRrB,SAAqBouQ,EAAMl1Q,EAAQ+mM,GAClC,IAAIjlL,EAAMozP,EAAKn0P,EAAI/gB,EAEnB,GAAsB,SADDk1Q,EAAKioB,WAAW,GAErC,GAAIp2F,EAAKyhH,YAAe5c,GAAxB,CACA,IAEIrgK,EAFAnlI,EAAO8uQ,EAAKtvQ,MAAMsvQ,EAAKn0P,GAC3Bm0P,EAAKn0P,EAAIe,EACA,IAAMypH,EAAM,IAAIqgK,GAAMxlS,GAAS,MAAMkxB,GAAK,OACnD,IAAIizT,EAAWn+C,GAAU7gK,EAAK,0BAA0B,GACxD,GAAIg/M,EACJ,OAAOpqB,GAAgBoqB,EAAUxjJ,QANAmuE,EAAKn0P,EAAIe,GAgrRPpZ,EAAE,IACtC,KAAQ,CAAEhD,EAAE,eACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,cAAeoB,EA9kY3B,SAA2BouQ,GAI1B,MAAO,CAHkC,IAAvBA,EAAKioB,WAAW,GACe,IAAvBjoB,EAAKioB,WAAW,GACnBjoB,EAAKioB,WAAW,KA2kYQz0R,EAAE,IAClD,KAAQ,CAAEhD,EAAE,mBAAoBoB,EAAE27S,IAClC,KAAQ,CAAE/8S,EAAE,gBACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,oBACZ,KAAQ,CAAEA,EAAE,uBAAwBoB,EAphZpC,SAAoCouQ,GACnC,IAAIthE,EApSL,SAAyBshE,GACxB,IAAIkxD,EAAKlxD,EAAKioB,WAAW,GACrBvtR,EAAQslQ,EAAKioB,WAAW,GAE5B,OADAjoB,EAAKn0P,GAAK,EACH,CAAC8D,KAAMuhT,EAAIx2T,MAAOA,GAgSZ46U,CAAgBt1E,GAC7B,GAAkB,MAAfthE,EAAO/uL,KAAgB,MAAM,IAAIvd,MAAM,yBAA2BssM,EAAO/uL,MAE5E,OAAoB,IADLqwP,EAAKioB,WAAW,KAkhZhC,KAAQ,CAAEz3R,EAAE,oBACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,kBACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,iBACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,QAASoB,EAAE67S,IACvB,KAAQ,CAAEj9S,EAAE,cACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,WAAYoB,EA/5XxB,SAAwBouQ,EAAMl1Q,EAAQ+mM,GACrC,IAAIrwE,EAAM,CAAC+zN,MAAK,GAChB,GAAgB,GAAb1jJ,EAAKmsG,KAA+B,OAAlBh+B,EAAKn0P,GAAK/gB,EAAe02H,EAC9C,IAAInoH,EAAI2mQ,EAAKioB,WAAW,GAExB,OAF4BjoB,EAAKn0P,GAAK,EAC9B,GAAJxS,IAAWmoH,EAAI+zN,MAAO,GACnB/zN,IA25XR,KAAQ,CAAEhxH,EAAE,YACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,QACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,aAAcoB,EA99X1B,SAA0BouQ,GAGzB,IAFA,IAAIuxE,EAAMvxE,EAAKioB,WAAW,GACtB15R,EAAI,GACFgjV,KAAM,GAAGhjV,EAAEuB,KAAKi/S,GAAc/uC,IACpC,OAAOzxQ,IA29XR,KAAQ,CAAEiC,EAAE,UACZ,KAAQ,CAAEA,EAAE,mBACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,gBACZ,KAAQ,CAAEA,EAAE,QAEZgsR,EAAQ,CAAEhsR,EAAE,aAAcoB,EAAEm/S,IAC5B,EAAQ,CAAEvgT,EAAE,WAAYoB,EAl4XxB,SAAwBouQ,GACvB,IAAIp5J,EAAOooM,GAAchvC,KACvBA,EAAKn0P,EACP,IAAIhU,EAAMmoQ,EAAKioB,WAAW,GAG1B,OAFArhL,EAAK9qG,EAAI,IACT8qG,EAAKzzG,IAAM0E,EACJ+uG,IA63XR,EAAQ,CAAEp2G,EAAE,UAAWoB,EAAEs/S,IACzB,EAAQ,CAAE1gT,EAAE,SAAUoB,EAr3XtB,SAA2BouQ,GAC1B,IAAI8tC,EAAM9tC,EAAKioB,WAAW,GAC1B,OAAW,IAAR6lB,GAAa9tC,EAAKn0P,IAAY,IAC1Bm0P,EAAKioB,WAAW6lB,EAAK,eAm3X7B,EAAQ,CAAEt9S,EAAE,YACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,cAAeoB,EAAE67S,IAC7B,GAAQ,CAAEj9S,EAAE,cAAeoB,EAAEk/S,IAC7B,GAAQ,CAAEtgT,EAAE,eACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,QAASoB,EAAEihT,IACvB,GAAQ,CAAEriT,EAAE,mBAAoBoB,EAAE0+S,IAClC,GAAQ,CAAE9/S,EAAE,gBAAiBoB,EAv3X7B,SAA6BouQ,EAAMl1Q,GAClCk1Q,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK,EACVm0P,EAAKn0P,GAAK/gB,EAAS,KAk3XpB,GAAQ,CAAE0F,EAAE,cACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,gBACZ,GAAQ,CAAEA,EAAE,eACZ,IAAQ,CAAEA,EAAE,MACZ,IAAQ,CAAEA,EAAE,SAAUoB,EAt7XtB,SAAsBouQ,GACrB,IAAIn+B,EAAKm+B,EAAKioB,WAAW,GACrButD,EAAMx1E,EAAKioB,WAAW,GACtBwtD,EAAMz1E,EAAKioB,WAAW,GACtB15R,EAAI,CAAC4zR,IAAItgD,EAAI2zG,IAAIA,EAAK3qV,IAAI4qV,EAAKvkV,KAAK8uQ,EAAKtvQ,MAAMsvQ,EAAKn0P,EAAEm0P,EAAKn0P,EAAE4pU,IAEjE,OADAz1E,EAAKn0P,GAAK4pU,EACHlnV,IAi7XR,IAAQ,CAAEiC,EAAE,SACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,YACZ,IAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,OACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,cACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,WACZ,IAAQ,CAAEA,EAAE,UAAWoB,EAn4XvB,SAAuBouQ,EAAMl1Q,EAAQ+mM,GACpC,IAAIjlL,EAAMozP,EAAKn0P,EAAI/gB,EACf87G,EAAOooM,GAAchvC,GACrB8tC,EAAM9tC,EAAKioB,WAAW,GACtBlnQ,EAAMwtR,GAA2BvuC,EAAM8tC,EAAKj8G,GAIhD,OAHAmuE,EAAKn0P,EAAIe,EACTg6F,EAAK9qG,EAAI,MACT8qG,EAAKzzG,IAAM4tB,EACJ6lF,IA43XR,IAAQ,CAAEp2G,EAAE,UACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,aACZ,IAAQ,CAAEA,EAAE,gBACZ,IAAQ,CAAEA,EAAE,MAAOoB,EAAEo+S,IACrB,IAAQ,CAAEx/S,EAAE,MAAOoB,EAAEqgT,IACrB,IAAQ,CAAEzhT,EAAE,aAAcoB,EAAEy/S,IAC5B,IAAQ,CAAE7gT,EAAE,QACZ,IAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,MAAOoB,EAAEo+S,IACrB,KAAQ,CAAEx/S,EAAE,WACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,cACZ,KAAQ,CAAEA,EAAE,WACZ,KAAQ,CAAEA,EAAE,aACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,eACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,OACZ,KAAQ,CAAEA,EAAE,SACZ,KAAQ,CAAEA,EAAE,UACZ,KAAQ,CAAEA,EAAE,YACZ,KAAQ,CAAEA,EAAE,aAAcgD,EAAE,IAE5B,MAAQ,IAGJkiV,GAAQrgD,EAAUqyC,GAAe,KACrC,SAASiO,GAAeh4C,EAAIhuR,EAAM67Q,EAAS1gS,GAC1C,IAAIgR,GAAK6T,IAAS+lU,GAAM/lU,GACxB,IAAG7X,MAAMgE,GAAT,CACA,IAAIjR,EAAMC,IAAW0gS,GAAS,IAAI1gS,QAAU,EACxCyD,EAAIovS,EAAG9tS,KAAK,GAChBtB,EAAEs5R,YAAY,EAAG/rR,GACjBvN,EAAEs5R,YAAY,EAAGh9R,GACdA,EAAM,GAAK+wS,GAAOpQ,IAAUmS,EAAG7tS,KAAK07R,IA0BxC,SAASoqD,GAAgB5/T,EAAKxiB,EAAGiG,GAMhC,OALIuc,IAAKA,EAAM01Q,GAAQ,IACvB11Q,EAAI6xQ,YAAY,EAAGr0R,GACnBwiB,EAAI6xQ,YAAY,EAAGpuR,GACnBuc,EAAI6xQ,YAAY,EAAG,GACnB7xQ,EAAI6xQ,YAAY,EAAG,GACZ7xQ,EAoBR,SAAS6/T,GAAoBl4C,EAAI/2L,EAAMqjG,EAAGC,GACzC,GAAa,MAAVtjG,EAAKz6F,EAAW,OAAOy6F,EAAK9qG,GAC9B,IAAK,IAAK,IAAK,IACd,IAAIqQ,EAAc,KAAVy6F,EAAK9qG,EAAW25R,EAAQS,EAAUtvL,EAAKz6F,IAAMy6F,EAAKz6F,EAK1D,YAJIA,IAAQ,EAAFA,IAAUA,GAAK,GAAOA,EAAI,MACnCwpU,GAAeh4C,EAAI,GA5/XCnqS,EA4/XsBy2M,EA5/XnBxwM,EA4/XsBywM,EA5/XnB/2M,EA4/XsBgZ,EA3/X/C6J,EAAM01Q,GAAQ,GAClBkqD,GAAgB5/T,EAAKxiB,EAAGiG,GACxBuc,EAAI6xQ,YAAY,EAAG10R,GACZ6iB,IA0/XJ2/T,GAAeh4C,EAAI,EA7gYvB,SAAwBnqS,EAAGiG,EAAGtG,GAC7B,IAAI6iB,EAAM01Q,GAAQ,IAGlB,OAFAkqD,GAAgB5/T,EAAKxiB,EAAGiG,GACxBuc,EAAI6xQ,YAAY,EAAG10R,EAAK,KACjB6iB,EAygYuB8/T,CAAe7rI,EAAEC,EAAG/9L,KAEjD,IAAK,IAAK,IAAK,IAAwE,YAAnEwpU,GAAeh4C,EAAI,EA1BzC,SAAyBnqS,EAAGiG,EAAGtG,EAAK2I,GACnC,IAAIka,EAAM01Q,GAAQ,GAIlB,OAHAkqD,GAAgB5/T,EAAKxiB,EAAGiG,GAChB,KAALqC,GAAYka,EAAI6xQ,YAAY,EAAG10R,GAAM6iB,EAAI6xQ,YAAY,EAAG,KACpD7xQ,EAAI6xQ,YAAY,EAAG10R,EAAI,EAAE,GAAI6iB,EAAI6xQ,YAAY,EAAG,IAChD7xQ,EAqByC+/T,CAAgB9rI,EAAGC,EAAGtjG,EAAKz6F,EAAGy6F,EAAK9qG,IAElF,IAAK,IAAK,IAAK,MAEd,YADA65U,GAAeh4C,EAAI,EApBtB,SAA0BnqS,EAAGiG,EAAGtG,GAC/B,IAAI6iB,EAAM01Q,GAAQ,EAAI,EAAEv4R,EAAIrI,QAI5B,OAHA8qV,GAAgB5/T,EAAKxiB,EAAGiG,GACxBuc,EAAI6xQ,YAAY,EAAG10R,EAAIrI,QACvBkrB,EAAI6xQ,YAAY10R,EAAIrI,OAAQqI,EAAK,QAC1B6iB,EAAInK,EAAImK,EAAIlrB,OAASkrB,EAAItlB,MAAM,EAAGslB,EAAInK,GAAKmK,EAerBggU,CAAiB/rI,EAAGC,EAAGtjG,EAAKz6F,IAngY1D,IAAwB3Y,EAAGiG,EAAGtG,EACzB6iB,EAqgYJ2/T,GAAeh4C,EAAI,EAAQi4C,GAAgB,KAAM3rI,EAAGC,IA2FrD,SAAS+rI,GAAoBt4C,EAAI/2L,EAAMqjG,EAAGC,EAAGrY,GAC5C,IAAIigF,EAAK,GAAKyjD,GAAe1jI,EAAKs2H,QAASvhN,EAAMirF,GACjD,GAAa,MAAVjrF,EAAKz6F,GAAcy6F,EAAKsvO,GAI3B,GAAGtvO,EAAKsvO,GAAIP,GAAeh4C,EAAI,UA52OhC,SAAuB/2L,EAAMqjG,EAAGC,EAAGrY,EAAMigF,GAExC,IAAIqkE,EAAKjnC,GAAcjlG,EAAGC,EAAG4nE,GAGzBsjB,EAnCL,SAA4BzpS,GAC3B,GAAY,MAATA,EAAe,CAEjB,IAAI4C,EAAIm9R,GAAQ,GAMhB,OALAn9R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,OACVt5R,EACD,OAAoCk0S,GAAjB,iBAAT92S,EAAqCA,EACpC,GAwBTyqV,CAAmBxvO,EAAKz6F,GAG7BkqU,EAAK3qD,GAAQ,GAEjB2qD,EAAGxuD,YAAY,EADH,IAEZwuD,EAAGxuD,YAAY,EAAG,GAIlB,IADA,IAAIquD,EAAKxqD,GAAQ9kL,EAAKsvO,GAAGprV,QACjBC,EAAI,EAAGA,EAAI67G,EAAKsvO,GAAGprV,SAAUC,EAAGmrV,EAAGnrV,GAAK67G,EAAKsvO,GAAGnrV,GAGxD,OADU6zR,EAAQ,CAACu3D,EAAI/gD,EAAIihD,EAAIH,IA21OWI,CAAc1vO,EAAMqjG,EAAGC,EAAGrY,EAAMigF,SACrE,OAAOlrK,EAAK9qG,GAChB,IAAK,IAAK,IAAK,IAGd65U,GAAeh4C,EAAI,SAlhZtB,SAAsB1zF,EAAGC,EAAG/9L,EAAG2lQ,GAC9B,IAAIvjR,EAAIm9R,GAAQ,IAGhB,OAFAwjB,GAAcjlG,EAAGC,EAAG4nE,EAAIvjR,GACxBk0S,GAAWt2R,EAAG5d,GACPA,EA8gZwBgoV,CAAatsI,EAAGC,EAF3B,KAAVtjG,EAAK9qG,EAAW25R,EAAQS,EAAUtvL,EAAKz6F,IAAMy6F,EAAKz6F,EAEP2lQ,IACnD,MACD,IAAK,IAAK,IAAK,IACd6jE,GAAeh4C,EAAI,IAniZtB,SAAuB1zF,EAAGC,EAAG/9L,EAAG2lQ,EAAIjgF,EAAM/1L,GACzC,IAAIvN,EAAIm9R,GAAQ,GAGhB,OAFAwjB,GAAcjlG,EAAGC,EAAG4nE,EAAIvjR,GA3zBzB,SAAmB4d,EAAGrQ,EAAGvN,GACpBA,IAAGA,EAAIm9R,GAAQ,IACnBn9R,EAAEs5R,YAAY,GAAI17Q,GAClB5d,EAAEs5R,YAAY,EAAU,KAAL/rR,EAAY,EAAI,GAyzBnC06U,CAAUrqU,EAAGrQ,EAAGvN,GACTA,EA+hZsBkoV,CAAcxsI,EAAGC,EAAGtjG,EAAKz6F,EAAG2lQ,EAAIjgF,EAAMjrF,EAAK9qG,IACtE,MAED,IAAK,IAAK,IAAK,MACX+1L,EAAK6uH,QAEPi1B,GAAeh4C,EAAI,WA1uZvB,SAAwB1zF,EAAGC,EAAG/9L,EAAG2lQ,GAChC,IAAIvjR,EAAIm9R,GAAQ,IAGhB,OAFAwjB,GAAcjlG,EAAGC,EAAG4nE,EAAIvjR,GACxBA,EAAEs5R,YAAY,EAAG17Q,GACV5d,EAsuZ2BmoV,CAAezsI,EAAGC,EADtC8qH,GAAWnjI,EAAKslI,QAASvwN,EAAKz6F,EAAG0lL,EAAKulI,YACStlD,IACpD6jE,GAAeh4C,EAAI,QA3tZ7B,SAAqB1zF,EAAGC,EAAG/9L,EAAG2lQ,EAAIjgF,GACjC,IAAI8kJ,GAAM9kJ,GAAqB,GAAbA,EAAKmsG,KACnBzvS,EAAIm9R,IAAkBirD,EAAV,GAAiB,EAAIA,GAAMxqU,EAAErhB,QAK7C,OAJAokT,GAAcjlG,EAAGC,EAAG4nE,EAAIvjR,GACxBA,EAAEs5R,YAAY,EAAG17Q,EAAErhB,QAChB6rV,GAAIpoV,EAAEs5R,YAAY,EAAG,GACxBt5R,EAAEs5R,aAAa,EAAI8uD,GAAMxqU,EAAErhB,OAAQqhB,EAAGwqU,EAAK,UAAY,QAChDpoV,EAotZ8BqoV,CAAY3sI,EAAGC,EAAGtjG,EAAKz6F,EAAG2lQ,EAAIjgF,IACjE,MACD,QACC8jJ,GAAeh4C,EAAI,QAASuR,GAAcjlG,EAAGC,EAAG4nE,SArBjD6jE,GAAeh4C,EAAI,QAASuR,GAAcjlG,EAAGC,EAAG4nE,IA0BlD,SAAS+kE,GAAe3kO,EAAK2/E,EAAM6wC,GAClC,IAMIowE,EANAnV,EAAKP,KACLxmS,EAAI8rO,EAAG14B,WAAW93F,GAAM+hG,EAAKyuB,EAAG34B,OAAOnzM,IAAM,GAC7CkgV,GAAQp0G,GAAI,IAAI42F,UAAU,GAC1Byd,GAAWD,EAAI/sI,QAAQ,IAAI73F,IAAM,GACjCoG,EAAQrtH,MAAMmE,QAAQ6kN,GACtB0iI,EAAkB,GAAb9kJ,EAAKmsG,KACL5Z,EAAK,GAAIn/K,EAAO,GACrBtiD,EAAQs8O,GAAkBhrF,EAAG,SAAW,MACxC+iI,EAAWL,EAAK,MAAQ,MAC5B,GAAGh0R,EAAMvgC,EAAE3oB,EAAI,KAAQkpD,EAAMvgC,EAAE5uB,GAAKwjV,EAAU,CAC7C,GAAGnlJ,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,UAAY6hN,EAAG,SAAW,MAAQ,oCAC/DtxJ,EAAMvgC,EAAE3oB,EAAIhH,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAG,KAChCkpD,EAAMvgC,EAAE5uB,EAAIf,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAGu9U,EAAS,GAG1CrB,GAAeh4C,EAAI,KAAQuS,GAAUxtE,EAAI,GAAM7wC,IAE/C8jJ,GAAeh4C,EAAI,WAAY+P,GAAY,IAC3CioC,GAAeh4C,EAAI,YAAa+P,GAAY,MAC5CioC,GAAeh4C,EAAI,cAAe6P,IAAU,IAC5CmoC,GAAeh4C,EAAI,WAAY6P,IAAU,IACzCmoC,GAAeh4C,EAAI,YAAa8E,GAAW,OAC3CkzC,GAAeh4C,EAAI,iBAAkB6P,IAAU,IAC/CmoC,GAAeh4C,EAAI,cAAe6P,IAAU,IAC5CmoC,GAAeh4C,EAAI,YAAa6P,IAAU,IAC1CmoC,GAAeh4C,EAAI,UAAW+P,GAAY,IAC1CioC,GAAeh4C,EAAI,OA9lZpB,SAAoBs5C,GACnB,IAAI1oV,EAAIm9R,GAAQ,GAIhB,OAHAn9R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAGovD,EAAK,GAAKA,EAAK,GAAK,EAAI,GACzC1oV,EAAEs5R,YAAY,EAAGovD,EAAK,GAAKA,EAAK,GAAK,EAAI,GAClC1oV,EAylZoB2oV,CAAW,CAAC,EAAE,KAIzCvB,GAAeh4C,EAAI,UAAW6P,IAAU,IACxCmoC,GAAeh4C,EAAI,UAAW6P,IAAU,IAExCmoC,GAAeh4C,EAAI,IA9tZpB,SAA0Bh7O,EAAOkvI,GAChC,IAAIr5H,EAAiB,GAAbq5H,EAAKmsG,MAAcnsG,EAAKmsG,KAAW,EAAJ,EACnCzvS,EAAIm9R,GAAQ,EAAElzN,EAAI,GAMtB,OALAjqE,EAAEs5R,YAAYrvN,EAAG7V,EAAM/rD,EAAEpD,GACzBjF,EAAEs5R,YAAYrvN,EAAG7V,EAAMvgC,EAAE5uB,EAAI,GAC7BjF,EAAEs5R,YAAY,EAAGllO,EAAM/rD,EAAE6C,GACzBlL,EAAEs5R,YAAY,EAAGllO,EAAMvgC,EAAE3oB,EAAI,GAC7BlL,EAAEs5R,YAAY,EAAG,GACVt5R,EAstZmB4oV,CAAiBx0R,EAAOkvI,IAG/C8kJ,IAAI1iI,EAAG,UAAY,IACtB,IAAI,IAAIhK,EAAItnJ,EAAM/rD,EAAEpD,EAAGy2M,GAAKtnJ,EAAMvgC,EAAE5uB,IAAKy2M,EAAG,CAC3Cm6E,EAAKia,GAAWp0F,GAChB,IAAI,IAAIC,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CACxCD,IAAMtnJ,EAAM/rD,EAAEpD,IAAGyxG,EAAKilG,GAAKo0F,GAAWp0F,IACzC4oG,EAAM7tM,EAAKilG,GAAKk6E,EAChB,IAAIx9K,EAAO0R,GAAS27F,EAAGhK,IAAI,IAAIC,GAAK+J,EAAG6+F,GACnClsM,IAEJqvO,GAAoBt4C,EAAI/2L,EAAMqjG,EAAGC,EAAGrY,GACjC8kJ,GAAM/vO,EAAK/6F,GAAGooM,EAAG,UAAUnkN,KAAK,CAACgjT,EAAKlsM,EAAK/6F,MAGhD,IAAIqwL,EAAQ66I,EAAOngB,UAAYmgB,EAAOpmV,MAAQiG,EAa9C,OAXG+/U,GAAIhB,GAAeh4C,EAAI,UAz1Z3B,SAAuBlf,GACtB,IAAIlwR,EAAIm9R,GAAQ,IAAK95R,EAAI,KAOzB,OANG6sR,GAAQA,EAAKu7C,MAAKpoU,GAAK,IAC1BrD,EAAEs5R,YAAY,EAAGj2R,GACjBrD,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,IACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACVt5R,EAi1Z8B6oV,EAAeN,EAAIhd,OAAO,IAAI,KAEhE6c,IAAO1iI,EAAG,YAAY,IAAInpN,QAAQ6qV,GAAeh4C,EAAI,aAv7YzD,SAA0Bm9B,GACzB,IAAIvsU,EAAIm9R,GAAQ,EAAoB,EAAhBovC,EAAOhwU,QAC3ByD,EAAEs5R,YAAY,EAAGizC,EAAOhwU,QACxB,IAAI,IAAIC,EAAI,EAAGA,EAAI+vU,EAAOhwU,SAAUC,EAAGykT,GAAYsrB,EAAO/vU,GAAIwD,GAC9D,OAAOA,EAm7Y+D8oV,CAAiBpjI,EAAG,aAEvF0iI,GA9FJ,SAA+Bh5C,EAAI1pF,GAClC,IAAI,IAAIhK,EAAE,EAAGA,EAAEgK,EAAG,UAAUnpN,SAAUm/M,EAAG,CACxC,IAAIqtI,EAAKrjI,EAAG,UAAUhK,GACtB0rI,GAAeh4C,EAAI,QAASsV,GAAYqkC,IACrCA,EAAG,GAAGlkC,SAASuiC,GAAeh4C,EAAI,eAAgBuV,GAAmBokC,WAElErjI,EAAG,UAwFHsjI,CAAsB55C,EAAI1pF,GAEjC0hI,GAAeh4C,EAAI,WAAY+Q,GAAsBxyG,IAElDy6I,GAzHJ,SAAoBh5C,EAAI1pF,GAEvB,IAAI1lN,EAAIm9R,GAAQ,IAChBn9R,EAAEs5R,YAAY,EAAG,MAAQt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAC/Dt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAC3D8tD,GAAeh4C,EAAI,UAAWpvS,IAE9BA,EAAIm9R,GAAQ,KACV7D,YAAY,EAAG,MAAQt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAC/Dt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAC3Dt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAAIt5R,EAAEs5R,YAAY,EAAG,GAC3D2nB,GAAYvQ,GAAkBhrF,EAAG,SAAS,MAAO1lN,GACjDA,EAAEs5R,YAAY,EAAG,GACjB8tD,GAAeh4C,EAAI,OAAQpvS,GA4GpBipV,CAAW75C,EAAI1pF,GAEtB0hI,GAAeh4C,EAAI,OACZA,EAAG/wR,MAIX,SAAS6qU,GAAmB/0G,EAAIm8C,EAAMhtF,GACrC,IAAI2sB,EAAI4+E,KACJ05C,GAAQp0G,GAAI,IAAI42F,UAAU,GAC1Boe,EAAWZ,EAAI/sI,QAAQ,GACvB4tI,EAAMb,EAAIvY,SAAS,GACnBoY,EAAkB,GAAb9kJ,EAAKmsG,KAAW6S,EAAkB,GAAbh/G,EAAKmsG,KACnC23C,GAAen3H,EAAG,KAAQ0xF,GAAUxtE,EAAI,EAAM7wC,IAC1B,OAAjBA,EAAKs+G,UAAmBwlC,GAAen3H,EAAG,SAC7Cm3H,GAAen3H,EAAG,eAAgBm4H,EAAKjpC,GAAY,MAAU,MAC7DioC,GAAen3H,EAAG,MA98anB,SAAqBhuN,EAAGjC,GAASA,IAAGA,EAAEm9R,GA88aA,IA98aY,IAAI,IAAIr0R,EAAE,EAAGA,EA88azB,IA98agCA,EAAG9I,EAAEs5R,YAAY,EAAG,GAAI,OAAOt5R,EA88a3EqpV,IACtB/mC,GAAI8kC,GAAen3H,EAAG,cACtBqyF,GAAI8kC,GAAen3H,EAAG,cACzBm3H,GAAen3H,EAAG,gBAClBm3H,GAAen3H,EAAG,cA/ganB,SAA2B5nN,EAAGi7L,GAC7B,IAAI8kJ,GAAM9kJ,GAAqB,GAAbA,EAAKmsG,KACnBzvS,EAAIm9R,GAAQirD,EAAK,IAAM,IAK3B,IAJApoV,EAAEs5R,YAAyB,GAAbh2F,EAAKmsG,KAAY,EAAI,EAAG,GACnC24C,GAAIpoV,EAAEs5R,YAAY,EAAG,GACxBt5R,EAAEs5R,YAAY,EAAG,WACjBt5R,EAAEs5R,YAAY,EAAI,SAAc8uD,EAAK,EAAI,YACnCpoV,EAAEsd,EAAItd,EAAEzD,QAAQyD,EAAEs5R,YAAY,EAAI8uD,EAAK,EAAI,IACjD,OAAOpoV,EAuga0BspV,CAAkB,EAAWhmJ,IAE9D8jJ,GAAen3H,EAAG,WAAYkvF,GAAYipC,EAAK,KAAS,OAErDA,GAAIhB,GAAen3H,EAAG,MAAOkvF,GAAY,IACzCipC,GAAIhB,GAAen3H,EAAG,cACzBm3H,GAAen3H,EAAG,UAzwYnB,SAAuBhuN,GAEtB,IADA,IAAIwlB,EAAM01Q,GAAQ,EAAIl7R,GACdzF,EAAI,EAAGA,EAAIyF,IAAKzF,EAAGirB,EAAI6xQ,YAAY,EAAG98R,EAAE,GAChD,OAAOirB,EAswYsB8hU,CAAcp1G,EAAG14B,WAAWl/M,SACtD6rV,GAAMj0G,EAAG22F,QAAQsc,GAAen3H,EAAG,UAEnCm4H,GAAMj0G,EAAG22F,QAEXsc,GAAen3H,EAAG,WAAYkwF,GADlBipC,EAAI/gB,UAAY,iBAG7B+e,GAAen3H,EAAG,sBAAuBkvF,GAAY,KAIrDioC,GAAen3H,EAAG,aAAcgvF,IAAU,IAC1CmoC,GAAen3H,EAAG,UAAWgvF,IAAU,IACvCmoC,GAAen3H,EAAG,WAAYkvF,GAAY,IACvCipC,GAAIhB,GAAen3H,EAAG,WAAYgvF,IAAU,IAC5CmpC,GAAIhB,GAAen3H,EAAG,eAAgBkvF,GAAY,IACrDioC,GAAen3H,EAAG,UA95ZnB,WACC,IAAIjwN,EAAIm9R,GAAQ,IAUhB,OATAn9R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,OACjBt5R,EAAEs5R,YAAY,EAAG,OACjBt5R,EAAEs5R,YAAY,EAAG,IACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,KACVt5R,EAm5ZsBwpV,IAC7BpC,GAAen3H,EAAG,SAAUgvF,IAAU,IACtCmoC,GAAen3H,EAAG,UAAWkvF,GAAY,IACzCioC,GAAen3H,EAAG,WAAYgvF,GAAwB,QAlzIvD,SAAkB9qE,GAEjB,OAAIA,EAAG42F,UACH52F,EAAG42F,SAASiF,SACTzlC,GAAap2D,EAAG42F,SAASiF,QAAQz9C,UAAY,OAF5B,QAgzIgBk3D,CAASt1G,KACjDizG,GAAen3H,EAAG,gBAAiBgvF,IAAU,IAC1CmpC,GAAIhB,GAAen3H,EAAG,aAAcgvF,IAAU,IACjDmoC,GAAen3H,EAAG,WAAYkvF,GAAY,IA3L3C,SAA2B/P,EAAIzsS,EAAM2gM,GACpC8jJ,GAAeh4C,EAAI,OA1rZpB,SAAoBzsS,EAAM2gM,GACzB,IAAIlhM,EAAOO,EAAKP,MAAQ,QACpBkgT,EAAMh/G,GAAsB,GAAbA,EAAKmsG,KACpBzvS,EAAIm9R,GADkCmlB,EAAM,GAAKlgT,EAAK7F,OAAW,GAAK,EAAI6F,EAAK7F,QAUnF,OARAyD,EAAEs5R,YAAY,EAAqB,IAAjB32R,EAAKg3R,IAAM,KAC7B35R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,KACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAGl3R,EAAK7F,QAClB+lT,GAAItiT,EAAEs5R,YAAY,EAAG,GACzBt5R,EAAEs5R,aAAagpB,EAAK,EAAI,GAAKlgT,EAAK7F,OAAQ6F,EAAOkgT,EAAK,OAAS,WACxDtiT,EA8qZoB0pV,CAAW,CACrC/vD,GAAG,GACHpsC,MAAO,CAAC8mD,MAAM,GACdjyS,KAAM,QACNouT,OAAQ,EACR31R,OAAQ,SACNyoK,IAsLHqmJ,CAAkB15H,EAAGkkB,EAAI7wC,GAlL1B,SAA0B8rG,EAAIsqB,EAAIp2H,GAC7Bo2H,GACJ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM1vT,SAAQ,SAAS/E,GACtE,IAAI,IAAIzI,EAAIyI,EAAE,GAAIzI,GAAKyI,EAAE,KAAMzI,EAAe,MAATk9T,EAAGl9T,IAAY4qV,GAAeh4C,EAAI,SAAUiT,GAAa7lT,EAAGk9T,EAAGl9T,GAAI8mM,OAgLvGsmJ,CAAiB35H,EAAGkkB,EAAGq8C,IAAKltF,GA5J7B,SAA6B8rG,EAAI9rG,GAChC,IAAI,IAAI9mM,EAAI,EAAGA,EAAI,KAAMA,EAAG4qV,GAAeh4C,EAAI,KAAMqT,GAAS,CAAC5R,SAAS,EAAGjhD,OAAM,GAAO,EAAGtsD,IAC3FA,EAAKs2H,QAAQ5vT,SAAQ,SAASkB,GAC7Bk8U,GAAeh4C,EAAI,KAAMqT,GAASv3S,EAAG,EAAGo4L,OA0JzCumJ,CAAoB55H,EAAG3sB,GAEpB8kJ,GAAIhB,GAAen3H,EAAG,WAAYgvF,IAAU,IAC/C,IAAIl6S,EAAIkrN,EAAE5xM,MAENs9L,EAAIkzF,KAELu5C,GAAIhB,GAAezrI,EAAG,UA/2Y1B,SAAuB37M,GAItB,OAHIA,IAAGA,EAAIm9R,GAAQ,IACnBn9R,EAAEs5R,YAAY,EAAG,GACjBt5R,EAAEs5R,YAAY,EAAG,GACVt5R,EA22Y6B8pV,IAIjC1B,GAAM9kJ,EAAKslI,SAnTf,SAA6Bx5B,EAAIhuR,EAAM67Q,EAAS1gS,GAC/C,IAAID,GAAiB2gS,GAAS,IAAI1gS,QAAU,EAC5C,GAAGD,GAAO,KAAM,OAAO8qV,GAAeh4C,EAAIhuR,EAAM67Q,EAAS3gS,GACzD,IAAIiR,GAAc45U,GAAU,IAC5B,IAAG59U,MAAMgE,GAAT,CAGA,IAFA,IAAIqiH,EAAQqtK,EAAQrtK,OAAS,GAAIm/L,EAAO,EACpCvyT,EAAI,EAAGytE,EAAI,EACTA,GAAK2lD,EAAMm/L,IAAS,OAAS,MAAQ9kP,GAAK2lD,EAAMm/L,IAAS,KAAOA,IACtE,IAAI/uT,EAAIovS,EAAG9tS,KAAK,GAKhB,IAJAtB,EAAEs5R,YAAY,EAAG/rR,GACjBvN,EAAEs5R,YAAY,EAAGrvN,GACjBmlO,EAAG7tS,KAAK07R,EAAQ96R,MAAM3F,EAAGA,EAAIytE,IAC7BztE,GAAKytE,EACCztE,EAAIF,GAAK,CAId,KAHA0D,EAAIovS,EAAG9tS,KAAK,IACVg4R,YAAY,EAAG,IACjBrvN,EAAI,EACEA,GAAK2lD,EAAMm/L,IAAS,OAAS,MAAQ9kP,GAAK2lD,EAAMm/L,IAAS,KAAOA,IACtE/uT,EAAEs5R,YAAY,EAAGrvN,GACjBmlO,EAAG7tS,KAAK07R,EAAQ96R,MAAM3F,EAAGA,EAAEytE,IAAKztE,GAAIytE,IAgSd8/Q,CAAoBpuI,EAAG,MAjga/C,SAAmBu2G,EAAK5uH,GACvB,IAAI6M,EAASgtF,GAAQ,GACrBhtF,EAAOmpF,YAAY,EAAG44B,EAAII,OAC1BniH,EAAOmpF,YAAY,EAAG44B,EAAIj6S,QAE1B,IADA,IAAI69R,EAAO,GACHhtS,EAAI,EAAGA,EAAIopT,EAAI31T,SAAUuM,EAAGgtS,EAAKhtS,GAAK+2S,GAAkCqS,EAAIppT,IACpF,IAAI9I,EAAIqwR,EAAQ,CAAClgF,GAAQ7nM,OAAOwtS,IAEhC,OADD91S,EAAE4vH,MAAQ,CAACugF,EAAO5zM,QAAQ+L,OAAOwtS,EAAK1tS,KAAI,SAASoqB,GAAO,OAAOA,EAAIj2B,WAC7DyD,EAy/Z8CgqV,CAAU1mJ,EAAKslI,UAGpEwe,GAAezrI,EAAG,OAClB,IAAIzwM,EAAIywM,EAAEt9L,MAEN6xM,EAAI2+E,KACJo7C,EAAO,EAAGnhV,EAAI,EAClB,IAAIA,EAAI,EAAGA,EAAIqrO,EAAG14B,WAAWl/M,SAAUuM,EAAGmhV,IAAS7B,EAAK,GAAK,KAAOA,EAAK,EAAI,GAAKj0G,EAAG14B,WAAW3yM,GAAGvM,OACnG,IAAIiO,EAAQzF,EAAExI,OAAS0tV,EAAO/+U,EAAE3O,OAChC,IAAIuM,EAAI,EAAGA,EAAIqrO,EAAG14B,WAAWl/M,SAAUuM,EAEtCs+U,GAAel3H,EAAG,cAAe2xF,GAAkB,CAACrtN,IAAIhqF,EAAOs3S,IADlDqnC,EAAQrgV,IAAM,IAC8C6nU,QAAQ,EAAGlvH,GAAG,EAAGr/M,KAAK+xO,EAAG14B,WAAW3yM,IAAKw6L,IAClH94L,GAAS8lR,EAAKxnR,GAAGvM,OAGlB,IAAIyI,EAAIkrN,EAAE7xM,MACV,GAAG4rU,GAAQjlV,EAAEzI,OAAQ,MAAM,IAAIsH,MAAM,OAASomV,EAAO,OAASjlV,EAAEzI,QAEhE,IAAIkrB,EAAM,GAIV,OAHG1iB,EAAExI,QAAQkrB,EAAIlmB,KAAKwD,GACnBC,EAAEzI,QAAQkrB,EAAIlmB,KAAKyD,GACnBkG,EAAE3O,QAAQkrB,EAAIlmB,KAAK2J,GACfywR,GAAW,CAACl0Q,IA+BpB,SAASyiU,GAAe/1G,EAAI7wC,GAC3B,IAAItjM,EAAIsjM,GAAQ,GAChB,OAAOtjM,EAAEyvS,MAAQ,GAChB,KAAK,EAAG,KAAK,EAAG,OA9BlB,SAAyBt7D,EAAI7wC,GAC5B,IAAItjM,EAAIsjM,GAAQ,GACZgtF,EAAO,GAERn8C,IAAOA,EAAGq8C,MACZr8C,EAAGq8C,IAAMA,EAAI+H,aAEXpkD,GAAMA,EAAGq8C,MACXC,EAASD,GAAMA,EAAIgI,WAAWrkD,EAAGq8C,KAEjCxwR,EAAEinU,OAAShgC,EAAU9yD,EAAGq8C,KAAMxwR,EAAEinU,OAAO9yF,EAAGq8C,IAAI,QAAU,EACxDxwR,EAAEknU,IAAM/yF,EAAGq8C,KAGZxwR,EAAE4oU,QAAU,GAAI5oU,EAAE4oU,QAAQtW,MAAQ,EAAGtyT,EAAE4oU,QAAQ3wT,OAAS,EACxDkyU,GAAenqV,GAEfA,EAAE45T,QAAU,GACZoN,GAAehnU,EAAE45T,QAAS,GAAI,CAACqN,OAAO,CAAC,QAAU,KAE7C9yF,EAAGinE,QAAOjnE,EAAGinE,MAAQ,IAEzB,IAAI,IAAI5+S,EAAI,EAAGA,EAAI23O,EAAG14B,WAAWl/M,SAAUC,EAAG8zR,EAAKA,EAAK/zR,QAAU+rV,GAAe9rV,EAAGwD,EAAGm0O,GAEvF,OADAm8C,EAAK15O,QAAQsyS,GAAmB/0G,EAAIm8C,EAAMtwR,IACnC27R,GAAW,CAACrL,IAMK85D,CAAgBj2G,EAAI7wC,GAC3C,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,OAnR1B,SAAyB6wC,EAAI7wC,GAK5B,IAJA,IAAItjM,EAAIsjM,GAAQ,GAEZ8rG,EAAKP,KACLlrL,EAAM,EACFnnH,EAAE,EAAEA,EAAE23O,EAAG14B,WAAWl/M,SAASC,EAAM23O,EAAG14B,WAAWj/M,IAAMwD,EAAEk7M,QAAOv3F,EAAInnH,GAC5E,GAAU,GAAPmnH,GAAc3jH,EAAEk7M,OAASi5B,EAAG14B,WAAW,IAAMz7M,EAAEk7M,MAAO,MAAM,IAAIr3M,MAAM,oBAAsB7D,EAAEk7M,OAMjG,OALAksI,GAAeh4C,EAAI,EAAQuS,GAAUxtE,EAAI,GAAMn0O,IA9BhD,SAAwBovS,EAAI1pF,EAAI/hG,EAAK2/E,GACpC,IACmDihH,EAD/Cx6L,EAAQrtH,MAAMmE,QAAQ6kN,GACtBtxJ,EAAQs8O,GAAkBhrF,EAAG,SAAW,MAAYmwE,EAAK,GAAIn/K,EAAO,GACxE,GAAGtiD,EAAMvgC,EAAE3oB,EAAI,KAAQkpD,EAAMvgC,EAAE5uB,EAAI,MAAQ,CAC1C,GAAGq+L,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,UAAY6hN,EAAG,SAAW,MAAQ,oCAC/DtxJ,EAAMvgC,EAAE3oB,EAAIhH,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAG,KAChCkpD,EAAMvgC,EAAE5uB,EAAIf,KAAKM,IAAI4vD,EAAMvgC,EAAE3oB,EAAG,OAChCq5S,EAAMhU,GAAan8O,GAEpB,IAAI,IAAIsnJ,EAAItnJ,EAAM/rD,EAAEpD,EAAGy2M,GAAKtnJ,EAAMvgC,EAAE5uB,IAAKy2M,EAAG,CAC3Cm6E,EAAKia,GAAWp0F,GAChB,IAAI,IAAIC,EAAIvnJ,EAAM/rD,EAAE6C,EAAGywM,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CACxCD,IAAMtnJ,EAAM/rD,EAAEpD,IAAGyxG,EAAKilG,GAAKo0F,GAAWp0F,IACzC4oG,EAAM7tM,EAAKilG,GAAKk6E,EAChB,IAAIx9K,EAAO0R,GAAS27F,EAAGhK,IAAI,IAAIC,GAAK+J,EAAG6+F,GACnClsM,GAEJivO,GAAoBl4C,EAAI/2L,EAAMqjG,EAAGC,KAenC0uI,CAAej7C,EAAIj7D,EAAG34B,OAAO24B,EAAG14B,WAAW93F,IAAOA,EAAK3jH,GAEvDonV,GAAeh4C,EAAI,IACZA,EAAG/wR,MAuQsBisU,CAAgBn2G,EAAI7wC,GAEpD,MAAM,IAAIz/L,MAAM,gBAAkB7D,EAAE4hT,SAAW,aAGhD,IAAI2zB,GAAQ,WACX,SAASgV,EAAc/3T,EAAK2rQ,GAC3B,IAAI76F,EAAO66F,GAAS,GAEhBz4E,EAAKpiB,EAAKv5E,MAAQ,GAAO,GAEzBqoN,GADJ5/S,EAAMA,EAAIllB,QAAQ,cAAe,KAClB23B,MAAM,WACrB,IAAImtS,EAAM,MAAM,IAAIvuU,MAAM,wCAC1B,IAAI2mV,EAAQh4T,EAAIyS,MAAM,aAClBzoC,EAAI41U,EAAKnuU,MAAO6E,EAAI0hV,GAASA,EAAMvmV,OAASuuB,EAAIj2B,OAChDwgF,EAltgBN,SAAqBvqD,EAAK0wL,EAAIjwF,GAC7B,GAAGm1K,IAAiC,iBAANllF,EAAgB,OAAO1wL,EAAI5kB,MAAMs1M,GAE/D,IADA,IAAI9iN,EAAIoyB,EAAI5kB,MAAMs1M,GAAKljN,EAAI,CAACI,EAAE,IACtB5D,EAAI,EAAGA,EAAI4D,EAAE7D,SAAUC,EAAKwD,EAAEuB,KA+sgBqB,QA/sgBVvB,EAAEuB,KAAKnB,EAAE5D,IAC1D,OAAOwD,EA8sgBKyqV,CAAYj4T,EAAIrwB,MAAM3F,EAAGsM,GAAI,kBACpC4yM,GAAK,EAAGC,EAAI,EAAG6wG,EAAK,EAAGgjB,EAAK,EAC5Bp7Q,EAAQ,CAAC/rD,EAAE,CAACpD,EAAE,IAAUiG,EAAE,KAAU2oB,EAAE,CAAC5uB,EAAE,EAAEiG,EAAE,IAC7CqhU,EAAS,GACb,IAAI/vU,EAAI,EAAGA,EAAIugF,EAAKxgF,SAAUC,EAAG,CAChC,IAAIwgB,EAAM+/D,EAAKvgF,GAAGo2B,OACd83T,EAAK1tU,EAAI7a,MAAM,EAAE,GAAG2L,cACxB,GAAS,OAAN48U,GACH,GAAS,OAANA,GAAqB,OAANA,EAAlB,CACA,IAAInyO,EAAQv7F,EAAIpP,MAAM,cACtB,IAAI9E,EAAI,EAAGA,EAAIyvG,EAAMh8G,SAAUuM,EAAG,CACjC,IAAIuvG,EAAOE,EAAMzvG,GAAG8pB,OACpB,GAAIylF,EAAKpzE,MAAM,WAAf,CAGA,IAFA,IAAIrR,EAAIykF,EAAM28K,EAAK,EAEE,KAAfphQ,EAAE+2G,OAAO,KAAcqqJ,EAAKphQ,EAAE9E,QAAQ,OAAS,GAAG8E,EAAIA,EAAEzxB,MAAM6yR,EAAG,GACvE,IAAI,IAAI21D,EAAO,EAAGA,EAAOpe,EAAOhwU,SAAUouV,EAAM,CAC/C,IAAI5X,EAASxG,EAAOoe,GACjB5X,EAAO1qU,EAAE6C,GAAKywM,GAAKo3H,EAAO1qU,EAAEpD,EAAIy2M,GAAKA,GAAKq3H,EAAOl/S,EAAE5uB,IAAK02M,EAAIo3H,EAAOl/S,EAAE3oB,EAAI,EAAGy/U,GAAQ,GAExF,IAAIh0H,EAAMyyE,GAAY/wL,EAAKl2G,MAAM,EAAGk2G,EAAKvpF,QAAQ,OACjD0gT,EAAK74G,EAAIi0H,SAAWj0H,EAAIi0H,QAAU,IAC9Bp+B,GAAM71F,EAAIk0H,SAAS,GAAKrb,EAAG,IAAGjD,EAAOhrU,KAAK,CAAC8G,EAAE,CAACpD,EAAEy2M,EAAExwM,GAAK2oB,EAAE,CAAC5uB,EAAEy2M,GAAK8wG,GAAI,GAAK,EAAGthT,EAAEywM,EAAI6zH,EAAK,KAC5F,IAAIsb,EAAKn0H,EAAIppN,GAAK,GAElB,GAAIqmB,EAAEr3B,QAIN,GAHAq3B,EAAIq3Q,GAAWr3Q,GACZwgC,EAAM/rD,EAAEpD,EAAIy2M,IAAGtnJ,EAAM/rD,EAAEpD,EAAIy2M,GAAMtnJ,EAAMvgC,EAAE5uB,EAAIy2M,IAAGtnJ,EAAMvgC,EAAE5uB,EAAIy2M,GAC5DtnJ,EAAM/rD,EAAE6C,EAAIywM,IAAGvnJ,EAAM/rD,EAAE6C,EAAIywM,GAAMvnJ,EAAMvgC,EAAE3oB,EAAIywM,IAAGvnJ,EAAMvgC,EAAE3oB,EAAIywM,GAC3D/nL,EAAEr3B,OAAN,CACA,IAAIyD,EAAI,CAACuN,EAAE,IAAKqQ,GACb0lL,EAAK2vD,MAAQr/N,EAAEhB,OAAOr2B,QAAgB,KAANuuV,IACrB,SAANl3T,EAAc5zB,EAAI,CAACuN,EAAE,IAAKqQ,GAAE,GACtB,UAANgW,EAAe5zB,EAAI,CAACuN,EAAE,IAAKqQ,GAAE,GAC5BrU,MAAMw+R,GAASn0Q,IACfrqB,MAAM0+R,GAAUr0Q,GAAGqkL,aAC3Bj4M,EAAI,CAAEuN,EAAE,IAAKqQ,EAAE+pR,EAAU/zQ,IACrB0vK,EAAKquG,YAAW3xS,EAAI,CAAEuN,EAAE,IAAKqQ,EAAEspR,EAAQlnS,EAAE4d,KAC7C5d,EAAEm7G,EAAImoF,EAAK20F,QAAUzH,EAAIl4B,OAAO,KAJJt4P,EAAI,CAACuN,EAAE,IAAKqQ,EAAEmqR,GAASn0Q,KAMjD0vK,EAAKv5E,OAAa27F,EAAGhK,KAAIgK,EAAGhK,GAAK,IAAIgK,EAAGhK,GAAGC,GAAK37M,GAC9C0lN,EAAGkqF,GAAY,CAAC3qS,EAAEy2M,EAAGxwM,KAASlL,EACnC27M,GAAK6zH,QAjBW7zH,GAAK6zH,SAlBtB,CAAuB,KAAH9zH,EAAMpY,EAAK8iH,WAAa9iH,EAAK8iH,WAAa1qG,EAAG,GAAIA,EAAG,MAASC,EAAI,GAwCtF,OAFA+J,EAAG,QAAU6qF,GAAan8O,GACvBm4Q,EAAOhwU,SAAQmpN,EAAG,WAAa6mH,GAC3B7mH,EAKR,SAASqlI,EAAcrlI,EAAIzgN,EAAGy2M,EAAG17M,GAGhC,IAFA,IAAIipE,EAAKy8I,EAAG,YAAa,GACrBkoF,EAAK,GACDjyF,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAAG,CAEnC,IADA,IAAI6wG,EAAK,EAAGgjB,EAAK,EACT1mU,EAAI,EAAGA,EAAImgE,EAAE1sE,SAAUuM,EAC9B,KAAGmgE,EAAEngE,GAAGT,EAAEpD,EAAIy2M,GAAKzyI,EAAEngE,GAAGT,EAAE6C,EAAIywM,GAC3B1yI,EAAEngE,GAAG+qB,EAAE5uB,EAAIy2M,GAAKzyI,EAAEngE,GAAG+qB,EAAE3oB,EAAIywM,GAA9B,CACA,GAAG1yI,EAAEngE,GAAGT,EAAEpD,EAAIy2M,GAAKzyI,EAAEngE,GAAGT,EAAE6C,EAAIywM,EAAG,CAAE6wG,GAAM,EAAG,MAC5CA,EAAKvjP,EAAEngE,GAAG+qB,EAAE5uB,EAAIgkE,EAAEngE,GAAGT,EAAEpD,EAAI,EAAGuqU,EAAKvmQ,EAAEngE,GAAG+qB,EAAE3oB,EAAI+9D,EAAEngE,GAAGT,EAAE6C,EAAI,EAAG,MAE7D,KAAGshT,EAAK,GAAR,CACA,IAAIhsI,EAAQovH,GAAY,CAAC3qS,EAAEy2M,EAAExwM,EAAEywM,IAC3BtjG,EAAOr4G,EAAE+pH,OAAS27F,EAAGhK,IAAI,IAAIC,GAAK+J,EAAGllC,GAErCv2G,EAAKouC,GAAkB,MAAVA,EAAKz6F,IAAey6F,EAAKl4D,GAAKgqP,GAAW9xL,EAAKpuC,IAAM0mO,GAAYt4L,GAAOA,EAAKpuC,IAAM,MAAQ,GACvGy6P,EAAK,GACNlY,EAAK,IAAGkY,EAAGmmB,QAAUr+B,GACrBgjB,EAAK,IAAG9K,EAAGkmB,QAAUpb,GACxB9K,EAAGn3T,EAAI8qG,GAAQA,EAAK9qG,GAAK,IACtBvN,EAAEgrV,WAAU/gR,EAAI,gCAAkCA,EAAI,WACzDy6P,EAAG1lT,IAAMhf,EAAEgf,IAAM,OAAS,IAAMwhK,EACrB,KAARkkJ,EAAGn3T,IAAYm3T,EAAG9mT,EAAIy6F,EAAKz6F,EAAgB,MAAVy6F,EAAK8C,IAAWupN,EAAGvpN,EAAI9C,EAAK8C,IAChEyyL,EAAGrsS,KAAKoqS,GAAU,KAAM1hO,EAAGy6P,KAG5B,MADe,OACG92B,EAAGlgS,KAAK,IAAM,QAEjC,SAASu9U,EAAmBvlI,EAAIhK,EAAG17M,GAElC,MADU,GACC0N,KAAK,IAAM,UAAY1N,GAAKA,EAAEgf,GAAK,QAAUhf,EAAEgf,GAAK,IAAM,IAAM,IAE5E,IAAIksU,EAAS,sFACTC,EAAO,iBAcX,MAAO,CACN5kC,YAnDD,SAAsB/zR,EAAK8wK,GAC1B,OAAOytG,GAAkBw5C,EAAc/3T,EAAK8wK,GAAOA,IAmDnDkjH,SAAU+jC,EACVa,KAAML,EACNM,MAAOH,EACPI,IAAKH,EACLI,UAAWN,EACXxkC,WApBD,SAAuB/gG,EAAIpiB,GAC1B,IAAItjM,EAAIsjM,GAAQ,GACZ6M,EAAqB,MAAZnwM,EAAEmwM,OAAiBnwM,EAAEmwM,OAAS+6I,EACvCnkB,EAAqB,MAAZ/mU,EAAE+mU,OAAiB/mU,EAAE+mU,OAASokB,EACvC1jU,EAAM,CAAC0oL,GACPlrM,EAAIqrS,GAAa5qF,EAAG,SACxB1lN,EAAE+pH,MAAQrtH,MAAMmE,QAAQ6kN,GACxBj+L,EAAIlmB,KAAK0pV,EAAmBvlI,EAAIzgN,EAAGjF,IACnC,IAAI,IAAI07M,EAAIz2M,EAAEoD,EAAEpD,EAAGy2M,GAAKz2M,EAAE4uB,EAAE5uB,IAAKy2M,EAAGj0L,EAAIlmB,KAAKwpV,EAAcrlI,EAAIzgN,EAAGy2M,EAAG17M,IAErE,OADAynB,EAAIlmB,KAAK,WAAawlU,GACft/S,EAAI/Z,KAAK,MA1GN,GAwHZ,SAAS89U,GAAc9lI,EAAInU,EAAO4sF,GACjC,IAAI76F,EAAO66F,GAAS,GAEhBstD,EAAO,EAAGC,EAAO,EACrB,GAAkB,MAAfpoJ,EAAK+tG,OACP,GAAyB,iBAAf/tG,EAAK+tG,OAAoBo6C,EAAOnoJ,EAAK+tG,WAC1C,CACJ,IAAIC,EAAgC,iBAAfhuG,EAAK+tG,OAAqBjB,GAAY9sG,EAAK+tG,QAAU/tG,EAAK+tG,OAC/Eo6C,EAAOn6C,EAAQrsS,EAAGymV,EAAOp6C,EAAQpmS,EAGnC,IAAI6xE,EAAOw0H,EAAMo6I,qBAAqB,MAClCvlC,EAAYliT,KAAKM,IAAI8+L,EAAK8iH,WAAW,IAAUrpO,EAAKxgF,QACpD63D,EAAQ,CAAC/rD,EAAE,CAACpD,EAAE,EAAEiG,EAAE,GAAG2oB,EAAE,CAAC5uB,EAAEwmV,EAAKvgV,EAAEwgV,IACrC,GAAGhmI,EAAG,QAAS,CACd,IAAI6rF,EAASjB,GAAa5qF,EAAG,SAC7BtxJ,EAAM/rD,EAAEpD,EAAIf,KAAKM,IAAI4vD,EAAM/rD,EAAEpD,EAAGssS,EAAOlpS,EAAEpD,GACzCmvD,EAAM/rD,EAAE6C,EAAIhH,KAAKM,IAAI4vD,EAAM/rD,EAAE6C,EAAGqmS,EAAOlpS,EAAE6C,GACzCkpD,EAAMvgC,EAAE5uB,EAAIf,KAAKQ,IAAI0vD,EAAMvgC,EAAE5uB,EAAGssS,EAAO19Q,EAAE5uB,GACzCmvD,EAAMvgC,EAAE3oB,EAAIhH,KAAKQ,IAAI0vD,EAAMvgC,EAAE3oB,EAAGqmS,EAAO19Q,EAAE3oB,IAC7B,GAATugV,IAAYr3R,EAAMvgC,EAAE5uB,EAAIwmV,EAAOl6C,EAAO19Q,EAAE5uB,EAAI,GAEhD,IAAIsnU,EAAS,GAAIoe,EAAO,EACpBx/B,EAAUzlG,EAAG,WAAaA,EAAG,SAAW,IACxCyrF,EAAK,EAAGz1F,EAAI,EAAG01F,EAAK,EAAGz1F,EAAI,EAAG6wG,EAAK,EAAGgjB,EAAK,EAE/C,IADI9pH,EAAG,WAAUA,EAAG,SAAW,IACzByrF,EAAKp0N,EAAKxgF,QAAUm/M,EAAI0qG,IAAajV,EAAI,CAC9C,IAAIn0R,EAAM+/D,EAAKo0N,GACf,GAAIy6C,GAAsB5uU,GAAM,CAC/B,GAAIsmL,EAAKy9I,QAAS,SAClB51B,EAAQzvG,GAAK,CAAC2xC,QAAQ,GAEvB,IAAIw+F,EAAQ7uU,EAAY,SACxB,IAAIo0R,EAAKz1F,EAAI,EAAGy1F,EAAKy6C,EAAKtvV,SAAU60S,EAAI,CACvC,IAAInT,EAAM4tD,EAAKz6C,GACf,IAAI9tG,EAAKy9I,UAAW6K,GAAsB3tD,GAA1C,CACA,IAAIrgR,EAAIqgR,EAAI6tD,aAAa,KAAO7tD,EAAI8tD,aAAa,KAAO9gD,GAAWhN,EAAI+tD,WACnE7wO,EAAI8iL,EAAI8tD,aAAa,KACzB,IAAIpB,EAAO,EAAGA,EAAOpe,EAAOhwU,SAAUouV,EAAM,CAC3C,IAAI/2T,EAAI24S,EAAOoe,GACZ/2T,EAAEvrB,EAAE6C,GAAKywM,EAAI+vI,GAAQ93T,EAAEvrB,EAAEpD,EAAIy2M,EAAI+vI,GAAQ/vI,EAAI+vI,GAAQ73T,EAAEC,EAAE5uB,IAAK02M,EAAI/nL,EAAEC,EAAE3oB,EAAE,EAAIwgV,EAAMf,GAAQ,GAG9Fnb,GAAMvxC,EAAI8tD,aAAa,YAAc,IAC/Bv/B,GAAOvuB,EAAI8tD,aAAa,YAAc,GAAK,GAAKvc,EAAG,IAAGjD,EAAOhrU,KAAK,CAAC8G,EAAE,CAACpD,EAAEy2M,EAAI+vI,EAAKvgV,EAAEywM,EAAI+vI,GAAM73T,EAAE,CAAC5uB,EAAEy2M,EAAI+vI,GAAQj/B,GAAI,GAAK,EAAGthT,EAAEywM,EAAI+vI,GAAQlc,GAAI,GAAK,KACvJ,IAAIxvU,EAAI,CAACuN,EAAE,IAAKqQ,EAAEA,GACdktU,EAAK7sD,EAAI8tD,aAAa,MAAQ,GAC1B,MAALnuU,IACa,GAAZA,EAAErhB,OAAayD,EAAEuN,EAAIu9U,GAAM,IACtBxnJ,EAAK2vD,KAA0B,GAAnBr1O,EAAEgV,OAAOr2B,QAAqB,KAANuuV,IAC9B,SAANltU,EAAc5d,EAAI,CAACuN,EAAE,IAAKqQ,GAAE,GACtB,UAANA,EAAe5d,EAAI,CAACuN,EAAE,IAAKqQ,GAAE,GAC5BrU,MAAMw+R,GAASnqR,IACfrU,MAAM0+R,GAAUrqR,GAAGq6L,aAC3Bj4M,EAAI,CAAEuN,EAAE,IAAKqQ,EAAE+pR,EAAU/pR,IACrB0lL,EAAKquG,YAAW3xS,EAAI,CAAEuN,EAAE,IAAKqQ,EAAEspR,EAAQlnS,EAAE4d,KAC7C5d,EAAEm7G,EAAImoF,EAAK20F,QAAUzH,EAAIl4B,OAAO,KAJJt4P,EAAI,CAACuN,EAAE,IAAKqQ,EAAEmqR,GAASnqR,WAO1C3f,IAAR+B,EAAEm7G,GAAwB,MAALA,IAAWn7G,EAAEm7G,EAAIA,GACtCmoF,EAAKv5E,OAAa27F,EAAGhK,EAAI+vI,KAAO/lI,EAAGhK,EAAI+vI,GAAQ,IAAI/lI,EAAGhK,EAAI+vI,GAAM9vI,EAAI+vI,GAAQ1rV,GAC1E0lN,EAAGkqF,GAAY,CAAC1kS,EAAEywM,EAAI+vI,EAAMzmV,EAAEy2M,EAAI+vI,KAAUzrV,EAC9Co0D,EAAMvgC,EAAE3oB,EAAIywM,EAAI+vI,IAAMt3R,EAAMvgC,EAAE3oB,EAAIywM,EAAI+vI,GACzC/vI,GAAK6zH,KAEJ9zH,EAMH,OAJG6wH,EAAOhwU,SAAQmpN,EAAG,YAAcA,EAAG,YAAc,IAAIp9M,OAAOikU,IAC/Dn4Q,EAAMvgC,EAAE5uB,EAAIf,KAAKQ,IAAI0vD,EAAMvgC,EAAE5uB,EAAGy2M,EAAI,EAAI+vI,GACxC/lI,EAAG,QAAU6qF,GAAan8O,GACvBsnJ,GAAK0qG,IAAW1gG,EAAG,YAAc6qF,IAAcn8O,EAAMvgC,EAAE5uB,EAAI83E,EAAKxgF,OAAO40S,EAAGz1F,EAAE,EAAI+vI,EAAKr3R,KACjFsxJ,EAGR,SAASumI,GAAgB16I,EAAO4sF,GAG/B,OAAOqtD,IAFIrtD,GAAS,IACNp0K,MAAQ,GAAO,GACJwnF,EAAO4sF,GAOjC,SAASytD,GAAsB9mR,GAC9B,IAAIi8Q,EAAU,GACVmL,EAOL,SAAyCpnR,GAExC,OAAGA,EAAQqnR,cAAcC,aAA6E,mBAAvDtnR,EAAQqnR,cAAcC,YAAYC,iBAAwCvnR,EAAQqnR,cAAcC,YAAYC,iBAE5H,mBAArBA,iBAAwCA,iBAC3C,KAZkBC,CAAgCxnR,GAGzD,OAFGonR,IAAoBnL,EAAUmL,EAAmBpnR,GAASynR,iBAAiB,YAC1ExL,IAASA,EAAUj8Q,EAAQ8qL,MAAMmxF,SAClB,SAAZA,EAYR,IAeKyL,GAfDC,IAeCD,GAAiB,CAEpBE,IAAe,CAAC,IAAO,MACvBC,MAAe,CAAC,IAAO,MACvBC,KAAe,CAAC,IAAO,MACvBC,MAAe,CAAC,IAAO,MACvBC,QAAe,CAAC,IAAO,MACvBC,QAAe,CAAC,IAAO,MACvB,QAAe,CAAC,MAAO,SACvB,cAAe,CAAC,MAAO,QACvBC,IAAe,CAAC,IAAO,MAEvBC,QAAe,CAAC,OAAQ,oBAGlB,SAAaniV,EAAGqzR,GACtB,IAGgBhnN,EACZw/I,EAEAu2H,EACAC,EAGA59B,EAAIxlP,EArCJqjR,EA2BA9pJ,EAAO66F,GAAS,GAEhB3rQ,EAAM0iT,GAAepqU,GACrBiZ,EAAQ,GAERspU,EAAQ,CAACjrV,KAAK,IAAKs3T,EAAK,GAAIoc,EAAO,EAGnCt6H,EAAS,GAAIC,EAAa,GAC1BiK,EAAKpiB,EAAKv5E,MAAQ,GAAO,GAEzBujO,EAAO,CAAElwV,MAAM,IACfmwV,EAAQ,GAAIC,EAAW,EACvBC,EAAQ,GACR/xI,GAAK,EAAGC,GAAK,EAAGvnJ,EAAQ,CAAC/rD,EAAG,CAACpD,EAAE,IAAQiG,EAAE,KAAW2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAC/DwiV,EAAS,EACTC,EAAoB,GACpBphB,EAAS,GAAIqhB,EAAS,GACtBziC,EAAU,GAAI0iC,EAAU,EAAGC,EAAU,EACrCvoB,EAAS,GACT5uB,EAAK,CAACw1B,MAAM,IACZ4hB,EAAO,GACPC,EAAO,CAAC,GAAI,IACZj4C,EAAW,GAAIxqC,EAAU,GACzB0iF,EAAU,GAAIC,EAAa,EAC3BC,GAAS,EAAOC,GAAU,EAC1B5xV,EAAI,EAGR,IAFA24U,GAAUv+I,UAAY,EACtBpkK,EAAMA,EAAIllB,QAAQ,sBAAsB,IAAIA,QAAQ,+BAA+B,IAC5EiiT,EAAK4lB,GAAU3gK,KAAKhiJ,WAAe+8R,EAAG,GAAGA,EAAG,GAAGjiT,QAAQ,OAAO,KAEpE,IAAK,QAAS,IAAK,MACP,MAARiiT,EAAG,IACFn7P,EAAMvgC,EAAE3oB,GAAKkpD,EAAM/rD,EAAE6C,GAAKkpD,EAAMvgC,EAAE5uB,GAAKmvD,EAAM/rD,EAAEpD,EAAGygN,EAAG,QAAU6qF,GAAan8O,GAC1EsxJ,EAAG,QAAU,QACfpiB,EAAK8iH,UAAY,GAAK9iH,EAAK8iH,WAAahyP,EAAMvgC,EAAE5uB,IAClDygN,EAAG,YAAcA,EAAG,QACpBtxJ,EAAMvgC,EAAE5uB,EAAIq+L,EAAK8iH,UAAY,EAC7B1gG,EAAG,QAAU6qF,GAAan8O,IAExBm4Q,EAAOhwU,SAAQmpN,EAAG,WAAa6mH,GAC/BphB,EAAQ5uT,SAAQmpN,EAAG,SAAWylG,GACjC+hC,EAAQ9qV,KAAO8qV,EAAQ,OAASA,EAAQ9qV,KACrB,oBAAT0vB,MAAsBA,KAAKC,UAAUm7T,GAC/CzxI,EAAWl6M,KAAK2rV,EAAQ9qV,MACxBo5M,EAAO0xI,EAAQ9qV,MAAQsjN,EACvB0oI,GAAU,GAE8B,MAAjC7+B,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,KACjC2wV,EAAU9jD,GAAYmmB,EAAG,IAAI,GAC7B7zG,EAAIC,GAAK,EACTvnJ,EAAM/rD,EAAEpD,EAAImvD,EAAM/rD,EAAE6C,EAAI,IAAUkpD,EAAMvgC,EAAE5uB,EAAImvD,EAAMvgC,EAAE3oB,EAAI,EAC1Dw6M,EAAKpiB,EAAKv5E,MAAQ,GAAO,GAAMwiN,EAAS,GACxCphB,EAAU,GACVijC,GAAU,GAEX,MAED,IAAK,kBACS,MAAV7+B,EAAG,KAAcm+B,IAAeA,EACnC,MACD,IAAK,YAAa,IAAK,IACtB,GAAa,MAAVn+B,EAAG,GAAY,CAAE7zG,GAAGmyI,EAASA,EAAU,EAAG,MAK7C,IAJAV,EAAS/jD,GAAYmmB,EAAG,IAAI,IAClB,MAAO7zG,EAAIyxI,EAAO,MAAQ,GAAiB,GAANzxI,IAASA,EAAI,IAC5DmyI,GAAWV,EAAO,yBAA2B,GAEhC,GAAI,IAAI3wV,EAAI,EAAGA,EAAIqxV,IAAWrxV,EAAMkxV,EAAS,IAAGviC,EAAQzvG,EAAIl/M,GAAK,CAAC6nF,MAAOqpQ,IACtF/xI,GAAK,EAAG,MACT,IAAK,qBACS,MAAV4zG,EAAG,MAAc5zG,EACjBrY,EAAKouG,aACJpuG,EAAKv5E,OAAa27F,EAAGhK,KAAIgK,EAAGhK,GAAK,IAAIgK,EAAGhK,GAAGC,GAAK,CAACpuM,EAAE,MACjDm4M,EAAGkqF,GAAY,CAAC3qS,EAAEy2M,EAAExwM,EAAEywM,KAAO,CAACpuM,EAAE,MAEtCggV,EAAQ,GAAIE,EAAQ,GACpB,MACD,IAAK,aAAc,IAAK,KACvB,GAAoC,MAAjCl+B,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,KAC1Bo/M,EACF2xI,EAAOlkD,GAAYmmB,EAAG,IAAI,GAC1Bu+B,EAAUjwP,SAASyvP,EAAK,4BAA4B,IAAK,IACzDvjR,EAAI,CAAEx8D,EAAE,IAAKqQ,EAAE,MACZ0vU,EAAK5hC,SAA+B,GAApBpoH,EAAK8mI,cAAsBrgQ,EAAE1mE,EAAI+iU,GAAmBv8B,GAAYyjD,EAAK5hC,WAC7C,WAAvC4hC,EAAK,SAAWA,EAAK,iBACxBvjR,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAIisR,GAAYyjD,EAAK,iBAAmB,IAClDhqJ,EAAKv5E,OACH27F,EAAGhK,KAAIgK,EAAGhK,GAAK,IACnBgK,EAAGhK,GAAGC,GAAK5xI,GAEX27I,EAAGkqF,GAAY,CAAC3qS,EAAEy2M,EAAExwM,EAAEywM,KAAO5xI,GAG/B4xI,GAAImyI,EAAQ,OACN,GAAW,MAARv+B,EAAG,GAAU,CAEtBu+B,EAAU,EACV,IAAIO,EAAOR,EAAUnyI,EAAImyI,EAAU,EAAInyI,EAQvC,KAVEC,EAGKvnJ,EAAMvgC,EAAE3oB,IAAGkpD,EAAMvgC,EAAE3oB,EAAIywM,GAC3BA,EAAIvnJ,EAAM/rD,EAAE6C,IAAGkpD,EAAM/rD,EAAE6C,EAAIywM,GAC3BD,EAAItnJ,EAAM/rD,EAAEpD,IAAGmvD,EAAM/rD,EAAEpD,EAAIy2M,GAC3B2yI,EAAOj6R,EAAMvgC,EAAE5uB,IAAGmvD,EAAMvgC,EAAE5uB,EAAIopV,GAEjCt4C,EAAW,GAAIxqC,EAAU,GACzBxhM,EAAI,CAAEx8D,GAFN+/U,EAAOlkD,GAAYmmB,EAAG,IAAI,IAEb,SAAW+9B,EAAK,cAAe1vU,EAAE,MAC3C0lL,EAAK8mI,YASP,GARGkjB,EAAK5hC,UAAS4hC,EAAK5hC,QAAU7hB,GAAYyjD,EAAK5hC,UAC9C4hC,EAAK,kCAAoCA,EAAK,gCAGhDM,EAAS,CAACvlV,EAAG,CAACpD,EAAEy2M,EAAExwM,EAAEywM,GAAI9nL,EAAE,CAAC5uB,EAAEy2M,GAFxB79G,SAASyvP,EAAK,8BAA8B,KAAO,GAEpB,EAAEpiV,EAAEywM,GADnC99G,SAASyvP,EAAK,iCAAiC,KAAO,GACZ,IAC/CvjR,EAAEw9L,EAAIgpC,GAAaq9C,GACnBroB,EAAOhkU,KAAK,CAACqsV,EAAQ7jR,EAAEw9L,KAErB+lF,EAAK5hC,QAAS3hP,EAAE1mE,EAAI+iU,GAAmBknB,EAAK5hC,cAC1C,IAAIlvT,EAAI,EAAGA,EAAI+oU,EAAOhpU,SAAUC,EACjCk/M,GAAK6pH,EAAO/oU,GAAG,GAAG6L,EAAEpD,GAAKy2M,GAAK6pH,EAAO/oU,GAAG,GAAGq3B,EAAE5uB,GAC5C02M,GAAK4pH,EAAO/oU,GAAG,GAAG6L,EAAE6C,GAAKywM,GAAK4pH,EAAO/oU,GAAG,GAAGq3B,EAAE3oB,IAC/C6+D,EAAEw9L,EAAIg+D,EAAO/oU,GAAG,IAapB,QAXG8wV,EAAK,2BAA6BA,EAAK,0BAGzCM,EAAS,CAACvlV,EAAG,CAACpD,EAAEy2M,EAAExwM,EAAEywM,GAAI9nL,EAAE,CAAC5uB,EAAEy2M,GAFxB79G,SAASyvP,EAAK,uBAAuB,KAAO,GAEb,EAAEpiV,EAAEywM,GADnC99G,SAASyvP,EAAK,0BAA0B,KAAO,GACL,IAC/C/gB,EAAOhrU,KAAKqsV,IAIVN,EAAK,6BAA4BQ,EAAUjwP,SAASyvP,EAAK,2BAA4B,KAGjFvjR,EAAEx8D,GACR,IAAK,UAAWw8D,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAI2sR,GAAa+iD,EAAK,kBAAmB,MACtE,IAAK,QACL,IAAK,aACL,IAAK,WAAYvjR,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAIH,WAAW6vU,EAAKlwV,OAAQ,MAC1D,IAAK,OAAQ2sE,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAI+pR,EAAU2lD,EAAK,eACxChqJ,EAAKquG,YAAa5nO,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAIspR,EAAQn9N,EAAEnsD,IACjDmsD,EAAEoxC,EAAI,SAAU,MACjB,IAAK,OAAQpxC,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAI2pR,EAAa+lD,EAAK,eAAe,MAAO,MACtE,IAAK,SAAUvjR,EAAEx8D,EAAI,IAAKw8D,EAAEnsD,EAAIH,WAAW6vU,EAAK,SAAU,MAC1D,QACC,GAAW,WAARvjR,EAAEx8D,GAA0B,SAARw8D,EAAEx8D,GAAiBw8D,EAAEx8D,EAGrC,MAAM,IAAI1J,MAAM,0BAA4BkmE,EAAEx8D,GAFpDw8D,EAAEx8D,EAAI,IACqB,MAAxB+/U,EAAK,kBAA2BC,EAAQ1jD,GAAYyjD,EAAK,iBAAkBG,EAAQ,SAGnF,CAWN,GAVAU,GAAS,EACE,MAARpkR,EAAEx8D,IACJw8D,EAAEnsD,EAAI2vU,GAAS,GACZE,EAAMlxV,SAAQwtE,EAAE2xI,EAAI+xI,GACvBU,EAAqB,GAAZX,GAEPO,EAAKr2C,SAAQ3tO,EAAEzsD,EAAIywU,GACnBh4C,EAASx5S,OAAS,IAAKwtE,EAAE7+D,EAAI6qS,EAAUA,EAAW,IAClDw3C,IAA2B,IAAlBjqJ,EAAKirH,WAAoBxkP,EAAEE,EAAIsjR,GACxCY,IAAUpkR,EAAEx8D,EAAI,WAAYw8D,EAAEnsD,KAC7BuwU,GAAU7qJ,EAAKouG,eACbpuG,EAAK8iH,WAAa9iH,EAAK8iH,WAAa1qG,GACxC,IAAI,IAAI4yI,EAAM,EAAGA,EAAMT,IAAWS,EAAK,CAEtC,GADAR,EAAUjwP,SAASyvP,EAAK,4BAA4B,IAAK,IACtDhqJ,EAAKv5E,MAGP,IAFI27F,EAAGhK,EAAI4yI,KAAM5oI,EAAGhK,EAAI4yI,GAAO,IAC/B5oI,EAAGhK,EAAI4yI,GAAK3yI,GAAY,GAAP2yI,EAAWvkR,EAAI+9N,GAAI/9N,KAC5B+jR,EAAU,GAAGpoI,EAAGhK,EAAI4yI,GAAK3yI,EAAImyI,GAAWhmD,GAAI/9N,QAGpD,IADA27I,EAAGkqF,GAAY,CAAC3qS,EAAEy2M,EAAI4yI,EAAIpjV,EAAEywM,KAAO5xI,IAC3B+jR,EAAU,GAAGpoI,EAAGkqF,GAAY,CAAC3qS,EAAEy2M,EAAI4yI,EAAIpjV,EAAEywM,EAAImyI,KAAahmD,GAAI/9N,GAEpE3V,EAAMvgC,EAAE3oB,GAAKywM,IAAGvnJ,EAAMvgC,EAAE3oB,EAAIywM,GAKlCA,IADAmyI,EAAUjwP,SAASyvP,EAAK,4BAA4B,IAAK,KAC5C,EAAGQ,EAAU,EAC1B/jR,EAAI,GACJwjR,EAAQ,GAAIE,EAAQ,GAErBM,EAAO,GACP,MAGD,IAAK,WACL,IAAK,mBAAoB,IAAK,SAC9B,IAAK,cAAe,IAAK,KACzB,IAAK,UACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACJ,GAAW,MAARx+B,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,KAAM,cAAcp4O,MAC5B,MAAjCo4O,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAYwnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACjE,MAED,IAAK,aACJ,GAAW,MAARA,EAAG,GAAS,CACd,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,KAAM,cAAcp4O,EACrDo0L,EAAQh+P,EAAIggV,EACTE,EAAMlxV,SAAQgvQ,EAAQ7vD,EAAI+xI,GAC7BliF,EAAQxmQ,EAAIkpV,EACZl4C,EAASx0S,KAAKgqQ,OAE0B,MAAjCgkD,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAawnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IAClE0+B,EAAU,GAAIC,EAAa,EAC3BX,EAAQ,GAAIC,EAAW,EAAGC,EAAQ,GAClC,MAED,IAAK,UACO,MAARl+B,EAAG,GAAY0+B,EAAUz7T,EAAIrwB,MAAM+rV,EAAW3+B,EAAGtrT,OAC/CiqV,EAAa3+B,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,OACnC,MAGD,IAAK,OAAQ,IAAK,MAClB,IAAK,WACL,IAAK,kBACL,IAAK,0BACL,IAAK,wBACL,IAAK,wBACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,oBACL,IAAK,aACL,IAAK,OACL,IAAK,YACL,IAAK,kBACL,IAAK,QACJ,GAAW,MAARgzT,EAAG,IAAU,IAAIp4O,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,KAAM,cAAcp4O,MAC5B,MAAjCo4O,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,IAAYwnB,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,IACjEg+B,EAAQ,GAAIC,EAAW,EAAGC,EAAQ,GAClC,MAED,IAAK,oBAEL,IAAK,kBAEL,IAAK,iBACJ,MACD,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,aACJ,GAAW,MAARl+B,EAAG,IAEL,GADAo+B,EAAkBN,EAAMjrV,MAAQs3T,GAC5BviP,EAAIpzD,EAAMkH,OAAO,KAAKskS,EAAG,GAAI,KAAM,cAAcp4O,MACX,MAAjCo4O,EAAG,GAAG5kL,OAAO4kL,EAAG,GAAGhzT,OAAO,KACnCm9T,EAAK,GACL2zB,EAAQjkD,GAAYmmB,EAAG,IAAI,GAC3BxrS,EAAMxiB,KAAK,CAACguT,EAAG,IAAI,KAClB,MAEH,IAAK,SACL,IAAK,YACL,IAAK,mBAAoB,MAEzB,IAAK,gBACL,IAAK,cACL,IAAK,QAEL,IAAK,MACL,IAAK,YAEL,IAAK,uBACL,IAAK,mBACL,IAAK,0BACL,IAAK,uBACL,IAAK,wBAAyB,MAE9B,IAAK,SACJ,OAAOxrS,EAAMA,EAAMxnB,OAAO,GAAG,IAC5B,IAAK,aACL,IAAK,aACJo6N,EAAMyyE,GAAYmmB,EAAG,IAAI,GACzBmK,GAAM8yB,GAAej9B,EAAG,IAAgB,SAAZ54F,EAAIi5B,MAAe,EAAE,GACjD,MAEH,IAAK,WAAY,MAEjB,IAAK,MACL,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,cACL,IAAK,eACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACJ,OAAO7rO,EAAMA,EAAMxnB,OAAO,GAAG,IAC5B,IAAK,aACL,IAAK,aACJo6N,EAAMyyE,GAAYmmB,EAAG,IAAI,GACzBmK,GAAM8yB,GAAej9B,EAAG,IAAgB,SAAZ54F,EAAIi5B,MAAe,EAAE,GACjD,MAEH,IAAK,gBACL,IAAK,UACL,IAAK,aAAc,MACnB,IAAK,OACJ,GAAuB,OAApB2/D,EAAG,GAAGptT,OAAO,GAAa,MACxB,GAAW,MAARotT,EAAG,GAAU,OAAOxrS,EAAMA,EAAMxnB,OAAO,GAAG,IACjD,IAAK,eACL,IAAK,aACL,IAAK,aACJm9T,GAAMlnS,EAAIrwB,MAAM2zU,EAAMvmB,EAAGtrT,YAGtB6xU,EAAOvmB,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,OAC7B,MAED,IAAK,cAEJyxV,EAAO3nB,IADP1vG,EAAMyyE,GAAYmmB,EAAG,IAAI,IACA,uBACzB,IAAIg/B,EAAS,CAAE/qC,KAAK7sF,EAAIv0N,KAAMiqU,IAAI2hB,EAAK,GAAK,IAAMA,EAAK,IACpDI,IAASG,EAAOniB,MAAQ3wH,EAAWl/M,QACtCo6S,EAAGw1B,MAAM5qU,KAAKgtV,GACd,MAED,IAAK,eACL,IAAK,kBACL,IAAK,gBAAiB,MAEtB,IAAK,OAAQ,IAAK,OAElB,IAAK,QACL,IAAK,eACL,IAAK,oBACL,IAAK,aAEL,IAAK,qBACL,IAAK,uBACL,IAAK,gBAEL,IAAK,YAEL,IAAK,qBACL,IAAK,uBACL,IAAK,oBACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,IAAK,OACL,IAAK,UACL,IAAK,cAEL,IAAK,MACL,IAAK,aACL,IAAK,OAAQ,MACb,IAAK,IAAK,IAAK,MACd,GAAG,CAAC,iBAAiBz/T,QAAQ/K,EAAMA,EAAMxnB,OAAO,GAAG,KAAO,EAAG,MAC7D,GAAW,MAARgzT,EAAG,IAAc+9B,GAASA,EAAK,gBAGdlkD,GAAYmmB,EAAG,IAAI,GAAQi+B,EAAWj+B,EAAGtrT,MAAQsrT,EAAG,GAAGhzT,WAHvB,CACnD,IAAIiyV,GA7XHpB,WA6XsB56T,EAAIrwB,MAAMqrV,EAASj+B,EAAGtrT,OA5X9CqJ,QAAQ,YAAa,KAAKslB,OAAOtlB,QAAQ,MAAO,KAChDA,QAAQ,cAAc,KACtBA,QAAQ,8BAA8B,SAASinR,EAAGC,GAAM,OAAO93R,MAAMmhG,SAAS22L,EAAG,IAAI,GAAG9mR,KAAK,QAC7FJ,QAAQ,qBAAqB,MAC7BA,QAAQ,uBAAuB,MAG1B,CAFCu8R,GAAYujD,EAAM9/U,QAAQ,WAAW,OAwX1CigV,GAASA,EAAMhxV,OAAS,EAAIgxV,EAAQ,KAAO,IAAMiB,EAAI,GAEtD,MACD,IAAK,IAAK,MAEV,IAAK,iBACJ,GAAW,MAARj/B,EAAG,GAAU,MAChB,IAEC/zG,GADAwyI,EAAO3nB,GAAcj9B,GAAYmmB,EAAG,IAAI,0BAC5B,IAAI,eAAiB,CAAEhL,IAAIypC,EAAK,IAC3C,MAAMn6T,IACR,MAED,IAAK,OAEL,IAAK,SAAU,MACf,IAAK,QAAS,IAAK,KACnB,IAAK,OACL,IAAK,cAGL,IAAK,eACL,IAAK,WAEL,IAAK,YACL,IAAK,sBACL,IAAK,qBACL,IAAK,eACL,IAAK,gBACL,IAAK,kBACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,mBAEL,IAAK,0BACL,IAAK,0BACL,IAAK,wBAAyB,MAG9B,IAAK,mBACL,IAAK,kBACL,IAAK,kBACL,IAAK,eACL,IAAK,kBACL,IAAK,eACL,IAAK,uBACL,IAAK,aACL,IAAK,iBACL,IAAK,oBACL,IAAK,gBACL,IAAK,cACL,IAAK,qBACL,IAAK,iBACL,IAAK,2BACL,IAAK,cACL,IAAK,kBACL,IAAK,UACL,IAAK,YACL,IAAK,gBACL,IAAK,aAGL,IAAK,iBACJ,MAED,IAAK,kBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,qBACL,IAAK,eACL,IAAK,mBACL,IAAK,iBAIL,IAAK,cAIL,IAAK,cACL,IAAK,aACL,IAAK,OAGL,IAAK,oBACL,IAAK,YACL,IAAK,YACL,IAAK,oBAAqB,MAG1B,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,mBACL,IAAK,mBACL,IAAK,uBACL,IAAK,sBACL,IAAK,qBACL,IAAK,oBACL,IAAK,0BACL,IAAK,uBACL,IAAK,yBACL,IAAK,6BACL,IAAK,oBACL,IAAK,mBACL,IAAK,0BAIL,IAAK,OACJ,MAGD,IAAK,uBACL,IAAK,sBACL,IAAK,WACL,IAAK,aAGL,IAAK,aACL,IAAK,WAAY,MAEjB,IAAK,IACJ,GAAY,MAAT07R,EAAG,GAAW,CAEhB,KADAw+B,EAAO3kD,GAAYmmB,EAAG,IAAI,IACjBnxR,KAAM,MACf2vT,EAAKr2C,OAASq2C,EAAK3vT,YAAa2vT,EAAK3vT,KACT,KAAzB2vT,EAAKr2C,OAAO/sK,OAAO,IAAaojN,EAAKr2C,OAAO5oR,QAAQ,MAAQ,IAC9Dk/T,EAAO3nB,GAAc0nB,EAAKr2C,OAAOv1S,MAAM,IACvC4rV,EAAKr2C,OAAS,IAAMs2C,EAAK,GAAK,IAAMA,EAAK,IAG3C,MAGD,IAAK,mBACL,IAAK,yBACL,IAAK,+BAAgC,MACrC,QAAS,OAAOz+B,EAAG,IAClB,IAAK,MACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,KACL,IAAK,KACJ,MACD,QAAS,GAAGjsH,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM0rT,IAGxC,IAAI9nS,EAAM,CACT+zL,OAAQA,EACRC,WAAYA,EACZsvH,SAAUp0B,GAGX,OADGrzG,EAAKo0I,mBAAmBjwT,EAAI+zL,OACxB/zL,IAIT,SAASgnU,GAAU3mN,EAAKw7D,GACvBA,EAAOA,GAAQ,GACf,IAAIorJ,IAAQpmD,GAAexgK,EAAK,cAC7B4mN,GArmeJ,SAAwB5jV,EAAGw4L,GAI1B,IAHA,IACIisH,EACAo/B,EAFAn8T,EAAM0iT,GAAepqU,GAGlBykT,EAAK4lB,GAAU3gK,KAAKhiJ,WAAc+8R,EAAG,IAC3C,IAAK,WAAY,MACjB,IAAK,aAEJ,GAAiB,MADjBo/B,EAAQvlD,GAAYmmB,EAAG,IAAI,IAClBl1S,MATC,mDAScs0U,EAAMvtU,KAAiB,MAAM,IAAIvd,MAAM,0CAC/D,MACD,IAAK,kBACL,IAAK,YACL,IAAK,uBACL,IAAK,iBACJ,MAAM,IAAIA,MAAM,8BACjB,QAAS,GAAGy/L,GAAQA,EAAKioG,IAAK,MAAMgkB,GAsle7Bq/B,CAAepmD,GAAW1gK,EAAK,yBAA0Bw7D,GACjE,IAAIq2D,EAAUgvC,GAAU7gK,EAAK,eAC7B,IAAI6xH,EAAS,MAAM,IAAI91P,MAAM,2BAA6B6qV,EAAM,MAAQ,OAAQ,SAChF,IAAIv6G,EAAKs4G,GAAkBiC,EAAM/0F,EAAU6wC,GAAS7wC,GAAUr2D,GAE9D,OADGglG,GAAexgK,EAAK,cAAaqsG,EAAGinE,MAAQ1C,GAAiBlQ,GAAW1gK,EAAK,cACzEqsG,EAER,SAASgjG,GAAWx0U,EAAM2gM,GACzB,OAAOmpJ,GAAkB9pV,EAAM2gM,GAIhC,IAAIurJ,GAAmB,WACtB,IAAI5xD,EAAU,2BAA6ByO,GAAW,CACrD,eAAkB,mDAClB,cAAkB,kDAClB,cAAkB,kDAClB,aAAkB,iDAClB,aAAkB,oDAClB,WAAkB,8DAClB,cAAkB,+BAClB,WAAkB,mCAClB,eAAkB,sDAClB,YAAkB,2DAClB,WAAkB,+CAClB,iBAAkB,QACd,6BACL,OAAO,WACN,OAAO3C,GAAa9L,GAhBC,GAmBnB6xD,GAAoB,WAEvB,IAQIC,EAAgB,mCAEhBzb,EAAW,SAAS5tH,EAAIyuB,EAAI33O,GAE/B,IAAIwD,EAAI,GACRA,EAAEuB,KAAK,kCAAoCyoS,GAAU71D,EAAG14B,WAAWj/M,IAAM,+BACzE,IAAIk/M,EAAE,EAAEC,EAAE,EAAGvnJ,EAAQk8O,GAAa5qF,EAAG,SACjCokH,EAAOpkH,EAAG,YAAc,GAAIllE,EAAK,EACjCz2B,EAAQrtH,MAAMmE,QAAQ6kN,GAC1B,IAAIhK,EAAI,EAAGA,EAAItnJ,EAAM/rD,EAAEpD,IAAKy2M,EAAG17M,EAAEuB,KAAK,iDACtC,KAAMm6M,GAAKtnJ,EAAMvgC,EAAE5uB,IAAKy2M,EAAG,CAE1B,IADA17M,EAAEuB,KAAK,+BACHo6M,EAAE,EAAGA,EAAIvnJ,EAAM/rD,EAAE6C,IAAKywM,EAAG37M,EAAEuB,KAAKwtV,GACpC,KAAMpzI,GAAKvnJ,EAAMvgC,EAAE3oB,IAAKywM,EAAG,CAC1B,IAAIp0E,GAAO,EAAOi1J,EAAK,GAAI+wD,EAAQ,GACnC,IAAI/sM,EAAK,EAAGA,GAAMspL,EAAKvtU,SAAUikJ,EAChC,KAAGspL,EAAKtpL,GAAIn4I,EAAE6C,EAAIywM,GACfmuH,EAAKtpL,GAAIn4I,EAAEpD,EAAIy2M,GACfouH,EAAKtpL,GAAI3sH,EAAE3oB,EAAIywM,GACfmuH,EAAKtpL,GAAI3sH,EAAE5uB,EAAIy2M,GAAlB,CACGouH,EAAKtpL,GAAIn4I,EAAE6C,GAAKywM,GAAKmuH,EAAKtpL,GAAIn4I,EAAEpD,GAAKy2M,IAAGn0E,GAAO,GAClDi1J,EAAG,gCAAmCstC,EAAKtpL,GAAI3sH,EAAE3oB,EAAI4+T,EAAKtpL,GAAIn4I,EAAE6C,EAAI,EACpEsxR,EAAG,6BAAmCstC,EAAKtpL,GAAI3sH,EAAE5uB,EAAI6kU,EAAKtpL,GAAIn4I,EAAEpD,EAAI,EACpE,MAED,GAAGsiI,EAAQvnI,EAAEuB,KAxBO,+CAwBpB,CACA,IAAIgjT,EAAM3U,GAAY,CAAC3qS,EAAEy2M,EAAGxwM,EAAEywM,IAAKtjG,EAAO0R,GAAS27F,EAAGhK,IAAI,IAAIC,GAAI+J,EAAG6+F,GACrE,GAAGlsM,GAAQA,EAAKh1G,IACfm5R,EAAG,iBAAmBwN,IAvlOlB,OAulO+C3xL,EAAKh1G,EAvlOzCiK,QAAQkyT,GAAW,iBAAiBlyT,QAAQ,SAAS,MAE/DA,QAAQ,KAAM,KAAKA,QAAQ,KAAK,MAslOlC+qG,EAAKkvJ,GACJlvJ,EAAKkvJ,EAAEplQ,MAAM,EAAGoiT,EAAIhoT,SAAWgoT,GAAK,CACtC,IAAIyqC,EAAQ1+C,GAAaj4L,EAAKkvJ,GAC9Bi1B,EAAG,uCAA0CwyD,EAAMn7T,EAAE3oB,EAAI8jV,EAAM3mV,EAAE6C,EAAI,EACrEsxR,EAAG,oCAA0CwyD,EAAMn7T,EAAE5uB,EAAI+pV,EAAM3mV,EAAEpD,EAAI,EAIxE,GAAIozG,EAAJ,CACA,OAAOA,EAAK9qG,GACX,IAAK,IACJggV,EAASl1O,EAAKz6F,EAAI,OAAS,QAC3B4+Q,EAAG,qBAAuB,UAC1BA,EAAG,wBAA2BnkL,EAAKz6F,EAAI,OAAS,QAChD,MACD,IAAK,IACJ2vU,EAASl1O,EAAKpuC,GAAG//D,OAAOmuG,EAAKz6F,GAAG,GAChC4+Q,EAAG,qBAAuB,QAC1BA,EAAG,gBAAmBnkL,EAAKz6F,GAAG,EAC9B,MACD,IAAK,IAAK,IAAK,MACd2vU,EAAkB,MAAVl1O,EAAKz6F,EAAY,GAAKy6F,EAAKz6F,EACnC4+Q,EAAG,qBAAuB,SAC1B,MACD,IAAK,IACJ+wD,EAASl1O,EAAKpuC,GAAI09N,EAAUtvL,EAAKz6F,GAAGiuR,cACpCrP,EAAG,qBAAuB,OAC1BA,EAAG,qBAAwBmL,EAAUtvL,EAAKz6F,GAAGiuR,cAC7CrP,EAAG,oBAAsB,MACzB,MAED,QAASx8R,EAAEuB,KAAKwtV,GAAgB,SAEjC,IAAIE,EArECjlD,GAqEqBujD,GApE1BjgV,QAAQ,QAAQ,SAASinR,GAAI,MAAO,mBAAmBA,EAAGh4R,OAAO,SACjE+Q,QAAQ,MAAO,eACfA,QAAQ,MAAO,sBACfA,QAAQ,KAAM,aAAaA,QAAQ,KAAM,aAkEzC,GAAG+qG,EAAK/6F,GAAK+6F,EAAK/6F,EAAEo6R,OAAQ,CAC3B,IAAIw3C,EAAO72O,EAAK/6F,EAAEo6R,OAClBu3C,EAAStjD,GAAU,SAAUsjD,EAAQ,CAAC,aADZC,EAAyB,KAAlBA,EAAKvkN,OAAO,GAAY,IAAoBukN,EAAK/sV,MAAM,GA/mOnFmL,QAAQ,KAAK,KA+mO4E4hV,IAG/FlvV,EAAEuB,KAAK,aAAeoqS,GAAU,mBAAoBA,GAAU,SAAUsjD,EAAQ,IAAKzyD,GAAM,WA9B/Ex8R,EAAEuB,KAAKwtV,IAgCpB/uV,EAAEuB,KAAK,gCAGR,OADAvB,EAAEuB,KAAK,0BACAvB,EAAE0N,KAAK,KA2Bf,OAAO,SAAaymO,EAAI7wC,GACvB,IAAItjM,EAAI,CAAC+oS,IAELtpP,EAAOisP,GAAW,CACrB,eAAsB,mDACtB,cAAsB,kDACtB,cAAsB,kDACtB,aAAsB,iDACtB,aAAsB,oDACtB,WAAsB,8DACtB,cAAsB,+BACtB,WAAsB,mCACtB,aAAsB,iDACtB,eAAsB,sDACtB,qBAAsB,yDACtB,YAAsB,2DACtB,cAAsB,kDACtB,aAAsB,iDACtB,aAAsB,qCACtB,aAAsB,iDACtB,eAAsB,mDACtB,YAAsB,oCACtB,aAAsB,oCACtB,aAAsB,kCACtB,YAAsB,oCACtB,eAAsB,gCACtB,YAAsB,mCACtB,YAAsB,4CACtB,cAAsB,8CACtB,YAAsB,oCACtB,WAAsB,+CACtB,cAAsB,+BACtB,cAAsB,sCACtB,iBAAsB,mCACtB,gBAAsB,kCACtB,gBAAsB,uEACtB,cAAsB,uEACtB,cAAsB,mEACtB,cAAsB,qEACtB,cAAsB,kCACtB,iBAAsB,QAGnByjD,EAAOzjD,GAAW,CACrB,eAAmB,mDACnB,kBAAmB,mDAGA,QAAjBpoG,EAAKs+G,SAAoB5hT,EAAEuB,KAAK,mBAAqBk+C,EAAO0vS,EAAO,OACjEnvV,EAAEuB,KAAK,2BAA6Bk+C,EAAQ,OAzEjB,SAASz/C,GACzCA,EAAEuB,KAAK,gCAEPvB,EAAEuB,KAAK,0EACPvB,EAAEuB,KAAK,4CACPvB,EAAEuB,KAAK,qCACPvB,EAAEuB,KAAK,0CACPvB,EAAEuB,KAAK,qCACPvB,EAAEuB,KAAK,uBACPvB,EAAEuB,KAAK,4BAGPvB,EAAEuB,KAAK,2DACPvB,EAAEuB,KAAK,kFACPvB,EAAEuB,KAAK,sBAGPvB,EAAEuB,KAAK,+HAIPvB,EAAEuB,KAAK,iCAqDP6tV,CAA2BpvV,GAC3BA,EAAEuB,KAAK,qBACPvB,EAAEuB,KAAK,8BACP,IAAI,IAAI/E,EAAI,EAAGA,GAAK23O,EAAG14B,WAAWl/M,SAAUC,EAAGwD,EAAEuB,KAAK+xU,EAASn/F,EAAG34B,OAAO24B,EAAG14B,WAAWj/M,IAAK23O,EAAI33O,IAKhG,OAJAwD,EAAEuB,KAAK,+BACPvB,EAAEuB,KAAK,sBACa,QAAjB+hM,EAAKs+G,SAAoB5hT,EAAEuB,KAAK,sBAC9BvB,EAAEuB,KAAK,8BACLvB,EAAE0N,KAAK,KAvKQ,GA2KxB,SAAS2hV,GAAUl7G,EAAI7wC,GACtB,GAAoB,QAAjBA,EAAKs+G,SAAoB,OAAOktC,GAAkB36G,EAAI7wC,GAE1D,IAAIx7D,EAAM+gK,KACLxlS,EAAI,GAEJm8B,EAAW,GACX8vT,EAAM,GAiCV,OA7BA1mD,GAAa9gK,EADbzkI,EAAI,WACiB,kDAIrBulS,GAAa9gK,EADbzkI,EAAI,cACiByrV,GAAkB36G,EAAI7wC,IAC3C9jK,EAASj+B,KAAK,CAAC8B,EAAG,aAClBisV,EAAI/tV,KAAK,CAAC8B,EAAG,gBAIbulS,GAAa9gK,EADbzkI,EAAI,aACiBwrV,GAAiB16G,EAAI7wC,IAC1C9jK,EAASj+B,KAAK,CAAC8B,EAAG,aAClBisV,EAAI/tV,KAAK,CAAC8B,EAAG,eAIbulS,GAAa9gK,EADbzkI,EAAI,WACiBk1S,MACrB/4Q,EAASj+B,KAAK,CAAC8B,EAAG,aAClBisV,EAAI/tV,KAAK,CAAC8B,EAAG,iBAIbulS,GAAa9gK,EADbzkI,EAAI,eApyeL,SAAmBisV,GAClB,IAAItvV,EAAI,CAAC+oS,IACT/oS,EAAEuB,KAAK,uEACP,IAAI,IAAI/E,EAAI,EAAGA,GAAK8yV,EAAI/yV,SAAUC,EACjCwD,EAAEuB,KAAK+2S,GAAeg3C,EAAI9yV,GAAG,GAAI8yV,EAAI9yV,GAAG,KACxCwD,EAAEuB,MAAmB,GAXf,CACN,qCACA,iGASwB+tV,EAAI9yV,GAAG,GAT2E,QAC1G,0BACCkR,KAAK,MAWP,OAFA1N,EAAEuB,KAAK+2S,GAAe,GAAG,WAAY,QACrCt4S,EAAEuB,KAAK,cACAvB,EAAE0N,KAAK,IA4xeO6hV,CAAUD,IAC/B9vT,EAASj+B,KAAK,CAAC8B,EAAG,wBAIlBulS,GAAa9gK,EADbzkI,EAAI,wBAj0eL,SAAwBm8B,GACvB,IAAIx/B,EAAI,CAAC+oS,IACT/oS,EAAEuB,KAAK,oHACPvB,EAAEuB,KAAK,iJACP,IAAI,IAAI/E,EAAI,EAAGA,EAAIgjC,EAASjjC,SAAUC,EAAGwD,EAAEuB,KAAK,8CAAgDi+B,EAAShjC,GAAG,GAAK,0BAA4BgjC,EAAShjC,GAAG,GAAK,SAE9J,OADAwD,EAAEuB,KAAK,wBACAvB,EAAE0N,KAAK,IA4zeO8hV,CAAehwT,IAE7BsoG,EAUR,SAAS2nN,GAAc/qU,GACtB,OAAO,SAAmByvN,EAAIn0O,GAC7B,IAAI2jH,EATN,SAA2BwwH,EAAIj5B,GAC9B,IAAIA,EAAO,OAAO,EAClB,IAAIv3F,EAAMwwH,EAAG14B,WAAW3sL,QAAQosL,GAChC,IAAW,GAARv3F,EAAW,MAAM,IAAI9/G,MAAM,oBAAsBq3M,GACpD,OAAOv3F,EAKI+rO,CAAkBv7G,EAAIn0O,EAAEk7M,OAClC,OAAOx2L,EAAQ+hS,WAAWtyE,EAAG34B,OAAO24B,EAAG14B,WAAW93F,IAAO3jH,EAAGm0O,IAI9D,IAAIw7G,GAAgBF,GAAcla,IAC9Bqa,GAAgBH,GAAc,CAAChpC,WAAWopC,KAC1CC,GAAgBL,QAA8B,IAATpoC,GAAuBA,GAAO,IACnE0oC,GAAgBN,QAA6B,IAAR3iC,GAAsBA,GAAM,IACjEkjC,GAAgBP,QAA6B,IAARhiC,GAAsBA,GAAM,IACjEwiC,GAAgBR,QAA6B,IAAR55B,GAAsBA,GAAM,IACjEq6B,GAAgBT,GAAc,CAAChpC,WAAW0pC,KAC1CC,GAAgBX,QAA6B,IAARlqC,GAAsBA,GAAM,IACjE8qC,GAAgBZ,QAA6B,IAARpiC,GAAsBA,GAAM,IAErE,SAASijC,GAAc5hI,GACtB,OAAO,SAAkBprB,GACxB,IAAI,IAAI9mM,EAAI,EAAGA,GAAKkyN,EAASnyN,SAAUC,EAAG,CACzC,IAAIsO,EAAI4jN,EAASlyN,QACCyB,IAAfqlM,EAAKx4L,EAAE,MAAmBw4L,EAAKx4L,EAAE,IAAMA,EAAE,IAChC,MAATA,EAAE,KAAYw4L,EAAKx4L,EAAE,IAAMzF,OAAOi+L,EAAKx4L,EAAE,QAK/C,IAAI+sU,GAAgB,SAASv0I,GAC7BgtJ,GAAc,CACb,CAAC,UAAU,GACX,CAAC,YAAY,GACb,CAAC,eAAe,GAChB,CAAC,cAAc,GACf,CAAC,YAAY,GACb,CAAC,aAAa,GAEd,CAAC,cAAc,GACf,CAAC,YAAa,EAAG,KAEjB,CAAC,YAAY,GACb,CAAC,cAAc,GACf,CAAC,aAAa,GACd,CAAC,aAAa,GACd,CAAC,WAAW,GAEZ,CAAC,WAAW,IACZ,CAAC,OAAO,IAlBTA,CAmBGhtJ,IAGC6mJ,GAAiBmG,GAAc,CAClC,CAAC,aAAa,GAEd,CAAC,WAAW,GAEZ,CAAC,WAAY,QAEb,CAAC,eAAe,GAEhB,CAAC,OAAO,KAiBT,SAASC,GAAiBzoN,EAAKztH,EAAMm2U,EAAUt1I,EAAOv3F,EAAK8sO,EAAWz/C,EAAQ0/C,EAAOptJ,EAAM6wC,EAAIyjF,EAAQ5qE,GACtG,IACCyjG,EAAUv1I,GAAOo8F,GAAW3O,GAAU7gK,EAAK0oN,GAAU,GAAOn2U,GAC5D,IACI62R,EADAvuS,EAAO6lS,GAAW1gK,EAAKztH,GAE3B,OAAOq2U,GACN,IAAK,QAAUx/C,EAAMwgC,GAAS/uU,EAAM0X,EAAMspG,EAAK2/E,EAAMmtJ,EAAUv1I,GAAQi5B,EAAIyjF,EAAQ5qE,GAAS,MAC5F,IAAK,QACJ,KADckkD,EAl5JlB,SAAkBvuS,EAAMP,EAAMuhH,EAAK2/E,EAAMmzG,EAAMtiE,EAAIyjF,EAAQ5qE,GAC1D,MAAoB,SAAjB5qP,EAAKD,OAAO,GAvvBhB,SAAsBQ,EAAM2gM,EAAM3/E,EAAK8yL,EAAMtiE,GAC5C,IAAIxxO,EAAM,OAAOA,EACb8zS,IAAMA,EAAO,CAAC,MAAM,KACxB,IAAIpuS,EAAI,CAAC,QAAQ,QAAS,UAAU,KAAM,OAAO,IAC7C0b,EAAQ,GACR8nO,GAAO,EAuCX,OAtCA0iD,GAAa5rS,GAAM,SAAkBiC,EAAKitU,EAAKljC,GAC9C,OAAOA,GAEN,KAAK,IACJtmS,EAAE,QAAUzD,EAAK,MAElB,KAAK,IACAuvO,EAAG34B,OAAO73F,KAAMwwH,EAAG34B,OAAO73F,GAAO,IAClC/+G,EAAIxC,OAAM+xO,EAAG34B,OAAO73F,GAAK0kN,SAAWzjU,EAAIxC,MAC3C,MAED,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACJ,MAED,KAAK,GACJypP,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MACf,KAAK,GACJ9nO,EAAMxiB,KAAKswU,GAAM,MAClB,KAAK,GACJ9tT,EAAMkH,MAAO,MAEd,QACC,IAAI4mT,GAAK,IAAI/iT,QAAQ,SAAW,EAAG/K,EAAMxiB,KAAKswU,QACzC,IAAIA,GAAK,IAAI/iT,QAAQ,OAAS,EAAG/K,EAAMkH,WACvC,IAAI4gO,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,qBAAuB8qS,EAAK,IAAMkjC,MAE7EvuI,GAEAmzG,EAAK,OAAOpuS,EAAE,WAAUA,EAAE,WAAaouS,EAAK,OAAOpuS,EAAE,UACjDA,EA2sB4BsoV,CAAa,EAAQrtJ,EAAM3/E,EAAK8yL,EAAMtiE,GAxxB1E,SAAsBxxO,EAAM2gM,EAAM3/E,EAAK8yL,EAAMtiE,GAC5C,IAAIxxO,EAAM,OAAOA,EAEb8zS,IAAMA,EAAO,CAAC,MAAM,KACxB,IACI7iR,EADAvrB,EAAI,CAAE,QAAQ,QAAS,UAAU,KAAM,OAAO,IAI9C8/T,EAAUxlU,EAAKsiC,MAAM+iS,IAOzB,OANGG,GAASD,GAAqBC,EAAQ,GAAI9/T,EAAG8rO,EAAIxwH,IAGhD/vF,EAAIjxB,EAAKsiC,MAAM,2BAA0B58B,EAAE,QAAUurB,EAAE,IAExD6iR,EAAK,OAAOpuS,EAAE,WAAUA,EAAE,WAAaouS,EAAK,OAAOpuS,EAAE,UACjDA,EA0wBAuoV,CAAa,EAAQttJ,EAAM3/E,EAAK8yL,EAAMtiE,GAg5JtB08G,CAASluV,EAAM0X,EAAMspG,EAAK2/E,EAAMmtJ,EAAUv1I,GAAQi5B,MAC1D+8D,EAAI,WAAY,MAC5B,IAAI4/C,EAAQhoD,GAAaoI,EAAI,WAAWwG,OAAQr9R,GAC5C02U,EAAS15C,GAAcy5C,GAEvBE,EAASloD,GAzlUjB,SAAuBnmS,EAAM8zS,GAC5B,IAAI9zS,EAAM,MAAO,KAYjB,IAAIqc,GAAMrc,EAAKsiC,MAAM,iCAAiC,CAAC,GAAG,KAAK,GAE/D,OAAOwxQ,EAAK,OAAOz3R,GAAI04R,OAykUTu5C,CAActoD,GAAU7gK,EAAKgpN,GAAO,GAAOx5C,GAAW3O,GAAU7gK,EAAKipN,GAAQ,GAAOD,IAC/DA,GAC5BI,EAAS75C,GAAc25C,GAC3B9/C,EAhtLJ,SAAqBvuS,EAAMP,EAAMkhM,EAAMmzG,EAAMtiE,EAAIg9G,GAChD,IAAI3gD,EAAO2gD,GAAU,CAAC,QAAQ,SAC9B,IAAIxuV,EAAM,OAAOwuV,EAGjB,IAAIx1I,EAAI,EAAGD,EAAI,EAAG/4D,EAAM,IACpBssK,EAAW,CAAC5mT,EAAG,CAACpD,EAAE,IAASiG,EAAE,KAAU2oB,EAAG,CAAC5uB,EAAE,EAAGiG,EAAE,IAgBtD,OAbCvI,EAAKsiC,MAAM,yCAAyC,IAAIj7B,SAAQ,SAASonV,GACzE,IAAIhgN,EA/BN,SAAqBzuI,GACpB,IAEIU,EAFAs/I,EAAM,GACNr5I,EAAM3G,EAAKsiC,MAAM,kBAIpBtiC,EAAKsiC,MAAM,sCAAsC,IAAIj7B,SAAQ,SAASktT,GACtE,IAAIntP,EAAImtP,EAAGjyR,MAAM,+CACb8kC,IACJ44E,GAAK54E,EAAE,IAAMzgE,GAAOygE,EAAE,GAAKA,EAAE,OAI9B,IAAIyqQ,EAAK3qC,IAAalnS,EAAKsiC,MAAM,6CAA+C,CAAC,GAAG,YAAY,IAIhG,OAFCtiC,EAAKsiC,MAAM,wBAAwB,IAAIj7B,SAAQ,SAASu9P,GAAKlkQ,EAAIkkQ,EAAEj6P,QAAQ,SAAS,OAE9E,CAACq1I,EAAK6xL,EAAInxU,GAcJguV,CAAYD,GACxBniC,EAAS5mT,EAAEpD,EAAIgqT,EAAS5mT,EAAE6C,EAAI,EAC9B+jT,EAASp7R,EAAE3oB,EAAIywM,EACfh5D,EAAMotJ,GAAWp0F,GACjBvqE,EAAM,GAAGpnI,SAAQ,SAAS/H,EAAEzF,GAC3Bg0S,EAAG7tJ,EAAMmtJ,GAAWtzS,IAAM,CAAC+Q,EAAE,IAAKqQ,EAAE3b,EAAGk5G,EAAEi2B,EAAM,IAC/CsqE,EAAIl/M,KAEFyyT,EAASp7R,EAAE5uB,EAAIy2M,IAAGuzG,EAASp7R,EAAE5uB,EAAIy2M,KAClCC,KAEAA,EAAI,IAAG60F,EAAG,QAAUD,GAAa0e,IAC7Bze,EA0rLE8gD,CAAY3oD,GAAU7gK,EAAKkpN,GAAQ,GAAOA,EAAQ1tJ,EAAMg0G,GAAW3O,GAAU7gK,EAAKopN,GAAQ,GAAOF,GAAS78G,EAAI+8D,GACpH,MACD,IAAK,QAt5JgB9uS,EAs5JeiY,EAAiBo2U,EAAUv1I,GAr5J9D94M,EAAKD,OAAO,GAq5JE+uS,EAl0Te,CAAC,QAAQ,SAk0TqD,MAC5F,IAAK,SAAUA,EAl5JlB,SAAkBvuS,EAAMP,EAAMuhH,EAAK2/E,EAAMmzG,EAAMtiE,EAAIyjF,EAAQ5qE,GAC1D,OAAG5qP,EAAKD,OAAO,GAp7JiB,CAAC,QAAQ,UAq0TlBovV,CAAS5uV,EAAM0X,EAAMspG,EAAK2/E,EAAMmtJ,EAAUv1I,IAA6B,MAC5F,QAAS,MAAM,IAAIr3M,MAAM,2BAA6B6sV,GAEvD1/C,EAAO91F,GAASg2F,EAGhB,IAAI6E,EAAW,GACZ06C,GAAaA,EAAUv1I,IAAQz2L,EAAKgsU,EAAUv1I,IAAQlxM,SAAQ,SAAS/H,GACzE,GAAGwuV,EAAUv1I,GAAOj5M,GAAGw1S,MAAQf,GAAK4nB,KAAM,CACzC,IAAIwyB,EAAQhoD,GAAa2nD,EAAUv1I,GAAOj5M,GAAGy1S,OAAQr9R,GAErD,KADA07R,EAz4JJ,SAAoBpzS,EAAMP,EAAMkhM,GAC/B,MAAoB,SAAjBlhM,EAAKD,OAAO,GAviKhB,SAA4BQ,EAAM2gM,GACjC,IAAI77K,EAAM,GACN+pU,EAAU,GACVtmV,EAAI,GACJ2gP,GAAO,EAiCX,OAhCA0iD,GAAa5rS,GAAM,SAAqBiC,EAAKitU,EAAKljC,GACjD,OAAOA,GACN,KAAK,IACJ6iD,EAAQjwV,KAAKqD,GAAM,MACpB,KAAK,IACJsG,EAAItG,EAAK,MACV,KAAK,IACJsG,EAAEqC,EAAI3I,EAAI2I,EAAGrC,EAAEi1C,EAAIv7C,EAAIu7C,EAAGj1C,EAAEjG,EAAIL,EAAIK,EAAG,MACxC,KAAK,IAGJ,GAFAiG,EAAEumV,OAASD,EAAQtmV,EAAEuzT,gBACd,EAAIA,QACRn7H,EAAK8iH,WAAal7S,EAAE+mU,KAAO3uI,EAAK8iH,WAAal7S,EAAE+mU,IAAIhtU,EAAG,MACrDiG,EAAEqC,IAAGrC,EAAEqC,EAAI,WACRrC,EAAE+mU,IAAKxqT,EAAIlmB,KAAK2J,GAAI,MAE5B,KAAK,KACJ,MAED,KAAK,GACJ2gP,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MACf,KAAK,GACL,KAAK,GAAyB,MAG9B,QACC,IAAIgmF,GAAK,IAAI/iT,QAAQ,SAAW,QAC3B,IAAI+iT,GAAK,IAAI/iT,QAAQ,OAAS,QAC9B,IAAI+8N,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,qBAAuB8qS,EAAK,IAAMkjC,OAGzEpqT,EAkgK4BiqU,CAAmB,EAAQpuJ,GAznK/D,SAA4B3gM,EAAM2gM,GAEjC,GAAG3gM,EAAKsiC,MAAM,2BAA4B,MAAO,GACjD,IAAIusT,EAAU,GACVG,EAAc,GACdC,EAAUjvV,EAAKsiC,MAAM,mDACtB2sT,GAAWA,EAAQ,IAAIA,EAAQ,GAAGhkV,MAAM,mBAAmB5D,SAAQ,SAASvF,GAC9E,GAAS,KAANA,GAAyB,KAAbA,EAAEmuB,OAAjB,CACA,IAAI7tB,EAAIN,EAAEwgC,MAAM,8BACblgC,GAAGysV,EAAQjwV,KAAKwD,EAAE,QAEtB,IAAI8sV,EAAUlvV,EAAKsiC,MAAM,2DAiBzB,OAhBG4sT,GAAWA,EAAQ,IAAIA,EAAQ,GAAGjkV,MAAM,oBAAoB5D,SAAQ,SAASvF,GAC/E,GAAS,KAANA,GAAyB,KAAbA,EAAEmuB,OAAjB,CACA,IAAIk/T,EAAKrtV,EAAEwgC,MAAM,2BACjB,GAAI6sT,EAAJ,CACA,IAAI3rU,EAAIijR,GAAY0oD,EAAG,IACnBvmF,EAAU,CAAGkmF,OAAQtrU,EAAE4rU,UAAYP,EAAQrrU,EAAE4rU,WAAa,eAAgBxtC,IAAKp+R,EAAEo+R,IAAKyhC,KAAM7/T,EAAE6/T,MAC9F3tO,EAAO+3L,GAAYjqR,EAAEo+R,KACzB,KAAGjhH,EAAK8iH,WAAa9iH,EAAK8iH,WAAa/tM,EAAKpzG,GAA5C,CACA,IAAI+sV,EAAYvtV,EAAEwgC,MAAM,6CACpB09R,IAAOqvB,KAAeA,EAAU,IAAMvgC,GAASugC,EAAU,KAAO,CAAC/sV,EAAE,GAAGsI,EAAE,GAAG4yC,EAAE,IACjForN,EAAQtmQ,EAAI09T,EAAG19T,EACJ,WAAR09T,EAAG19T,IAAgB09T,EAAGp1T,EAAIo1T,EAAGxiR,EAAI,IACpCorN,EAAQh+P,EAAIo1T,EAAGp1T,EAAED,QAAQ,QAAQ,MAAMA,QAAQ,MAAM,MAClDg2L,EAAKquH,WAAUpmD,EAAQprN,EAAIwiR,EAAGxiR,GACjCwxS,EAAYpwV,KAAKgqQ,SAEXomF,EA8lKAM,CAAmB,EAAQ3uJ,GAu4JpB4uJ,CAAW1pD,GAAW1gK,EAAKgpN,GAAO,GAAOA,EAAOxtJ,MAC1CyyG,EAASx5S,OAAQ,QAhiUtC,SAA+B2+M,EAAO66F,GACrC,IACI19L,EADA0R,EAAQrtH,MAAMmE,QAAQq6M,GAE1B66F,EAAS/rS,SAAQ,SAASuhQ,GACzB,IAAItmQ,EAAImrS,GAAY7kC,EAAQg5C,KAK5B,GAJGx6L,GACEmxF,EAAMj2M,EAAEA,KAAIi2M,EAAMj2M,EAAEA,GAAK,IAC7BozG,EAAO6iG,EAAMj2M,EAAEA,GAAGA,EAAEiG,IACdmtG,EAAO6iG,EAAMqwD,EAAQg5C,MACvBlsM,EAAM,CACVA,EAAO,CAAE9qG,EAAE,KACRw8G,EAAOmxF,EAAMj2M,EAAEA,GAAGA,EAAEiG,GAAKmtG,EACvB6iG,EAAMqwD,EAAQg5C,KAAOlsM,EAC1B,IAAIjkD,EAAQs8O,GAAkBx1F,EAAM,SAAS,mBAC1C9mJ,EAAM/rD,EAAEpD,EAAIA,EAAEA,IAAGmvD,EAAM/rD,EAAEpD,EAAIA,EAAEA,GAC/BmvD,EAAMvgC,EAAE5uB,EAAIA,EAAEA,IAAGmvD,EAAMvgC,EAAE5uB,EAAIA,EAAEA,GAC/BmvD,EAAM/rD,EAAE6C,EAAIjG,EAAEiG,IAAGkpD,EAAM/rD,EAAE6C,EAAIjG,EAAEiG,GAC/BkpD,EAAMvgC,EAAE3oB,EAAIjG,EAAEiG,IAAGkpD,EAAMvgC,EAAE3oB,EAAIjG,EAAEiG,GAClC,IAAIinV,EAAU5hD,GAAan8O,GACvB+9R,IAAYj3I,EAAM,UAASA,EAAM,QAAUi3I,GAG3C95O,EAAKntG,IAAGmtG,EAAKntG,EAAI,IACtB,IAAIlL,EAAI,CAAE+E,EAAGwmQ,EAAQkmF,OAAQlkV,EAAGg+P,EAAQh+P,EAAGtI,EAAGsmQ,EAAQtmQ,GACnDsmQ,EAAQprN,IAAGngD,EAAEmgD,EAAIorN,EAAQprN,GAC5Bk4D,EAAKntG,EAAE3J,KAAKvB,MAwgUVoyV,CAAsBlhD,EAAK6E,OAG5B,MAAMliR,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAt6JjC,IAAwBzxB,EAy6JxB,SAASiwV,GAAkB5tV,GAAK,MAAsB,KAAfA,EAAEkmI,OAAO,GAAYlmI,EAAEtC,MAAM,GAAKsC,EAEzE,SAASy1R,GAAUpyJ,EAAKw7D,GAMvB,GALAmtF,EAASD,GAETqnD,GADAv0I,EAAOA,GAAQ,IAIZglG,GAAexgK,EAAK,yBAA0B,OAAO2mN,GAAU3mN,EAAKw7D,GAEvE,GAAGglG,GAAexgK,EAAK,kBAAmB,OAAO2mN,GAAU3mN,EAAKw7D,GAEhE,GAAGglG,GAAexgK,EAAK,sBAAuB,MAAM,IAAIjkI,MAAM,4BAE9D,IAGImtS,EAAQshD,EAHRn5U,EA7wiBL,SAAoB2uH,GAEnB,IADA,IAAI5lH,EAAI4lH,EAAIk0J,WAAav3Q,EAAKqjH,EAAIrpG,OAAQz+B,EAAI,GACtCxD,EAAI,EAAGA,EAAI0lB,EAAE3lB,SAAUC,EAAwB,KAAlB0lB,EAAE1lB,GAAG2F,OAAO,IAAWnC,EAAEuB,KAAK2gB,EAAE1lB,IACrE,OAAOwD,EAAE6I,OA0wiBK0pV,CAAWzqN,GACrBsjI,EA9ofL,SAAkBzoQ,GACjB,IAAI65R,EATG,CACNgZ,UAAU,GAAIxE,OAAO,GAAIgF,OAAO,GAAIC,QAAQ,GAAIC,OAAO,GACvDO,KAAK,GAAIX,KAAK,GAAIC,SAAS,GAAIy8C,MAAM,GACrCC,UAAU,GAAIC,SAAS,GAAIC,UAAU,GAAI/6B,OAAO,GAAI5qE,OAAO,GAC3D4lG,WAAW,GAAIC,IAAK,GAAIC,SAAU,GAClCC,KAAK,GAAI3gC,MAAO,IAKjB,IAAIzvT,IAASA,EAAKsiC,MAAO,OAAOu3P,EAChC,IAAIw2D,EAAQ,GAYZ,IAXCrwV,EAAKsiC,MAAMgkQ,KAAW,IAAIj/R,SAAQ,SAASvF,GAC3C,IAAI0hB,EAAIijR,GAAY3kS,GACpB,OAAO0hB,EAAE,GAAG7Y,QAAQ47R,GAAQ,MAC3B,IAAK,QAAS,MACd,IAAK,SAAU1M,EAAG41B,MAAQjsS,EAAE,SAAWA,EAAE,GAAG8e,MAAM,YAAY,CAAC,GAAG,KAAK,IAAM,MAC7E,IAAK,WAAY+tT,EAAM7sU,EAAE8sU,WAAa9sU,EAAE+sU,YAAa,MACrD,IAAK,iBAC8Bj1V,IAA/Bu+R,EAAG8Y,GAAQnvR,EAAE+sU,eAA6B12D,EAAG8Y,GAAQnvR,EAAE+sU,cAAc3xV,KAAK4kB,EAAEgtU,cAI/E32D,EAAG41B,QAAUpmB,GAAMqK,GAAI,MAAM,IAAIxyS,MAAM,sBAAwB24R,EAAG41B,OAMrE,OALA51B,EAAG42D,UAAY52D,EAAGo2D,WAAWr2V,OAAS,EAAIigS,EAAGo2D,WAAW,GAAK,GAC7Dp2D,EAAG01B,IAAM11B,EAAGsZ,KAAKv5S,OAAS,EAAIigS,EAAGsZ,KAAK,GAAK,GAC3CtZ,EAAG5sC,MAAQ4sC,EAAGxvC,OAAOzwP,OAAS,EAAIigS,EAAGxvC,OAAO,GAAK,GACjDwvC,EAAG9tE,SAAWskI,SACPx2D,EAAGo2D,WACHp2D,EAynfG62D,CAAU1qD,GAAU7gK,EAAK,wBAC/B6tK,GAAO,EAMX,GAJ4B,IAAzBvqC,EAAIoqC,UAAUj5S,QAEbisS,GAAW1gK,EADdwqN,EAAU,mBACiB,IAAOlnF,EAAIoqC,UAAUj0S,KAAK+wV,GAE1B,IAAzBlnF,EAAIoqC,UAAUj5S,OAAc,CAE9B,IAAIisS,GAAW1gK,EADfwqN,EAAU,mBACiB,GAAO,MAAM,IAAIzuV,MAAM,2BAClDunQ,EAAIoqC,UAAUj0S,KAAK+wV,GACnB38C,GAAO,EAEyB,OAA9BvqC,EAAIoqC,UAAU,GAAGrzS,OAAO,KAAawzS,GAAO,GAE/C,IAAIiiB,EAAS,GACT5qE,EAAS,GACb,IAAI1pD,EAAKo0I,aAAep0I,EAAKq0I,UAAW,CAEvC,GADA7hC,GAAO,GACJ1qC,EAAI8mD,IAAK,IAAMpc,GAx7JpB,SAAmBnzS,EAAMP,EAAMkhM,GAC9B,MAAoB,SAAjBlhM,EAAKD,OAAO,GApgOhB,SAAuBQ,EAAM2gM,GAC5B,IAAIj7L,EAAI,GACJwjP,GAAO,EAqBX,OApBA0iD,GAAa5rS,GAAM,SAAoBiC,EAAKitU,EAAKljC,GAChD,OAAOA,GACN,KAAK,IACJtmS,EAAEiqT,MAAQ1tT,EAAI,GAAIyD,EAAE4P,OAASrT,EAAI,GAAI,MACtC,KAAK,GACJyD,EAAE9G,KAAKqD,GAAM,MACd,KAAK,IACJ,OAAO,EAER,KAAK,GACJinP,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MAEf,QAGC,GAFGgmF,EAAI/iT,QAAQ,SAAW,GAClB+iT,EAAI/iT,QAAQ,QAChB+8N,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,qBAAuB8qS,EAAK,IAAMkjC,OAGpExpU,EA6+N4BirV,CAAc,EAAQhwJ,GApjO1D,SAAuB3gM,EAAM2gM,GAC5B,IAAIj7L,EAAI,GAAMyrR,EAAK,GACnB,IAAInxR,EAAM,OAAO0F,EAEjB,IAAI6pT,EAAMvvT,EAAKsiC,MAAM2sR,IACrB,GAAGM,EAAK,CACPp+B,EAAKo+B,EAAI,GAAG5kT,QAAQukT,GAAM,IAAIjkT,MAAMkkT,IACpC,IAAI,IAAIt1T,EAAI,EAAGA,GAAKs3R,EAAGv3R,SAAUC,EAAG,CACnC,IAAIwD,EAAIyxT,GAAS39B,EAAGt3R,GAAGo2B,OAAQ0wK,GACvB,MAALtjM,IAAWqI,EAAEA,EAAE9L,QAAUyD,GAE7BkyT,EAAM9oB,GAAY8oB,EAAI,IAAK7pT,EAAEiqT,MAAQJ,EAAI9+O,MAAO/qE,EAAE4P,OAASi6S,EAAIK,YAEhE,OAAOlqT,EAwiOAkrV,CAAc,EAAQjwJ,GAs7JLkwJ,CAAUhrD,GAAW1gK,EAAKuqN,GAAkBjnF,EAAI8mD,MAAO9mD,EAAI8mD,IAAK5uH,GAAS,MAAMzvK,GAAK,GAAGyvK,EAAKioG,IAAK,MAAM13Q,EAE3HyvK,EAAKyhH,YAAc35C,EAAIwsD,OAAOr7T,SAAQq7T,EA97J3C,SAAqBj1T,EAAMP,EAAMkhM,GAChC,OAAOo5H,GAAgB/5T,EAAM2gM,GA67JsBmwJ,CAAY9qD,GAAU7gK,EAAKsjI,EAAIwsD,OAAO,GAAGtqT,QAAQ,MAAM,KAAK,IAAO,GAAG89P,EAAIwsD,OAAO,GAAIt0H,IAEpI8nE,EAAIxb,QAAO5C,EAr8JhB,SAAmBrqP,EAAMP,EAAMw1T,EAAQt0H,GACtC,MAAoB,SAAjBlhM,EAAKD,OAAO,GA72LhB,SAAuBQ,EAAMi1T,EAAQt0H,GACpC,IAAI0pD,EAAS,CACb,UAAmB,IACnB,IAAI,IAAI7mO,KAAKqqQ,EAAIl4B,OAAQtL,EAAO6qE,UAAU1xS,GAAKqqQ,EAAIl4B,OAAOnyO,GAE1D6mO,EAAOisE,OAAS,GAChBjsE,EAAOgrE,MAAQ,GACf,IAAIj0S,EAAQ,GACR8nO,GAAO,EAmDX,OAlDA0iD,GAAa5rS,GAAM,SAAoBiC,EAAKitU,EAAKljC,GAChD,OAAOA,GACN,KAAK,GACJ3hD,EAAO6qE,UAAUjzT,EAAI,IAAMA,EAAI,GAAI4rR,EAAI50P,KAAKh3B,EAAI,GAAIA,EAAI,IACxD,MACD,KAAK,GACJooP,EAAOgrE,MAAMz2T,KAAKqD,GACI,MAAnBA,EAAI2oP,MAAM8mD,OAAiBujB,GAAUA,EAAOS,eAAiBT,EAAOS,cAAcC,YACpF1zT,EAAI2oP,MAAMR,IAAMkpE,GAAS2B,EAAOS,cAAcC,UAAU1zT,EAAI2oP,MAAM8mD,OAAOtnD,IAAKnoP,EAAI2oP,MAAMgnD,MAAQ,IAEjG,MACD,KAAK,KACL,KAAK,GAEL,KAAK,GACJ,MACD,KAAK,GAC0B,mBAA3BxwR,EAAMA,EAAMxnB,OAAS,IACvBywP,EAAOisE,OAAO13T,KAAKqD,GAEpB,MACD,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACJ,MAED,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,KACJ,MAED,KAAK,GACJinP,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MACf,KAAK,GACJ9nO,EAAMxiB,KAAKswU,GAAMhmF,GAAO,EAAM,MAC/B,KAAK,GACJ9nO,EAAMkH,MAAO4gO,GAAO,EAAO,MAE5B,QACC,IAAIgmF,GAAK,IAAI/iT,QAAQ,SAAW,EAAG/K,EAAMxiB,KAAKswU,QACzC,IAAIA,GAAK,IAAI/iT,QAAQ,OAAS,EAAG/K,EAAMkH,WACvC,IAAI4gO,GAASvoD,EAAKioG,KAAgC,cAAzBxnR,EAAMA,EAAMxnB,OAAO,GAAqB,MAAM,IAAIsH,MAAM,qBAAuB8qS,EAAK,IAAMkjC,OAGpH7kF,EAkzL4B0mG,CAAc,EAAQ97B,EAAQt0H,GAC1Dq0H,GAAc,EAAQC,EAAQt0H,GAm8JbqwJ,CAAUnrD,GAAW1gK,EAAKuqN,GAAkBjnF,EAAIxb,QAASwb,EAAIxb,MAAOgoE,EAAQt0H,IAG9E8nE,EAAIonF,MAAMpqV,KAAI,SAAS+qP,GAC5C,IAEC,OADWmkD,GAAW3O,GAAU7gK,EAAKuvK,GAAcg7C,GAAkBl/F,KAASA,GAl7JjF,SAAqBxwP,EAAM60S,EAAKp1S,EAAMkhM,GACrC,GAAoB,SAAjBlhM,EAAKD,OAAO,GAAa,OA3xK7B,SAAyBQ,EAAM60S,EAAKp1S,EAAM+7R,GACzC,IAAIx7R,EAAM,OAAOA,EACjB,IAAI2gM,EAAO66F,GAAS,GAEhBtyC,GAAO,EAEX0iD,GAAa5rS,GAAM,SAAqBiC,EAAKitU,EAAKljC,GAEjD,OAAOA,GACN,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACJ,MAED,KAAK,GACJ9iD,GAAO,EAAM,MACd,KAAK,GACJA,GAAO,EAAO,MAEf,QACC,IAAIgmF,GAAK,IAAI/iT,QAAQ,SAAW,QAC3B,IAAI+iT,GAAK,IAAI/iT,QAAQ,OAAS,QAC9B,IAAI+8N,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,qBAAuB8qS,EAAGzsS,SAAS,IAAM,IAAM2vU,MAE1FvuI,GAivKgCswJ,CAAgB,EAAQp8C,EAAKp1S,EAAMkhM,GAk7J7DuwJ,CAAYrrD,GAAW1gK,EAAKuqN,GAAkBl/F,IAAQsjD,EAAMtjD,EAAM7vD,GACxE,MAAMzvK,QAGT,IAAIsgN,EAx+JL,SAAkBxxO,EAAMP,EAAMkhM,GAC7B,MAAoB,SAAjBlhM,EAAKD,OAAO,GA/MhB,SAAsBQ,EAAM2gM,GAC3B,IAAI6wC,EAAK,CAAE2mE,WAAW,GAAIk1B,QAAQ,GAAIE,OAAO,GAAI10H,OAAO,GAAIy0H,OAAO,GAAI7d,MAAO,IAC1EruS,EAAQ,GACR8nO,GAAO,EAEPvoD,IAAMA,EAAO,IACjBA,EAAKmsG,KAAO,GAEZ,IAAI08B,EAAQ,GACRlI,EAAW,CAAE,IA4FjB,OA3FAA,EAASxoH,WAAa,GACtBwoH,EAASC,IAAM,GAEf31B,GAAa5rS,GAAM,SAAmBiC,EAAKitU,EAAKljC,GAC/C,OAAOA,GACN,KAAK,IACJs1B,EAASxoH,WAAWl6M,KAAKqD,EAAIxC,MAC7B+xO,EAAG34B,OAAOj6M,KAAKqD,GAAM,MAEtB,KAAK,IACJuvO,EAAG67F,QAAUprU,EAAK,MAEnB,KAAK,GACY,MAAbA,EAAIwnU,QAAe9oI,EAAK6gI,IAAMv/T,EAAIwnU,OACrCxnU,EAAIynU,IAAM9H,GAAkB3/T,EAAIi6U,IAAK,EAAM,KAAM5a,EAAU3gI,UACpDA,EAAK6gI,WACLv/T,EAAIi6U,IACX1S,EAAM5qU,KAAKqD,GACX,MACD,KAAK,KAA2B,MAEhC,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACAq/T,EAAS,GAAG1nU,OACX0nU,EAAS1iU,KAAK,CAACotS,EAAI/pS,IADAq/T,EAAS,GAAK,CAACt1B,EAAI/pS,GAE3Cq/T,EAASA,EAAS1nU,OAAS,GAAG2nU,IAAM,GACpC,MACD,KAAK,IACmB,IAApBD,EAAS1nU,SAAgB0nU,EAAS,GAAK,GAAIA,EAAS,GAAGC,IAAM,IAChED,EAASA,EAAS1nU,OAAS,GAAG2nU,IAAMD,EAASA,EAAS1nU,OAAS,GAAG2nU,IAAI57T,OAAO1D,GAC7Eq/T,EAASC,IAAMD,EAASC,IAAI57T,OAAO1D,GACnC,MACD,KAAK,IACJ,MAGD,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,IACL,KAAK,KACJ,MAED,KAAK,GACJmf,EAAMxiB,KAAKswU,GAAMhmF,GAAO,EAAM,MAC/B,KAAK,GACJ9nO,EAAMkH,MAAO4gO,GAAO,EAAO,MAC5B,KAAK,GACJ9nO,EAAMxiB,KAAKswU,GAAMhmF,GAAO,EAAM,MAC/B,KAAK,GACJ9nO,EAAMkH,MAAO4gO,GAAO,EAAO,MAE5B,KAAK,GAA8B,MAEnC,QACC,IAAIgmF,GAAK,IAAI/iT,QAAQ,SAAW,QAC3B,IAAI+iT,GAAK,IAAI/iT,QAAQ,OAAS,QAC9B,IAAI+8N,GAASvoD,EAAKioG,KAAgC,cAAzBxnR,EAAMA,EAAMxnB,OAAO,IAA+C,eAAzBwnB,EAAMA,EAAMxnB,OAAO,GAAsB,MAAM,IAAIsH,MAAM,qBAAuB8qS,EAAK,IAAMkjC,MAElKvuI,GAEHysI,GAAkB57F,GAGlBA,EAAGg4F,MAAQA,EAEX,EAAKlI,SAAWA,EACT9vF,EA0G4B2/G,CAAa,EAAQxwJ,GA1hBzD,SAAsB3gM,EAAM2gM,GAC3B,IAAI3gM,EAAM,MAAM,IAAIkB,MAAM,uBAC1B,IAAIswO,EAAK,CAAE2mE,WAAW,GAAIk1B,QAAQ,GAAIE,OAAO,GAAI10H,OAAO,GAAIy0H,OAAO,GAAI9D,MAAM,GAAI/Z,MAAO,IACpFvmE,GAAO,EAAOumE,EAAQ,QACtB2hC,EAAQ,GAAIC,EAAU,EAmJ1B,GAlJArxV,EAAK2K,QAAQ27R,IAAU,SAAgBxkS,EAAGk/G,GACzC,IAAIx9F,EAAIijR,GAAY3kS,GACpB,OAAO+kS,GAASrjR,EAAE,KACjB,IAAK,QAAS,MAGd,IAAK,YACD1hB,EAAEwgC,MAAMqrS,MAAYle,EAAQ,QAAU3tT,EAAEwgC,MAAM,WAAW,IAC5DkvM,EAAGi+E,MAAQjsS,EAAEisS,GACb,MACD,IAAK,cAAe,MAGpB,IAAK,sBAAuBjsS,EAAE,GAAIguN,EAAG2mE,WAAa30R,EAAG,MACrD,IAAK,iBAAkB,IAAK,iBAG5B,IAAK,eAEL,IAAK,iBAAkB,MAGvB,IAAK,cACL,IAAK,gBACJspT,GAAWzlU,SAAQ,SAASigE,GAC3B,GAAc,MAAX9jD,EAAE8jD,EAAE,IACP,OAAOA,EAAE,IACR,IAAK,OAAQkqK,EAAG67F,QAAQ/lQ,EAAE,IAAMsgO,GAAapkR,EAAE8jD,EAAE,KAAM,MACvD,IAAK,MAAOkqK,EAAG67F,QAAQ/lQ,EAAE,IAAM4zB,SAAS13E,EAAE8jD,EAAE,IAAK,IAAK,MACtD,QAASkqK,EAAG67F,QAAQ/lQ,EAAE,IAAM9jD,EAAE8jD,EAAE,QAG/B9jD,EAAEiiT,WAAUj0F,EAAG67F,QAAQ3H,SAAW79B,GAASrkR,EAAEiiT,WAChD,MACD,IAAK,gBAGL,IAAK,sBAEL,IAAK,wBAAyB,MAG9B,IAAK,aAAc,IAAK,cAAe,IAAK,eAAgB,MAE5D,IAAK,gBAAiB,IAAK,yBAA0BjiT,EAAE,GAAIguN,EAAG+7F,OAAO3uU,KAAK4kB,GAAI,MAC9E,IAAK,kBAAmB,MAGxB,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MAEnD,IAAK,SACJ,OAAOA,EAAEpC,OACR,IAAK,SAAUoC,EAAEwqT,OAAS,EAAG,MAC7B,IAAK,aAAcxqT,EAAEwqT,OAAS,EAAG,MACjC,QAASxqT,EAAEwqT,OAAS,SAEdxqT,EAAEpC,MACToC,EAAE/jB,KAAOynS,GAAYW,GAASrkR,EAAE/jB,cACzB+jB,EAAE,GAAIguN,EAAG34B,OAAOj6M,KAAK4kB,GAAI,MACjC,IAAK,WAAY,MAGjB,IAAK,kBAAmB,IAAK,oBAE7B,IAAK,iBAAkB,MAGvB,IAAK,sBAAuB,IAAK,wBAAyB,IAAK,uBAE/D,IAAK,qBAGL,IAAK,kBAAmB,MACxB,IAAK,iBAAkB,IAAK,gBAAiB0lO,GAAK,EAAM,MACxD,IAAK,kBAAmBA,GAAK,EAAO,MAEpC,IAAK,gBACJkoG,EAAQ,IACFvwC,KAAOhZ,GAASrkR,EAAE/jB,MACrB+jB,EAAEolP,UAASwoF,EAAMljB,QAAU1qT,EAAEolP,SAC7BplP,EAAE2qT,eAAcijB,EAAM3nB,OAASjmT,EAAE2qT,cACjCvmC,GAAapkR,EAAEknO,QAAQ,OAAM0mG,EAAMpjB,QAAS,GAC/CqjB,EAAUrwO,EAAMl/G,EAAElI,OACjB,MACF,IAAK,iBACJw3V,EAAM1nB,IAAMxiC,GAAYW,GAAS7nS,EAAKR,MAAM6xV,EAASrwO,KACrDwwH,EAAGg4F,MAAM5qU,KAAKwyV,GACb,MACF,IAAK,iBAAkB,MAGvB,IAAK,UACL,IAAK,mBAAoB5tU,EAAE,GAAIguN,EAAG87F,OAAS9pT,EAAG,MAC9C,IAAK,YAGL,IAAK,WAAY,MAGjB,IAAK,wBAAyB,IAAK,yBAA0B,IAAK,uBAAwB,MAE1F,IAAK,sBAAuB,IAAK,wBAAyB,MAG1D,IAAK,gBAAiB,IAAK,iBAAkB,IAAK,eAElD,IAAK,cAAe,MAGpB,IAAK,cAAe,IAAK,gBAAiB,MAG1C,IAAK,iBAAkB,IAAK,kBAAmB,IAAK,mBAEpD,IAAK,gBAAiB,MAGtB,IAAK,iBAAkB,IAAK,mBAAoB,MAGhD,IAAK,kBAAmB,IAAK,oBAAqB,MAGlD,IAAK,sBAAuB,IAAK,qBAAsB,IAAK,uBAE5D,IAAK,oBAAqB,MAG1B,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,IAAK,YAAa,MAErE,IAAK,OAAQ0lO,GAAK,EAAM,MACxB,IAAK,SAAUA,GAAK,EAAO,MAG3B,IAAK,UAAW,MAChB,IAAK,oBACL,IAAK,qBAAsBA,GAAK,EAAM,MACtC,IAAK,sBAAuBA,GAAK,EAAO,MAGxC,IAAK,eAAgB,MAErB,QAAS,IAAIA,GAAQvoD,EAAKioG,IAAK,MAAM,IAAI1nS,MAAM,gBAAkBsiB,EAAE,GAAK,gBAEzE,OAAO1hB,MAE6B,IAAlCunS,GAAMqmB,KAAKvjS,QAAQqlN,EAAGi+E,OAAe,MAAM,IAAIvuT,MAAM,sBAAwBswO,EAAGi+E,OAInF,OAFA2d,GAAkB57F,GAEXA,EAgYA8/G,CAAa,EAAQ3wJ,GAs+JnB4wJ,CAAS1rD,GAAW1gK,EAAKuqN,GAAkBjnF,EAAIoqC,UAAU,KAAMpqC,EAAIoqC,UAAU,GAAIlyG,GAEtF9kM,EAAQ,GAAI21V,EAAW,GAExB/oF,EAAIqnF,UAAUl2V,UAChB43V,EAAW3rD,GAAW1gK,EAAKuqN,GAAkBjnF,EAAIqnF,UAAU,KAAK,MACnDj0V,EAAQk6S,GAAiBy7C,IACX,IAAxB/oF,EAAIsnF,SAASn2V,SACf43V,EAAW3rD,GAAW1gK,EAAKuqN,GAAkBjnF,EAAIsnF,SAAS,KAAK,KAhzelE,SAAyB/vV,EAAMvC,EAAGkjM,GACjC,IAAIv5H,EAAI,GAAQ3pE,IAAGA,EAAI,IACvBuC,EAAO6nS,GAAS7nS,GAEhBq2S,GAAUhvS,SAAQ,SAAS3G,GAC1B,IAAI6wT,GAAOvxT,EAAKsiC,MAAM+lQ,GAAS3nS,EAAE,MAAM,IAAI,GAC3C,OAAOA,EAAE,IACR,IAAK,SAAa6wT,IAAK9zT,EAAEiD,EAAE,IAAMwmS,GAAYqqB,IAAM,MACnD,IAAK,OAAQ9zT,EAAEiD,EAAE,IAAc,SAAR6wT,EAAgB,MACvC,IAAK,MACJ,IAAI7gE,EAAM1wP,EAAKsiC,MAAM,IAAIi+C,OAAO,IAAM7/E,EAAE,GAAK,uBAA0BA,EAAE,GAAK,MAC3EgwP,GAAOA,EAAI92P,OAAS,IAAGwtE,EAAE1mE,EAAE,IAAMgwP,EAAI,QAKxCtpL,EAAEy0Q,cAAgBz0Q,EAAE00Q,eAAexlC,GAAiBlvO,EAAEy0Q,aAAcz0Q,EAAE00Q,cAAer+U,EAAGkjM,GAiye5E8wJ,CAAgBD,EAAU31V,EAAO8kM,IAIhD,IAAIqvJ,EAAY,GACZrvJ,EAAKo0I,aAAcp0I,EAAKq0I,WACE,IAAzBvsE,EAAIunF,UAAUp2V,SACjB43V,EAAWxrD,GAAU7gK,EAAKuqN,GAAkBjnF,EAAIunF,UAAU,KAAK,MAClDA,EAnwehB,SAA0BhwV,EAAM2gM,GAC/B,IAAIljM,EAAI,GAAIgC,EAAO,GACfwxB,EAAIjxB,EAAKsiC,MAAM40Q,IACnB,GAAGjmR,EAAG,IAAI,IAAIp3B,EAAI,EAAGA,GAAKo3B,EAAEr3B,SAAUC,EAAG,CACxC,IAAIiI,EAAImvB,EAAEp3B,GAAI2pB,EAAIijR,GAAY3kS,GAC9B,OAAO0hB,EAAE,IACR,IAAK,QACL,IAAK,cAAe,MACpB,IAAK,YAAa/jB,EAAOynS,GAAY1jR,EAAE/jB,MAAO,MAC9C,IAAK,cAAeA,EAAO,KAAM,MACjC,QAAS,GAA0B,IAAtBqC,EAAEqqB,QAAQ,QAAe,CACrC,IAAIulU,EAAO5vV,EAAEmJ,MAAM,KACfwT,EAAOizU,EAAK,GAAGlyV,MAAM,GAAIq6B,EAAO63T,EAAK,GAEzC,OAAOjzU,GACN,IAAK,QAAS,IAAK,OAAQ,IAAK,SAC/BhhB,EAAEgC,GAAQynS,GAAYrtQ,GACtB,MACD,IAAK,OACJp8B,EAAEgC,GAAQmoS,GAAa/tQ,GACvB,MACD,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,MAAO,IAAK,OAC5Dp8B,EAAEgC,GAAQy7F,SAASrhE,EAAM,IACzB,MACD,IAAK,KAAM,IAAK,KAAM,IAAK,UAC1Bp8B,EAAEgC,GAAQqb,WAAW+e,GACrB,MACD,IAAK,WAAY,IAAK,OACrBp8B,EAAEgC,GAAQulS,EAAUnrQ,GACpB,MACD,IAAK,KAAM,IAAK,QACfp8B,EAAEgC,GAAQynS,GAAYrtQ,GACtB,MACD,QACC,GAAqB,KAAlBpb,EAAKjf,OAAO,GAAW,MACvBmhM,EAAKioG,KAA0B,oBAAZ9+R,SAAyBA,QAAQC,KAAK,aAAcjI,EAAG2c,EAAMizU,SAE/E,GAAoB,OAAjB5vV,EAAEtC,MAAM,EAAE,SACb,GAAGmhM,EAAKioG,IAAK,MAAM,IAAI1nS,MAAMY,IAGtC,OAAOrE,EA0teoBk0V,CAAiBH,EAAU7wJ,IAItD,IAAI77K,EAAM,GACV,IAAG67K,EAAKo0I,YAAcp0I,EAAKq0I,aACvBxjG,EAAG34B,OAAQw1F,EAAS78D,EAAG34B,OAAOpzM,KAAI,SAAe3D,GAAI,OAAOA,EAAErC,QACzD5D,EAAM66S,YAAc76S,EAAMi9M,WAAWl/M,OAAS,IAAGy0S,EAAOxyS,EAAMi9M,YACnEnY,EAAKq0I,YAAalwT,EAAI2zR,MAAQ58S,EAAOipB,EAAIssT,UAAY4e,GACrDrvJ,EAAKo0I,iBAAgC,IAAX1mC,IAAwBvpR,EAAIg0L,WAAau1F,GACnE1tG,EAAKo0I,WAAajwT,EAAIg0L,WAAanY,EAAKq0I,WAAW,OAAOlwT,EAE9DupR,EAAS,GAET,IA39JiBruS,EA29Jb0jO,EAAO,GACR/iC,EAAKixJ,UAAYnpF,EAAIgoF,YA59JPzwV,EA49JgC6lS,GAAW1gK,EAAKuqN,GAAkBjnF,EAAIgoF,YAApD/sH,EA39Jf,SA29J+E+kC,EAAIgoF,UA39J/FjxV,OAAO,GA/yKhB,SAAsBQ,EAAMP,EAAMkhM,GACjC,IAAI77K,EAAM,GAaV,OAXA8mR,GAAa5rS,GAAM,SAAmBiC,EAAKitU,EAAKljC,GAC/C,OAAOA,GACN,KAAK,GACJlnR,EAAIlmB,KAAKqD,GAAM,MAEhB,QACC,IAAIitU,GAAK,IAAI/iT,QAAQ,SAAW,QAC3B,MAAI+iT,GAAK,IAAI/iT,QAAQ,OAAS,GACR,MAAM,IAAIjrB,MAAM,qBAAuB8qS,EAAK,IAAMkjC,OAGzEpqT,EAiyK4B+sU,CAAa,GAj1KjD,SAAsB7xV,GACrB,IAAImI,EAAI,GACR,IAAInI,EAAM,OAAOmI,EACjB,IAAItO,EAAI,EAWR,OAVCmG,EAAKsiC,MAAMgkQ,KAAW,IAAIj/R,SAAQ,SAASvF,GAC3C,IAAI0hB,EAAIijR,GAAY3kS,GACpB,OAAO0hB,EAAE,IACR,IAAK,QAAS,MAEd,IAAK,aAAc,IAAK,cAAe,IAAK,eAAgB,MAE5D,IAAK,YAAaA,EAAE,GAAOA,EAAE3pB,EAAGA,EAAI2pB,EAAE3pB,EAAQ2pB,EAAE3pB,EAAIA,EAAGsO,EAAEvJ,KAAK4kB,OAGzDrb,EAo0KA2pV,CAAa,IA49JpB,IAEIp6U,EAAMm2U,EAFNh0V,EAAE,EACFi0V,EAAY,GAIXiE,EAAWvgH,EAAG34B,OAClBh9M,EAAM66S,WAAaq7C,EAASn4V,OAC5BiC,EAAMi9M,WAAa,GACnB,IAAI,IAAI3yM,EAAI,EAAGA,GAAK4rV,EAASn4V,SAAUuM,EACtCtK,EAAMi9M,WAAW3yM,GAAK4rV,EAAS5rV,GAAG1G,KAIpC,IAAIuyV,EAAQh/C,EAAO,MAAQ,MACvBi/C,EAAUxpF,EAAIoqC,UAAU,GAAG9wQ,YAAY,KACvCmwT,GAAczpF,EAAIoqC,UAAU,GAAGrzS,MAAM,EAAGyyV,EAAQ,GAAK,SAAWxpF,EAAIoqC,UAAU,GAAGrzS,MAAMyyV,EAAQ,GAAK,SAAStnV,QAAQ,MAAM,IAC3Hg7R,GAAexgK,EAAK+sN,KAAaA,EAAa,qBAAuBF,EAAQ,SACjF,IAAIG,EAASx9C,GAAW3O,GAAU7gK,EAAK+sN,GAAY,GAAOA,GACvDC,IAAQA,EA/IZ,SAA2BA,EAAQ9jD,GAClC,IAAI8jD,EAAQ,OAAO,EACnB,IACCA,EAAS9jD,EAAO5oS,KAAI,SAAc6hE,GAAkC,OAAzBA,EAAEjrD,KAAIirD,EAAEjrD,GAAKirD,EAAEgnQ,UAAiB,CAAChnQ,EAAE7nE,KAAM0yV,EAAO,OAAO7qR,EAAEjrD,IAAI04R,QAVlFz1S,EAUyG6yV,EAAO,OAAO7qR,EAAEjrD,IAAIy4R,KATjJf,GAAK6vB,GAAGz3S,QAAQ7sB,IAAM,EAAU,QAChCy0S,GAAK84B,IAAMvtU,GAAKy0S,GAAK84B,GAAW,QAChC94B,GAAKwoB,IAAMj9T,GAAKy0S,GAAKwoB,GAAW,SAChCxoB,GAAKyoB,IAAMl9T,GAAKy0S,GAAKyoB,GAAW,QAC3Bl9T,GAAKA,EAAE1F,OAAU0F,EAAI,UAL9B,IAAwBA,KAWrB,MAAM4xB,GAAK,OAAO,KACpB,OAAQihU,GAA4B,IAAlBA,EAAOv4V,OAAsBu4V,EAAP,KA0IpBC,CAAkBD,EAAQ3gH,EAAG34B,SAGjD,IAAIw5I,EAASxsD,GAAW1gK,EAAI,2BAA0B,GAAO,EAAE,EAC/DmtN,EAAQ,IAAIz4V,EAAI,EAAGA,GAAKgC,EAAM66S,aAAc78S,EAAG,CAC9C,IAAIk0V,EAAQ,QAWZ,GAVGoE,GAAUA,EAAOt4V,IACnB6d,EAAO,MAASy6U,EAAOt4V,GAAG,GAAI8Q,QAAQ,YAAa,IAC/Cg7R,GAAexgK,EAAKztH,KAAOA,EAAOy6U,EAAOt4V,GAAG,IAC5C8rS,GAAexgK,EAAKztH,KAAOA,EAAOw6U,EAAWvnV,QAAQ,aAAa,IAAMwnV,EAAOt4V,GAAG,IACtFk0V,EAAQoE,EAAOt4V,GAAG,IAGlB6d,GADAA,EAAO,uBAAuB7d,EAAE,EAAEw4V,GAAO,IAAML,GACnCrnV,QAAQ,WAAW,UAEhCkjV,EAAWn2U,EAAK/M,QAAQ,qBAAsB,oBAC3Cg2L,GAAuB,MAAfA,EAAK0tG,OAAgB,cAAc1tG,EAAK0tG,QAClD,IAAK,SAAU,GAAGx0S,GAAK8mM,EAAK0tG,OAAQ,SAASikD,EAAQ,MACrD,IAAK,SAAU,GAAGz2V,EAAMi9M,WAAWj/M,GAAGsR,eAAiBw1L,EAAK0tG,OAAOljS,cAAe,SAASmnV,EAAQ,MACnG,QAAS,GAAGv4V,MAAMmE,SAAWnE,MAAMmE,QAAQyiM,EAAK0tG,QAAS,CAExD,IADA,IAAIkkD,GAAU,EACNC,EAAM,EAAGA,GAAO7xJ,EAAK0tG,OAAOz0S,SAAU44V,EACf,iBAApB7xJ,EAAK0tG,OAAOmkD,IAAoB7xJ,EAAK0tG,OAAOmkD,IAAQ34V,IAAG04V,EAAQ,GAC3C,iBAApB5xJ,EAAK0tG,OAAOmkD,IAAoB7xJ,EAAK0tG,OAAOmkD,GAAKrnV,eAAiBtP,EAAMi9M,WAAWj/M,GAAGsR,gBAAeonV,EAAU,GAE1H,IAAIA,EAAS,SAASD,GAGxB1E,GAAiBzoN,EAAKztH,EAAMm2U,EAAUhyV,EAAMi9M,WAAWj/M,GAAIA,EAAGi0V,EAAWz/C,EAAQ0/C,EAAOptJ,EAAM6wC,EAAIyjF,EAAQ5qE,GAwB3G,OArBAvlO,EAAM,CACL+yT,UAAWpvE,EACX2/D,SAAU52F,EACVinE,MAAO58S,EACPu1U,UAAW4e,EACXyC,KAAM/uH,EACN7qB,OAAQw1F,EACRv1F,WAAYj9M,EAAMi9M,WAClBmtH,QAAS9yB,GACTu/C,OAAQroG,EACR6vE,OAAQjF,EACRpnC,IAAKA,EAAI+H,aAEPj1F,GAAQA,EAAKq7I,YACfl3T,EAAIhD,KAAOtL,EACXsO,EAAIgX,MAAQqpG,EAAIrpG,OAEd6kK,GAAQA,EAAK06I,UACZ5yE,EAAIynF,IAAIt2V,OAAS,EAAGkrB,EAAIqjT,OAAStiC,GAAW1gK,EAAIuqN,GAAkBjnF,EAAIynF,IAAI,KAAI,GACzEznF,EAAI18C,UAtgUD,yCAsgUa08C,EAAI18C,SAAS4mI,MAAgB7tU,EAAIqjT,OAAStiC,GAAW1gK,EAAK,qBAAoB,KAEhGrgH,EAIR,SAAS8tU,GAAch4D,EAAKY,GAC3B,IAAI76F,EAAO66F,GAAS,GAChB96R,EAAI,WAAYV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,GACzC,IAEyB,GADzBA,EAAI,yBACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,GAKhF,GAngY1B,SAAoCouQ,GACnC,IAAIzxQ,EAAI,GACRA,EAAEgf,GAAKyyP,EAAKioB,WAAW,EAAG,QAC1B15R,EAAE07M,EAAIm3G,GAAoBphD,EAAM,GAChCzxQ,EAAEs+O,EAAIu0E,GAAoBphD,EAAM,GAChCzxQ,EAAEw1V,EAAI3iC,GAAoBphD,EAAM,GA0/XdgkF,CAA2B9yV,EAAKg3P,SAGlDt2P,EAAI,8BACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,GACzG,IAAIqyV,EA3+XL,SAA4BjkF,GAC3B,IAAIzxQ,EAAI,GACRyxQ,EAAKn0P,GAAK,EAEV,IADA,IAAI8/Q,EAAM3rB,EAAKioB,WAAW,GACpB0D,KAAQ,GAAGp9R,EAAEuB,KAAKyxT,GAAwBvhD,IAChD,OAAOzxQ,EAs+XG21V,CAAmBhzV,EAAKg3P,SAClC,GAAkB,IAAf+7F,EAAIn5V,QAAwC,IAAxBm5V,EAAI,GAAGziC,MAAM12T,QAAsC,IAAtBm5V,EAAI,GAAGziC,MAAM,GAAG1lT,GAA2B,8BAAhBmoV,EAAI,GAAGtzV,MAA8D,qBAAtBszV,EAAI,GAAGziC,MAAM,GAAGr1S,EAC7I,MAAM,IAAI/Z,MAAM,+BAAiCR,GAIzB,GADzBA,EAAI,yDACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,GACzG,IAAIuyV,EAz+XL,SAAmCnkF,GAClC,IAAIzxQ,EAAI,GACRyxQ,EAAKn0P,GAAK,EAEV,IADA,IAAI8/Q,EAAM3rB,EAAKioB,WAAW,GACpB0D,KAAQ,GAAGp9R,EAAEuB,KAAKkwQ,EAAKioB,WAAW,EAAG,SAC3C,OAAO15R,EAo+XI61V,CAA0BlzV,EAAKg3P,SAC1C,GAAkB,GAAfi8F,EAAKr5V,QAA0B,6BAAXq5V,EAAK,GAC3B,MAAM,IAAI/xV,MAAM,+BAAiCR,GAIzB,GADzBA,EAAI,kEACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,IA19X1G,SAAuBouQ,GAEtB,IAAIosC,EAdL,SAAmCpsC,GAClC,IAAIzxQ,EAAI,GAQR,OAPcyxQ,EAAKioB,WAAW,GAC9BjoB,EAAKn0P,GAAK,EACVtd,EAAEgf,GAAKyyP,EAAKioB,WAAW,EAAG,QAC1B15R,EAAEoC,KAAOqvQ,EAAKioB,WAAW,EAAG,QAC5B15R,EAAE07M,EAAIm3G,GAAoBphD,EAAM,GAChCzxQ,EAAEs+O,EAAIu0E,GAAoBphD,EAAM,GAChCzxQ,EAAEw1V,EAAI3iC,GAAoBphD,EAAM,GACzBzxQ,EAKG81V,CAA0BrkF,GAKpC,GAHAosC,EAAIk4C,MAAQtkF,EAAKioB,WAAW,EAAG,SAC/BmkB,EAAI/O,MAAQr9B,EAAKioB,WAAW,GAC5BmkB,EAAIm4C,MAAQvkF,EAAKioB,WAAW,GACH,GAAtBjoB,EAAKioB,WAAW,GAAY,MAAM,IAAI71R,MAAM,uBAo9XjCoyV,CAActzV,EAAKg3P,SAC/B,MAAM9lO,IAGiB,GADzBxwB,EAAI,oBACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,GACzG,IAAI6yV,EAj7XL,SAA8BzkF,GAC7B,IAAI+9C,EAAOqD,GAAoBphD,GAC/B,OAAO+9C,EAAKuD,OACX,KAAK,EAAM,MAAO,CAACvD,EAAKuD,MAAOe,GAAiBriD,IAChD,KAAK,EAAM,MAAO,CAAC+9C,EAAKuD,MAAOgB,MAC/B,KAAK,EAAM,MAAO,CAACvE,EAAKuD,MAAOiB,GAAiBviD,IAEjD,MAAM,IAAI5tQ,MAAM,iDAAmD2rT,EAAKuD,OA06X5DojC,CAAqBxzV,EAAKg3P,SAIb,GADzBt2P,EAAI,sBACJV,EAAOu2R,EAAI1pK,KAAK+tK,EAAKl6R,MAAiBV,EAAKg3P,QAAS,MAAM,IAAI91P,MAAM,mCAAqCR,GAG1G,GAAe,GAAZ6yV,EAAM,IAAuC,oBAAlBE,cAA+B,OAAOA,cAAcF,EAAM,GAAIvzV,EAAKg3P,QAASr2D,EAAK6xH,UAAY,GAAI7xH,GAE/H,GAAe,GAAZ4yJ,EAAM,IAAuC,oBAAlBG,cAA+B,OAAOA,cAAcH,EAAM,GAAIvzV,EAAKg3P,QAASr2D,EAAK6xH,UAAY,GAAI7xH,GAC9H,MAAM,IAAIz/L,MAAM,8BAGjB,SAASi7R,GAAU3qD,EAAI7wC,GAEtB,GADAo6H,GAAW,KACS,OAAjBp6H,EAAKs+G,SAAmB,OAAOytC,GAAUl7G,EAAI7wC,GAC7C6wC,IAAOA,EAAGq8C,MACZr8C,EAAGq8C,IAAMA,EAAI+H,aAEXpkD,GAAMA,EAAGq8C,MACXC,EAASD,GAAMA,EAAIgI,WAAWrkD,EAAGq8C,KAEjCltF,EAAK2jI,OAAShgC,EAAU9yD,EAAGq8C,KAAMltF,EAAK2jI,OAAO9yF,EAAGq8C,IAAI,QAAU,EAC9DltF,EAAK4jI,IAAM/yF,EAAGq8C,KAEfltF,EAAKmzG,KAAO,GAAInzG,EAAKwxJ,OAAS,GAC9BxxJ,EAAKslI,QAAU,GAAItlI,EAAKslI,QAAQtW,MAAQ,EAAGhvH,EAAKslI,QAAQ3wT,OAAS,EAC9DuuT,GAAiBljI,EAAKulI,WAAa,IAAIl6T,KACnC20L,EAAKulI,WAAa,GAAIvlI,EAAKulI,WAAWytB,IAAM,UAAWhzJ,EAAKulI,WAAWytB,KAC9E,IAAI3B,EAAyB,QAAjBrxJ,EAAKs+G,SAAqB,MAAQ,MAC1C20C,EAASt3B,GAAQnwS,QAAQw0K,EAAKs+G,WAAa,EAC3CplB,EAh2fG,CACNgZ,UAAU,GAAIxE,OAAO,GAAIgF,OAAO,GAAIC,QAAQ,GAAIC,OAAO,GACvDO,KAAK,GAAIX,KAAK,GAAIC,SAAS,GAAIy8C,MAAM,GACrCC,UAAU,GAAIC,SAAS,GAAIC,UAAU,GAAI/6B,OAAO,GAAI5qE,OAAO,GAC3D4lG,WAAW,GAAIC,IAAK,GAAIC,SAAU,GAClCC,KAAK,GAAI3gC,MAAO,IA41fjB+3B,GAAe7mJ,EAAOA,GAAQ,IAC/B,IAAIx7D,EAAM+gK,KACLxlS,EAAI,GAAI80S,EAAM,EAalB,GAXA70G,EAAKs2H,QAAU,GACfoN,GAAe1jI,EAAKs2H,QAAS,GAAI,CAACqN,OAAO,CAAC,QAAU,KAEhD9yF,EAAGinE,QAAOjnE,EAAGinE,MAAQ,IAGzBxS,GAAa9gK,EADbzkI,EAAI,oBAvjfL,SAA0B4iQ,EAAIk4B,GAC7B,IAAI76F,EAAO66F,GAAS,GAChBn+R,EAAI,CAAC+oS,GAAY4P,IAAsBv4S,EAAI,GAC/C,IAAI6lQ,IAAO3iE,EAAK83G,MAAO,OAAOp7S,EAAE0N,KAAK,IAElCu4P,IACmB,MAAlBA,EAAGw0C,aAAqB1B,GAAQ,kBAA6C,iBAAnB9yC,EAAGw0C,YAA2Bx0C,EAAGw0C,YAAc7O,GAAa3lC,EAAGw0C,YAAan3G,EAAKioG,KAAM,CAAC,WAAW,kBAAmBvrS,EAAGI,GAChK,MAAnB6lQ,EAAGy0C,cAAsB3B,GAAQ,mBAA+C,iBAApB9yC,EAAGy0C,aAA4Bz0C,EAAGy0C,aAAe9O,GAAa3lC,EAAGy0C,aAAcp3G,EAAKioG,KAAM,CAAC,WAAW,kBAAmBvrS,EAAGI,IAG5L,IAAI,IAAI5D,EAAI,EAAGA,GAAKg8S,GAAWj8S,SAAUC,EAAG,CAC3C,IAAI6G,EAAIm1S,GAAWh8S,GACfohB,EAAI0lL,EAAK83G,OAA6B,MAApB93G,EAAK83G,MAAM/3S,EAAE,IAAcigM,EAAK83G,MAAM/3S,EAAE,IAAM4iQ,EAAKA,EAAG5iQ,EAAE,IAAM,MAC3E,IAANua,EAAYA,EAAI,KACL,IAANA,EAAaA,EAAI,IACL,iBAALA,IAAeA,EAAI1T,OAAO0T,IACjC,MAALA,GAAWm7R,GAAQ11S,EAAE,GAAIua,EAAG,KAAM5d,EAAGI,GAGzC,OADGJ,EAAEzD,OAAO,IAAIyD,EAAEA,EAAEzD,QAAU,uBAA0ByD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MACxEtN,EAAE0N,KAAK,IAqifO8oV,CAAiBriH,EAAGinE,MAAO93G,IAChDk5F,EAAGi2D,UAAUlxV,KAAK8B,GAClB60S,GAAS50G,EAAKmzG,KAAM,EAAGpzS,EAAGqzS,GAAK8B,YAEhCn1S,EAAI,mBACA8wO,EAAGinE,OAASjnE,EAAGinE,MAAM3/F,iBACnB,GAAI04B,EAAG42F,UAAa52F,EAAG42F,SAASvvH,OAChC,CAEJ,IADA,IAAIi7I,EAAM,GACFp1V,EAAK,EAAGA,EAAK8yO,EAAG14B,WAAWl/M,SAAU8E,EACF,IAAtC8yO,EAAG42F,SAASvvH,OAAOn6M,IAAK,IAAIsvU,QAAa8lB,EAAIl1V,KAAK4yO,EAAG14B,WAAWp6M,IACrE8yO,EAAGinE,MAAM3/F,WAAag7I,OALsBtiH,EAAGinE,MAAM3/F,WAAa04B,EAAG14B,WAmBtE,IAZA04B,EAAGinE,MAAM/B,WAAallE,EAAGinE,MAAM3/F,WAAWl/M,OAC1CqsS,GAAa9gK,EAAKzkI,EAh9enB,SAAyB4iQ,GACxB,IAAIjmQ,EAAI,GAAIw1V,EAAI7pD,GAoBhB,OAnBI1lC,IAAIA,EAAK,IACbA,EAAGs0C,YAAc,UACjBv6S,EAAEA,EAAEzD,QAAU,GACdyD,EAAEA,EAAEzD,QAAU,GAEdy8S,GAAUhvS,SAAQ,SAAS3G,GAC1B,QAAgBpF,IAAbgoQ,EAAG5iQ,EAAE,IAAR,CACA,IAAIua,EACJ,OAAOva,EAAE,IACR,IAAK,SAAUua,EAAIosR,GAAU9/R,OAAO+7P,EAAG5iQ,EAAE,MAAO,MAChD,IAAK,OAAQua,EAAIqoP,EAAG5iQ,EAAE,IAAM,OAAS,aAE7BpF,IAAN2f,IAAiB5d,EAAEA,EAAEzD,QAAWi5V,EAAEnyV,EAAE,GAAIua,QAI5C5d,EAAEA,EAAEzD,QAAWi5V,EAAE,eAAgBA,EAAE,YAAaA,EAAE,aAAc,mCAAmCA,EAAE,aAAcA,EAAE,QAAStrV,OAAO+7P,EAAGozC,cAAe,CAAClzS,KAAK,EAAGmlS,SAAS,aACzKtrS,EAAEA,EAAEzD,QAAWi5V,EAAE,gBAAiBA,EAAE,YAAavvF,EAAGxqD,WAAWrzM,KAAI,SAASC,GAAK,MAAO,aAAe2hS,GAAU3hS,GAAK,iBAAkBqF,KAAK,IAAK,CAACvH,KAAM8/P,EAAGozC,WAAY/N,SAAS,WAC9KtrS,EAAEzD,OAAO,IAAIyD,EAAEA,EAAEzD,QAAU,gBAAmByD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MACjEtN,EAAE0N,KAAK,IA27eOgpV,CAAgBviH,EAAGinE,QACxC5e,EAAGk2D,SAASnxV,KAAK8B,GACjB60S,GAAS50G,EAAKmzG,KAAM,EAAGpzS,EAAGqzS,GAAKsC,WAE5B7kE,EAAG4/F,YAAc5/F,EAAGinE,OAAS32R,EAAK0vN,EAAG4/F,WAAW,IAAIx3U,OAAS,IAE/DqsS,GAAa9gK,EADbzkI,EAAI,sBAx4eN,SAA0B4iQ,GACzB,IAAIjmQ,EAAI,CAAC+oS,GAAY+Q,IACrB,IAAI7zC,EAAI,OAAOjmQ,EAAE0N,KAAK,IACtB,IAAIuuS,EAAM,EASV,OARAx3R,EAAKwhP,GAAIj8P,SAAQ,SAAkBkY,KAAO+5R,EACzCj8S,EAAEA,EAAEzD,QAAWovS,GAAU,WA11D3B,SAAkBtjS,EAAGotS,GACpB,cAAcptS,GACb,IAAK,SACJ,IAAIrI,EAAI2rS,GAAU,YAAa3B,GAAU3hS,IAEzC,OADarI,EAAEsN,QAAQ,UAAW,WAEnC,IAAK,SAAU,OAAOq+R,IAAa,EAAFtjS,IAAMA,EAAE,QAAQ,QAAS2hS,GAAU9/R,OAAO7B,KAC3E,IAAK,UAAW,OAAOsjS,GAAU,UAAUtjS,EAAE,OAAO,SAErD,GAAGA,aAAa8qB,KAAM,OAAOw4Q,GAAU,cAAeC,GAAavjS,IACnE,MAAM,IAAIxE,MAAM,uBAAyBwE,GAg1DHsuV,CAAS1wF,EAAG/jP,IAAW,CAC3D,MAAS,yCACT,IAAO+5R,EACP,KAAQjS,GAAU9nR,QAGjBliB,EAAEzD,OAAO,IAAIyD,EAAEA,EAAEzD,QAAU,gBAAiByD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MAC/DtN,EAAE0N,KAAK,IA63eQkpV,CAAiBziH,EAAG4/F,YACzCv3C,EAAGm2D,UAAUpxV,KAAK8B,GAClB60S,GAAS50G,EAAKmzG,KAAM,EAAGpzS,EAAGqzS,GAAKkD,aAG5BzB,EAAI,EAAEA,GAAOhkE,EAAG14B,WAAWl/M,SAAU47S,EAAK,CAC7C,IAAI0+C,EAAS,CAAC,MAAM,IAChBnxI,EAAKyuB,EAAG34B,OAAO24B,EAAG14B,WAAW08F,EAAI,IAErC,QADazyF,GAAM,IAAI,UAAY,SAEnC,IAAK,QAEL,QAECkjF,GAAa9gK,EADbzkI,EAAI,sBAAwB80S,EAAM,IAAMw8C,EACnBrhB,GAASn7B,EAAI,EAAG90S,EAAGigM,EAAM6wC,EAAI0iH,IAClDr6D,EAAGwU,OAAOzvS,KAAK8B,GACf60S,GAAS50G,EAAKwxJ,QAAS,EAAG,mBAAqB38C,EAAM,IAAMw8C,EAAOj+C,GAAK6vB,GAAG,IAG3E,GAAG7gH,EAAI,CACN,IAAIqwF,EAAWrwF,EAAG,aACdoxI,GAAW,EACf,GAAG/gD,GAAYA,EAASx5S,OAAS,EAAG,CACnC,IAAI+2O,EAAK,cAAgB6kE,EAAM,IAAMw8C,EACrC/rD,GAAa9gK,EAAKwrG,EAAIkgG,GAAWz9B,EAAUziE,EAAIhwC,IAC/Ck5F,EAAGuZ,SAASx0S,KAAK+xO,GACjB4kE,GAAS2+C,GAAS,EAAG,cAAgB1+C,EAAM,IAAMw8C,EAAOj+C,GAAK4nB,MAC7Dw4B,GAAW,EAETpxI,EAAG,YACFoxI,GAAUluD,GAAa9gK,EAAK,yBAA2B,EAAQ,OAAQ61L,GAAmBxlB,EAAKzyF,EAAG,sBAE/FA,EAAG,oBACHA,EAAG,WAGRmxI,EAAO,OAAOE,MAAMnuD,GAAa9gK,EAAKuvK,GAAch0S,GAAI00S,GAAW8+C,IAyCvE,OAtCmB,MAAhBvzJ,EAAKslI,SAAmBtlI,EAAKslI,QAAQrsU,OAAS,IAEhDqsS,GAAa9gK,EADbzkI,EAAI,oBAAsBsxV,EACLphB,GAAUjwI,EAAKslI,QAASvlU,EAAGigM,IAChDk5F,EAAGsZ,KAAKv0S,KAAK8B,GACb60S,GAAS50G,EAAKwxJ,QAAS,EAAG,iBAAmBH,EAAOj+C,GAAKqb,MAI1DnpB,GAAa9gK,EADbzkI,EAAI,eAAiBsxV,EACAthB,GAASl/F,EAAI9wO,EAAGigM,IACrCk5F,EAAGgZ,UAAUj0S,KAAK8B,GAClB60S,GAAS50G,EAAKmzG,KAAM,EAAGpzS,EAAGqzS,GAAKC,IAK/B/N,GAAa9gK,EADbzkI,EAAI,sBACiBs5T,GAAYxoF,EAAG0oF,OAAQv5H,IAC5Ck5F,EAAGo7B,OAAOr2T,KAAK8B,GACf60S,GAAS50G,EAAKwxJ,QAAS,EAAG,mBAAoBp+C,GAAKslB,OAKnDpzB,GAAa9gK,EADbzkI,EAAI,aAAesxV,EAzqKpB,SAAmBhyV,EAAMP,EAAMkhM,GAC9B,OAAyB,SAAjBlhM,EAAKD,OAAO,GAAco4T,GAAgBd,IAAe92T,EAAM2gM,GAyqKlD0zJ,CAAU7iH,EAAI9wO,EAAGigM,IACtCk5F,EAAGxvC,OAAOzrP,KAAK8B,GACf60S,GAAS50G,EAAKwxJ,QAAS,EAAG,UAAYH,EAAOj+C,GAAKqjB,KAE/C5lF,EAAG22F,QAAUyrB,IAEf3tD,GAAa9gK,EADbzkI,EAAI,oBACiB8wO,EAAG22F,QACxBtuC,EAAGq2D,IAAItxV,KAAK8B,GACZ60S,GAAS50G,EAAKwxJ,QAAS,EAAG,iBAAkBp+C,GAAKU,MAGlDxO,GAAa9gK,EAAK,sBA94fnB,SAAkB00J,EAAIl5F,GACrB,IAAY1lL,EAAR5d,EAAI,GACRA,EAAEA,EAAEzD,QAAU,GACdyD,EAAEA,EAAEzD,QAAU,GACdyD,EAAIA,EAAEsI,OAAOkuS,IAGb,IAAIygD,EAAK,SAAShtR,GACduyN,EAAGvyN,IAAMuyN,EAAGvyN,GAAG1tE,OAAS,IAC1BqhB,EAAI4+Q,EAAGvyN,GAAG,GACVjqE,EAAEA,EAAEzD,QAAWovS,GAAU,WAAY,KAAM,CAC1C,UAAqB,KAAR/tR,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAe23R,GAAQtrO,GAAGq5H,EAAKs+G,UAAY,YAM1CnyR,EAAK,SAASw6C,IAChBuyN,EAAGvyN,IAAI,IAAIjgE,SAAQ,SAAS4T,GAC5B5d,EAAEA,EAAEzD,QAAWovS,GAAU,WAAY,KAAM,CAC1C,UAAqB,KAAR/tR,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAe23R,GAAQtrO,GAAGq5H,EAAKs+G,UAAY,cAM1Cs1C,EAAK,SAAS3pV,IAChBivR,EAAGjvR,IAAI,IAAIvD,SAAQ,SAAS4T,GAC5B5d,EAAEA,EAAEzD,QAAWovS,GAAU,WAAY,KAAM,CAC1C,UAAqB,KAAR/tR,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAeu4R,GAAQ5oS,GAAG,SAe7B,OAVA0pV,EAAG,aACHxnU,EAAG,UACHA,EAAG,UACHynU,EAAG,UACH,CAAC,OAAQ,UAAUltV,QAAQitV,GAC3B,CAAC,YAAa,WAAY,aAAajtV,QAAQktV,GAC/CA,EAAG,OACHA,EAAG,YACHA,EAAG,YACAl3V,EAAEzD,OAAO,IAAIyD,EAAEA,EAAEzD,QAAU,WAAcyD,EAAE,GAAGA,EAAE,GAAGsN,QAAQ,KAAK,MAC5DtN,EAAE0N,KAAK,IA+1f2BypV,CAAS36D,EAAIl5F,IACtDslG,GAAa9gK,EAAK,cAAeiwK,GAAWz0G,EAAKmzG,OACjD7N,GAAa9gK,EAAK,qBAAuB6sN,EAAQ,QAAS58C,GAAWz0G,EAAKwxJ,gBAEnExxJ,EAAK2jI,cAAe3jI,EAAK4jI,IACzBp/L,EAER,SAAS4mL,GAAUrrT,EAAErD,GACpB,IAAIyE,EAAI,GACR,QAAQzE,GAAG,IAAIohB,MAAQ,UACtB,IAAK,SAAU,MAAO,CAAC/d,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACnE,IAAK,SAAUoB,EAAImrR,EAAOj1Q,OAAOtX,EAAElB,MAAM,EAAE,KAAM,MACjD,IAAK,SAAUsC,EAAIpB,EAAG,MACtB,IAAK,QAAU,MAAO,CAACA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACnE,QAAS,MAAM,IAAIQ,MAAM,sBAAwB7D,GAAKA,EAAEohB,MAAQ,cAEjE,MAAO,CAAC3c,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,GAAI31B,EAAE21B,WAAW,IAgB7I,SAASg9T,GAAez0V,EAAM3C,GAC7B,IAAIxD,EAAI,EACR61T,EAAM,KAAM71T,EAAImG,EAAKpG,eAAeoG,EAAKy3B,WAAW59B,IACnD,KAAK,GAAM,KAAK,GAAM,KAAK,KAAQA,EAAG,MACtC,KAAK,GAAM,OAAOo7U,GAAWj1U,EAAKR,MAAM3F,GAAGwD,GAC3C,QAAS,MAAMqyT,EAEhB,OAAO5E,GAAIlH,YAAY5jT,EAAM3C,GA4B9B,SAASq3V,GAAS10V,EAAMmI,EAAG9K,EAAGwyB,GAC7B,OAAGA,GAAOxyB,EAAEohB,KAAO,SAAiBqsS,GAAIlH,YAAY5jT,EAAM3C,IACnDytT,GAAIlH,YAAYz7S,EAAG9K,GAG3B,SAASwf,GAAS7c,EAAM2gM,GAEvB,GADA+rF,IAC0B,oBAAhBp8P,aAA+BtwB,aAAgBswB,YAAa,OAAOzT,GAAS,IAAItW,WAAWvG,GAAO2gM,GAC5G,IAAcrhM,EAAV6I,EAAInI,EAAqB6vB,GAAM,EAC/BxyB,EAAIsjM,GAAM,GAOd,GANGtjM,EAAE+kT,aAAc/kT,EAAEwuT,QAAS,EAAMxuT,EAAE0xS,YAAa,GACnD40B,GAAW,GACRtmU,EAAEi4R,SAAQquC,GAASruC,OAASj4R,EAAEi4R,QAC7Bj4R,EAAEohB,OAAMphB,EAAEohB,KAAQskP,GAAWvzO,OAAO+hM,SAASvxN,GAAS,SAAW,UACxD,QAAV3C,EAAEohB,OAAkBphB,EAAEohB,KAAOskP,EAAU,SAAW,SAAU56P,EAv2jBhE,SAAqBuP,GACpB,QAAkB,IAAR4+Q,EAAqB,OAAOA,EAAIpoJ,aAAax2H,GAEvD,GAAgB,oBAAN+tP,GAAqC,oBAAT/3H,MAA0C,oBAAXs2J,OAAwB,IAE5F,IAAI2wD,EAASjnN,KAAKh2H,GAAOi9U,EAAO5gU,KAAK,KAAM4gU,EAAO98U,SAAW,SAC7D,IAAI7X,EAAO20V,EAAOh4U,OAClB,OAD0Bg4U,EAAOrgU,QAC1Bt0B,EACN,MAAMkxB,GAAK,IAAIA,EAAExO,UAAYwO,EAAExO,QAAQ4f,MAAM,YAAa,MAAMpR,EAClE,MAAM,IAAIhwB,MAAM,sBAAwBwW,GA81jB2Bk9U,CAAY50V,IAClE,UAAV3C,EAAEohB,OAAoBoR,GAAM,EAAMxyB,EAAEohB,KAAO,SAAUphB,EAAE0mT,SAAW,MAAO57S,EAnB7E,SAAiBnI,GAChB,OAAQA,EAAKsiC,MAAM,gBAAyBghQ,GAAUtjS,GAAjBA,EAkB2C60V,CAAQ70V,IAC3E,SAAV3C,EAAEohB,MAAyC,oBAAflY,YAA8BvG,aAAgBuG,YAAqC,oBAAhB+pB,YAA6B,CAE9H,IAAIwkU,EAAG,IAAIxkU,YAAY,GAAIykU,EAAG,IAAIxuV,WAAWuuV,GAE7C,GAFkDC,EAAGpB,IAAI,OAErDoB,EAAGpB,IAAgC,OAA1Bt2V,EAAE8nS,GAAI9nS,IAAMohB,KAAK,QAAgB5B,GAAS4wQ,EAAKtlR,GAAI9K,GAEjE,QAAQiC,EAAIysT,GAAU5jT,EAAG9K,IAAI,IAC5B,KAAK,IAAM,GAAY,MAATiC,EAAE,IAAwB,KAATA,EAAE,IAAwB,MAATA,EAAE,IAAwB,MAATA,EAAE,IAAwB,MAATA,EAAE,IAAwB,KAATA,EAAE,IAAwB,MAATA,EAAE,GAAa,OAvErI,SAAkBs7R,EAAKj6F,GACtB,OAAG41F,EAAI1pK,KAAK+tK,EAAK,oBAA4Bg4D,GAAch4D,EAAKj6F,GACzDk2I,GAAaj8C,EAAKj6F,GAqEkHq0J,CAASz+D,EAAI55Q,KAAKxU,EAAG9K,GAAIA,GAAI,MACvK,KAAK,EAAM,GAAGiC,EAAE,IAAM,EAAM,OAAOu3U,GAAa1uU,EAAG9K,GAAI,MACvD,KAAK,GAAM,OAAO43U,GAAW9sU,EAAG9K,GAChC,KAAK,GAAM,GAAY,KAATiC,EAAE,GAAa,OAl4Z/B,SAAoB6I,EAAGw4L,GACtB,IAAItjM,EAAIsjM,GAAQ,GAAIs0J,IAAY53V,EAAEurS,IAAKvrS,EAAEurS,KAAM,EAC/C,IACC,IAAI9jR,EAAM4/R,GAAKd,YAAYz7S,EAAG9K,GAE9B,OADAA,EAAEurS,IAAMqsD,EACDnwU,EACN,MAAMoM,GAEP,GADA7zB,EAAEurS,IAAMqsD,GACJ/jU,EAAExO,QAAQ4f,MAAM,uBAAyB2yT,EAAS,MAAM/jU,EAC5D,OAAO45R,GAAIlH,YAAYz7S,EAAGw4L,IAy3ZUu0J,CAAW/sV,EAAG9K,GAAI,MACtD,KAAK,GAAM,GAAY,KAATiC,EAAE,IAAwB,KAATA,EAAE,IAAwB,KAATA,EAAE,GAAa,OAAO6qT,GAAIvG,YAAYz7S,EAAG9K,GAAI,MAC7F,KAAK,GAAM,OAAiB,KAATiC,EAAE,IAAeA,EAAE,GAAK,GAAQA,EAAE,GAAK,EAvE5D,SAAkBU,EAAM2gM,GACxB,IAASx4L,EAAInI,EACR3C,EAAIsjM,GAAM,GAGd,OAFItjM,EAAEohB,OAAMphB,EAAEohB,KAAQskP,GAAWvzO,OAAO+hM,SAASvxN,GAAS,SAAW,UAE9Du3R,GAnkjBR,SAAkBpvR,EAAG9K,GACpB,IAAI8nI,EACJ,GAAGqgK,GAAO,OAAOnoS,EAAEohB,MAClB,IAAK,SAAU0mH,EAAM,IAAIqgK,GAAMr9R,EAAG,CAAEqgQ,QAAO,IAAS,MACpD,IAAK,SAAU,IAAK,QAASrjI,EAAM,IAAIqgK,GAAMr9R,EAAG,CAAEqgQ,QAAO,IAAU,MACnE,IAAK,SAAUrjI,EAAM,IAAIqgK,GAAMr9R,GAAI,MACnC,QAAS,MAAM,IAAIjH,MAAM,qBAAuB7D,EAAEohB,WAE9C,OAAOphB,EAAEohB,MACb,IAAK,SAAU0mH,EAAMoxJ,EAAI55Q,KAAKxU,EAAG,CAAEsW,KAAM,WAAa,MACtD,IAAK,SAAU0mH,EAAMoxJ,EAAI55Q,KAAKxU,EAAG,CAAEsW,KAAM,WAAa,MACtD,IAAK,SAAU,IAAK,QAAS0mH,EAAMoxJ,EAAI55Q,KAAKxU,EAAG,CAAEsW,KAAM,WAAa,MACpE,QAAS,MAAM,IAAIvd,MAAM,qBAAuB7D,EAAEohB,MAEnD,OAAO0mH,EAojjBDgwN,CAAShtV,EAAG9K,GACIA,GAkE6C+3V,CAASjtV,EAAG9K,GAAKq3V,GAAS10V,EAAMmI,EAAG9K,EAAGwyB,GACxG,KAAK,IAAM,OAAgB,KAATvwB,EAAE,GAAc21U,GAAW9sU,EAAG9K,GAAKq3V,GAAS10V,EAAMmI,EAAG9K,EAAGwyB,GAC1E,KAAK,IAAM,GAAY,MAATvwB,EAAE,GAAe,OA1CjC,SAAoBU,EAAM3C,GACzB,IAAI8K,EAAInI,EAIR,MAHa,UAAV3C,EAAEohB,OAAkBtW,EAAI8kR,EAAOj1Q,OAAO7P,IACzCA,EAAI+5P,QAAQ/gE,MAAMnpL,OAAO,KAAM7P,EAAE3I,MAAM,GAAI,OAC3CnC,EAAEohB,KAAO,SACFg2U,GAAetsV,EAAG9K,GAqCcg4V,CAAWltV,EAAG9K,GAAM,MAC1D,KAAK,EAAM,GAAY,IAATiC,EAAE,IAAeA,EAAE,IAAM,GAAiB,IAATA,EAAE,GAAa,OAAO4sT,GAAItI,YAAYz7S,EAAG9K,GAAI,MAC5F,KAAK,EAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,OAAOulT,GAAIgB,YAAYz7S,EAAG9K,GACtE,KAAK,IAAM,GAAY,KAATiC,EAAE,IAAwB,MAATA,EAAE,IAAwB,MAATA,EAAE,GAAa,OAAO4zT,GAAItP,YAAYz7S,EAAG9K,GAAI,MAC7F,KAAK,GAAM,KAAK,GAAM,KAAK,GAAM,OA3DnC,SAA4B2C,EAAM3C,GACjC,IAAIwyB,EAAM,GAAIzoB,EAAQ2kT,GAAU/rT,EAAM3C,GACtC,OAAOA,EAAEohB,MACR,IAAK,SAAUoR,EAAMo9P,EAAOj1Q,OAAOhY,GAAO,MAC1C,IAAK,SAAU6vB,EAAM7vB,EAAM,MAC3B,IAAK,SAAU6vB,EAAM7vB,EAAKT,SAAS,UAAW,MAC9C,IAAK,QAASswB,EAAMq1Q,GAAOllS,GAAO,MAClC,QAAS,MAAM,IAAIkB,MAAM,qBAAuB7D,EAAEohB,MAGnD,OADe,KAAZrX,EAAM,IAA0B,KAAZA,EAAM,IAA0B,KAAZA,EAAM,KAAYyoB,EAAMg4Q,GAASh4Q,IACrE4kU,GAAe5kU,EAAKxyB,GAiDci4V,CAAmBntV,EAAG9K,GAE/D,OAAGulT,GAAIp2R,SAASL,QAAQ7sB,EAAE,KAAO,GAAKA,EAAE,IAAM,IAAMA,EAAE,IAAM,GAAWsjT,GAAIgB,YAAYz7S,EAAG9K,GACnFq3V,GAAS10V,EAAMmI,EAAG9K,EAAGwyB,GAG7B,SAASq+G,GAAam/H,EAAU1sE,GAC/B,IAAItjM,EAAIsjM,GAAM,GACd,OADkBtjM,EAAEohB,KAAO,OACpB5B,GAASwwP,EAAUhwQ,GAE3B,SAASk4V,GAAc36D,EAAKv9R,GAC3B,OAAOA,EAAEohB,MACR,IAAK,SAAU,IAAK,SAAU,MAC9B,IAAK,SAAU,IAAK,QAASphB,EAAEohB,KAAO,GAAI,MAC1C,IAAK,OAAQ,OAAO2kR,EAAS/lS,EAAE2/B,KAAMu5P,EAAItvQ,MAAM2zQ,EAAK,CAACn8Q,KAAKskP,EAAU,SAAW,MAC/E,IAAK,SAAU,MAAM,IAAI7hQ,MAAM,qCAAuC7D,EAAE4hT,SAAW,WACnF,QAAS,MAAM,IAAI/9S,MAAM,qBAAuB7D,EAAEohB,MAEnD,OAAO83Q,EAAItvQ,MAAM2zQ,EAAKv9R,GA+BvB,SAASm4V,GAAkB1wU,EAAK67K,EAAM80J,GACjCA,IAAKA,EAAM,IACf,IAAIp4V,EAAIo4V,EAAM3wU,EACd,OAAO67K,EAAKliL,MACX,IAAK,SAAU,OAAOwuQ,EAAOn1Q,OAAOwrR,GAAUjmS,IAC9C,IAAK,SAAU,OAAOimS,GAAUjmS,GAChC,IAAK,SAAU,OAAOynB,EACtB,IAAK,OAAQ,OAAOs+Q,EAASziG,EAAK3jK,KAAM3/B,EAAG,QAC3C,IAAK,SACJ,OAAG0lQ,EAAgBC,EAAY3lQ,EAAG,QACtBm4V,GAAkBn4V,EAAG,CAACohB,KAAK,WAAWxT,MAAM,IAAIxF,KAAI,SAAS8C,GAAK,OAAOA,EAAEkvB,WAAW,MAGpG,MAAM,IAAIv2B,MAAM,qBAAuBy/L,EAAKliL,MAkB7C,SAASi3U,GAAkB5wU,EAAK67K,GAC/B,OAAOA,EAAKliL,MACX,IAAK,SACL,IAAK,SACL,IAAK,SAGJ,IAFA,IAAI23Q,EAAO,GAEHv8R,EAAI,EAAGA,EAAIirB,EAAIlrB,SAAUC,EAAGu8R,GAAQ7uR,OAAOmvB,aAAa5R,EAAIjrB,IACpE,MAAoB,UAAb8mM,EAAKliL,KAAmBwuQ,EAAOn1Q,OAAOs+Q,GAAqB,UAAbz1F,EAAKliL,KAAmBopR,GAASzR,GAAQA,EAC/F,IAAK,OAAQ,OAAOgN,EAASziG,EAAK3jK,KAAMlY,GACxC,IAAK,SAAU,OAAOA,EACtB,QAAS,MAAM,IAAI5jB,MAAM,qBAAuBy/L,EAAKliL,OAIvD,SAASk3U,GAAUnkH,EAAI7wC,GACtB+rF,IAh+LD,SAAkBl7C,GACjB,IAAIA,IAAOA,EAAG14B,aAAe04B,EAAG34B,OAAQ,MAAM,IAAI33M,MAAM,oBACxD,IAAIswO,EAAG14B,WAAWl/M,OAAQ,MAAM,IAAIsH,MAAM,qBAC1C,IAbuBqlE,EAAG0gL,EAAG8C,EAazBlxC,EAAU24B,EAAG42F,UAAY52F,EAAG42F,SAASvvH,QAAW,GAb7BtyI,EAcRirK,EAAG14B,WAdQmuC,EAcIpuC,EAdDkxC,IAcWvY,EAAG22F,OAb3C5hQ,EAAEl/D,SAAQ,SAAS/H,EAAEzF,GACpB4zU,GAAcnuU,GACd,IAAI,IAAI6G,EAAI,EAAGA,EAAItM,IAAKsM,EAAG,GAAG7G,GAAKinE,EAAEpgE,GAAI,MAAM,IAAIjF,MAAM,yBAA2B5B,GACpF,GAAGyqP,EAAO,CACT,IAAI6rG,EAAM3uG,GAAKA,EAAEptP,IAAMotP,EAAEptP,GAAG6rU,UAAapmU,EACzC,GAAuB,IAApBs2V,EAAGn+T,WAAW,IAAYm+T,EAAGh8V,OAAS,GAAI,MAAM,IAAIsH,MAAM,2BAA6B00V,OAS5F,IAAI,IAAI/7V,EAAI,EAAGA,EAAI23O,EAAG14B,WAAWl/M,SAAUC,EAAGgrU,GAASrzF,EAAG34B,OAAO24B,EAAG14B,WAAWj/M,IAAK23O,EAAG14B,WAAWj/M,GAAIA,GA49LtGg8V,CAASrkH,GACT,IAAIn0O,EAAIsjM,GAAM,GAEd,GADGtjM,EAAE+kT,aAAc/kT,EAAEwuT,QAAS,EAAMxuT,EAAE0xS,YAAa,GACtC,SAAV1xS,EAAEohB,KAAiB,CAAEphB,EAAEohB,KAAO,SAAU,IAAIqG,EAAO6wU,GAAUnkH,EAAIn0O,GAAuB,OAAlBA,EAAEohB,KAAO,QAAgB6uQ,EAAKxoQ,GACvG,OAAOznB,EAAE4hT,UAAY,QACpB,IAAK,MACL,IAAK,OAAQ,OAAOu2C,GAAkBzf,GAAWvkG,EAAIn0O,GAAIA,GACzD,IAAK,MACL,IAAK,OAAQ,OAAOm4V,GAAkBrI,GAAc37G,EAAIn0O,GAAIA,GAC5D,IAAK,MACL,IAAK,OAAQ,OAAOm4V,GAAkBxI,GAAcx7G,EAAIn0O,GAAIA,GAC5D,IAAK,MAAO,OA3Cd,SAAyBynB,EAAK67K,GAC7B,OAAOA,EAAKliL,MACX,IAAK,SAAU,OAAOwuQ,EAAOn1Q,OAAOgN,GACpC,IAAK,SACL,IAAK,SAAU,OAAOA,EACtB,IAAK,OAAQ,OAAOs+Q,EAASziG,EAAK3jK,KAAMlY,EAAK,UAC7C,IAAK,SACJ,OAAGi+O,EAAgBC,EAAYl+O,EAAK,UACxBA,EAAI7Z,MAAM,IAAIxF,KAAI,SAAS8C,GAAK,OAAOA,EAAEkvB,WAAW,MAGlE,MAAM,IAAIv2B,MAAM,qBAAuBy/L,EAAKliL,MAgCxBq3U,CAAgBvI,GAAc/7G,EAAIn0O,GAAIA,GACzD,IAAK,MAAO,OAAOm4V,GAAkBvI,GAAcz7G,EAAIn0O,GAAIA,EAAG,UAC9D,IAAK,MAAO,OAAOm4V,GAAkBpI,GAAc57G,EAAIn0O,GAAIA,GAC3D,IAAK,MAAO,OAAOq4V,GAAkBjI,GAAcj8G,EAAIn0O,GAAIA,GAC3D,IAAK,MAAO,OAAOm4V,GAAkBnI,GAAc77G,EAAIn0O,GAAIA,GAC3D,IAAK,MAAO,OAAOm4V,GAAkBlI,GAAc97G,EAAIn0O,GAAIA,GAC3D,IAAK,MAAO,OAAOm4V,GAAkB9H,GAAcl8G,EAAIn0O,GAAIA,GAC3D,IAAK,OAAQ,OAAOm4V,GAAkB9I,GAAUl7G,EAAIn0O,GAAIA,GACxD,IAAK,QAAaA,EAAEyvS,OAAMzvS,EAAEyvS,KAAO,GACnC,IAAK,QAAazvS,EAAEyvS,OAAMzvS,EAAEyvS,KAAO,GACnC,IAAK,QAAiC,OAApBzvS,EAAEyvS,OAAMzvS,EAAEyvS,KAAO,GAAU4oD,GAAkBnO,GAAe/1G,EAAIn0O,GAAIA,GACtF,IAAK,QAAaA,EAAEyvS,OAAMzvS,EAAEyvS,KAAO,GACnC,IAAK,QACL,IAAK,MACL,IAAK,MAA+B,OAApBzvS,EAAEyvS,OAAMzvS,EAAEyvS,KAAO,GA/EnC,SAAwBt7D,EAAI7wC,GAC3B,IAAItjM,EAAIsjM,GAAM,GAEd,OAAO40J,GA1sGR,SAAsB/jH,EAAI7wC,GACzB,IAAItjM,EAAIsjM,GAAQ,GACZi6F,EAAMrE,EAAIp1F,MAAMqhG,QAAQ,CAACxiF,KAAK,MAC9B+1I,EAAS,YACb,OAAO14V,EAAE4hT,UAAY,OACpB,IAAK,MAAO5hT,EAAE4hT,SAAW,QAEzB,IAAK,MAAW5hT,EAAE4hT,WAAU5hT,EAAE4hT,SAAW,OAEzC,IAAK,QAAS82C,EAAS,YAAa14V,EAAEyvS,KAAO,EAAG,MAChD,IAAK,QAASipD,EAAS,QAAS14V,EAAEyvS,KAAO,EAAG,MAC5C,QAAS,MAAM,IAAI5rS,MAAM,gBAAkB7D,EAAE4hT,SAAW,gBAMzD,OAJA1oB,EAAIp1F,MAAM4gG,QAAQnH,EAAKm7D,EAAQxO,GAAe/1G,EAAIn0O,IACrC,GAAVA,EAAEyvS,OAAct7D,EAAGinE,OAASjnE,EAAG4/F,YAnFnC,SAAyB5/F,EAAIopD,GAC5B,IACWo7D,EADPC,EAAY,GAAIC,EAAW,GAAIC,EAAW,GAC1Ct8V,EAAI,EACR,GAAG23O,EAAGinE,MAGL,IAFAu9C,EAAOl0U,EAAK0vN,EAAGinE,OAEX5+S,EAAI,EAAGA,EAAIm8V,EAAKp8V,SAAUC,GAAIqC,OAAOK,UAAUQ,eAAeC,KAAKo1S,GAAc4jD,EAAKn8V,IAAMo8V,EAAY/5V,OAAOK,UAAUQ,eAAeC,KAAKq1S,GAAW2jD,EAAKn8V,IAAMq8V,EAAWC,GAAUv3V,KAAK,CAACo3V,EAAKn8V,GAAI23O,EAAGinE,MAAMu9C,EAAKn8V,MAE1N,GAAG23O,EAAG4/F,UAGL,IAFA4kB,EAAOl0U,EAAK0vN,EAAG4/F,WAEXv3U,EAAI,EAAGA,EAAIm8V,EAAKp8V,SAAUC,EAAOqC,OAAOK,UAAUQ,eAAeC,KAAMw0O,EAAGinE,OAAO,GAAKu9C,EAAKn8V,MAAMqC,OAAOK,UAAUQ,eAAeC,KAAKo1S,GAAc4jD,EAAKn8V,IAAMo8V,EAAY/5V,OAAOK,UAAUQ,eAAeC,KAAKq1S,GAAW2jD,EAAKn8V,IAAMq8V,EAAWC,GAAUv3V,KAAK,CAACo3V,EAAKn8V,GAAI23O,EAAG4/F,UAAU4kB,EAAKn8V,MAEjS,IAAIu8V,EAAY,GAChB,IAAIv8V,EAAI,EAAGA,EAAIs8V,EAASv8V,SAAUC,EAC9BihT,GAAU3uR,QAAQgqU,EAASt8V,GAAG,KAAO,GACnB,MAAlBs8V,EAASt8V,GAAG,IACfu8V,EAAUx3V,KAAKu3V,EAASt8V,IAEtBq8V,EAASt8V,QAAQ28R,EAAIp1F,MAAM4gG,QAAQnH,EAAK,uBAA6BohB,GAAwBk6C,EAAUtf,GAAYvkC,GAAWH,MAC9H+jD,EAAUr8V,QAAUw8V,EAAUx8V,SAAQ28R,EAAIp1F,MAAM4gG,QAAQnH,EAAK,+BAAqCohB,GAAwBi6C,EAAWrf,GAAaxkC,GAAcJ,GAAkBokD,EAAUx8V,OAASw8V,EAAY,KA1C/M,qCAyGyCC,CAAgB7kH,EAAIopD,GAErD,GAAVv9R,EAAEyvS,MAAat7D,EAAG22F,QA9nOtB,SAAsBvtC,EAAKs1D,GAC1BA,EAAI72D,UAAUhyR,SAAQ,SAAS5J,EAAG5D,GACjC,GAAQ,GAALA,EAAH,CACA,IAAI0hV,EAAU99U,EAAEkN,QAAQ,aAAc,sBACb,MAAtB4wU,EAAQ/7U,OAAO,IAAY+2R,EAAIp1F,MAAM4gG,QAAQnH,EAAK2gD,EAAS2U,EAAI92D,UAAUv/R,GAAGm9P,aA0nOnDs/F,CAAa17D,EAAKrE,EAAI55Q,KAAK60N,EAAG22F,OAAQ,CAAC1pT,KAA0B,iBAAb+yN,EAAG22F,OAAqB,SAAW,YAC7GvtC,EAwrGG27D,CAAa/kH,EAAIn0O,GACDA,GA4EkBm5V,CAAehlH,EAAIn0O,GAC9D,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,MAAO,OA1Gd,SAAwBm0O,EAAI7wC,GAC3B,IAAItjM,EAAIsjM,GAAM,GACVnoF,EAAI2jL,GAAU3qD,EAAIn0O,GAClBo5V,EAAQ,GAEZ,GADGp5V,EAAEsrQ,cAAa8tF,EAAM9tF,YAAc,WACnCtrQ,EAAEm1T,SAAUikC,EAAMh4U,KAAOskP,EAAU,aAAe,cAChD,OAAO1lQ,EAAEohB,MACb,IAAK,SAAUg4U,EAAMh4U,KAAO,SAAU,MACtC,IAAK,SAAUg4U,EAAMh4U,KAAO,SAAU,MACtC,IAAK,SAAU,MAAM,IAAIvd,MAAM,qCAAuC7D,EAAE4hT,SAAW,WACnF,IAAK,SACL,IAAK,OAAQw3C,EAAMh4U,KAAOskP,EAAU,aAAe,SAAU,MAC7D,QAAS,MAAM,IAAI7hQ,MAAM,qBAAuB7D,EAAEohB,MAEnD,IAAIqG,EAAM0zF,EAAE6gL,UAAY9C,EAAItvQ,MAAMuxF,EAAG,CAACijL,SAAS,MAAOh9Q,KAAM,CAAC,WAAc,SAAU,OAAU,UAAUg4U,EAAMh4U,OAASg4U,EAAMh4U,OAAS+5F,EAAEm1J,SAAS8oF,GAElJ,OAAGp5V,EAAEm1T,UAAqC,oBAAlBkkC,cAAsCnB,GAAcmB,cAAc5xU,EAAKznB,EAAEm1T,UAAWn1T,GAE9F,SAAXA,EAAEohB,KAAwB2kR,EAAS/lS,EAAE2/B,KAAMlY,GAC7B,UAAVznB,EAAEohB,KAAmBopR,GAAS/iR,GAAOA,EAuFxB6xU,CAAenlH,EAAIn0O,GACtC,QAAS,MAAM,IAAI6D,MAAO,0BAA4B7D,EAAE4hT,SAAW,MAIrE,SAAS23C,GAAkBv5V,GAC1B,IAAGA,EAAE4hT,SAAL,CACA,IAOI7qI,EAAM/2K,EAAE2/B,KAAKx9B,MAAMnC,EAAE2/B,KAAK+E,YAAY,MAAM52B,cAC7CipK,EAAI9xI,MAAM,gBAAejlC,EAAE4hT,SAAW7qI,EAAI50K,MAAM,IACnDnC,EAAE4hT,SATQ,CACT,IAAO,QACP,IAAO,OACP,IAAO,OACP,WAAc,MACd,QAAW,OAIK5hT,EAAE4hT,WAAa5hT,EAAE4hT,UAGnC,SAASl8G,GAAcyuC,EAAI67B,EAAU1sE,GACpC,IAAItjM,EAAIsjM,GAAM,GAGd,OAHkBtjM,EAAEohB,KAAO,OAC3BphB,EAAE2/B,KAAOqwO,EACTupF,GAAkBv5V,GACXs4V,GAAUnkH,EAAIn0O,GAWtB,SAASw5V,GAAct+I,EAAOj2M,EAAGy2M,EAAGhlG,EAAMy5F,EAAQ0tG,EAAK9zL,EAAO/pH,GAC7D,IAAI61R,EAAKia,GAAWp0F,GAChB+9I,EAASz5V,EAAEy5V,OAAQxmG,EAAMjzP,EAAEizP,MAAQp0P,OAAOK,UAAUQ,eAAeC,KAAKK,EAAG,OAC3E05V,GAAU,EACV18U,EAAkB,IAAXmzL,EAAgB,GAAK,GAChC,GAAc,IAAXA,EACF,GAAGtxM,OAAOC,eAAgB,IAAMD,OAAOC,eAAeke,EAAK,aAAc,CAAC5f,MAAMs+M,EAAGh9M,YAAW,IAAW,MAAMm1B,GAAK7W,EAAI28U,WAAaj+I,OAChI1+L,EAAI28U,WAAaj+I,EAEvB,IAAI3xF,GAASmxF,EAAMQ,GAAI,IAAK,IAAIC,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAAG,CAC3D,IAAI/2M,EAAMmlH,EAAQmxF,EAAMQ,GAAGC,GAAKT,EAAMxkG,EAAKilG,GAAKk6E,GAChD,QAAW53R,IAAR2G,QAA+B3G,IAAV2G,EAAI2I,EAA5B,CAKA,IAAIqQ,EAAIhZ,EAAIgZ,EACZ,OAAOhZ,EAAI2I,GACV,IAAK,IAAK,GAAQ,MAALqQ,EAAW,MAAO,SAC/B,IAAK,IAAKA,OAAI,EAAQ,MACtB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACxC,QAAS,MAAM,IAAI/Z,MAAM,qBAAuBe,EAAI2I,GAErD,GAAa,MAAVswS,EAAIliG,GAAY,CAClB,GAAQ,MAAL/9L,EACF,QAAc3f,IAAXw7V,EAAsBz8U,EAAI6gS,EAAIliG,IAAM89I,MAClC,KAAGxmG,GAAa,OAANr1O,EACV,SADsBZ,EAAI6gS,EAAIliG,IAAM,UAGzC3+L,EAAI6gS,EAAIliG,IAAMs3C,GAAQjzP,EAAE45V,YAAuB,KAATh1V,EAAI2I,EAAYqQ,EAAI+yR,GAAY/rS,EAAIgZ,EAAE5d,GAErE,MAAL4d,IAAW87U,GAAU,QApBzB,CACC,QAAcz7V,IAAXw7V,EAAsB,SACZ,MAAV57C,EAAIliG,KAAc3+L,EAAI6gS,EAAIliG,IAAM89I,IAqBrC,MAAO,CAAEz8U,IAAKA,EAAK08U,QAASA,GAI7B,SAAS9yC,GAAc1rG,EAAO5X,GAC7B,GAAY,MAAT4X,GAAkC,MAAjBA,EAAM,QAAiB,MAAO,GAClD,IAAIt2M,EAAM,CAAC2I,EAAE,IAAIqQ,EAAE,GAAIuyL,EAAS,EAAGvlM,EAAS,EAAGizS,EAAM,GAAIjgS,EAAE,EAAG25Q,EAAG,GAC7DtyR,EAAI,CAACoD,EAAE,CAACpD,EAAE,EAAEiG,EAAE,GAAG2oB,EAAE,CAAC5uB,EAAE,EAAEiG,EAAE,IAC1BlL,EAAIsjM,GAAQ,GACZlvI,EAAmB,MAAXp0D,EAAEo0D,MAAgBp0D,EAAEo0D,MAAQ8mJ,EAAM,QAK9C,OAJgB,IAAbl7M,EAAEmwM,OAAcA,EAAS,EACP,MAAbnwM,EAAEmwM,OAAgBA,EAAS,EAC3BzzM,MAAMmE,QAAQb,EAAEmwM,QAASA,EAAS,EACtB,MAAZnwM,EAAEmwM,SAAgBA,EAAS,UACrB/7I,GACb,IAAK,SAAUnvD,EAAIyrS,GAAkBt8O,GAAQ,MAC7C,IAAK,UAAUnvD,EAAIyrS,GAAkBx1F,EAAM,UAAY7yM,EAAEpD,EAAImvD,EAAO,MACpE,QAASnvD,EAAImvD,EAEX+7I,EAAS,IAAGvlM,EAAS,GACxB,IAAIirR,EAAKia,GAAW7qS,EAAEoD,EAAEpD,GACpByxG,EAAO,GACPjvF,EAAM,GACNoyU,EAAO,EAAG91V,EAAU,EACpBgmH,EAAQrtH,MAAMmE,QAAQq6M,GACtBQ,EAAIz2M,EAAEoD,EAAEpD,EAAG02M,EAAI,EAAGm+I,EAAK,EAE3B,IADG/vO,IAAUmxF,EAAMQ,KAAIR,EAAMQ,GAAK,IAC9BC,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAG5B,OAFAjlG,EAAKilG,GAAKo0F,GAAWp0F,GACrB/2M,EAAMmlH,EAAQmxF,EAAMQ,GAAGC,GAAKT,EAAMxkG,EAAKilG,GAAKk6E,GACrC1lF,GACN,KAAK,EAAG0tG,EAAIliG,GAAKA,EAAI12M,EAAEoD,EAAE6C,EAAG,MAC5B,KAAK,EAAG2yS,EAAIliG,GAAKjlG,EAAKilG,GAAI,MAC1B,KAAK,EAAGkiG,EAAIliG,GAAK37M,EAAEmwM,OAAOwL,EAAI12M,EAAEoD,EAAE6C,GAAI,MACtC,QAIC,IAHU,MAAPtG,IAAaA,EAAM,CAACqlE,EAAG,UAAW18D,EAAG,MACxCgqR,EAAK35Q,EAAI+yR,GAAY/rS,EAAK,KAAM5E,GAChC+D,EAAU,EACN+1V,EAAK,EAAGA,EAAKj8C,EAAIthT,SAAUu9V,EAAOj8C,EAAIi8C,IAAOviE,IAAIA,EAAK35Q,EAAI,OAAS7Z,GACvE85S,EAAIliG,GAAK47E,EAGZ,IAAK77E,EAAIz2M,EAAEoD,EAAEpD,EAAI2F,EAAQ8wM,GAAKz2M,EAAE4uB,EAAE5uB,IAAKy2M,EAAG,CACzC,IAAI1+L,EAAMw8U,GAAct+I,EAAOj2M,EAAGy2M,EAAGhlG,EAAMy5F,EAAQ0tG,EAAK9zL,EAAO/pH,KAC3C,IAAhBgd,EAAI08U,UAAkC,IAAXvpJ,GAA+B,IAAhBnwM,EAAE+5V,UAAwB/5V,EAAE+5V,cAAYtyU,EAAIoyU,KAAU78U,EAAIA,KAGzG,OADAyK,EAAIlrB,OAASs9V,EACNpyU,EAGR,IAAIuyU,GAAO,KACX,SAASC,GAAa/+I,EAAOj2M,EAAGy2M,EAAGhlG,EAAMk6B,EAAIigL,EAAIqpC,EAAIl6V,GAGpD,IAFA,IAAI05V,GAAU,EACV18U,EAAM,GAAIm9U,EAAM,GAAItkE,EAAKia,GAAWp0F,GAChCC,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAChC,GAAKjlG,EAAKilG,GAAV,CACA,IAAI/2M,EAAM5E,EAAE+pH,OAASmxF,EAAMQ,IAAI,IAAIC,GAAIT,EAAMxkG,EAAKilG,GAAKk6E,GACvD,GAAU,MAAPjxR,EAAau1V,EAAM,QACjB,GAAY,MAATv1V,EAAIgZ,EAAW,CACtB87U,GAAU,EACVS,EAAM,IAAIn6V,EAAE45V,YAAuB,KAATh1V,EAAI2I,EAAW3I,EAAIgZ,EAAI+yR,GAAY/rS,EAAK,KAAM5E,IACxE,IAAI,IAAIxD,EAAI,EAAGw4R,EAAK,EAAGx4R,IAAM29V,EAAI59V,SAAUC,EAAG,IAAIw4R,EAAKmlE,EAAI//T,WAAW59B,MAAQo0I,GAAMokJ,IAAO67B,GAAa,KAAP77B,GAAah1R,EAAEo6V,YAAa,CAACD,EAAM,IAAOA,EAAI7sV,QAAQ0sV,GAAM,MAAQ,IAAM,MACjK,MAAPG,IAAaA,EAAM,aACJ,MAATv1V,EAAIvB,GAAcuB,EAAI2iQ,EAGzB4yF,EAAM,IAFZT,GAAU,GACVS,EAAM,IAAMv1V,EAAIvB,GAAUyrB,QAAQ,MAAQ,IAAGqrU,EAAM,IAAMA,EAAI7sV,QAAQ0sV,GAAM,MAAQ,MAGpFh9U,EAAIzb,KAAK44V,GAEV,OAAmB,IAAhBn6V,EAAE+5V,WAAuBL,EAAgB,KACrC18U,EAAItP,KAAKwsV,GAGjB,SAASrK,GAAa30I,EAAO5X,GAC5B,IAAI77K,EAAM,GACNznB,EAAY,MAARsjM,EAAe,GAAKA,EAC5B,GAAY,MAAT4X,GAAkC,MAAjBA,EAAM,QAAiB,MAAO,GAClD,IAAIj2M,EAAIyrS,GAAkBx1F,EAAM,SAC5Bg/I,OAAcj8V,IAAT+B,EAAEk6V,GAAmBl6V,EAAEk6V,GAAK,IAAKtpN,EAAKspN,EAAG9/T,WAAW,GACzDoyR,OAAcvuT,IAAT+B,EAAEwsT,GAAmBxsT,EAAEwsT,GAAK,KAAMqE,EAAKrE,EAAGpyR,WAAW,GAC1DigU,EAAW,IAAIn3Q,QAAY,KAAJg3Q,EAAU,MAAQA,GAAI,MAC7Cl9U,EAAM,GAAI05F,EAAO,GACrB12G,EAAE+pH,MAAQrtH,MAAMmE,QAAQq6M,GAGxB,IAFA,IAAIkwG,EAAUprT,EAAEs6V,YAAcp/I,EAAM,UAAY,GAC5CiwG,EAAUnrT,EAAEs6V,YAAcp/I,EAAM,UAAY,GACxCS,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,GAAUyvG,EAAQzvG,IAAI,IAAU,SAAGjlG,EAAKilG,GAAKo0F,GAAWp0F,IACzF,IAAI,IAAID,EAAIz2M,EAAEoD,EAAEpD,EAAGy2M,GAAKz2M,EAAE4uB,EAAE5uB,IAAKy2M,GAC3ByvG,EAAQzvG,IAAI,IAAI2xC,QAEX,OADVrwO,EAAMi9U,GAAa/+I,EAAOj2M,EAAGy2M,EAAGhlG,EAAMk6B,EAAIigL,EAAIqpC,EAAIl6V,MAE/CA,EAAEu6V,QAAOv9U,EAAMA,EAAI1P,QAAQ+sV,EAAS,KACvC5yU,EAAIlmB,KAAKyb,EAAMwvS,IAGhB,cADOxsT,EAAE+pH,MACFtiG,EAAI/Z,KAAK,IAGjB,SAASyiV,GAAaj1I,EAAO5X,GACxBA,IAAMA,EAAO,IAAIA,EAAK42J,GAAK,KAAM52J,EAAKkpH,GAAK,KAC/C,IAAInkT,EAAIwnV,GAAa30I,EAAO5X,GAC5B,GAAqB,oBAAXuhE,SAAuC,UAAbvhE,EAAKliL,KAAkB,OAAO/Y,EAClE,IAAIrI,EAAI6kQ,QAAQ/gE,MAAMrpL,OAAO,KAAMpS,EAAG,OACtC,OAAO6B,OAAOmvB,aAAa,KAAOnvB,OAAOmvB,aAAa,KAAOr5B,EAG9D,SAASw6V,GAAkBt/I,GAC1B,IAAYz2M,EAAR0hB,EAAI,GAAOvhB,EAAI,GACnB,GAAY,MAATs2M,GAAkC,MAAjBA,EAAM,QAAiB,MAAO,GAClD,IAA8DS,EAA1D12M,EAAIyrS,GAAkBx1F,EAAM,SAAU26E,EAAK,GAAIn/K,EAAO,GACtD+jP,EAAO,GACP1wO,EAAQrtH,MAAMmE,QAAQq6M,GAC1B,IAAIS,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAAGjlG,EAAKilG,GAAKo0F,GAAWp0F,GACrD,IAAI,IAAID,EAAIz2M,EAAEoD,EAAEpD,EAAGy2M,GAAKz2M,EAAE4uB,EAAE5uB,IAAKy2M,EAEhC,IADAm6E,EAAKia,GAAWp0F,GACZC,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAI5B,GAHAx1L,EAAIuwF,EAAKilG,GAAKk6E,EAEdjxR,EAAM,QACG3G,KAFTwG,EAAIslH,GAASmxF,EAAMQ,IAAI,IAAIC,GAAKT,EAAM/0L,IAEtC,CACK,GAAU,MAAP1hB,EAAE8iQ,EAAW,CAEpB,GADAphP,EAAI1hB,EAAE8iQ,GACF9iQ,EAAEpB,EAAG,SACTuB,EAAMH,EAAEpB,GACc,GAAnB8iB,EAAE2I,QAAQ,OAAY3I,EAAIA,EAAI,IAAMA,GAExC,GAAU,MAAP1hB,EAAEpB,EAAWuB,EAAMH,EAAEpB,MACnB,IAAU,KAAPoB,EAAE8I,EAAU,SACf,GAAU,KAAP9I,EAAE8I,GAAmB,MAAP9I,EAAEmZ,EAAWhZ,EAAM,GAAKH,EAAEmZ,OAC3C,GAAU,KAAPnZ,EAAE8I,EAAU3I,EAAMH,EAAEmZ,EAAI,OAAS,aACpC,QAAW3f,IAARwG,EAAEwlE,EAAiBrlE,EAAM,IAAMH,EAAEwlE,MACpC,SAAWhsE,IAARwG,EAAEmZ,EAAiB,SACPhZ,EAAL,KAAPH,EAAE8I,EAAgB,IAAM9I,EAAEmZ,EACvB,GAAGnZ,EAAEmZ,GAChB68U,EAAKA,EAAKl+V,QAAU4pB,EAAI,IAAMvhB,EAGhC,OAAO61V,EAGR,SAASC,GAAexpD,EAAKypD,EAAIr3J,GAChC,IAWIjrF,EAXAr4G,EAAIsjM,GAAQ,GACZ14L,IAAW5K,EAAE46V,WACbl1I,EAAKwrF,GAAO,GACZC,EAAK,EAAGC,EAAK,EACjB,GAAG1rF,GAAkB,MAAZ1lN,EAAEqxS,OACV,GAAsB,iBAAZrxS,EAAEqxS,OAAoBF,EAAKnxS,EAAEqxS,WAClC,CACJ,IAAIC,EAA6B,iBAAZtxS,EAAEqxS,OAAqBjB,GAAYpwS,EAAEqxS,QAAUrxS,EAAEqxS,OACtEF,EAAKG,EAAQrsS,EAAGmsS,EAAKE,EAAQpmS,EAI/B,IAAIkpD,EAAQ,CAAE/rD,EAAG,CAAC6C,EAAE,EAAGjG,EAAE,GAAI4uB,EAAG,CAAC3oB,EAAEkmS,EAAInsS,EAAEksS,EAAKwpD,EAAGp+V,OAAS,EAAIqO,IAC9D,GAAG86M,EAAG,QAAS,CACd,IAAI6rF,EAASb,GAAkBhrF,EAAG,SAClCtxJ,EAAMvgC,EAAE3oB,EAAIhH,KAAKQ,IAAI0vD,EAAMvgC,EAAE3oB,EAAGqmS,EAAO19Q,EAAE3oB,GACzCkpD,EAAMvgC,EAAE5uB,EAAIf,KAAKQ,IAAI0vD,EAAMvgC,EAAE5uB,EAAGssS,EAAO19Q,EAAE5uB,IAC/B,GAAPksS,IAAYA,EAAKI,EAAO19Q,EAAE5uB,EAAI,EAAGmvD,EAAMvgC,EAAE5uB,EAAIksS,EAAKwpD,EAAGp+V,OAAS,EAAIqO,QAE3D,GAAPumS,IAAYA,EAAK,EAAG/8O,EAAMvgC,EAAE5uB,EAAI01V,EAAGp+V,OAAS,EAAIqO,GAEpD,IAAIizS,EAAM79S,EAAEmwM,QAAU,GAAIwL,EAAI,EAE9Bg/I,EAAG3wV,SAAQ,SAAU6wV,EAAIn/I,GACxBj3L,EAAKo2U,GAAI7wV,SAAQ,SAASkY,IACC,IAAtBy5L,EAAEkiG,EAAI/uR,QAAQ5M,MAAW27R,EAAIliG,EAAEkiG,EAAIthT,QAAU2lB,GACjD,IAAItE,EAAIi9U,EAAG34U,GACP3U,EAAI,IACJ4tG,EAAI,GACJopM,EAAM3U,GAAY,CAAC1kS,EAAEkmS,EAAKz1F,EAAE12M,EAAEksS,EAAKz1F,EAAI9wM,IAC3CytG,EAAOyrF,GAAMg3J,eAAep1I,EAAI6+F,IAC7B3mS,GAAkB,iBAANA,GAAoBA,aAAauV,MAGhC,iBAALvV,EAAerQ,EAAI,IACT,kBAALqQ,EAAgBrQ,EAAI,IACf,iBAALqQ,EAAerQ,EAAI,IAC1BqQ,aAAauV,OACpB5lB,EAAI,IACAvN,EAAE2xS,YAAapkS,EAAI,IAAKqQ,EAAIspR,EAAQtpR,IACxCu9F,EAAKn7G,EAAEi4R,QAAUzH,EAAIl4B,OAAO,KAEzBjgJ,GAEHA,EAAK9qG,EAAIA,EAAG8qG,EAAKz6F,EAAIA,SACdy6F,EAAKpuC,SAAUouC,EAAKqjG,EACxBvgG,IAAG9C,EAAK8C,EAAIA,IAJNuqG,EAAG6+F,GAAOlsM,EAAO,CAAE9qG,EAAEA,EAAGqQ,EAAEA,GAMjCu9F,IAAG9C,EAAK8C,EAAIA,IAhBfuqG,EAAG6+F,GAAO3mS,QAoBbw2C,EAAMvgC,EAAE3oB,EAAIhH,KAAKQ,IAAI0vD,EAAMvgC,EAAE3oB,EAAGkmS,EAAKyM,EAAIthT,OAAS,GAClD,IAAIi1S,EAAM1B,GAAWqB,GACrB,GAAGvmS,EAAQ,IAAI+wM,EAAI,EAAGA,EAAIkiG,EAAIthT,SAAUo/M,EAAG+J,EAAGqqF,GAAWp0F,EAAIy1F,GAAMI,GAAO,CAACjkS,EAAE,IAAKqQ,EAAEigS,EAAIliG,IAExF,OADA+J,EAAG,QAAU6qF,GAAan8O,GACnBsxJ,EAIR,IAmJKq1I,GAnJDj3J,GAAQ,CACXisG,WAAYA,GACZD,WAAYA,GACZF,YAAaA,GACbW,aAAcA,GACdL,WAAYA,GACZF,WAAYA,GACZgrD,WAr2iBD,SAAoB3qD,GAAQ,OAAOA,EAAK/iS,QAAQ,sBAAsB,SAASM,MAAM,MAs2iBpFwiS,YAAaA,GACbE,aAAcA,GACdK,YAAaA,GACbsqD,aAAcT,GACdU,SAAUrL,GACVsL,UAAWv0C,GACXw0C,cAAeZ,GACfvpD,cAAeA,GACfypD,eAAgBA,GAChBlP,cAAeA,GACf55C,aAAcA,GACdypD,cArBD,SAAuBV,EAAIr3J,GAAQ,OAAOo3J,GAAe,KAAMC,EAAIr3J,IAsBlEg4J,eAAgBrP,GAChBsP,cAlvDD,SAAuBhqJ,EAAOjO,GAC7B,OAAOytG,GAAkBk7C,GAAgB16I,EAAOjO,GAAOA,IAkvDvDusJ,aAAcA,GACdM,aAAcA,GACdvpC,cAAeA,GACf40C,cAAejmB,GAAM9uB,WACrB+zC,kBAAmBA,GACnBiB,0BAA2B70C,KAG5B,SAAU9iH,GAIV,SAAS43J,EAAYj3V,EAAG0hB,EAAGg1F,GAAK,OAAe,MAAR12G,EAAE0hB,GAAa1hB,EAAE0hB,GAAM1hB,EAAE0hB,GAAKg1F,EAGrE,SAASwgP,EAAiBj2I,EAAIhK,EAAGC,GAEhC,GAAe,iBAALD,EAAe,CAExB,GAAGh/M,MAAMmE,QAAQ6kN,GAAK,CACrB,IAAIk2I,EAAKxrD,GAAY10F,GAErB,OADIgK,EAAGk2I,EAAG32V,KAAIygN,EAAGk2I,EAAG32V,GAAK,IAClBygN,EAAGk2I,EAAG32V,GAAG22V,EAAG1wV,KAAOw6M,EAAGk2I,EAAG32V,GAAG22V,EAAG1wV,GAAK,CAACqC,EAAE,MAE/C,OAAOm4M,EAAGhK,KAAOgK,EAAGhK,GAAK,CAACnuM,EAAE,MAG7B,OAAgCouV,EAAiBj2I,EAAIkqF,GAAtC,iBAALl0F,EAAuDA,EAEzB,CAACz2M,EAAEy2M,EAAExwM,EAAEywM,GAAG,KApBnD7X,EAAMy7F,OAASz7F,EAAMy7F,QAAU,GAsB/Bz7F,EAAMg3J,eAAiBa,EAevB73J,EAAM+3J,SAAW,WAChB,MAAO,CAAEpgJ,WAAY,GAAID,OAAQ,KAIlC1X,EAAMg4J,kBAAoB,SAAS3nH,EAAIzuB,EAAItjN,GAC1C,IAAIA,EAAM,IAAI,IAAI5F,EAAI,EAAGA,GAAK,QAAgF,GAA9C23O,EAAG14B,WAAW3sL,QAAQ1sB,EAAO,QAAU5F,KAA/DA,EAAG4F,OAAOnE,GAClD,IAAImE,GAAQ+xO,EAAG14B,WAAWl/M,QAAU,MAAQ,MAAM,IAAIsH,MAAM,uBAE5D,GADAusU,GAAchuU,GACX+xO,EAAG14B,WAAW3sL,QAAQ1sB,IAAS,EAAG,MAAM,IAAIyB,MAAM,wBAA0BzB,EAAO,qBAEtF+xO,EAAG14B,WAAWl6M,KAAKa,GACnB+xO,EAAG34B,OAAOp5M,GAAQsjN,GAInB5hB,EAAMi4J,0BAA4B,SAAS5nH,EAAI6nH,EAAIC,GAClDP,EAAYvnH,EAAG,WAAW,IAC1BunH,EAAYvnH,EAAG42F,SAAS,SAAS,IAEjC,IAAIpnN,EAhCL,SAAsBwwH,EAAI6nH,GACzB,GAAgB,iBAANA,EAAgB,CACzB,GAAGA,GAAM,GAAK7nH,EAAG14B,WAAWl/M,OAASy/V,EAAI,OAAOA,EAChD,MAAM,IAAIn4V,MAAM,uBAAyBm4V,GACnC,GAAgB,iBAANA,EAAgB,CAChC,IAAIr4O,EAAMwwH,EAAG14B,WAAW3sL,QAAQktU,GAChC,GAAGr4O,GAAO,EAAG,OAAOA,EACpB,MAAM,IAAI9/G,MAAM,2BAA6Bm4V,EAAK,KAC5C,MAAM,IAAIn4V,MAAM,sBAAwBm4V,EAAK,KAwB1CE,CAAa/nH,EAAI6nH,GAI3B,OAFAN,EAAYvnH,EAAG42F,SAASvvH,OAAO73F,EAAK,IAE7Bs4O,GACN,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,MACxB,QAAS,MAAM,IAAIp4V,MAAM,gCAAkCo4V,GAG5D9nH,EAAG42F,SAASvvH,OAAO73F,GAAKgtN,OAASsrB,GAEvB,CACV,CAAC,gBAAiB,GAClB,CAAC,eAAgB,GACjB,CAAC,oBAAqB,IAtEkBjyV,SAAQ,SAASjF,GAAI++L,EAAMy7F,OAAOx6R,EAAE,IAAMA,EAAE,MA0ErF++L,EAAMq4J,uBAAyB,SAAS9jP,EAAMu7K,GAE7C,OADAv7K,EAAK8C,EAAIy4K,EACFv7K,GAIRyrF,EAAMs4J,mBAAqB,SAAS/jP,EAAM95G,EAAQmuU,GAOjD,OANInuU,GAGH85G,EAAK/6F,EAAI,CAAGo6R,OAAQn5S,GACjBmuU,IAASr0N,EAAK/6F,EAAEunS,QAAU6nB,WAHtBr0N,EAAK/6F,EAKN+6F,GAERyrF,EAAMu4J,uBAAyB,SAAShkP,EAAMjkD,EAAOs4Q,GAAW,OAAO5oI,EAAMs4J,mBAAmB/jP,EAAM,IAAMjkD,EAAOs4Q,IAGnH5oI,EAAMw4J,iBAAmB,SAASjkP,EAAM77E,EAAMi1T,GACzCp5O,EAAKntG,IAAGmtG,EAAKntG,EAAI,IACrBmtG,EAAKntG,EAAE3J,KAAK,CAACgM,EAAQxI,EAAE0sV,GAAQ,aAIhC3tJ,EAAMy4J,wBAA0B,SAAS72I,EAAItxJ,EAAOs3P,GAGnD,IAFA,IAAIunB,EAAsB,iBAAT7+Q,EAAoBA,EAAQs8O,GAAkBt8O,GAC3DooS,EAAyB,iBAATpoS,EAAoBA,EAAQm8O,GAAan8O,GACrDsnJ,EAAIu3H,EAAI5qU,EAAEpD,EAAGy2M,GAAKu3H,EAAIp/S,EAAE5uB,IAAKy2M,EAAG,IAAI,IAAIC,EAAIs3H,EAAI5qU,EAAE6C,EAAGywM,GAAKs3H,EAAIp/S,EAAE3oB,IAAKywM,EAAG,CAC/E,IAAItjG,EAAOsjP,EAAiBj2I,EAAIhK,EAAGC,GACnCtjG,EAAK9qG,EAAI,IACT8qG,EAAKkvJ,EAAIi1F,SACFnkP,EAAKz6F,EACT89L,GAAKu3H,EAAI5qU,EAAEpD,GAAK02M,GAAKs3H,EAAI5qU,EAAE6C,IAAGmtG,EAAKh1G,EAAIqoT,GAE3C,OAAOhmG,GA9GR,CAkHG5hB,IAEA4hE,IACEq1F,GAAW,gBAkHfz/I,EAAKr4E,OAAS,CACbw5N,QAvDuB,SAASvhJ,EAAO5X,GACvC,IAAIrgE,EAAS83N,GAAS,CAAC2B,YAAW,IAElC,GAAY,MAATxhJ,GAAkC,MAAjBA,EAAM,QAAsC,OAAnBj4E,EAAO1hI,KAAK,MAAc0hI,EACvE,IAAIr+H,EAAM,CAAC2I,EAAE,IAAIqQ,EAAE,GAAIuyL,EAAS,EAAGvlM,EAAS,EAAGizS,EAAM,GAAIjgS,EAAE,EAAG25Q,EAAG,GAC7DtyR,EAAI,CAACoD,EAAE,CAACpD,EAAE,EAAEiG,EAAE,GAAG2oB,EAAE,CAAC5uB,EAAE,EAAEiG,EAAE,IAC1BlL,EAAIsjM,GAAQ,GACZlvI,EAAmB,MAAXp0D,EAAEo0D,MAAgBp0D,EAAEo0D,MAAQ8mJ,EAAM,QAI9C,OAHgB,IAAbl7M,EAAEmwM,OAAcA,EAAS,EACP,MAAbnwM,EAAEmwM,OAAgBA,EAAS,EAC3BzzM,MAAMmE,QAAQb,EAAEmwM,UAASA,EAAS,UAC5B/7I,GACb,IAAK,SAAUnvD,EAAIyrS,GAAkBt8O,GAAQ,MAC7C,IAAK,UAAUnvD,EAAIyrS,GAAkBx1F,EAAM,UAAY7yM,EAAEpD,EAAImvD,EAAO,MACpE,QAASnvD,EAAImvD,EAEX+7I,EAAS,IAAGvlM,EAAS,GACxB,IAAIirR,EAAKia,GAAW7qS,EAAEoD,EAAEpD,GACpByxG,EAAO,GACP3yG,EAAU,EACVgmH,EAAQrtH,MAAMmE,QAAQq6M,GACtBQ,EAAIz2M,EAAEoD,EAAEpD,EAAG02M,EAAI,EAAGm+I,EAAK,EAE3B,IADG/vO,IAAUmxF,EAAMQ,KAAIR,EAAMQ,GAAK,IAC9BC,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,EAG5B,OAFAjlG,EAAKilG,GAAKo0F,GAAWp0F,GACrB/2M,EAAMmlH,EAAQmxF,EAAMQ,GAAGC,GAAKT,EAAMxkG,EAAKilG,GAAKk6E,GACrC1lF,GACN,KAAK,EAAG0tG,EAAIliG,GAAKA,EAAI12M,EAAEoD,EAAE6C,EAAG,MAC5B,KAAK,EAAG2yS,EAAIliG,GAAKjlG,EAAKilG,GAAI,MAC1B,KAAK,EAAGkiG,EAAIliG,GAAK37M,EAAEmwM,OAAOwL,EAAI12M,EAAEoD,EAAE6C,GAAI,MACtC,QAIC,IAHU,MAAPtG,IAAaA,EAAM,CAACqlE,EAAG,UAAW18D,EAAG,MACxCgqR,EAAK35Q,EAAI+yR,GAAY/rS,EAAK,KAAM5E,GAChC+D,EAAU,EACN+1V,EAAK,EAAGA,EAAKj8C,EAAIthT,SAAUu9V,EAAOj8C,EAAIi8C,IAAOviE,IAAIA,EAAK35Q,EAAI,OAAS7Z,GACvE85S,EAAIliG,GAAK47E,EAgBZ,OAbA77E,EAAIz2M,EAAEoD,EAAEpD,EAAI2F,EACZq4H,EAAO05N,MAAQ,WACd,GAAGjhJ,EAAIz2M,EAAE4uB,EAAE5uB,EAAG,OAAOg+H,EAAO1hI,KAAK,MACjC,KAAMm6M,GAAKz2M,EAAE4uB,EAAE5uB,GAAG,CAEjB,IAAI+X,EAAMw8U,GAAct+I,EAAOj2M,EAAGy2M,EAAGhlG,EAAMy5F,EAAQ0tG,EAAK9zL,EAAO/pH,GAE/D,KADE07M,GACkB,IAAhB1+L,EAAI08U,UAAkC,IAAXvpJ,GAA+B,IAAhBnwM,EAAE+5V,UAAwB/5V,EAAE+5V,WAAY,CACrF92N,EAAO1hI,KAAKyb,EAAIA,KAChB,SAIIimH,GAKP25N,QAlFuB,SAASl3I,EAAIpiB,GACpC,IAAIrgE,EAAS83N,KAET/6V,EAAIsjM,GAAQ,GACZ6M,EAAqB,MAAZnwM,EAAEmwM,OAAiBnwM,EAAEmwM,OAASolI,GAAM8V,MAC7CtkB,EAAqB,MAAZ/mU,EAAE+mU,OAAiB/mU,EAAE+mU,OAASwO,GAAM+V,IACjDroN,EAAO1hI,KAAK4uM,GACZ,IAAIlrM,EAAIqrS,GAAa5qF,EAAG,SACxB1lN,EAAE+pH,MAAQrtH,MAAMmE,QAAQ6kN,GACxBziF,EAAO1hI,KAAKg0U,GAAMgW,UAAU7lI,EAAIzgN,EAAGjF,IACnC,IAAI07M,EAAIz2M,EAAEoD,EAAEpD,EACRoZ,GAAM,EAYV,OAXA4kH,EAAO05N,MAAQ,WACd,GAAGjhJ,EAAIz2M,EAAE4uB,EAAE5uB,EAEV,OADIoZ,IAAOA,GAAM,EAAM4kH,EAAO1hI,KAAK,WAAawlU,IACzC9jM,EAAO1hI,KAAK,MAEpB,KAAMm6M,GAAKz2M,EAAE4uB,EAAE5uB,GAAG,CACjBg+H,EAAO1hI,KAAKg0U,GAAM6V,KAAK1lI,EAAIzgN,EAAGy2M,EAAG17M,MAC/B07M,EACF,QAGKz4E,GA4DP45N,OAnHsB,SAAS3hJ,EAAO5X,GACtC,IAAIrgE,EAAS83N,KACT/6V,EAAY,MAARsjM,EAAe,GAAKA,EAC5B,GAAY,MAAT4X,GAAkC,MAAjBA,EAAM,QAAsC,OAAnBj4E,EAAO1hI,KAAK,MAAc0hI,EACvE,IAAIh+H,EAAIyrS,GAAkBx1F,EAAM,SAC5Bg/I,OAAcj8V,IAAT+B,EAAEk6V,GAAmBl6V,EAAEk6V,GAAK,IAAKtpN,EAAKspN,EAAG9/T,WAAW,GACzDoyR,OAAcvuT,IAAT+B,EAAEwsT,GAAmBxsT,EAAEwsT,GAAK,KAAMqE,EAAKrE,EAAGpyR,WAAW,GAC1DigU,EAAW,IAAIn3Q,QAAY,KAAJg3Q,EAAU,MAAQA,GAAI,MAC7Cl9U,EAAM,GAAI05F,EAAO,GACrB12G,EAAE+pH,MAAQrtH,MAAMmE,QAAQq6M,GAGxB,IAFA,IAAIkwG,EAAUprT,EAAEs6V,YAAcp/I,EAAM,UAAY,GAC5CiwG,EAAUnrT,EAAEs6V,YAAcp/I,EAAM,UAAY,GACxCS,EAAI12M,EAAEoD,EAAE6C,EAAGywM,GAAK12M,EAAE4uB,EAAE3oB,IAAKywM,GAAUyvG,EAAQzvG,IAAI,IAAU,SAAGjlG,EAAKilG,GAAKo0F,GAAWp0F,IACzF,IAAID,EAAIz2M,EAAEoD,EAAEpD,EACR63V,GAAM,EAeV,OAdA75N,EAAO05N,MAAQ,WACd,IAAIG,EAAmB,OAAZA,GAAM,EAAa75N,EAAO1hI,KAAK,UAC1C,KAAMm6M,GAAKz2M,EAAE4uB,EAAE5uB,GAEd,KADEy2M,IACGyvG,EAAQzvG,EAAE,IAAI,IAAI2xC,QAEb,OADVrwO,EAAMi9U,GAAa/+I,EAAOj2M,EAAGy2M,EAAE,EAAGhlG,EAAMk6B,EAAIigL,EAAIqpC,EAAIl6V,IACpC,CACZA,EAAEu6V,QAAOv9U,EAAMA,EAAI1P,QAAQ+sV,EAAS,KACvCp3N,EAAO1hI,KAAKyb,EAAMwvS,GAClB,MAGF,OAAG9wG,EAAIz2M,EAAE4uB,EAAE5uB,EAAUg+H,EAAO1hI,KAAK,WAAjC,GAEM0hI,KA0F+Bq4E,EAAKk+H,aAAeA,GAC5Dl+H,EAAK4+E,UAAYA,GACjB5+E,EAAKh8L,KAAOE,GACZ87L,EAAKyhJ,SAAWlsN,GAChByqE,EAAKzqE,aAAeA,GACpByqE,EAAK1xL,MAAQ0uU,GACbh9I,EAAK4pF,UAAYx/F,GACjB4V,EAAK5V,cAAgBA,GACrB4V,EAAK0hJ,eAvgBL,SAAwBhtF,EAAU77B,EAAI7wC,EAAMkrG,GAC3C,IAAIxuS,EAAIsjM,GAAM,GAAItjM,EAAEohB,KAAO,OAC3BphB,EAAE2/B,KAAOqwO,EACTupF,GAAkBv5V,GAClBA,EAAEohB,KAAO,SACT,IAAI67U,EAAMzuD,EACV,OADmByuD,aAAen8U,WAAWm8U,EAAM,GAC5ChkE,EAAIiM,UAAUl1B,EAAUsoF,GAAUnkH,EAAIn0O,GAAIi9V,IAkgBlD3hJ,EAAKxX,MAAQA,GACbwX,EAAKk1E,IAAMA,OACO,IAAR0I,IAAqB59E,EAAK49E,IAAMA,GAGPgkE,CAAc36V,I,wECxsqB7C46V,yBAA2B,GAG/B,SAASC,oBAAoBC,GAE5B,GAAGF,yBAAyBE,GAC3B,OAAOF,yBAAyBE,GAAU96V,QAG3C,IAAID,EAAS66V,yBAAyBE,GAAY,CACjDr+U,GAAIq+U,EACJC,QAAQ,EACR/6V,QAAS,IAUV,OANAg7V,oBAAoBF,GAAU19V,KAAK2C,EAAOC,QAASD,EAAQA,EAAOC,QAAS66V,qBAG3E96V,EAAOg7V,QAAS,EAGTh7V,EAAOC,QCpBf,OCHA66V,oBAAoBI,KAAO,WAC1B,MAAM,IAAI35V,MAAM,mCCDjBu5V,oBAAoBK,KAAO,GCC3BL,oBAAoBn7V,EAAKK,IACxB,IAAIo7V,EAASp7V,GAAUA,EAAOyxP,WAC7B,IAAOzxP,EAAiB,QACxB,IAAM,EAEP,OADA86V,oBAAoBtyV,EAAE4yV,EAAQ,CAAE34V,EAAG24V,IAC5BA,GCLRN,oBAAoBtyV,EAAI,CAACvI,EAASo7V,KACjC,IAAI,IAAI1gW,KAAO0gW,EACXP,oBAAoBp9V,EAAE29V,EAAY1gW,KAASmgW,oBAAoBp9V,EAAEuC,EAAStF,IAC5E4B,OAAOC,eAAeyD,EAAStF,EAAK,CAAEyB,YAAY,EAAMa,IAAKo+V,EAAW1gW,MCJ3EmgW,oBAAoB/uV,EAAI,WACvB,GAA0B,iBAAf85P,WAAyB,OAAOA,WAC3C,IACC,OAAOvqQ,MAAQ,IAAIkjB,SAAS,cAAb,GACd,MAAO+S,GACR,GAAsB,iBAAXzlB,OAAqB,OAAOA,QALjB,GCAxBgvV,oBAAoBp9V,EAAI,CAAC8B,EAAKikO,IAAUlnO,OAAOK,UAAUQ,eAAeC,KAAKmC,EAAKikO,GCClFq3H,oBAAoBn4V,EAAK1C,IACH,oBAAXzB,QAA0BA,OAAOq3N,aAC1Ct5N,OAAOC,eAAeyD,EAASzB,OAAOq3N,YAAa,CAAE/6N,MAAO,WAE7DyB,OAAOC,eAAeyD,EAAS,aAAc,CAAEnF,OAAO,KCLvDggW,oBAAoBQ,IAAOt7V,IAC1BA,EAAOu7B,MAAQ,GACVv7B,EAAOwuH,WAAUxuH,EAAOwuH,SAAW,IACjCxuH,GRAD86V,oBAAoB,O","file":"bundle.js","sourcesContent":["export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","module.exports = require(\"regenerator-runtime\");\n","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n constructor(backend, dataMover) {\n this.backend = backend;\n this.dataMover = dataMover;\n this.data = new WeakMap();\n this.dataIdsCount = 0;\n }\n get(dataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n set(dataId, value) {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n has(dataId) {\n return this.data.has(dataId);\n }\n delete(dataId) {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n numDataIds() {\n return this.dataIdsCount;\n }\n}\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend {\n refCount(dataId) {\n return notYetImplemented('refCount');\n }\n incRef(dataId) {\n return notYetImplemented('incRef');\n }\n timerAvailable() {\n return true;\n }\n time(f) {\n return notYetImplemented('time');\n }\n read(dataId) {\n return notYetImplemented('read');\n }\n readSync(dataId) {\n return notYetImplemented('readSync');\n }\n numDataIds() {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId, force) {\n return notYetImplemented('disposeData');\n }\n write(values, shape, dtype) {\n return notYetImplemented('write');\n }\n move(dataId, values, shape, dtype, refCount) {\n return notYetImplemented('move');\n }\n memory() {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision() {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon() {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n dispose() {\n return notYetImplemented('dispose');\n }\n}\nfunction notYetImplemented(kernelName) {\n throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n//# sourceMappingURL=backend.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array) {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n/**\n * Shuffles two arrays in-place the same way using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1,2,3,4,5];\n * const b = [11,22,33,44,55];\n * tf.util.shuffleCombo(a, b);\n * console.log(a, b);\n * ```\n *\n * @param array The first array to shuffle in-place.\n * @param array2 The second array to shuffle in-place with the same permutation\n * as the first array.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffleCombo(array, \n// tslint:disable-next-line:no-any\narray2) {\n if (array.length !== array2.length) {\n throw new Error(`Array sizes must match to be shuffled together ` +\n `First array length was ${array.length}` +\n `Second array length was ${array2.length}`);\n }\n let counter = array.length;\n let temp, temp2;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element of each array with it\n temp = array[counter];\n temp2 = array2[counter];\n array[counter] = array[index];\n array2[counter] = array2[index];\n array[index] = temp;\n array2[index] = temp2;\n }\n}\n/** Clamps a value to a specified range. */\nexport function clamp(min, x, max) {\n return Math.max(min, Math.min(x, max));\n}\nexport function nearestLargerEven(val) {\n return val % 2 === 0 ? val : val + 1;\n}\nexport function sum(arr) {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a, b) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a, b) {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr, msg) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\nexport function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {\n assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\nexport function assertNonNull(a) {\n assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);\n}\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function flatten(arr, result = [], skipTypedArray = false) {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n }\n else {\n result.push(arr);\n }\n return result;\n}\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape) {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\nexport function isScalarShape(shape) {\n return shape.length === 0;\n}\nexport function arraysEqual(n1, n2) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isInt(a) {\n return a % 1 === 0;\n}\nexport function tanh(x) {\n // tslint:disable-next-line:no-any\n if (Math.tanh != null) {\n // tslint:disable-next-line:no-any\n return Math.tanh(x);\n }\n if (x === Infinity) {\n return 1;\n }\n else if (x === -Infinity) {\n return -1;\n }\n else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\nexport function sizeToSquarishShape(size) {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n) {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\nexport function rightPad(a, size) {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\nexport function repeatedTry(checkFn, delayFn = (counter) => 0, maxCounter) {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n tryCount++;\n const nextBackoff = delayFn(tryCount);\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n tryFn();\n });\n}\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(shape, size) {\n let shapeProd = 1;\n let implicitIdx = -1;\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n }\n else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(`Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n }\n else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n if (shapeProd === 0) {\n throw Error(`Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(`The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\nexport function parseAxisParam(axis, shape) {\n const rank = shape.length;\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n // Check for valid range\n assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n // Check for only integers\n assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape, axis) {\n const newShape = [];\n const keptDims = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return { newShape, keptDims };\n}\nexport function getTypedArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function getArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else if (dtype === 'string') {\n values = new Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function checkConversionForErrors(vals, dtype) {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype) {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType, newType) {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\nexport function isTypedArray(a) {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\nexport function bytesPerElement(dtype) {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n }\n else if (dtype === 'complex64') {\n return 8;\n }\n else if (dtype === 'bool') {\n return 1;\n }\n else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr) {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n/** Returns true if the value is a string. */\nexport function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexport function isBoolean(value) {\n return typeof value === 'boolean';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function inferDtype(values) {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n }\n else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n }\n else if (isNumber(values)) {\n return 'float32';\n }\n else if (isString(values)) {\n return 'string';\n }\n else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\nexport function isFunction(f) {\n return !!(f && f.constructor && f.call && f.apply);\n}\nexport function nearestDivisor(size, start) {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\nexport function computeStrides(shape) {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\nfunction createNestedArray(offset, shape, a) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n }\n else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n return createNestedArray(0, shape, a);\n}\nexport function makeOnesTypedArray(size, dtype) {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\nexport function makeZerosTypedArray(size, dtype) {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size);\n }\n else if (dtype === 'int32') {\n return new Int32Array(size);\n }\n else if (dtype === 'bool') {\n return new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(shape, dtype) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n }\n else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n }\n else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\nexport function assertNonNegativeIntegerDimensions(shape) {\n shape.forEach(dimSize => {\n assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(locs, rank, strides) {\n if (rank === 0) {\n return 0;\n }\n else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(index, rank, strides) {\n if (rank === 0) {\n return [];\n }\n else if (rank === 1) {\n return [index];\n }\n const locs = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n//# sourceMappingURL=util_base.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { isPromise } from './util_base';\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n // tslint:disable-next-line: no-any\n constructor(global) {\n this.global = global;\n this.flags = {};\n this.flagRegistry = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n setPlatform(platformName, platform) {\n if (this.platform != null) {\n console.warn(`Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n registerFlag(flagName, evaluationFn, setHook) {\n this.flagRegistry[flagName] = { evaluationFn, setHook };\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n async getAsync(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n get(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n this.flags[flagName] = flagValue;\n return this.flags[flagName];\n }\n getNumber(flagName) {\n return this.get(flagName);\n }\n getBool(flagName) {\n return this.get(flagName);\n }\n getFlags() {\n return this.flags;\n }\n // For backwards compatibility.\n get features() {\n return this.flags;\n }\n set(flagName, value) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n evaluateFlag(flagName) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n setFlags(flags) {\n this.flags = Object.assign({}, flags);\n }\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n populateURLFlags() {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':');\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\nexport function getQueryParams(queryString) {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\nfunction decodeParam(params, name, value) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\nfunction parseValue(flagName, value) {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n else if (`${+value}` === value) {\n return +value;\n }\n throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\nexport let ENV = null;\nexport function setEnvironmentGlobal(environment) {\n ENV = environment;\n}\n//# sourceMappingURL=environment.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace;\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace() {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns;\n if (typeof (window) !== 'undefined') {\n ns = window;\n }\n else if (typeof (global) !== 'undefined') {\n ns = global;\n }\n else if (typeof (process) !== 'undefined') {\n ns = process;\n }\n else if (typeof (self) !== 'undefined') {\n ns = self;\n }\n else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n// tslint:disable-next-line:no-any\nfunction getGlobalMap() {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key, init) {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n }\n else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n//# sourceMappingURL=global_util.js.map","export const Abs = 'Abs';\nexport const Acos = 'Acos';\nexport const Acosh = 'Acosh';\nexport const Add = 'Add';\nexport const AddN = 'AddN';\nexport const All = 'All';\nexport const Any = 'Any';\nexport const ArgMax = 'ArgMax';\nexport const ArgMin = 'ArgMin';\nexport const Asin = 'Asin';\nexport const Asinh = 'Asinh';\nexport const Atan = 'Atan';\nexport const Atanh = 'Atanh';\nexport const Atan2 = 'Atan2';\nexport const AvgPool = 'AvgPool';\nexport const AvgPoolGrad = 'AvgPoolGrad';\nexport const AvgPool3D = 'AvgPool3D';\nexport const AvgPool3DGrad = 'AvgPool3DGrad';\nexport const BatchMatMul = 'BatchMatMul';\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport const Bincount = 'Bincount';\nexport const BroadcastTo = 'BroadcastTo';\nexport const Cast = 'Cast';\nexport const Ceil = 'Ceil';\nexport const ClipByValue = 'ClipByValue';\nexport const Complex = 'Complex';\nexport const ComplexAbs = 'ComplexAbs';\nexport const Concat = 'Concat';\nexport const Conv2D = 'Conv2D';\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport const Conv3D = 'Conv3D';\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport const Cos = 'Cos';\nexport const Cosh = 'Cosh';\nexport const Cumsum = 'Cumsum';\nexport const CropAndResize = 'CropAndResize';\nexport const DenseBincount = 'DenseBincount';\nexport const DepthToSpace = 'DepthToSpace';\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';\nexport const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';\nexport const Diag = 'Diag';\nexport const Dilation2D = 'Dilation2D';\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport const RealDiv = 'RealDiv';\nexport const Elu = 'Elu';\nexport const EluGrad = 'EluGrad';\nexport const Erf = 'Erf';\nexport const Equal = 'Equal';\nexport const Exp = 'Exp';\nexport const ExpandDims = 'ExpandDims';\nexport const Expm1 = 'Expm1';\nexport const FFT = 'FFT';\nexport const Fill = 'Fill';\nexport const FlipLeftRight = 'FlipLeftRight';\nexport const Floor = 'Floor';\nexport const FloorDiv = 'FloorDiv';\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport const GatherV2 = 'GatherV2';\nexport const GatherNd = 'GatherNd';\nexport const Greater = 'Greater';\nexport const GreaterEqual = 'GreaterEqual';\nexport const Identity = 'Identity';\nexport const IFFT = 'IFFT';\nexport const Imag = 'Imag';\nexport const IsFinite = 'IsFinite';\nexport const IsInf = 'IsInf';\nexport const IsNan = 'IsNan';\nexport const LeakyRelu = 'LeakyRelu';\nexport const Less = 'Less';\nexport const LessEqual = 'LessEqual';\nexport const LinSpace = 'LinSpace';\nexport const Log = 'Log';\nexport const Log1p = 'Log1p';\nexport const LogicalAnd = 'LogicalAnd';\nexport const LogicalNot = 'LogicalNot';\nexport const LogicalOr = 'LogicalOr';\nexport const LogSoftmax = 'LogSoftmax';\nexport const LRN = 'LRN';\nexport const LRNGrad = 'LRNGrad';\nexport const Max = 'Max';\nexport const Maximum = 'Maximum';\nexport const MaxPool = 'MaxPool';\nexport const MaxPoolGrad = 'MaxPoolGrad';\nexport const MaxPool3D = 'MaxPool3D';\nexport const MaxPool3DGrad = 'MaxPool3DGrad';\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport const Mean = 'Mean';\nexport const Min = 'Min';\nexport const Minimum = 'Minimum';\nexport const MirrorPad = 'MirrorPad';\nexport const Mod = 'Mod';\nexport const Multinomial = 'Multinomial';\nexport const Multiply = 'Multiply';\nexport const Neg = 'Neg';\nexport const NotEqual = 'NotEqual';\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport const OnesLike = 'OnesLike';\nexport const OneHot = 'OneHot';\nexport const Pack = 'Pack';\nexport const PadV2 = 'PadV2';\nexport const Pool = 'Pool';\nexport const Pow = 'Pow';\nexport const Prelu = 'Prelu';\nexport const Prod = 'Prod';\nexport const Range = 'Range';\nexport const Real = 'Real';\nexport const Reciprocal = 'Reciprocal';\nexport const Relu = 'Relu';\nexport const Reshape = 'Reshape';\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport const ResizeBilinear = 'ResizeBilinear';\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport const Relu6 = 'Relu6';\nexport const Reverse = 'Reverse';\nexport const Round = 'Round';\nexport const Rsqrt = 'Rsqrt';\nexport const ScatterNd = 'ScatterNd';\nexport const Select = 'Select';\nexport const Selu = 'Selu';\nexport const Slice = 'Slice';\nexport const Sin = 'Sin';\nexport const Sinh = 'Sinh';\nexport const Sign = 'Sign';\nexport const Sigmoid = 'Sigmoid';\nexport const Softplus = 'Softplus';\nexport const Sqrt = 'Sqrt';\nexport const Sum = 'Sum';\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport const SplitV = 'SplitV';\nexport const Softmax = 'Softmax';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const Sub = 'Sub';\nexport const SparseToDense = 'SparseToDense';\nexport const StridedSlice = 'StridedSlice';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transpose = 'Transpose';\nexport const Unique = 'Unique';\nexport const Unpack = 'Unpack';\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport const ZerosLike = 'ZerosLike';\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport const FromPixels = 'FromPixels';\nexport const RotateWithOffset = 'RotateWithOffset';\nexport const _FusedMatMul = '_FusedMatMul';\nexport const FusedConv2D = 'FusedConv2D';\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\n//# sourceMappingURL=kernel_names.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport { getGlobal } from './global_util';\nconst kernelRegistry = getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry = getGlobal('gradRegistry', () => new Map());\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName) {\n return gradRegistry.get(kernelName);\n}\nexport function getKernelsForBackend(backendName) {\n const it = kernelRegistry.entries();\n const result = [];\n while (true) {\n const { done, value } = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend,] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config) {\n const { kernelName, backendName } = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config) {\n const { kernelName } = config;\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName) {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(`The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(registeredBackendName, newBackendName) {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig = Object.assign({}, kernelConfig, { backendName: newBackendName });\n registerKernel(newKernelConfig);\n });\n}\nfunction makeKey(kernelName, backendName) {\n return `${backendName}_${kernelName}`;\n}\n//# sourceMappingURL=kernel_registry.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as base from './util_base';\nexport * from './util_base';\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(value, dtype) {\n if (dtype === 'string') {\n return encodeString(value);\n }\n return toTypedArray([value], dtype);\n}\nfunction noConversionNeeded(a, dtype) {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\nexport function toTypedArray(a, dtype) {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a, dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a);\n }\n else if (dtype === 'int32') {\n return new Int32Array(a);\n }\n else if (dtype === 'bool') {\n const bool = new Uint8Array(a.length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round(a[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now() {\n return env().platform.now();\n}\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(path, requestInits) {\n return env().platform.fetch(path, requestInits);\n}\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as util from './util';\nexport class Profiler {\n constructor(backendTimer, logger) {\n this.backendTimer = backendTimer;\n this.logger = logger;\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n profileKernel(kernelName, inputs, f) {\n let outputs;\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n let timer;\n const start = util.now();\n if (this.backendTimer.timerAvailable()) {\n timer = this.backendTimer.time(holdResultWrapperFn);\n }\n else {\n holdResultWrapperFn();\n for (const output of outputs) {\n output.dataSync();\n }\n timer = Promise.resolve({ kernelMs: util.now() - start });\n }\n if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n }\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n logKernelProfile(kernelProfile) {\n const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);\n });\n });\n }\n}\nexport function checkComputationForErrors(vals, dtype, kernelName) {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\nexport class Logger {\n logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n console.log(`%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${inputShapesDescription}\\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');\n }\n}\n//# sourceMappingURL=profiler.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { computeStrides, isString, rightPad, sizeFromShape } from './util';\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\nexport function tensorToString(vals, shape, dtype, verbose) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\nfunction computeMaxSizePerColumn(vals, shape, dtype, strides) {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\nfunction valToString(val, pad, dtype) {\n let valStr;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n }\n else if (isString(val)) {\n valStr = `'${val}'`;\n }\n else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n }\n else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n return rightPad(valStr, pad);\n}\nfunction boolNumToString(v) {\n return v === 0 ? 'false' : 'true';\n}\nfunction subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0])];\n }\n return [vals[0].toString()];\n }\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n let firstVals = Array.from(vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals = dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\nfunction createComplexTuples(vals) {\n const complexTuples = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]]);\n }\n return complexTuples;\n}\n//# sourceMappingURL=tensor_format.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { getGlobal } from './global_util';\nimport { tensorToString } from './tensor_format';\nimport * as util from './util';\nimport { computeStrides, toNestedArray } from './util';\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n constructor(shape, dtype, values) {\n this.dtype = dtype;\n this.shape = shape.slice();\n this.size = util.sizeFromShape(shape);\n if (values != null) {\n const n = values.length;\n util.assert(n === this.size, () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value, ...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n const index = this.locToIndex(locs);\n this.values[index] = value;\n }\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index];\n }\n locToIndex(locs) {\n if (this.rank === 0) {\n return 0;\n }\n else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n indexToLoc(index) {\n if (this.rank === 0) {\n return [];\n }\n else if (this.rank === 1) {\n return [index];\n }\n const locs = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor() {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype);\n }\n}\n// For tracking tensor creation and disposal.\nlet trackerFn = null;\n// Used by chaining methods to call into ops.\nlet opHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn) {\n trackerFn = fn;\n}\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler) {\n opHandler = handler;\n}\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn) {\n deprecationWarningFn = fn;\n}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n constructor(shape, dtype, dataId, id) {\n /** Whether this tensor has been globally kept. */\n this.kept = false;\n this.isDisposedInternal = false;\n this.shape = shape.slice();\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher');\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer() {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype, vals);\n }\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync() {\n return opHandler.buffer(this.shape, this.dtype, this.dataSync());\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array() {\n const vals = await this.data();\n return toNestedArray(this.shape, vals);\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync() {\n return toNestedArray(this.shape, this.dataSync());\n }\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data() {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data;\n try {\n return bytes.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync() {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return data.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /** Returns the underlying bytes of the tensor's data. */\n async bytes() {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data;\n }\n else {\n return new Uint8Array(data.buffer);\n }\n }\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n get isDisposed() {\n return this.isDisposedInternal;\n }\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false) {\n return opHandler.print(this, verbose);\n }\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone() {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false) {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n cast(dtype) {\n this.throwIfDisposed();\n return opHandler.cast(this, dtype);\n }\n variable(trainable = true, name, dtype) {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype);\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\nexport function getGlobalTensorClass() {\n // Use getGlobal so that we can augment the Tensor class across package\n // boundaries becase the node resolution alg may result in different modules\n // being returned for this file depending on the path they are loaded from.\n return getGlobal('Tensor', () => {\n return Tensor;\n });\n}\n// Global side effect. Cache global reference to Tensor class\ngetGlobalTensorClass();\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n constructor(initialValue, trainable, name, tensorId) {\n super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.trainable = trainable;\n this.name = name;\n }\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue) {\n if (newValue.dtype !== this.dtype) {\n throw new Error(`dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(`shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n dispose() {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport var Rank;\n(function (Rank) {\n Rank[\"R0\"] = \"R0\";\n Rank[\"R1\"] = \"R1\";\n Rank[\"R2\"] = \"R2\";\n Rank[\"R3\"] = \"R3\";\n Rank[\"R4\"] = \"R4\";\n Rank[\"R5\"] = \"R5\";\n Rank[\"R6\"] = \"R6\";\n})(Rank || (Rank = {}));\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nvar UpcastInt32AndMap;\n(function (UpcastInt32AndMap) {\n UpcastInt32AndMap[\"float32\"] = \"float32\";\n UpcastInt32AndMap[\"int32\"] = \"int32\";\n UpcastInt32AndMap[\"bool\"] = \"int32\";\n UpcastInt32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastInt32AndMap || (UpcastInt32AndMap = {}));\nvar UpcastBoolAndMap;\n(function (UpcastBoolAndMap) {\n UpcastBoolAndMap[\"float32\"] = \"float32\";\n UpcastBoolAndMap[\"int32\"] = \"int32\";\n UpcastBoolAndMap[\"bool\"] = \"bool\";\n UpcastBoolAndMap[\"complex64\"] = \"complex64\";\n})(UpcastBoolAndMap || (UpcastBoolAndMap = {}));\nvar UpcastFloat32AndMap;\n(function (UpcastFloat32AndMap) {\n UpcastFloat32AndMap[\"float32\"] = \"float32\";\n UpcastFloat32AndMap[\"int32\"] = \"float32\";\n UpcastFloat32AndMap[\"bool\"] = \"float32\";\n UpcastFloat32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));\nvar UpcastComplex64AndMap;\n(function (UpcastComplex64AndMap) {\n UpcastComplex64AndMap[\"float32\"] = \"complex64\";\n UpcastComplex64AndMap[\"int32\"] = \"complex64\";\n UpcastComplex64AndMap[\"bool\"] = \"complex64\";\n UpcastComplex64AndMap[\"complex64\"] = \"complex64\";\n})(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\nexport function upcastType(typeA, typeB) {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n/** Returns the output type after summation. */\nexport function sumOutType(type) {\n return upcastType(type, 'int32');\n}\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { Tensor } from './tensor';\nimport { upcastType } from './types';\nimport { assert } from './util';\nexport function makeTypesMatch(a, b) {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\nexport function assertTypesMatch(a, b) {\n assert(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\nexport function isTensorInList(tensor, tensorList) {\n return tensorList.some(x => x.id === tensor.id);\n}\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result) {\n const list = [];\n const seen = new Set();\n walkTensorContainer(result, list, seen);\n return list;\n}\nfunction walkTensorContainer(container, list, seen) {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n// tslint:disable-next-line:no-any\nfunction isIterable(obj) {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n//# sourceMappingURL=tensor_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { KernelBackend } from './backends/backend';\nimport { Environment, setEnvironmentGlobal } from './environment';\nimport { getGlobalNamespace } from './global_util';\nimport { Add, Cast, Identity } from './kernel_names';\nimport { getGradient, getKernel, getKernelsForBackend } from './kernel_registry';\nimport { Profiler } from './profiler';\nimport { backpropagateGradients, getFilteredNodesXToY } from './tape';\nimport { setTensorTracker, Tensor, Variable } from './tensor';\nimport { getTensorsInContainer } from './tensor_util';\nimport * as util from './util';\nimport { bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape } from './util';\nfunction isRegisteredKernelInvocation(kernelInvocation) {\n return kernelInvocation.kernelName != null;\n}\nclass EngineState {\n constructor() {\n // Public since optimizers will use it.\n this.registeredVariables = {};\n this.nextTapeNodeId = 0;\n this.numBytes = 0;\n this.numTensors = 0;\n this.numStringTensors = 0;\n this.numDataBuffers = 0;\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n this.gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n this.kernelDepth = 0;\n this.scopeStack = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n this.numDataMovesStack = [];\n this.nextScopeId = 0;\n this.tensorInfo = new WeakMap();\n this.profiling = false;\n this.activeProfile = {\n newBytes: 0,\n newTensors: 0,\n peakBytes: 0,\n kernels: [],\n result: null,\n get kernelNames() {\n return Array.from(new Set(this.kernels.map(k => k.name)));\n }\n };\n }\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\nexport class Engine {\n constructor(ENV) {\n this.ENV = ENV;\n this.registry = {};\n this.registryFactory = {};\n this.pendingBackendInitId = 0;\n this.state = new EngineState();\n }\n async ready() {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => { });\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n get backend() {\n if (this.pendingBackendInit != null) {\n throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const { name, asyncInit } = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(`The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n backendNames() {\n return Object.keys(this.registryFactory);\n }\n findBackend(backendName) {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const { asyncInit } = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n }\n else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n findBackendFactory(backendName) {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n registerBackend(backendName, factory, priority = 1) {\n if (backendName in this.registryFactory) {\n console.warn(`${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = { factory, priority };\n return true;\n }\n async setBackend(backendName) {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const { success, asyncInit } = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n return true;\n }\n setupRegisteredKernels() {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n disposeRegisteredKernels(backendName) {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n initializeBackend(backendName) {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);\n }\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend) &&\n typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success = backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return { success, asyncInit: true };\n }\n else {\n this.registry[backendName] = backend;\n return { success: true, asyncInit: false };\n }\n }\n catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return { success: false, asyncInit: false };\n }\n }\n removeBackend(backendName) {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n delete this.registryFactory[backendName];\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n getSortedBackends() {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a, b) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n initializeBackendsAndReturnBest() {\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const { success, asyncInit } = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return { name: backendName, asyncInit };\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n moveData(backend, dataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n const refCount = srcBackend.refCount(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId, true);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype, refCount);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n tidy(nameOrFn, fn) {\n let name = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n }\n else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error('When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error('When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result;\n return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n scopedRun(start, end, f) {\n start();\n try {\n const res = f();\n end();\n return res;\n }\n catch (ex) {\n end();\n throw ex;\n }\n }\n nextTensorId() {\n return Engine.nextTensorId++;\n }\n nextVariableId() {\n return Engine.nextVariableId++;\n }\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n */\n clone(x) {\n const y = ENGINE.runKernel(Identity, { x });\n const inputs = { x };\n const grad = (dy) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = { x: dy };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, gradInputs, \n // tslint:disable-next-line: no-unnecessary-type-assertion\n attrs);\n }\n });\n const saved = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(kernelName, inputs, attrs) {\n const hasKernel = getKernel(kernelName, this.backendName) != null;\n if (!hasKernel) {\n throw new Error(`Kernel '${kernelName}' not registered for backend '${this.backendName}'`);\n }\n return this.runKernelFunc({ kernelName, inputs, attrs });\n }\n shouldCheckForMemLeaks() {\n return this.ENV.getBool('IS_TEST');\n }\n checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {\n const numDataIdsAfter = this.backend.numDataIds();\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(`Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n /**\n * Internal helper method to execute a kernel Func\n *\n * Use `runKernel` to execute kernels from outside of engine.\n */\n runKernelFunc(kernelParams) {\n let outputs;\n let saved = [];\n const isTapeOn = this.isTapeOn();\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n let kernelFunc;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n let out;\n const kernelOrScopeName = isRegisteredKernelInvocation(kernelParams) ?\n kernelParams.kernelName :\n this.state.activeScope != null ? this.state.activeScope.name : '';\n // Create the kernelFunc from either a registered kernel OR passed in\n // forward/backward functions (used by custom grad). In this context a\n // kernelFunc wraps a kernel implementation with some bookkeeping.\n if (isRegisteredKernelInvocation(kernelParams)) {\n const { kernelName, inputs, attrs } = kernelParams;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n const kernel = getKernel(kernelName, this.backendName);\n util.assert(kernel != null, () => `Cannot find registered kernel '${kernelName}' for backend '${this.backendName}'`);\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({ inputs, attrs, backend: this.backend });\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map((outInfo) => {\n // todo (yassogba) remove this option (Tensor) when node backend\n // methods have been modularized and they all return tensorInfo.\n // TensorInfos do not have a rank attribute.\n if (outInfo.rank != null) {\n return outInfo;\n }\n const { dataId, shape, dtype } = outInfo;\n return this.makeTensorFromDataId(dataId, shape, dtype);\n });\n // Save any required inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since there would be no backprop for these tensors\n // (which would otherwise dispose them).\n if (isTapeOn) {\n const tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n }\n else {\n const { forwardFunc } = kernelParams;\n // Running a customGrad op.\n const saveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]);\n if (this.shouldCheckForMemLeaks()) {\n // Scope name is used to print a more helpful error message if needed.\n this.checkKernelForMemLeak(kernelOrScopeName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n //\n // Run the kernelFunc. Optionally profiling it.\n //\n const { inputs, attrs } = kernelParams;\n const backwardsFunc = isRegisteredKernelInvocation(kernelParams) ?\n null :\n kernelParams.backwardsFunc;\n let kernelProfile;\n this.scopedRun(\n // Stop recording to a tape when running a kernel.\n () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n }\n else {\n kernelProfile = this.profiler.profileKernel(kernelOrScopeName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n if (isTapeOn) {\n this.addTapeNode(kernelOrScopeName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelOrScopeName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]);\n }\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n saveTensorsForBackwardMode(tensors) {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n getTensorsForGradient(kernelName, inputs, outputs) {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave = gradConfig.inputsToSave || [];\n const outputsToSave = gradConfig.outputsToSave || [];\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave;\n if (gradConfig.saveAllInputs) {\n util.assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n }\n else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // We return an empty list rather than throw an error because the kernel we\n // are looking up may not actually be relevant to backproping through the\n // overall function\n //\n // See 'does not error if irrelevant (pruned) ops are missing grads' test\n // in gradients_test.ts for an example.\n return [];\n }\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(values, shape, dtype, backend) {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = values.map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.trackTensor(t, backend);\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(dataId, shape, dtype, backend) {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.trackTensor(t, backend);\n return t;\n }\n makeVariable(initialValue, trainable = true, name, dtype) {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n trackTensor(a, backend) {\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.numBytes += bytes;\n if (!this.state.tensorInfo.has(a.dataId)) {\n this.state.numDataBuffers++;\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes\n });\n }\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n // Track the tensor by dataId and increase the refCount for the dataId in the\n // backend.\n // TODO(pyu10055): This is currently used by makeVariable method, to increase\n // refCount on the backend for the dataId. It can potentially be replaced with\n // Identity op indead of calling backend directly.\n incRef(a, backend) {\n this.trackTensor(a, backend);\n this.backend.incRef(a.dataId);\n }\n removeDataId(dataId, backend) {\n if (this.state.tensorInfo.has(dataId) &&\n this.state.tensorInfo.get(dataId).backend === backend) {\n this.state.tensorInfo.delete(dataId);\n this.state.numDataBuffers--;\n }\n }\n disposeTensor(a) {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n this.state.numBytes -= info.bytes;\n }\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n const bytes = a.size * util.bytesPerElement(a.dtype);\n this.state.numBytes -= bytes;\n }\n // Remove the reference to dataId if backend dispose the data successfully\n if (info.backend.disposeData(a.dataId)) {\n this.removeDataId(a.dataId, info.backend);\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n disposeVariables() {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n disposeVariable(v) {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n memory() {\n const info = this.backend.memory();\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push('Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n async profile(query) {\n this.state.profiling = true;\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n this.state.profiling = false;\n this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n isTapeOn() {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {\n const tapeNode = { id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved };\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n keep(result) {\n result.kept = true;\n return result;\n }\n startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n endTape() {\n this.state.gradientDepth--;\n }\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name) {\n const scopeInfo = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(f, xs, dy, allowNoGradients = false) {\n util.assert(xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));\n util.assert(y instanceof Tensor, () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n return this.tidy('backward', () => {\n const accumulatedGradientMap = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(accumulatedGradientMap, filteredTape, \n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f), \n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return { value: y, grads };\n });\n }\n customGrad(f) {\n util.assert(util.isFunction(f), () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs) => {\n util.assert(inputs.every(t => t instanceof Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n let res;\n const inputMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n const forwardFunc = (_, save) => {\n res = f(...[...inputs, save]);\n util.assert(res.value instanceof Tensor, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(util.isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n };\n const backwardsFunc = (dy, saved) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads = Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(grads.every(t => t instanceof Tensor), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n };\n return this.runKernelFunc({\n forwardFunc,\n backwardsFunc,\n inputs: inputMap,\n });\n };\n }\n readSync(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n async time(query) {\n const start = now();\n const timingInfo = await this.backend.time(query);\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n track(result) {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n return result;\n }\n get registeredVariables() {\n return this.state.registeredVariables;\n }\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset() {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\nEngine.nextTensorId = 0;\nEngine.nextVariableId = 0;\nfunction ones(shape) {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\nexport function getOrMakeEngine() {\n const ns = getGlobalNamespace();\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\nexport const ENGINE = getOrMakeEngine();\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a, b) {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = { a, b };\n return ENGINE.runKernel(Add, inputs);\n}\n//# sourceMappingURL=engine.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as util from './util';\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(tape, xs, y) {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX = {};\n const nodesFromX = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n if (anyInputFromX) {\n break;\n }\n }\n }\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY = {};\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n // Return the paths that come from x and lead to y.\n const filteredTape = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n filteredTape.push(prunedNode);\n }\n }\n return filteredTape;\n}\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n const dys = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n }\n else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n if (node.gradient == null) {\n throw new Error(`Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(`Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n }\n else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n//# sourceMappingURL=tape.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined() {\n return typeof navigator !== 'undefined' && navigator != null;\n}\nexport function isMobile() {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || window.opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\nexport function isBrowser() {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n//# sourceMappingURL=device_util.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport './engine';\nimport * as device_util from './device_util';\nimport { env } from './environment';\nconst ENV = env();\n/**\n * This file contains environment-related flag registrations.\n */\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn('Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_NODE', () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n/** Whether this browser is Chrome. */\nENV.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n/** Whether to check computation result for errors. */\nENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);\n//# sourceMappingURL=flags.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from './engine';\nimport { env } from './environment';\nimport { Tensor } from './tensor';\nimport { assert, flatten, inferDtype, isTypedArray, toTypedArray } from './util';\nexport function inferShape(val, dtype) {\n let firstElem = val;\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape = [];\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n return shape;\n}\nfunction deepAssertShapeConsistency(val, shape, indices) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\nfunction assertDtype(expectedDtype, actualDType, argName, functionName) {\n if (expectedDtype === 'string_or_numeric') {\n return;\n }\n if (expectedDtype == null) {\n throw new Error(`Expected dtype cannot be null.`);\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(`Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\nexport function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : x.constructor.name;\n throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype) :\n flatten(x, [], skipTypedArray);\n return ENGINE.makeTensor(values, inferredShape, inferredDtype);\n}\nexport function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {\n if (!Array.isArray(arg)) {\n throw new Error(`Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg;\n return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));\n}\n//# sourceMappingURL=tensor_util_env.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { isPromise } from '../util';\nexport const OP_SCOPE_SUFFIX = '__op';\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f) {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(`Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n let opName = keys[0];\n const fn = f[opName];\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n // tslint:disable-next-line:no-any\n const f2 = (...args) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n }\n catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', { value: opName, configurable: true });\n // tslint:disable-next-line:no-any\n return f2;\n}\n//# sourceMappingURL=operation.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Complex } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real, imag) {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n const inputs = { real: $real, imag: $imag };\n return ENGINE.runKernel(Complex, inputs);\n}\nexport const complex = op({ complex_ });\n//# sourceMappingURL=complex.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray } from '../util';\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(values, shape, inferredShape, dtype) {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(`Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error('values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values];\n }\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values, [], true);\n return ENGINE.makeTensor(values, shape, dtype);\n}\n//# sourceMappingURL=tensor_ops_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(values, shape, dtype) {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/* Type definitions for exporting and importing of models. */\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { complex } from '../ops/complex';\nimport { tensor } from '../ops/tensor';\nimport { sizeFromShape } from '../util';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(tensors, group) {\n // TODO(adarob, cais): Support quantization.\n const specs = [];\n const dataPromises = [];\n const names = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec = { name, shape: t.shape, dtype: t.dtype };\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async (resolve) => {\n const vals = await t.bytes();\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n }\n else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n const tensorValues = await Promise.all(dataPromises);\n return { data: concatenateTypedArrays(tensorValues), specs };\n}\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(buffer, specs) {\n // TODO(adarob, cais): Support quantization.\n const out = {};\n let float16Decode;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values;\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n }\n else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n }\n else {\n throw new Error(`Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n }\n else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray);\n }\n else {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n }\n else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n }\n else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n values.push(bytes);\n offset += byteLength;\n }\n }\n else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n }\n else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs) {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n let totalByteLength = 0;\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs = [];\n xs.forEach((x) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(x.byteLength === x.buffer.byteLength ? x :\n new x.constructor(x));\n if (!(x instanceof Float32Array || x instanceof Int32Array ||\n x instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n return y.buffer;\n}\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str) {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer) {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str) {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers) {\n if (buffers.length === 1) {\n return buffers[0];\n }\n let totalByteLength = 0;\n buffers.forEach((buffer) => {\n totalByteLength += buffer.byteLength;\n });\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path) {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable() {\n const convertMantissa = (i) => {\n let m = i << 13;\n let e = 0;\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n return m | e;\n };\n const mantisaTable = new Uint32Array(2048);\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n return mantisaTable;\n}\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable() {\n const exponentTable = new Uint32Array(64);\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n return exponentTable;\n}\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable() {\n const offsetTable = new Uint32Array(64);\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n return offsetTable;\n}\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder() {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n return (quantizedArray) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n//# sourceMappingURL=io_utils.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport class IORouterRegistry {\n constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n static getInstance() {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url) {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url, loadOptions) {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n static getHandlers(url, handlerType, loadOptions) {\n const validHandlers = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\nexport const registerSaveRouter = (loudRouter) => IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter) => IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url) => IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);\n//# sourceMappingURL=router_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase() {\n const idbFactory = getIndexedDBFactory();\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\nfunction getIndexedDBFactory() {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error('The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\nfunction setUpDatabase(openRequest) {\n const db = openRequest.result;\n db.createObjectStore(MODEL_STORE_NAME, { keyPath: 'modelPath' });\n db.createObjectStore(INFO_STORE_NAME, { keyPath: 'modelPath' });\n}\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB {\n constructor(modelPath) {\n this.indexedDB = getIndexedDBFactory();\n if (modelPath == null || !modelPath) {\n throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n async save(modelArtifacts) {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n return this.databaseAction(this.modelPath, modelArtifacts);\n }\n async load() {\n return this.databaseAction(this.modelPath);\n }\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n databaseAction(modelPath, modelArtifacts) {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n }\n else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n }\n else {\n // Put model into object store.\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest = infoStore.put({ modelPath: this.modelPath, modelArtifactsInfo });\n let modelTx;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({ modelArtifactsInfo });\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\nBrowserIndexedDB.URL_SCHEME = 'indexeddb://';\nexport const indexedDBRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath) {\n return new BrowserIndexedDB(modelPath);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\nexport class BrowserIndexedDBManager {\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n async listModels() {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = store.getAll();\n getAllInfoRequest.onsuccess = () => {\n const out = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const getInfoRequest = infoStore.get(path);\n let modelTx;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n }\n else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error => reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n//# sourceMappingURL=indexed_db.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts() {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\nfunction getModelKeys(path) {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage {\n constructor(modelPath) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n if (modelPath == null || !modelPath) {\n throw new Error('For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));\n const result = {\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy\n };\n if (modelArtifacts.signature != null) {\n result.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n result.modelInitializer = modelArtifacts.modelInitializer;\n }\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify(result));\n return { modelArtifactsInfo };\n }\n catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load() {\n const info = JSON.parse(this.LS.getItem(this.keys.info));\n if (info == null) {\n throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);\n }\n if (info.modelTopologyType !== 'JSON') {\n throw new Error('BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n const out = {};\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(`In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString);\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n if (metadata['signature'] != null) {\n out.signature = metadata['signature'];\n }\n if (metadata['userDefinedMetadata'] != null) {\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n if (metadata['modelInitializer'] != null) {\n out.modelInitializer = metadata['modelInitializer'];\n }\n }\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(`In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n return out;\n }\n}\nBrowserLocalStorage.URL_SCHEME = 'localstorage://';\nexport const localStorageRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath) {\n return new BrowserLocalStorage(modelPath);\n}\nexport class BrowserLocalStorageManager {\n constructor() {\n assert(env().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');\n assert(typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n async listModels() {\n const out = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key));\n }\n }\n return out;\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info));\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n//# sourceMappingURL=local_storage.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\nimport { assert } from '../util';\nimport { IORouterRegistry } from './router_registry';\nconst URL_SCHEME_SUFFIX = '://';\nexport class ModelStoreManagerRegistry {\n constructor() {\n this.managers = {};\n }\n static getInstance() {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme, manager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);\n registry.managers[scheme] = manager;\n }\n static getManager(scheme) {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n static getSchemes() {\n return Object.keys(this.getInstance().managers);\n }\n}\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url) {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(`The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\nasync function cloneModelInternal(sourceURL, destURL, deleteSource = false) {\n assert(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);\n assert(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n const modelArtifacts = await loadHandler.load();\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n const saveResult = await saveHandler.save(modelArtifacts);\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n return saveResult.modelArtifactsInfo;\n}\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels() {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out = {};\n for (const scheme of schemes) {\n const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url) {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(sourceURL, destURL) {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(sourceURL, destURL) {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\nexport { moveModel, copyModel, removeModel, listModels };\n//# sourceMappingURL=model_management.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { BrowserIndexedDB, BrowserIndexedDBManager } from '../io/indexed_db';\nimport { BrowserLocalStorage, BrowserLocalStorageManager } from '../io/local_storage';\nimport { ModelStoreManagerRegistry } from '../io/model_management';\nexport class PlatformBrowser {\n fetch(path, init) {\n return fetch(path, init);\n }\n now() {\n return performance.now();\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n }\n catch (err) {\n }\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n }\n catch (err) {\n }\n}\n//# sourceMappingURL=platform_browser.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\nlet systemFetch;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch() {\n return systemFetch;\n}\nexport class PlatformNode {\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n fetch(path, requestInits) {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n now() {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n//# sourceMappingURL=platform_node.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { TensorBuffer } from '../tensor';\nimport * as util from '../util';\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(shape, dtype = 'float32', values) {\n dtype = dtype || 'float32';\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n//# sourceMappingURL=buffer.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Cast } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x, dtype) {\n const $x = convertToTensor(x, 'x', 'cast');\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n const inputs = { x: $x };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, inputs, attrs);\n}\nexport const cast = op({ cast_ });\n//# sourceMappingURL=cast.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Identity } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x) {\n const $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');\n const inputs = { x: $x };\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernel(Identity, inputs);\n}\nexport const clone = op({ clone_ });\n//# sourceMappingURL=clone.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x, verbose = false) {\n console.log(x.toString(verbose));\n}\n//# sourceMappingURL=print.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\nfunction defer(f) {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\nexport class BrowserDownloads {\n constructor(fileNamePrefix) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error('browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n async save(modelArtifacts) {\n if (typeof (document) === 'undefined') {\n throw new Error('Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], { type: 'application/octet-stream' }));\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const weightsManifest = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n const modelTopologyAndWeightManifestURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: 'application/json' }));\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n return { modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts) };\n }\n }\n}\nBrowserDownloads.URL_SCHEME = 'downloads://';\nclass BrowserFiles {\n constructor(files) {\n if (files == null || files.length < 1) {\n throw new Error(`When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n async load() {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse(event.target.result);\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n if (weightFiles.length === 0) {\n resolve({ modelTopology });\n }\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n let pathToFile;\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n }\n catch (err) {\n reject(err);\n return;\n }\n const weightSpecs = [];\n const paths = [];\n const perFileBuffers = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const weightData = event.target.result;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n const result = {\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy\n };\n if (modelJSON.signature != null) {\n result.signature = modelJSON.signature;\n }\n if (modelJSON.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelJSON.userDefinedMetadata;\n }\n if (modelJSON.modelInitializer != null) {\n result.modelInitializer = modelJSON.modelInitializer;\n }\n resolve(result);\n }\n };\n weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n checkManifestAndWeightFiles(manifest, files) {\n const basenames = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(`Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);\n }\n else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n if (basenames.length !== files.length) {\n throw new Error(`Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\nexport const browserDownloadsRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model') {\n return new BrowserDownloads(fileNamePrefix);\n}\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files) {\n return new BrowserFiles(files);\n}\n//# sourceMappingURL=browser_files.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Required side effectful code for tfjs-core\n// Set up Engine and ENV\nimport { getOrMakeEngine } from './engine';\ngetOrMakeEngine();\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n// Set up OpHandler\nimport { buffer } from './ops/buffer';\nimport { cast } from './ops/cast';\nimport { clone } from './ops/clone';\nimport { print } from './ops/print';\nimport { setOpHandler } from './tensor';\nconst opHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n//# sourceMappingURL=base_side_effects.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { assert } from '../util';\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n const registerMonitor = (promise) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n function checkPromises(promises) {\n assert(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');\n }\n function checkFraction(startFraction, endFraction) {\n assert(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n return Promise.all(promises.map(registerMonitor));\n}\n//# sourceMappingURL=progress.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\nimport * as util from '../util';\nimport { decodeWeights } from './io_utils';\nimport { monitorPromisesProgress } from './progress';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, { isBinary: true }));\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);\n const bufferPromises = responses.map(response => response.arrayBuffer());\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);\n return buffers;\n}\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n const fetchWeights = (fetchUrls) => loadWeightsAsArrayBuffer(fetchUrls, { requestInit });\n const loadWeights = weightsLoaderFactory(fetchWeights);\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(fetchWeightsFunction) {\n return async (manifest, filePathPrefix = '', weightNames) => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch = {};\n const weightsFound = weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n }\n else {\n enqueueWeightsForFetchingFn();\n }\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(`Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n const fetchUrls = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n const weightsTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n bufferIndexOffset += numBuffers;\n });\n return weightsTensorMap;\n };\n}\n//# sourceMappingURL=weights_loader.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nimport { loadWeightsAsArrayBuffer } from './weights_loader';\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest {\n constructor(path, loadOptions) {\n this.DEFAULT_METHOD = 'POST';\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n if (loadOptions.fetchFunc != null) {\n assert(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n }\n else {\n this.fetch = env().platform.fetch;\n }\n assert(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n if (Array.isArray(path)) {\n assert(path.length === 2, () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error('requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n const init = Object.assign({ method: this.DEFAULT_METHOD }, this.requestInit);\n init.body = new FormData();\n const weightsManifest = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: JSON_TYPE }), 'model.json');\n if (modelArtifacts.weightData != null) {\n init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], { type: OCTET_STREAM_MIME_TYPE }), 'model.weights.bin');\n }\n const response = await this.fetch(this.path, init);\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n }\n else {\n throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load() {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n if (!modelConfigRequest.ok) {\n throw new Error(`Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig;\n try {\n modelConfig = await modelConfigRequest.json();\n }\n catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n }\n else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const signature = modelConfig.signature;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n let weightSpecs;\n let weightData;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n const artifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n generatedBy,\n convertedBy,\n format\n };\n if (signature != null) {\n artifacts.signature = signature;\n }\n if (userDefinedMetadata != null) {\n artifacts.userDefinedMetadata = userDefinedMetadata;\n }\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n return artifacts;\n }\n async loadWeights(weightsManifest) {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n const fetchURLs = [];\n const urlPromises = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n }\n else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\nHTTPRequest.URL_SCHEME_REGEX = /^https?:\\/\\//;\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url) {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\nexport function isHTTPScheme(url) {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\nexport const httpRouter = (url, loadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n }\n else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n }\n else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n};\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path, loadOptions) {\n return new HTTPRequest(path, loadOptions);\n}\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(path, loadOptions) {\n return http(path, loadOptions);\n}\n//# sourceMappingURL=http.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nclass PassthroughLoader {\n constructor(modelArtifacts) {\n this.modelArtifacts = modelArtifacts;\n }\n async load() {\n return this.modelArtifacts;\n }\n}\nclass PassthroughSaver {\n constructor(saveHandler) {\n this.saveHandler = saveHandler;\n }\n async save(modelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {\n if (arguments.length === 1) {\n const isModelArtifacts = modelArtifacts.modelTopology != null ||\n modelArtifacts.weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts);\n }\n else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({ modelTopology: modelArtifacts });\n }\n }\n else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts,\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(saveHandler) {\n return new PassthroughSaver(saveHandler);\n}\n//# sourceMappingURL=passthrough.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { BatchMatMul } from '../kernel_names';\nimport { makeTypesMatch } from '../tensor_util';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(a, b, transposeA = false, transposeB = false) {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n const inputs = { a: $a, b: $b };\n const attrs = { transposeA, transposeB };\n return ENGINE.runKernel(BatchMatMul, inputs, attrs);\n}\nexport const matMul = op({ matMul_ });\n//# sourceMappingURL=mat_mul.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { OneHot } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(indices, depth, onValue = 1, offValue = 0) {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const inputs = { indices: $indices };\n const attrs = { depth, onValue, offValue };\n return ENGINE.runKernel(OneHot, inputs, attrs);\n}\nexport const oneHot = op({ oneHot_ });\n//# sourceMappingURL=one_hot.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Transpose } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x, perm) {\n const $x = convertToTensor(x, 'x', 'transpose');\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n if ($x.rank <= 1) {\n return $x.clone();\n }\n const inputs = { x: $x };\n const attrs = { perm };\n return ENGINE.runKernel(Transpose, inputs, attrs);\n}\nexport const transpose = op({ transpose_ });\n//# sourceMappingURL=transpose.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { cast } from './cast';\nimport { matMul } from './mat_mul';\nimport { oneHot } from './one_hot';\nimport { op } from './operation';\nimport { transpose } from './transpose';\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(labels, predictions, numClasses) {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');\n util.assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);\n const oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);\n const oneHotLabelsT = transpose(oneHotLabels);\n const product = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\nexport const confusionMatrix = op({ confusionMatrix_ });\n//# sourceMappingURL=confusion_matrix.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { assertNonNull } from '../util';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(values, shape, dtype) {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error('tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor3d.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { FromPixels } from '../kernel_names';\nimport { getKernel } from '../kernel_registry';\nimport { Tensor } from '../tensor';\nimport { convertToTensor } from '../tensor_util_env';\nimport { cast } from './cast';\nimport { op } from './operation';\nimport { tensor3d } from './tensor3d';\nlet fromPixels2DContext;\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @returns A Tensor3D with the shape `[height, width, numChannels]`.\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(pixels, numChannels = 3) {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n let isImageBitmap = false;\n if (pixels.data instanceof Uint8Array) {\n isPixelData = true;\n }\n else if (typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n }\n else if (typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n }\n else if (typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n }\n else if (pixels.getContext != null) {\n isCanvasLike = true;\n }\n else if (typeof (ImageBitmap) !== 'undefined' &&\n pixels instanceof ImageBitmap) {\n isImageBitmap = true;\n }\n else {\n throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${pixels.constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n pixels.readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error('The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the ': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '
': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(2476);\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://dfd/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://dfd/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://dfd/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://dfd/./node_modules/@babel/runtime/helpers/createClass.js","webpack://dfd/./node_modules/@babel/runtime/helpers/get.js","webpack://dfd/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/inherits.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://dfd/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://dfd/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://dfd/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/typeof.js","webpack://dfd/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/regenerator/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util_base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/environment.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/global_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_names.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/profiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_format.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/engine.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/device_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/flags.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/operation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/model_management.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/print.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/progress.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/http.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/test_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/globals.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/eye.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moments.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/variable.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/compare.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/binary_ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/train.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/browser_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2D_deprecated.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/errors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/state.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/variables.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/logs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/losses.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/container.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/optimizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/models.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/core.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasource.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/source_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/readers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js","webpack://dfd/./node_modules/ajv/lib/compile/equal.js","webpack://dfd/./node_modules/astral-regex/index.js","webpack://dfd/./src/config/config.js","webpack://dfd/./src/core/concat.js","webpack://dfd/./src/core/frame.js","webpack://dfd/./src/core/generic.js","webpack://dfd/./src/core/groupby.js","webpack://dfd/./src/core/indexing.js","webpack://dfd/./src/core/series.js","webpack://dfd/./src/core/strings.js","webpack://dfd/./src/core/timeseries.js","webpack://dfd/./src/core/utils.js","webpack://dfd/./src/io/reader.js","webpack://dfd/./src/core/merge.js","webpack://dfd/./src/preprocessing/encodings.js","webpack://dfd/./src/preprocessing/scalers.js","webpack://dfd/./src/core/date_range.js","webpack://dfd/./src/core/get_dummies.js","webpack://dfd/./src/index.js","webpack://dfd/./src/plotting/plot.js","webpack://dfd/./node_modules/complex.js/complex.js","webpack://dfd/./node_modules/decimal.js/decimal.js","webpack://dfd/./node_modules/fast-deep-equal/index.js","webpack://dfd/./node_modules/fraction.js/fraction.js","webpack://dfd/./node_modules/is-fullwidth-code-point/index.js","webpack://dfd/./node_modules/javascript-natural-sort/naturalSort.js","webpack://dfd/./node_modules/lodash/_DataView.js","webpack://dfd/./node_modules/lodash/_Hash.js","webpack://dfd/./node_modules/lodash/_ListCache.js","webpack://dfd/./node_modules/lodash/_Map.js","webpack://dfd/./node_modules/lodash/_MapCache.js","webpack://dfd/./node_modules/lodash/_Promise.js","webpack://dfd/./node_modules/lodash/_Set.js","webpack://dfd/./node_modules/lodash/_SetCache.js","webpack://dfd/./node_modules/lodash/_Stack.js","webpack://dfd/./node_modules/lodash/_Symbol.js","webpack://dfd/./node_modules/lodash/_Uint8Array.js","webpack://dfd/./node_modules/lodash/_WeakMap.js","webpack://dfd/./node_modules/lodash/_arrayEach.js","webpack://dfd/./node_modules/lodash/_arrayFilter.js","webpack://dfd/./node_modules/lodash/_arrayLikeKeys.js","webpack://dfd/./node_modules/lodash/_arrayMap.js","webpack://dfd/./node_modules/lodash/_arrayPush.js","webpack://dfd/./node_modules/lodash/_arraySome.js","webpack://dfd/./node_modules/lodash/_asciiSize.js","webpack://dfd/./node_modules/lodash/_asciiToArray.js","webpack://dfd/./node_modules/lodash/_assignValue.js","webpack://dfd/./node_modules/lodash/_assocIndexOf.js","webpack://dfd/./node_modules/lodash/_baseAssign.js","webpack://dfd/./node_modules/lodash/_baseAssignIn.js","webpack://dfd/./node_modules/lodash/_baseAssignValue.js","webpack://dfd/./node_modules/lodash/_baseClone.js","webpack://dfd/./node_modules/lodash/_baseCreate.js","webpack://dfd/./node_modules/lodash/_baseExtremum.js","webpack://dfd/./node_modules/lodash/_baseFindIndex.js","webpack://dfd/./node_modules/lodash/_baseFlatten.js","webpack://dfd/./node_modules/lodash/_baseFor.js","webpack://dfd/./node_modules/lodash/_baseForOwn.js","webpack://dfd/./node_modules/lodash/_baseGet.js","webpack://dfd/./node_modules/lodash/_baseGetAllKeys.js","webpack://dfd/./node_modules/lodash/_baseGetTag.js","webpack://dfd/./node_modules/lodash/_baseGt.js","webpack://dfd/./node_modules/lodash/_baseHasIn.js","webpack://dfd/./node_modules/lodash/_baseIndexOf.js","webpack://dfd/./node_modules/lodash/_baseIsArguments.js","webpack://dfd/./node_modules/lodash/_baseIsEqual.js","webpack://dfd/./node_modules/lodash/_baseIsEqualDeep.js","webpack://dfd/./node_modules/lodash/_baseIsMap.js","webpack://dfd/./node_modules/lodash/_baseIsMatch.js","webpack://dfd/./node_modules/lodash/_baseIsNaN.js","webpack://dfd/./node_modules/lodash/_baseIsNative.js","webpack://dfd/./node_modules/lodash/_baseIsRegExp.js","webpack://dfd/./node_modules/lodash/_baseIsSet.js","webpack://dfd/./node_modules/lodash/_baseIsTypedArray.js","webpack://dfd/./node_modules/lodash/_baseIteratee.js","webpack://dfd/./node_modules/lodash/_baseKeys.js","webpack://dfd/./node_modules/lodash/_baseKeysIn.js","webpack://dfd/./node_modules/lodash/_baseMatches.js","webpack://dfd/./node_modules/lodash/_baseMatchesProperty.js","webpack://dfd/./node_modules/lodash/_baseProperty.js","webpack://dfd/./node_modules/lodash/_basePropertyDeep.js","webpack://dfd/./node_modules/lodash/_baseSlice.js","webpack://dfd/./node_modules/lodash/_baseTimes.js","webpack://dfd/./node_modules/lodash/_baseToString.js","webpack://dfd/./node_modules/lodash/_baseUnary.js","webpack://dfd/./node_modules/lodash/_baseValues.js","webpack://dfd/./node_modules/lodash/_cacheHas.js","webpack://dfd/./node_modules/lodash/_castFunction.js","webpack://dfd/./node_modules/lodash/_castPath.js","webpack://dfd/./node_modules/lodash/_castSlice.js","webpack://dfd/./node_modules/lodash/_charsEndIndex.js","webpack://dfd/./node_modules/lodash/_cloneArrayBuffer.js","webpack://dfd/./node_modules/lodash/_cloneBuffer.js","webpack://dfd/./node_modules/lodash/_cloneDataView.js","webpack://dfd/./node_modules/lodash/_cloneRegExp.js","webpack://dfd/./node_modules/lodash/_cloneSymbol.js","webpack://dfd/./node_modules/lodash/_cloneTypedArray.js","webpack://dfd/./node_modules/lodash/_copyArray.js","webpack://dfd/./node_modules/lodash/_copyObject.js","webpack://dfd/./node_modules/lodash/_copySymbols.js","webpack://dfd/./node_modules/lodash/_copySymbolsIn.js","webpack://dfd/./node_modules/lodash/_coreJsData.js","webpack://dfd/./node_modules/lodash/_createBaseFor.js","webpack://dfd/./node_modules/lodash/_defineProperty.js","webpack://dfd/./node_modules/lodash/_equalArrays.js","webpack://dfd/./node_modules/lodash/_equalByTag.js","webpack://dfd/./node_modules/lodash/_equalObjects.js","webpack://dfd/./node_modules/lodash/_freeGlobal.js","webpack://dfd/./node_modules/lodash/_getAllKeys.js","webpack://dfd/./node_modules/lodash/_getAllKeysIn.js","webpack://dfd/./node_modules/lodash/_getMapData.js","webpack://dfd/./node_modules/lodash/_getMatchData.js","webpack://dfd/./node_modules/lodash/_getNative.js","webpack://dfd/./node_modules/lodash/_getPrototype.js","webpack://dfd/./node_modules/lodash/_getRawTag.js","webpack://dfd/./node_modules/lodash/_getSymbols.js","webpack://dfd/./node_modules/lodash/_getSymbolsIn.js","webpack://dfd/./node_modules/lodash/_getTag.js","webpack://dfd/./node_modules/lodash/_getValue.js","webpack://dfd/./node_modules/lodash/_hasPath.js","webpack://dfd/./node_modules/lodash/_hasUnicode.js","webpack://dfd/./node_modules/lodash/_hashClear.js","webpack://dfd/./node_modules/lodash/_hashDelete.js","webpack://dfd/./node_modules/lodash/_hashGet.js","webpack://dfd/./node_modules/lodash/_hashHas.js","webpack://dfd/./node_modules/lodash/_hashSet.js","webpack://dfd/./node_modules/lodash/_initCloneArray.js","webpack://dfd/./node_modules/lodash/_initCloneByTag.js","webpack://dfd/./node_modules/lodash/_initCloneObject.js","webpack://dfd/./node_modules/lodash/_isFlattenable.js","webpack://dfd/./node_modules/lodash/_isIndex.js","webpack://dfd/./node_modules/lodash/_isKey.js","webpack://dfd/./node_modules/lodash/_isKeyable.js","webpack://dfd/./node_modules/lodash/_isMasked.js","webpack://dfd/./node_modules/lodash/_isPrototype.js","webpack://dfd/./node_modules/lodash/_isStrictComparable.js","webpack://dfd/./node_modules/lodash/_listCacheClear.js","webpack://dfd/./node_modules/lodash/_listCacheDelete.js","webpack://dfd/./node_modules/lodash/_listCacheGet.js","webpack://dfd/./node_modules/lodash/_listCacheHas.js","webpack://dfd/./node_modules/lodash/_listCacheSet.js","webpack://dfd/./node_modules/lodash/_mapCacheClear.js","webpack://dfd/./node_modules/lodash/_mapCacheDelete.js","webpack://dfd/./node_modules/lodash/_mapCacheGet.js","webpack://dfd/./node_modules/lodash/_mapCacheHas.js","webpack://dfd/./node_modules/lodash/_mapCacheSet.js","webpack://dfd/./node_modules/lodash/_mapToArray.js","webpack://dfd/./node_modules/lodash/_matchesStrictComparable.js","webpack://dfd/./node_modules/lodash/_memoizeCapped.js","webpack://dfd/./node_modules/lodash/_nativeCreate.js","webpack://dfd/./node_modules/lodash/_nativeKeys.js","webpack://dfd/./node_modules/lodash/_nativeKeysIn.js","webpack://dfd/./node_modules/lodash/_nodeUtil.js","webpack://dfd/./node_modules/lodash/_objectToString.js","webpack://dfd/./node_modules/lodash/_overArg.js","webpack://dfd/./node_modules/lodash/_root.js","webpack://dfd/./node_modules/lodash/_setCacheAdd.js","webpack://dfd/./node_modules/lodash/_setCacheHas.js","webpack://dfd/./node_modules/lodash/_setToArray.js","webpack://dfd/./node_modules/lodash/_stackClear.js","webpack://dfd/./node_modules/lodash/_stackDelete.js","webpack://dfd/./node_modules/lodash/_stackGet.js","webpack://dfd/./node_modules/lodash/_stackHas.js","webpack://dfd/./node_modules/lodash/_stackSet.js","webpack://dfd/./node_modules/lodash/_strictIndexOf.js","webpack://dfd/./node_modules/lodash/_stringSize.js","webpack://dfd/./node_modules/lodash/_stringToArray.js","webpack://dfd/./node_modules/lodash/_stringToPath.js","webpack://dfd/./node_modules/lodash/_toKey.js","webpack://dfd/./node_modules/lodash/_toSource.js","webpack://dfd/./node_modules/lodash/_unicodeSize.js","webpack://dfd/./node_modules/lodash/_unicodeToArray.js","webpack://dfd/./node_modules/lodash/cloneDeep.js","webpack://dfd/./node_modules/lodash/eq.js","webpack://dfd/./node_modules/lodash/flatten.js","webpack://dfd/./node_modules/lodash/get.js","webpack://dfd/./node_modules/lodash/hasIn.js","webpack://dfd/./node_modules/lodash/identity.js","webpack://dfd/./node_modules/lodash/isArguments.js","webpack://dfd/./node_modules/lodash/isArray.js","webpack://dfd/./node_modules/lodash/isArrayLike.js","webpack://dfd/./node_modules/lodash/isBoolean.js","webpack://dfd/./node_modules/lodash/isBuffer.js","webpack://dfd/./node_modules/lodash/isFunction.js","webpack://dfd/./node_modules/lodash/isLength.js","webpack://dfd/./node_modules/lodash/isMap.js","webpack://dfd/./node_modules/lodash/isNumber.js","webpack://dfd/./node_modules/lodash/isObject.js","webpack://dfd/./node_modules/lodash/isObjectLike.js","webpack://dfd/./node_modules/lodash/isRegExp.js","webpack://dfd/./node_modules/lodash/isSet.js","webpack://dfd/./node_modules/lodash/isString.js","webpack://dfd/./node_modules/lodash/isSymbol.js","webpack://dfd/./node_modules/lodash/isTypedArray.js","webpack://dfd/./node_modules/lodash/isUndefined.js","webpack://dfd/./node_modules/lodash/keys.js","webpack://dfd/./node_modules/lodash/keysIn.js","webpack://dfd/./node_modules/lodash/mapValues.js","webpack://dfd/./node_modules/lodash/max.js","webpack://dfd/./node_modules/lodash/memoize.js","webpack://dfd/./node_modules/lodash/property.js","webpack://dfd/./node_modules/lodash/stubArray.js","webpack://dfd/./node_modules/lodash/stubFalse.js","webpack://dfd/./node_modules/lodash/times.js","webpack://dfd/./node_modules/lodash/toFinite.js","webpack://dfd/./node_modules/lodash/toInteger.js","webpack://dfd/./node_modules/lodash/toNumber.js","webpack://dfd/./node_modules/lodash/toString.js","webpack://dfd/./node_modules/lodash/trimEnd.js","webpack://dfd/./node_modules/lodash/truncate.js","webpack://dfd/./node_modules/lodash/values.js","webpack://dfd/./node_modules/mathjs/es/core/config.js","webpack://dfd/./node_modules/mathjs/es/entry/configReadonly.js","webpack://dfd/./node_modules/mathjs/es/core/function/config.js","webpack://dfd/./node_modules/mathjs/es/utils/object.js","webpack://dfd/./node_modules/mathjs/es/utils/factory.js","webpack://dfd/./node_modules/mathjs/es/type/resultset/ResultSet.js","webpack://dfd/./node_modules/mathjs/es/type/complex/Complex.js","webpack://dfd/./node_modules/mathjs/es/utils/function.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/constants.js","webpack://dfd/./node_modules/mathjs/es/plain/number/constants.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/BigNumber.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Matrix.js","webpack://dfd/./node_modules/mathjs/es/type/unit/physicalConstants.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/Fraction.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/formatter.js","webpack://dfd/./node_modules/mathjs/es/utils/string.js","webpack://dfd/./node_modules/mathjs/es/error/DimensionError.js","webpack://dfd/./node_modules/mathjs/es/error/IndexError.js","webpack://dfd/./node_modules/mathjs/es/utils/array.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/DenseMatrix.js","webpack://dfd/./node_modules/mathjs/es/core/function/typed.js","webpack://dfd/./node_modules/mathjs/es/utils/collection.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isInteger.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNumeric.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNaN.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/nearlyEqual.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalScalar.js","webpack://dfd/./node_modules/mathjs/es/utils/complex.js","webpack://dfd/./node_modules/mathjs/es/type/number.js","webpack://dfd/./node_modules/mathjs/es/plain/number/arithmetic.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryPlus.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/apply.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/cube.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiplyScalar.js","webpack://dfd/./node_modules/mathjs/es/function/string/baseUtils.js","webpack://dfd/./node_modules/mathjs/es/function/special/erf.js","webpack://dfd/./node_modules/mathjs/es/function/string/oct.js","webpack://dfd/./node_modules/mathjs/es/function/probability/randomInt.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/function/fraction.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryMinus.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/addScalar.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/sqrt.js","webpack://dfd/./node_modules/mathjs/es/function/complex/conj.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/mode.js","webpack://dfd/./node_modules/mathjs/es/function/string/bin.js","webpack://dfd/./node_modules/mathjs/es/function/probability/random.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/SparseMatrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/function/matrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm01.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm04.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm10.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm13.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm14.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm03.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm05.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm11.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm12.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm07.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/identity.js","webpack://dfd/./node_modules/mathjs/es/utils/noop.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/size.js","webpack://dfd/./node_modules/mathjs/es/function/string/hex.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/round.js","webpack://dfd/./node_modules/mathjs/es/function/relational/compare.js","webpack://dfd/./node_modules/mathjs/es/function/relational/smaller.js","webpack://dfd/./node_modules/mathjs/es/function/relational/larger.js","webpack://dfd/./node_modules/mathjs/es/function/relational/unequal.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/FibonacciHeap.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/add.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/dot.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/abs.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiply.js","webpack://dfd/./node_modules/mathjs/es/error/ArgumentsError.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalText.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/partitionSelect.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/function/bignumber.js","webpack://dfd/./node_modules/mathjs/es/function/utils/numeric.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/utils/improveErrorMessage.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/ceil.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/subtract.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/cross.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equal.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divideScalar.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Spa.js","webpack://dfd/./node_modules/mathjs/es/function/algebra/decomposition/lup.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/det.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/inv.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divide.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/variance.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/std.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/median.js","webpack://dfd/./node_modules/mathjs/es/entry/pureFunctionsAny.generated.js","webpack://dfd/./node_modules/mathjs/es/plain/number/probability.js","webpack://dfd/./node_modules/mathjs/es/plain/number/trigonometry.js","webpack://dfd/./node_modules/mathjs/es/plain/number/utils.js","webpack://dfd/./node_modules/mathjs/es/utils/is.js","webpack://dfd/./node_modules/mathjs/es/utils/number.js","webpack://dfd/./node_modules/mathjs/es/utils/product.js","webpack://dfd/./node_modules/regenerator-runtime/runtime.js","webpack://dfd/./node_modules/seed-random/index.js","webpack://dfd/./node_modules/seedrandom/index.js","webpack://dfd/./node_modules/seedrandom/lib/alea.js","webpack://dfd/./node_modules/seedrandom/lib/tychei.js","webpack://dfd/./node_modules/seedrandom/lib/xor128.js","webpack://dfd/./node_modules/seedrandom/lib/xor4096.js","webpack://dfd/./node_modules/seedrandom/lib/xorshift7.js","webpack://dfd/./node_modules/seedrandom/lib/xorwow.js","webpack://dfd/./node_modules/seedrandom/seedrandom.js","webpack://dfd/./node_modules/slice-ansi/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/ansi-styles/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/conversions.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/route.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-name/index.js","webpack://dfd/./node_modules/table/dist/alignString.js","webpack://dfd/./node_modules/table/dist/alignTableData.js","webpack://dfd/./node_modules/table/dist/calculateCellHeight.js","webpack://dfd/./node_modules/table/dist/calculateCellWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateMaximumColumnWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/createStream.js","webpack://dfd/./node_modules/table/dist/drawBorder.js","webpack://dfd/./node_modules/table/dist/drawRow.js","webpack://dfd/./node_modules/table/dist/drawTable.js","webpack://dfd/./node_modules/table/dist/getBorderCharacters.js","webpack://dfd/./node_modules/table/dist/index.js","webpack://dfd/./node_modules/table/dist/makeConfig.js","webpack://dfd/./node_modules/table/dist/makeStreamConfig.js","webpack://dfd/./node_modules/table/dist/mapDataUsingRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/padTableData.js","webpack://dfd/./node_modules/table/dist/stringifyTableData.js","webpack://dfd/./node_modules/table/dist/table.js","webpack://dfd/./node_modules/table/dist/truncateTableData.js","webpack://dfd/./node_modules/table/dist/validateConfig.js","webpack://dfd/./node_modules/table/dist/validateTableData.js","webpack://dfd/./node_modules/table/dist/wrapCell.js","webpack://dfd/./node_modules/table/dist/wrapString.js","webpack://dfd/./node_modules/table/dist/wrapWord.js","webpack://dfd/./node_modules/table/node_modules/ansi-regex/index.js","webpack://dfd/./node_modules/table/node_modules/emoji-regex/index.js","webpack://dfd/./node_modules/table/node_modules/string-width/index.js","webpack://dfd/./node_modules/table/node_modules/strip-ansi/index.js","webpack://dfd/./node_modules/typed-function/typed-function.js","webpack://dfd/./node_modules/xlsx/dist/cpexcel.js","webpack://dfd/./node_modules/xlsx/jszip.js","webpack://dfd/./node_modules/xlsx/xlsx.js","webpack://dfd/webpack/bootstrap","webpack://dfd/webpack/startup","webpack://dfd/webpack/runtime/amd define","webpack://dfd/webpack/runtime/amd options","webpack://dfd/webpack/runtime/compat get default export","webpack://dfd/webpack/runtime/define property getters","webpack://dfd/webpack/runtime/global","webpack://dfd/webpack/runtime/hasOwnProperty shorthand","webpack://dfd/webpack/runtime/make namespace object","webpack://dfd/webpack/runtime/node module decorator"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","superPropBase","_get","property","receiver","Reflect","get","base","desc","getOwnPropertyDescriptor","call","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","object","hasOwnProperty","arrayWithoutHoles","iterableToArray","nonIterableSpread","obj","minLen","n","toString","slice","name","test","DataStorage","backend","dataMover","data","WeakMap","dataIdsCount","dataId","has","moveData","set","delete","KernelBackend","f","notYetImplemented","values","shape","dtype","floatPrecision","a","b","transposeA","transposeB","bias","activation","preluActivationWeights","x","begin","size","end","strides","axis","tensors","axes","segmentIds","numSegments","condition","k","sorted","dim","dy","y","min","max","alpha","input","filter","convInfo","dY","reps","paddings","constantValue","perm","indices","batchDims","updates","blockShape","crops","newHeight","newWidth","alignCorners","halfPixelCenters","newHEight","mean","variance","offset","scale","varianceEpsilon","radius","beta","inputImage","outputImage","logits","normalized","numSamples","seed","depth","onValue","offValue","exclusive","reverse","boxes","scores","maxOutputSize","iouThreshold","scoreThreshold","real","imag","image","boxIndex","cropSize","method","extrapolationValue","blockSize","dataFormat","sizeSplits","sparseIndices","sparseValues","outputShape","defaultValue","start","stop","num","kernelName","Error","array","counter","temp","index","Math","random","clamp","nearestLargerEven","val","sum","randUniform","r","distSquared","result","diff","Number","assert","expr","msg","assertShapesMatch","shapeA","shapeB","errorMessagePrefix","arraysEqual","assertNonNull","flatten","skipTypedArray","isTypedArray","sizeFromShape","isScalarShape","n1","n2","isInt","tanh","Infinity","e2x","exp","sizeToSquarishShape","width","ceil","sqrt","createShuffledIndices","shuffledIndices","Uint32Array","rightPad","repeat","repeatedTry","checkFn","delayFn","maxCounter","tryCount","tryFn","nextBackoff","setTimeout","inferFromImplicitShape","shapeProd","implicitIdx","newShape","parseAxisParam","rank","map","s","concat","every","ax","squeezeShape","keptDims","isEmptyArray","sort","j","getTypedArrayFromDType","Float32Array","Int32Array","Uint8Array","getArrayFromDType","checkConversionForErrors","vals","isNaN","isFinite","isValidDtype","hasEncodingLoss","oldType","newType","bytesPerElement","bytesFromStringArray","bytes","forEach","isString","String","isBoolean","isNumber","inferDtype","isFunction","nearestDivisor","computeStrides","createNestedArray","ret","d","rest","reduce","acc","c","toNestedArray","makeOnesTypedArray","makeZerosTypedArray","makeZerosNestedTypedArray","prev","curr","assertNonNegativeIntegerDimensions","dimSize","isInteger","locToIndex","locs","indexToLoc","floor","isPromise","Environment","global","flags","flagRegistry","urlFlags","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","queryString","params","replace","t","decodeURIComponent","decodeParam","join","getQueryParams","split","keyValue","toLowerCase","parseValue","ENV","globalNameSpace","getGlobalNamespace","ns","window","g","process","getGlobal","init","globalMap","_tfGlobals","Map","getGlobalMap","singleton","Abs","Acos","Acosh","Add","AddN","All","Any","ArgMax","ArgMin","Asin","Asinh","Atan","Atanh","Atan2","AvgPool","AvgPoolGrad","AvgPool3D","AvgPool3DGrad","BatchMatMul","BatchToSpaceND","Bincount","BroadcastTo","Cast","Ceil","ClipByValue","Complex","ComplexAbs","Concat","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cumsum","CropAndResize","DenseBincount","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Diag","Dilation2D","Dilation2DBackpropInput","Dilation2DBackpropFilter","RealDiv","Elu","EluGrad","Erf","Equal","Exp","ExpandDims","Expm1","FFT","Fill","FlipLeftRight","Floor","FloorDiv","FusedBatchNorm","GatherV2","GatherNd","Greater","GreaterEqual","Identity","IFFT","Imag","IsFinite","IsInf","IsNan","LeakyRelu","Less","LessEqual","LinSpace","Log","Log1p","LogicalAnd","LogicalNot","LogicalOr","LogSoftmax","LRN","LRNGrad","Max","Maximum","MaxPool","MaxPoolGrad","MaxPool3D","MaxPool3DGrad","MaxPoolWithArgmax","Mean","Min","Minimum","MirrorPad","Mod","Multinomial","Multiply","Neg","NotEqual","NonMaxSuppressionV3","NonMaxSuppressionV4","NonMaxSuppressionV5","OnesLike","OneHot","Pack","PadV2","Pool","Pow","Prelu","Prod","Range","Real","Reciprocal","Relu","Reshape","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResizeBilinear","ResizeBilinearGrad","Relu6","Reverse","Round","Rsqrt","ScatterNd","Select","Selu","Slice","Sin","Sinh","Sign","Sigmoid","Softplus","Sqrt","Sum","SpaceToBatchND","SplitV","Softmax","SquaredDifference","Square","Sub","SparseToDense","StridedSlice","Tan","Tanh","Tile","TopK","Transpose","Unique","Unpack","UnsortedSegmentSum","ZerosLike","Step","FromPixels","RotateWithOffset","_FusedMatMul","FusedConv2D","FusedDepthwiseConv2D","kernelRegistry","gradRegistry","getKernel","backendName","makeKey","getGradient","getKernelsForBackend","it","entries","config","registerKernel","registerGradient","getBool","unregisterKernel","unregisterGradient","copyRegisteredKernels","registeredBackendName","newBackendName","kernelConfig","Profiler","backendTimer","logger","Logger","inputs","outputs","timer","time","output","tensorVals","checkComputationForErrors","timeMs","timing","kernelMs","extraInfo","getExtraProfileInfo","kernelProfile","all","valueContainer","logKernelProfile","paddedName","inputShapesDescription","inputShape","inputRank","log","tensorToString","verbose","padPerCol","numCols","fill","valuesOrTuples","createComplexTuples","row","valToString","computeMaxSizePerColumn","valsLines","subTensorToString","lines","l","pad","valStr","parseFloat","toFixed","boolNumToString","v","isLast","storagePerElement","firstValsSize","firstVals","lastVals","subshape","substrides","stride","sep","newLineSep","complexTuples","createScalarValue","encodeString","toTypedArray","noConversionNeeded","bool","round","now","path","requestInits","fetch","encoding","encode","decodeString","decode","TensorBuffer","loc","trackerFn","makeTensor","opHandler","deprecationWarningFn","Tensor","id","kept","isDisposedInternal","rankType","buffer","dataSync","throwIfDisposed","read","_a","readSync","isDisposed","disposeTensor","print","clone","cast","trainable","makeVariable","hasInstance","Variable","initialValue","tensorId","super","newValue","incRef","disposeVariable","Rank","UpcastInt32AndMap","UpcastBoolAndMap","UpcastFloat32AndMap","UpcastComplex64AndMap","Function","upcastTypeMap","upcastType","typeA","typeB","sumOutType","type","makeTypesMatch","assertTypesMatch","isTensorInList","tensor","tensorList","some","getTensorsInContainer","list","walkTensorContainer","Set","container","seen","iterable","add","EngineState","registeredVariables","nextTapeNodeId","numBytes","numTensors","numStringTensors","numDataBuffers","gradientDepth","kernelDepth","scopeStack","numDataMovesStack","nextScopeId","tensorInfo","profiling","activeProfile","newBytes","newTensors","peakBytes","kernels","variableName","dispose","Engine","registry","registryFactory","pendingBackendInitId","state","pendingBackendInit","backendInstance","sortedBackends","getSortedBackends","initializeBackend","success","setBackend","asyncInit","initializeBackendsAndReturnBest","keys","factory","priority","setupRegisteredKernels","profiler","kernel","setupFunc","disposeFunc","registryFactoryEntry","promiseId","catch","stack","message","disposeRegisteredKernels","srcBackend","disposeData","move","shouldCheckForMemLeaks","nameOrFn","scopedRun","startScope","endScope","res","ex","nextTensorId","nextVariableId","makeTensorFromDataId","addTapeNode","activeScope","gradInputs","attrs","ENGINE","runKernelFunc","inputsToSave","outputsToSave","numDataIdsBefore","outInfos","numDataIdsAfter","numDataIds","numOutputDataIds","numMoves","dataIdsLeaked","forwardFunc","backwardsFunc","saved","isTapeOn","startingBytecount","startingNumTensors","kernelFunc","out","checkKernelForMemLeak","outTensors","outInfo","tensorsToSave","getTensorsForGradient","outsToSave","_","saveTensorsForBackwardMode","saveFunc","keep","tidy","outs","profileKernel","bytesAdded","totalBytesSnapshot","tensorsAdded","totalTensorsSnapshot","inputShapes","outputShapes","item","kernelTimeMs","gradConfig","inputTensorsToSave","saveAllInputs","inputName","outputTensorsToSave","backendVals","write","refCount","track","decComplexRef","varName","memory","unreliable","reasons","query","startBytes","startNumTensors","gradientsFunc","tapeNode","gradFunc","gradient","dys","activeTape","scopeInfo","tensorsToTrackInParent","tensorsToTrackInParentSet","oldScope","pop","scopeId","xs","allowNoGradients","startTape","endTape","filteredTape","tape","tensorsFromX","nodesFromX","node","nodeInputs","anyInputFromX","tensorsLeadToY","nodesToY","prunedInputs","nodeInput","prunedNode","getFilteredNodesXToY","accumulatedGradientMap","ones","tensorAccumulatedGradientMap","gradTensor","inputGradients","dx","curGradient","backpropagateGradients","grads","inputMap","save","gradRes","gradMap","grad","timingInfo","wallMs","reset","getOrMakeEngine","_tfengine","environment","runKernel","isMobile","navigator","userAgent","vendor","opera","substr","isBrowser","document","WorkerGlobalScope","inferShape","firstElem","deepAssertShapeConsistency","subShape","assertDtype","expectedDtype","actualDType","argName","functionName","convertToTensor","parseAsDtype","inferredDtype","indexOf","inferredShape","convertToTensorArray","registerFlag","debugValue","versions","OP_SCOPE_SUFFIX","op","opName","endsWith","substring","f2","complex","complex_","$real","$imag","providedSize","inferredSize","inferred","flatDimsDontMatch","DTYPE_VALUE_SIZE_MAP","async","encodeWeights","group","specs","dataPromises","names","spec","utf8bytes","totalNumBytes","bytesOfLength","concatenateTypedArrays","decodeWeights","float16Decode","quantization","quantizationSizeFactor","byteBuffer","quantizedArray","Uint16Array","getFloat16Decoder","byteLength","dtypeFactor","realTensor","imageTensor","JSON","stringify","totalByteLength","normalizedXs","useNodeBuffer","Buffer","Blob","atob","btoa","stringByteLength","str","concatenateArrayBuffers","buffers","basename","trim","items","getModelArtifactsInfoForJSON","modelArtifacts","modelTopology","ArrayBuffer","dateSaved","Date","modelTopologyType","modelTopologyBytes","weightSpecsBytes","weightSpecs","weightDataBytes","weightData","mantisaTable","convertMantissa","m","e","computeFloat16MantisaTable","exponentTable","computeFloat16ExponentTable","offsetTable","computeFloat16OffsetTable","bufferUint32View","float16Bits","float32Bits","IORouterRegistry","saveRouters","loadRouters","saveRouter","getInstance","loadRouter","url","getHandlers","loadOptions","handlerType","validHandlers","router","handler","registerSaveRouter","loudRouter","registerLoadRouter","getSaveHandlers","getLoadHandlers","DATABASE_NAME","MODEL_STORE_NAME","INFO_STORE_NAME","getIndexedDBFactory","theWindow","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","setUpDatabase","openRequest","db","createObjectStore","keyPath","BrowserIndexedDB","modelPath","databaseAction","open","onupgradeneeded","onsuccess","modelTx","transaction","getRequest","objectStore","close","onerror","oncomplete","modelArtifactsInfo","infoTx","infoStore","putInfoRequest","put","putModelRequest","deleteInfoRequest","URL_SCHEME","indexedDBRouter","startsWith","BrowserIndexedDBManager","tx","getAllInfoRequest","getAll","getInfoRequest","deleteModelData","deleteModelRequest","PATH_SEPARATOR","PATH_PREFIX","INFO_SUFFIX","MODEL_TOPOLOGY_SUFFIX","WEIGHT_SPECS_SUFFIX","WEIGHT_DATA_SUFFIX","MODEL_METADATA_SUFFIX","getModelKeys","topology","modelMetadata","getModelPathFromKey","BrowserLocalStorage","localStorage","LS","setItem","buf","fromCharCode","arrayBufferToBase64String","format","generatedBy","convertedBy","signature","userDefinedMetadata","modelInitializer","removeItem","parse","getItem","metadataString","metadata","weightDataBase64","byteOffset","charCodeAt","base64StringToArrayBuffer","localStorageRouter","BrowserLocalStorageManager","prefix","suffix","URL_SCHEME_SUFFIX","ModelStoreManagerRegistry","managers","scheme","manager","parseURL","getSchemes","cloneModelInternal","sourceURL","destURL","deleteSource","loadHandlers","loadHandler","saveHandlers","saveHandler","sourceScheme","sourcePath","sameMedium","load","getManager","removeModel","saveResult","listModels","schemes","schemeOut","schemeAndPath","copyModel","moveModel","PlatformBrowser","performance","text","textEncoder","TextEncoder","TextDecoder","setPlatform","registerManager","systemFetch","util","hrtime","cast_","$x","clone_","defer","BrowserDownloads","fileNamePrefix","modelTopologyFileName","weightDataFileName","weightsURL","URL","createObjectURL","weightsManifest","paths","weights","modelTopologyAndWeightManifest","modelTopologyAndWeightManifestURL","jsonAnchor","createElement","download","href","dispatchEvent","MouseEvent","weightDataAnchor","BrowserFiles","files","jsonFile","weightFiles","jsonReader","FileReader","onload","event","modelJSON","pathToFile","checkManifestAndWeightFiles","perFileBuffers","weightsGroup","weightFileReader","readAsArrayBuffer","readAsText","manifest","basenames","fileNames","file","pathBasename","browserFiles","monitorPromisesProgress","promises","onProgress","startFraction","endFraction","checkPromises","checkFraction","resolvedPromise","promise","fraction","loadWeightsAsArrayBuffer","fetchURLs","fetchFunc","requests","fetchURL","requestInit","isBinary","bufferPromises","response","arrayBuffer","loadWeights","filePathPrefix","weightNames","weightsLoaderFactory","fetchUrls","fetchWeightsFunction","groupIndicesToFetchMap","groupWeightsToFetch","weightsFound","allManifestWeightNames","manifestGroupConfig","groupIndex","groupOffset","weightsEntry","rawDtype","weightsBytes","enqueueWeightsForFetchingFn","manifestEntry","sizeBytes","weightName","weightIndex","found","weightsNotFound","groupIndicesToFetch","accumulator","shouldFetch","filepath","fetchUrl","weightsTensorMap","bufferIndexOffset","numBuffers","groupBytes","groupBuffer","groupByteBuffer","groupBufferOffset","nameToTensorMap","browserDownloads","HTTPRequest","DEFAULT_METHOD","weightPathPrefix","weightUrlConverter","body","FormData","append","ok","responses","status","modelConfigRequest","modelConfig","json","results","artifacts","initializer","weightPath","lastSlash","lastIndexOf","lastSearchParam","parseUrl","pathPrefix","entry","urlPromises","isHTTPScheme","match","URL_SCHEME_REGEX","httpRouter","isHTTP","urlItem","http","browserHTTPRequest","PassthroughLoader","PassthroughSaver","fromMemory","trainingConfig","withSaveHandler","matMul","matMul_","$a","$b","oneHot","oneHot_","transpose","transpose_","confusionMatrix","confusionMatrix_","labels","predictions","numClasses","$labels","$predictions","oneHotLabels","oneHotPredictions","oneHotLabelsT","product","tensor3d","fromPixels2DContext","toPixels","img","canvas","$img","originalImgTensor","height","multiplier","Uint8ClampedArray","rgba","ctx","getContext","imageData","ImageData","putImageData","fromPixels","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","HTMLVideoElement","HTMLImageElement","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","videoWidth","videoHeight","getImageData","drawImage","numPixels","channel","prepareAndValidate","tensorRank","indicesRank","indicesShape","sliceRank","nResult","resultShape","sliceSize","validateUpdateShape","sliceDim","batchDim","shapeError","validateInput","calculateShapes","totalNd","safeSliceDim","numUpdates","outputSize","assertParamsValid","maskToAxes","mask","computeOutShape","stridesWithElidedDims","ellipsisInsertionIndex","numElidedAxes","newStrides","splice","unnormalizeAxis","normalizedAxis","getElidedAxes","elidedAxes","getNormalizedAxes","ellipsisAxes","numInterpolatedAxes","beginMask","endMask","ellipsisMask","normalizedBegin","normalizedEnd","normalizedStrides","fullIndex","startIndicesWithElidedDims","stopIndicesWithElidedDims","startForAxis","stopForAxis","stridesForAxis","originalBegin","newIndices","originalAxis","originalValue","originalEnd","MAX_SAFE_INTEGER","axisSize","startIndices","MIN_SAFE_INTEGER","stopIndices","isSliceContinous","firstNonOneAxis","computeFlatOffset","flatOffset","parseSliceParams","begin_","xRank","size_","sliceInfo","xShape","newAxisMask","shrinkAxisMask","$begin","$end","$strides","expandAxes","shrinkAxes","outShape","nonStrided","Serializable","className","cls","SerializationMap","classNameMap","getMap","fromConfig","registerClass","register","TEST_EPSILON_FLOAT16","expectArraysClose","actual","expected","epsilon","expectArraysPredicate","areClose","predicate","checkClassType","aType","bType","actualShape","expectedShape","actualFlat","expectedFlat","expectPromiseToFail","fail","expectArraysEqual","abs","expectValuesInRange","low","high","expectArrayBuffersEqual","expect","toEqual","encodeStrings","version","enableProdMode","enableDebugMode","disableDeprecationWarnings","deprecationWarn","disposeVariables","engine","profile","ready","getBackend","removeBackend","findBackend","findBackendFactory","registerBackend","add_","floorDiv","floorDiv_","div","div_","mul","mul_","sqrt_","square","square_","zerosLike","zerosLike_","$dy","gradients","checkGrads","$args","valueAndGrad","valueAndGrads","varList","specifiedVarList","specifiedNonTrainable","variable","originalVarCount","namedGrads","customGrad","Optimizer","returnCost","computeGradients","gradArray","applyGradients","iterations_","iterations","weightValues","getClassName","minimize","AdadeltaOptimizer","learningRate","rho","accumulatedGrads","accumulatedUpdates","variableGradients","originalName","accumulatedGrad","accumulatedUpdate","newAccumulatedGrad","newAccumulatedUpdate","incrementIterations","variables","saveIterations","variableCount","extractIterations","AdagradOptimizer","initialAccumulatorValue","pow","pow_","$base","$exp","sub","sub_","AdamOptimizer","beta1","beta2","accumulatedFirstMoment","accumulatedSecondMoment","accBeta1","accBeta2","varNames","oneMinusAccBeta1","oneMinusAccBeta2","firstMoment","secondMoment","newFirstMoment","newSecondMoment","biasCorrectedFirstMoment","biasCorrectedSecondMoment","abs_","getBroadcastDims","inShape","inRank","dims","unshift","getReductionAxes","inDim","outAxis","outDim","assertAndGetBroadcastShape","maximum","maximum_","AdamaxOptimizer","decay","accumulatedWeightedInfNorm","iteration","variableNames","lr","weightedInfNorm","ut0","ut1","newWeightedInfNorm","SGDOptimizer","setLearningRate","MomentumOptimizer","momentum","useNesterov","accumulations","accumulation","newAccumulation","RMSPropOptimizer","centered","accumulatedMeanSquares","accumulatedMoments","accumulatedMeanGrads","accumulatedMeanSquare","newAccumulatedMeanSquare","accumulatedMeanGrad","newAccumulatedMeanGrad","gradContribution","newAccumulatedMoments","acos","acos_","acosh","acosh_","addN","addN_","$tensors","firstTensor","all_","keepDims","any","any_","argMax","argMax_","argMin","argMin_","asin","asin_","asinh","asinh_","atan","atan_","atan2","atan2_","atanh","atanh_","computeDilation2DInfo","filterShape","dilations","computeConv2DInfo","convertConv2DDataFormat","computePool2DInfo","filterSize","roundingMode","filterHeight","filterWidth","parseTupleParam","computePool3DInfo","filterDepth","parse3TupleParam","$dataFormat","computeConv3DInfo","depthwise","batchSize","inHeight","inWidth","inChannels","filterChannels","strideHeight","strideWidth","dilationHeight","dilationWidth","effectiveFilterHeight","getEffectiveFilterSize","effectiveFilterWidth","padInfo","outHeight","outWidth","top","bottom","left","right","fieldSize","zeroPad","computeDefaultPad","inputCols","computeOutputShape2D","padAlongHeight","padAlongWidth","getPadAndOutInfo","outChannels","inDepth","strideDepth","dilationDepth","effectiveFilterDepth","outDepth","front","back","inputRows","computeOutputShape4D","padAlongDepth","get3DPadAndOutInfo","dilation","effectiveFieldSize","param","trunc","tupleValuesAreOne","dimA","dimB","dimC","eitherStridesOrDilationsAreOne","reshape","reshape_","avgPool","avgPool_","dimRoundingMode","x4D","reshapedTo4D","avgPool3d","avgPool3d_","x5D","reshapedTo5D","concat_","attr","sigmoid","sigmoid_","slice_","tanh_","basicLSTMCell","basicLSTMCell_","forgetBias","lstmKernel","lstmBias","h","$forgetBias","$lstmKernel","$lstmBias","$data","$c","$h","combined","weighted","sliceCols","newC","batchToSpaceND","batchToSpaceND_","prod","batchNorm","batchNorm_","$mean","$variance","$scale","$offset","xAs4D","batchNorm2d","batchNorm2d_","batchNorm3d","batchNorm3d_","batchNorm4d","batchNorm4d_","bincount","bincount_","$weights","broadcastTo","broadcastTo_","ceil_","clipByValue","clipByValue_","clipValueMin","clipValueMax","concat1d","concat1d_","concat2d","concat2d_","concat3d","concat3d_","concat4d","concat4d_","conv2d","conv2d_","$filter","conv1d","conv1d_","x3D","reshapedTo3D","filter4D","input4D","conv2DBackpropInput","conv2DBackpropInput_","xShape4D","dy4D","conv2dTranspose","conv2dTranspose_","conv3d","conv3d_","conv3DBackpropInput","conv3DBackpropInput_","xShape5D","dy5D","conv3dTranspose","conv3dTranspose_","cos","cos_","cosh","cosh_","cumsum","cumsum_","denseBincount","denseBincount_","binaryOutput","depthToSpace","depthToSpace_","inputHeight","inputWidth","inputDepth","depthwiseConv2d","depthwiseConv2d_","diag","diag_","dilation2d","dilation2d_","equal","equal_","where_","$condition","broadcastShape","$broadcastedA","$broadcastedB","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","elu","elu_","erf","erf_","exp_","expandDims","expandDims_","expm1","expm1_","tile","tile_","eye","eye_","numRows","numColumns","batchShape","buff","toTensor","floor_","gather","gather_","greater","greater_","greaterEqual","greaterEqual_","imag_","isFinite_","isInf","isInf_","isNaN_","leakyRelu","leakyRelu_","less","less_","lessEqual","lessEqual_","linspace","localResponseNormalization","localResponseNormalization_","depthRadius","log_","log1p","log1p_","neg","neg_","softplus","softplus_","logSigmoid","logSigmoid_","customOp","max_","reductionIndices","sum_","logSoftmax","logSoftmax_","$logits","xMax","shifted","softmax","axesAreInnerMostDims","combineLocations","outputLoc","reduceLoc","outIdx","reduceIdx","computeOutAndReduceShapes","aShape","expandShapeToKeepDim","assertAxesAreInnerMostDims","getAxesPermutation","getUndoAxesPermutation","getInnerMostAxes","numAxes","logSumExp","logSumExp_","logicalAnd","logicalAnd_","logicalNot","logicalNot_","logicalOr","logicalOr_","logicalXor","logicalXor_","maxPool","maxPool_","maxPool3d","maxPool3d_","maxPoolWithArgmax","maxPoolWithArgmax_","includeBatchInIndex","indexes","mean_","min_","minimum","minimum_","mirrorPad","mirrorPad_","mode","shapeOffset","mod","mod_","moments","moments_","xMean","keepDimsShape","devSquared","multiRNNCell","multiRNNCell_","lstmCells","newStates","newH","multinomial","multinomial_","numOutcomes","origRank","notEqual","notEqual_","onesLike","onesLike_","outerProduct","outerProduct_","v1","v2","$v1","$v2","v12D","v22D","pad_","pad1d","pad1d_","pad2d","pad2d_","pad3d","pad3d_","pad4d","pad4d_","spaceToBatchND","spaceToBatchND_","pool","pool_","windowShape","poolingType","basePadding","padExtraShape","padExtraStart","padExtraEnd","withSpaceToBatchBasePaddings","isDilationOne","adjustedPadding","adjustedCrops","padStart","origPadEnd","fullInputShape","padEndExtra","padEnd","requiredSpaceToBatchPaddings","convertedPad","convertedX","prelu","prelu_","prod_","rand","rand_","randFunction","MPRandGauss","stdDeviation","truncated","stdDev","nextVal","NaN","upper","lower","seedValue","seedrandom","alea","resultX","resultY","isValid","isValidTruncated","convertValue","RandGamma","randu","randn","x2","v0","u","nextValue","UniformRandom","canReturnFloat","range","randomGamma","randomGamma_","rgamma","randomNormal","randomNormal_","randGauss","randomUniform","randomUniform_","minval","maxval","step","real_","reciprocal","reciprocal_","relu","relu_","relu6","relu6_","reverse_","reverse1d","reverse1d_","reverse2d","reverse2d_","reverse3d","reverse3d_","reverse4d","reverse4d_","round_","rsqrt","rsqrt_","selu","selu_","separableConv2d","separableConv2d_","depthwiseFilter","pointwiseFilter","$depthwiseFilter","$pointwiseFilter","channelMultiplier","setdiff1dAsync","$y","xVals","yVals","ySet","sign","sign_","sin","sin_","sinh","sinh_","slice1d","slice1d_","slice2d","slice2d_","slice3d","slice3d_","slice4d","slice4d_","softmax_","fft","fft_","ifft","ifft_","irfft","irfft_","innerDimensionSize","batch","complexInput","realInput","imagInput","realConjugate","imagConjugate","split_","numOrSizeSplits","rfft","rfft_","fftLength","adjustedInput","zerosShape","zerosInput","half","realValues","imagValues","realComplexConjugate","imagComplexConjugate","squaredDifference","squaredDifference_","squeeze","squeeze_","stack_","step_","stridedSlice","stridedSlice_","tan","tan_","tensor1d","tensor2d","tensor4d","tensor5d","tensor6d","topk","topk_","lastDim","truncatedNormal","truncatedNormal_","unique","unique_","unsortedSegmentSum","unsortedSegmentSum_","$segmentIds","unstack","unstack_","whereImpl","condShape","condVals","inBuffer","whereAsync","booleanMaskAsync","$tensor","$mask","axisFrom","maskDim","tensorShape","leadingSize","targetTensorShape","reshapedTensor","reshapedMask","positivePositions","equalStrict","equalStrict_","greaterEqualStrict","greaterEqualStrict_","greaterStrict","greaterStrict_","lessEqualStrict","lessEqualStrict_","lessStrict","lessStrict_","notEqualStrict","notEqualStrict_","addStrict","addStrict_","divStrict","divStrict_","maximumStrict","maximumStrict_","minimumStrict","minimumStrict_","modStrict","modStrict_","mulStrict","mulStrict_","powStrict","powStrict_","squaredDifferenceStrict","squaredDifferenceStrict_","subStrict","subStrict_","normImpl","norm","norm_","ord","movingAverage","movingAverage_","zeroDebias","$v","$decay","one","oneMinusDecay","update","$step","scatterND","scatterND_","$indices","$updates","sparseToDense","sparseToDense_","$sparseIndices","$sparseValues","$defaultValue","defaultValues","numElems","numDims","numValues","gatherND","gatherND_","dropout","dropout_","rate","noiseShape","$noiseShape","newDimension","getNoiseShape","keepProb","enclosingPowerOfTwo","cosineWindow","windowLength","even","newValues","cosArg","PI","inTopKAsync","targets","$targets","predictionsVals","targetsVals","precision","subarray","valAndInd","conv2DBackpropFilter","conv2DBackpropFilter_","getFusedDyActivation","getFusedBiasGradient","dyActivation","reduceAxes","applyActivation","leakyreluAlpha","shouldFuse","fusedConv2d_","$bias","$preluActivationWeights","der","biasDer","customOpWithBias","depthwiseConv2dNativeBackpropFilter","depthwiseConv2dNativeBackpropFilter_","depthwiseConv2dNativeBackpropInput","depthwiseConv2dNativeBackpropInput_","fusedDepthwiseConv2d_","xDer","filterDer","fusedMatMul_","innerShapeA","innerShapeB","outerShapeA","outerShapeB","outerDimsA","outerDimsB","batchDimA","batchDimB","a3D","b3D","aDer","bDer","hammingWindow","hammingWindow_","hannWindow","hannWindow_","frame_","signal","frameLength","frameStep","padValue","padLen","stft","stft_","windowFn","framedSignal","windowedSignal","cropAndResize","cropAndResize_","boxInd","$image","$boxes","$boxInd","numBoxes","flipLeftRight","flipLeftRight_","rotateWithOffset","rotateWithOffset_","radians","fillValue","center","nonMaxSuppSanityCheck","softNmsSigma","NEGATIVE_INFINITY","nonMaxSuppression","nonMaxSuppression_","$scores","binaryInsert","element","comparator","middle","compareResult","binarySearch_","defaultComparator","binarySearch","insertionPoint","nonMaxSuppressionV3Impl","nonMaxSuppressionImpl_","nonMaxSuppressionV4Impl","padToMaxOutputSize","nonMaxSuppressionV5Impl","returnScoresTensor","returnValidOutputs","candidates","score","suppressBeginIndex","ascendingComparator","selectedIndices","selectedScores","candidate","originalScore","ignoreCandidate","iou","intersectionOverUnion","suppressWeight","validOutputs","elemsToPad","iCoord","jCoord","yminI","xminI","ymaxI","xmaxI","yminJ","xminJ","ymaxJ","xmaxJ","areaI","areaJ","intersectionYmin","intersectionXmin","intersectionYmax","intersectionXmax","intersectionArea","weight","c1","c2","nonMaxSuppressionWithScore","nonMaxSuppressionWithScore_","nonMaxSuppressionPadded","nonMaxSuppressionPadded_","resizeBilinear","resizeBilinear_","images","$images","batchImages","resizeNearestNeighbor","resizeNearestNeighbor_","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","w","iters","rTemp","wTemp","qTemp","rjEnd1","normX","rjj","u1","wPre","tau","rjEndAll","tauTimesW","wT","rTimesTau","tawTimesWT","qAllJEnd","qTimesTau","qr","qr_","outerDimsProd","x2ds","q2ds","r2ds","x2d","q2d","r2d","Reduction","computeWeightedLoss","computeWeightedLoss_","losses","reduction","SUM_BY_NONZERO_WEIGHTS","$losses","weightedLoss","NONE","SUM","MEAN","broadcastFactor","broadcastedWeights","numNonZeros","absoluteDifference","absoluteDifference_","cosineDistance","cosineDistance_","hingeLoss","hingeLoss_","huberLoss","huberLoss_","delta","deltaScalar","quadratic","linear","logLoss","logLoss_","epsilonScalar","l1","l2","meanSquaredError","meanSquaredError_","sigmoidCrossEntropy","sigmoidCrossEntropy_","multiClassLabels","labelSmoothing","$multiClassLabels","labelSmoothingScalar","maxOutput","outputXTarget","sigmoidOutput","sigmoidCrossEntropyWithLogits_","softmaxCrossEntropy","softmaxCrossEntropy_","onehotLabels","$onehotLabels","lse","logResult","costVector","dyShape","softmaxCrossEntropyWithLogits_","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","OptimizerConstructors","train","sgd","adadelta","adagrad","rmsprop","adamax","adam","delayCallback","requestAnimationFrame","setImmediate","nextFrame","assertParamsConsistent","shapes","firstShape","PARALLELIZE_THRESHOLD","computeOptimalWindowSize","inSize","getImageCenter","imageHeight","imageWidth","getReshaped","batchToSpace","reshaped","spatialLength","getPermuted","reshapedRank","blockShapeRank","permuted","permutedBeforeBatch","permutedAfterBatch","getReshapedPermuted","reshapedPermuted","getSliceBeginCoords","sliceBeginCoords","getSliceSize","uncroppedShape","SELU_SCALEALPHA","SELU_SCALE","ERF_P","ERF_A1","ERF_A2","ERF_A3","ERF_A4","ERF_A5","mergeRealAndImagArrays","splitRealAndImagArrays","complexWithEvenIndex","complexWithOddIndex","getComplexWithIndex","assignToTypedArray","exponents","inverse","exponent","prepareSplitSize","splitSizes","count","negIndex","total","segOpComputeOptimalWindowSize","collectGatherOpShapeInfo","outerSize","castTensor","zerosTensor","floatX","int","reshapeTensor","fromUint8ToStringArray","fromStringArrayToUint8","strings","absGradConfig","acosGradConfig","acoshGradConfig","addGradConfig","addNGradConfig","ders","argMaxGradConfig","argMinGradConfig","asinGradConfig","asinhGradConfig","atan2GradConfig","atanGradConfig","atanhGradConfig","avgPool3dGrad","avgPool3dGrad_","$input","input5D","avgPool3DGradConfig","$dilations","avgPoolGrad","avgPoolGrad_","avgPoolGradConfig","batchMatMulGradConfig","batchToSpaceNDGradConfig","broadcastToGradConfig","broadCastToAttrs","castGradConfig","ceilGradConfig","clipByValueGradConfig","complexAbsGradConfig","concatGradConfig","$axis","conv2DGradConfig","conv2DBackpropInputGradConfig","ddx","conv3DBackpropFilter","conv3DBackpropFilter_","conv3DGradConfig","cosGradConfig","coshGradConfig","cumsumGradConfig","permutation","depthwiseConv2dNativeGradConfig","dilation2dGradConfig","inputInputs","filterInputs","eluGradConfig","erfGradConfig","expGradConfig","expandDimsGradConfig","expm1GradConfig","floorGradConfig","floorDivGradConfig","tmp","fusedBatchNormGradConfig","scaleValue","reductionAxes","tileShape","xMinusMean","dyTimesScaleValue","oneOverSqrtVariance","minusHalfRCube","meanDer","varianceDer","xMinusMean2TimesRsqrt","scaleDer","offsetDer","gatherGradConfig","parsedAxis","paramsShape","indicesSize","outerShape","outerDims","innerShape","innerDims","outerAxesIndices","arrayRange","innerAxesIndices","valuesShape","arrayConcat","reshapedIndices","transposeDims","valuesTranspose","paramsGrad","invertTransposeDims","arrays","greaterEqualGradConfig","identityGradConfig","isFiniteGradConfig","isInfGradConfig","isNanGradConfig","leakyReluGradConfig","log1pGradConfig","logGradConfig","logSoftmaxGradConfig","localResponseNormalizationBackprop","localResponseNormalizationBackprop_","lrnGradConfig","gradForMinAndMax","xOrig","origAxes","maxGradConfig","maxAttrs","maxGrad","maximumGradConfig","maxPool3dGrad","maxPool3dGrad_","$output","output5D","maxPool3DGradConfig","maxPoolGrad","maxPoolGrad_","padV2GradConfig","spaceToBatchNDGradConfig","splitVGradConfig","gradConfigs","reduceSize","expandedDyShape","expandedDy","minAttrs","minGrad","expFloat","logBase","scaleAlpha","greaterThanZeroDer","lessEqualZeroDer","dyTimesY","two","derX","xGrad","transposeAttrs","undoPerm","unpackAttrs","zeroClippedIndices","gathered","isPositive","numIters","zeroSlice","gatherDropNegatives","gradientConfig","_epsilon","asScalar","asType","as1D","as2D","rows","columns","as3D","as4D","depth2","as5D","depth3","depthwiseConv2D","padding","dilationRate","reshapeAs","newShape2D","halfFloatCenters","tensorsToBeStacked","toBool","toFloat","toInt","where","AttributeError","RuntimeError","AssertionError","pyListRepeat","newArray","refernce","singletonOrArray","toList","toSnakeCase","insecure","toCamelCase","identifier","p1","toUpperCase","_GLOBAL_CUSTOM_OBJECTS","serializeKerasObject","dict","getConfig","convertNDArrayScalarsInConfig","configItem","fields","field","deserializeKerasObject","moduleObjects","customObjects","printableModuleName","fastWeightInit","customObjectsCombined","backupCustomObjects","returnObj","reverseNumberCompare","numberCompare","isObjectEmpty","checkStringTypeUnionValue","label","checkArrayTypeAndLength","expectedType","minLength","maxLength","assertPositiveInteger","formatAsFriendlyString","mapActivationToFusedKernel","activationName","calcL2Norms","Constraint","MaxNorm","defaultMaxValue","defaultAxis","maxValue","norms","desired","UnitNorm","NonNeg","MinMaxNorm","defaultMinValue","defaultRate","minValue","CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeConstraint","constraint","deserializeConstraint","getConstraint","maxNorm","unitNorm","nonNeg","minMaxNorm","VALID_DATA_FORMAT_VALUES","VALID_INTERPOLATION_FORMAT_VALUES","VALID_PADDING_MODE_VALUES","VALID_POOL_MODE_VALUES","VALID_BIDIRECTIONAL_MERGE_MODES","nameMap","checkPaddingMode","checkPoolMode","_nameScopeStack","nameScope","getScopedTensorName","tensorName","isValidTensorName","getUniqueTensorName","scopedName","tensorNameRegex","RegExp","arrayProd","toArray1D","sliceAlongFirstAxis","sliceAlongLastAxis","sliceAlongAxis","concatenate","concatAlongFirstAxis","stddev","reshapeBias","aFirstDims","aLastDim","bShape","bLastDim","ySecondLastDim","yOtherDims","reference","biasShape","biasAdd","level","inTrainPhase","alt","training","VALID_FAN_MODE_VALUES","VALID_DISTRIBUTION_VALUES","Initializer","Zeros","Ones","Constant","RandomUniform","DEFAULT_MINVAL","DEFAULT_MAXVAL","RandomNormal","DEFAULT_MEAN","DEFAULT_STDDEV","TruncatedNormal","gain","VarianceScaling","distribution","checkDistribution","fans","fanIn","fanOut","receptiveFieldSize","computeFans","limit","GlorotUniform","GlorotNormal","HeNormal","HeUniform","LeCunNormal","LeCunUniform","Orthogonal","DEFAULT_GAIN","INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","deserializeInitializer","serializeInitializer","getInitializer","constant","identity","varianceScaling","glorotUniform","glorotNormal","heNormal","heUniform","leCunNormal","leCunUniform","orthogonal","_nextUniqueTensorId","getNextUniqueTensorId","_uidPrefixes","getUid","isArrayOfShapes","normalizeShapeList","getExactlyOneTensor","getExactlyOneShape","countParamsInWeights","LayerVariable","DEFAULT_VARIABLE_NAME_PREFIX","trainable_","assertNotDisposed","newVal","checkShapesMatch","batchGetValue","batchSetValue","variablesAndValues","variableAndValue","InputSpec","ndim","maxNDim","minNDim","SymbolicTensor","sourceLayer","callArgs","outputTensorIndex","_nextNodeID","Node","outboundLayer","inboundLayers","nodeIndices","tensorIndices","inputTensors","outputTensors","inputMasks","outputMasks","layer","outboundNodes","inboundNodes","inboundNames","_nextLayerID","Layer","_callHook","_addedWeightNames","_stateful","activityRegularizer","inputSpec","supportsMasking","_trainableWeights","_nonTrainableWeights","_losses","_updates","_built","batchInputShape","inputDType","initialWeights","_refCount","fastWeightInitDuringBuild","nodeIndex","attrName","getNodeAtIndex","lossFn","built","trainableWeights","nonTrainableWeights","stateful","inputIndex","xShapeAtAxis","specDim","kwargs","callHook","inputsList","allAreSymbolic","noneAreSymbolic","assertInputCompatibility","xElem","build","setWeights","outputList","outputListCopy","collectInputShape","computeOutputShape","outputDType","warnOnIncompatibleInputShape","addInboundNode","dimMismatch","dimension","allOutputShapes","shapeString","trainableOnly","weightValueTuples","paramValues","pv","regularizer","initValue","addLoss","maskElement","inputTensorList","tensorIndex","numDisposedVariables","disposeWeights","refCountAfterDispose","getSourceInputs","sourceTensors","previousSources","InputLayer","sparse","inputTensor","Input","resolveScalarsInLogs","logs","scalarsToDispose","valueScalar","disposeTensorsInLogs","ModelLoggingVerbosity","BaseCallback","validationData","epoch","model","CallbackList","callbacks","queueLength","callback","setParams","setModel","onEpochBegin","onEpochEnd","onBatchBegin","onBatchEnd","onTrainBegin","onTrainEnd","BaseLogger","totals","oldTotalsToDispose","History","history","valueArray","CustomCallback","yieldEvery","currentEpoch","onYield","maybeWait","waitMs","lastResult","lastTime","bind","trainBegin","trainEnd","epochBegin","epochEnd","batchBegin","batchEnd","yield","ps","standardizeCallbacks","callbackConfig","CallbackConstructorRegistry","verbosityLevel","callbackConstructor","checkForDuplicate","constructors","levelName","ctor","configureCallbacks","epochs","initialEpoch","numTrainSamples","stepsPerEpoch","doValidation","callbackMetrics","actualCallbacks","createCallbacks","callbackList","samples","steps","metrics","deserialize","l2Normalize","squareSum","epsilonTensor","yTrue","yPred","meanAbsoluteError","meanAbsolutePercentageError","clippedTrue","MAX_VALUE","absResult","categoricalCrossentropy","fromLogits","outputSum","sparseCategoricalCrossentropy","flatTarget","binaryCrossentropy","reluLogits","negAbsLogits","sigmoidCrossEntropyWithLogits","cosineProximity","trueNormalized","predNormalized","trueXPred","lossesMap","meanSquaredLogarithmicError","clippedPred","firstLog","secondLog","squaredHinge","maxResult","hinge","categoricalHinge","pos","logcosh","log2","predictionDiff","logcoshResult","kullbackLeiblerDivergence","poisson","logPred","identifierOrFn","errMsg","includes","binaryAccuracy","threshold","yPredThresholded","categoricalAccuracy","truePositives","tp","fp","falsePositives","denominator","sparseCategoricalAccuracy","metricsMap","mse","MSE","mae","MAE","mape","MAPE","cosine","getLossOrMetricName","fnName","checkUserDefinedMetadata","modelName","checkSize","plainObjectCheck","xType","printRow","positions","printFn","line","printLayerSummary","countParams","printLayerSummaryWithConnections","relevantNodes","connections","inboundLayer","inboundLayerIndex","inboundTensorIndex","firstConnection","isArrayItemInputOrOutputName","convertPythonicToTs","pythonicConfig","tsArray","arrayLength","tsDict","pythonicKey","pythonicValue","tsKey","convertTsToPythonic","tsConfig","pyArray","pyDict","tsValue","FeedDict","feeds","id2Value","id2Mask","name2Id","feed","assertFeedCompatibility","cachedSorted","cachedRecipientCounts","execute","fetches","feedDict","probe","arrayFetches","fetchArray","outputNames","finalOutputs","feedNames","outputName","getValue","maxNumTensors","minNumTensors","fetchAndFeedKey","recipientCounts","finalSorted","finalRecipientMap","getTopologicalSortAndRecipientCountsForOneFetch","recipientMap","visited","symbolicTensor","recipient","recipientMap2Counts","getTopologicalSortAndRecipientCounts","internalFeedDict","symbolic","srcLayer","inputValues","tensorsToDispose","maskExists","getMask","hasKey","outputMask","computeMask","layerOutputs","getNodeOutputs","outputSymbolicTensors","disposeMasks","marks","topIsMarked","outputTensor","getOutputAt","Container","containerNodes","inputLayers","inputLayersNodeIndices","inputLayersTensorIndices","outputLayers","outputLayersNodeIndices","outputLayersTensorIndices","layers","internalContainerRefs","inputNames","feedInputShapes","feedInputNames","feedOutputNames","internalInputShapes","internalOutputShapes","nodesDepths","nodeIDToNode","layersDepths","layerIDToLayer","layerIndices","nodesInDecreasingDepth","buildMapOfGraph","finishedNodes","nodesInProgress","nodeKey","numInboundLayers","reversedNodesInDecreasingDepth","previousDepth","inboundNode","nodesByDepth","nodeID","layersByDepth","layerID","depthKeys","parseInt","layersForDepth","aIndex","bIndex","computableTensors","layersWithCompleteInput","allNames","numOccurrences","strict","nameToWeight","totalWeightsCount","validatedName","tokens","unsetNames","theConfig","unused","returnString","updatedConfig","masks","runInternalGraph","layersToOutputShapes","nodes","outputShapeKeys","shapeKey","tensorMap","referenceInputTensors","referenceOutputTensors","computedData","computedTensors","computedMasks","computedTensor","computedMask","nodeConversionMap","keptNodes","originalNodeIndex","calculateLosses","buildNodeConversionMap","layerConfigs","layerClassName","layerConfig","filteredInboundNodes","nodeData","newNodeIndex","modelInputs","modelOutputs","createdLayers","unprocessedNodes","addUnprocessedNode","processNode","inputData","inboundLayerName","inboundNodeIndex","processLayer","layerData","layerName","setFastWeightInitDuringBuild","layersFromConfig","currentUnprocessedNodesForLayer","inputLayersFromConfig","layerOutputTensors","outputLayersFromConfig","resetStates","standardizeClassWeights","classWeight","xWeight","weightType","numOutputs","standardizeSampleOrClassWeights","standardizeWeights","sampleWeight","sampleWeightMode","yClasses","yClassIndices","classSampleWeight","classIndex","sampleWeights","standardizeDataIteratorOutput","iteratorOut","iteratorOutObj","flattenedXs","flattenTensorOrArrayOrMap","flattenedYs","xIndex","yIndex","inputOrOutput","isDatasetObject","dataset","checkBatchSize","sliceArrays","sliceArraysByIndices","makeBatches","batchStart","ensureTensorsRank2OrHigher","disposeNewTensors","refTensors","oldTensorIds","oldTensor","isDataArray","isDataDict","isDataTensor","standardizeInputData","checkBatchAxis","exceptionPrefix","gotUnexpectedData","refDim","checkInputData","LayersModel","isTraining","lineLength","sequentialLike","depthNodes","flag","isModelSequentialLike","toDisplay","checkTrainableWeightsConsistency","trainableCount","collectedTrainableWeights","countTrainableParams","nonTrainableCount","printSummary","loss","optimizer","optimizer_","optimizerMap","isOptimizerOwned","lossFunctions","theLosses","lossFunction","feedOutputShapes","feedLossFns","skipTargetIndices","metricsNames","metricsTensors","nestedMetrics","wrappedMetrics","outputMetrics","collectMetrics","appendMetric","outputIndex","metricName","metricTensor","accFn","weightedMetricFn","metric","metricFn","metricResult","handleMetrics","standardizedOuts","standardizeUserDataXY","ins","makeTestFunction","testFunction","testLoop","hasBatches","batches","dataIterator","numExamples","xsAndYs","batchOuts","batchOut","oldScalar","evaluateDataset","stepsName","outputsIsArray","retrieveSymbolicTensors","tensorValue","executeOutputs","symbolicTensorNames","outputsRemaining","layerOutputNames","remainingNames","checkNumSamples","outsBatches","batchIndex","insBatch","xsRank2OrHigher","predictLoop","setX","setY","checkArrayLengths","lossFns","keyLosses","slicedYShape","slicedShape","targetDim","checkLossAndTargetCompatibility","standardXs","standardYs","standardSampleWeights","classWeights","indexArray","batchIds","outLabels","dedupedOutLabels","newLabel","lossValues","metricsValues","totalLoss","meanLoss","weightedMetric","regularizerLoss","valOutputs","meanMetric","inputValX","inputValY","valX","valY","standardizeUserData","valIns","valStandardized","validationSplit","splitAt","originalBatchSize","validationSteps","trainFunction","makeTrainFunction","getDedupedMetricsNames","valFunction","valF","shuffle","stopTraining_","epochLogs","epochIndexArray1D","batchLogs","valOuts","syncData","fitLoop","fitTensors","hasBatchesPerEpoch","batchesPerEpoch","valXs","valYs","validationBatches","standardizeTensorValidationData","getStepsPerEpoch","stepsDone","standardClassWeights","evaluate","validationBatchSize","fitDataset","standardizeOut","namedWeights","getWeights","numTensorsBeforeOptmizerDisposal","lossNames","metricsIdentifiers","getLossIdentifiers","getMetricIdentifiers","optimizer_config","class_name","weighted_metrics","loss_weights","sample_weight_mode","lossEntry","compile","handlerOrURL","handlers","weightDataAndSpecs","getNamedWeights","toJSON","includeOptimizer","getTrainingConfig","optimizerWeightData","optimizerWeightSpecs","Functional","modelFromJSON","modelAndWeightsConfig","uniqueWeightValues","Sequential","isLayerModelInstance","modelLayer","checkShape","lastLayerIndex","summary","predict","predictOnBatch","fit","trainOnBatch","configArray","extraModelConfig","conf","stopTraining","sequential","loadLayersModel","pathOrIOHandler","options","loadTrainingConfig","setUserDefinedMetadata","modelWeights","optimizerWeights","name2Tensor","decodeModelAndOptimizerWeights","loadLayersModelFromIOHandler","loadLayersModelInternal","registerCallbackConstructor","Activation","Linear","HardSigmoid","Softsign","Swish","serializeActivation","deserializeActivation","getActivation","assertObjectArgs","Regularizer","L1L2","hasL1","hasL2","regularization","REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeRegularizer","deserializeRegularizer","getRegularizer","ReLU","baseConfig","LeakyReLU","DEFAULT_ALPHA","PReLU","DEFAULT_ALPHA_INITIALIZER","alphaInitializer","alphaRegularizer","alphaConstraint","sharedAxes","paramShape","addWeight","ELU","ThresholdedReLU","DEFAULT_THETA","theta","DEFAULT_AXIS","normalizeArray","singleValue","convOutputLength","inputLength","outputLength","deconvLength","strideSize","kernelSize","preprocessConv2DInput","preprocessConv3DInput","conv2dWithBiasActivation","BaseConv","DEFAULT_KERNEL_INITIALIZER","DEFAULT_BIAS_INITIALIZER","verifyArgs","useBias","biasInitializer","biasConstraint","biasRegularizer","Conv","filters","kernelInitializer","kernelConstraint","kernelRegularizer","channelAxis","inputDim","kernelShape","biasValue","fusedActivationName","conv1dWithBias","conv3dWithBias","newSpace","space","newDim","Conv2DTranspose","hAxis","wAxis","kernelH","kernelW","strideH","strideW","heightAxis","widthAxis","SeparableConv","DEFAULT_DEPTHWISE_INITIALIZER","DEFAULT_POINTWISE_INITIALIZER","depthwiseKernel","pointwiseKernel","depthMultiplier","depthwiseInitializer","depthwiseRegularizer","depthwiseConstraint","pointwiseInitializer","pointwiseRegularizer","pointwiseConstraint","depthwiseKernelShape","pointwiseKernelShape","SeparableConv2D","Conv1D","Cropping2D","cropping","hSliced","UpSampling2D","DEFAULT_SIZE","interpolation","resized","DepthwiseConv2D","cols","outFilters","outRows","outCols","standardizeArgs","initialState","constants","numConstants","toListOrNull","rnn","stepFunction","initialStates","goBackwards","unroll","needPerStepOutputs","perStepOutputs","lastOutput","states","timeSteps","perStepInputs","perStepMasks","currentInput","stepOutputs","maskedOutputs","stepMask","negStepMask","RNN","cell","StackedRNNCells","cells","stateSize","returnSequences","returnState","stateSpec","states_","keptStates","outputDim","stateShape","stateMask","numStates","stepInputShape","standardized","additionalInputs","additionalSpecs","fullInput","fullInputSpec","originalInputSpec","getInitialState","cellCallKwargs","rnnOutputs","cellConfig","SimpleRNNCell","DEFAULT_ACTIVATION","DEFAULT_RECURRENT_INITIALIZER","units","recurrentInitializer","recurrentRegularizer","recurrentConstraint","recurrentDropout","dropoutMask","recurrentDropoutMask","recurrentKernel","prevOutput","generateDropoutMask","dpMask","recDpMask","SimpleRNN","GRUCell","DEFAULT_RECURRENT_ACTIVATION","resetAfter","recurrentActivation","implementation","hTMinus1","z","hh","matrixX","recurrentKernelValue","rk1","rk2","matrixInner","xZ","xR","xH","recurrentZ","recurrentR","recurrentH","GRU","LSTMCell","unitForgetBias","capturedBiasInit","capturedUnits","bI","bF","bCAndH","cTMinus1","z0","z1","z2","z3","LSTM","nestedStates","newNestedStates","callInputs","cellStates","tuples","numParams","inputWeights","droppedInputs","createMask","ConvRNN2D","computeSingleOutputShape","getStates","isChannelsFirst","hOut","wOut","ConvLSTM2DCell","recurrentKernelShape","applyDropout","xI","xF","xC","xO","recDropoutMask","hI","hF","hC","hO","kernelI","kernelF","kernelC","kernelO","biasI","biasF","biasC","biasO","inputConv","recKernelI","recKernelF","recKernelC","recKernelO","recurrentConv","getOwnPropertySymbols","propertyIsEnumerable","__rest","ConvLSTM2D","Dropout","invokeCallHook","SpatialDropout1D","Dense","inputLastDim","Flatten","RepeatVector","targetShape","isUnknown","errorMsg","finalShape","known","unknown","originalSize","anyUnknownDims","fixUnknownDimension","Permute","expectedSortedIndices","dimsIncludingBatch","Masking","maskValue","booleanMask","Embedding","embeddings","DEFAULT_EMBEDDINGS_INITIALIZER","embeddingsInitializer","embeddingsRegularizer","embeddingsConstraint","maskZero","inLens","s1","s2","Merge","shape1","shape2","computeElementwiseOpOutputShape","batchSizes","allRanks","reshapeRequired","reshapedInputs","inputDims","xNDim","mergeFunction","transposed","xTransposed","yNDim","yShape","Average","Concatenate","allNoneShape","shapeSet","shapeWithoutConcatAxis","exists","allNullMasks","concatenatedMasks","interpretAxis","Dot","normalize","interpretAxes","x1","axesArray","diffShape","adjX","adjY","idx","squeezeAxes","batchDot","GaussianNoise","GaussianDropout","AlphaDropout","_getNoiseShape","alphaP","keptIdx","batchNormalization","gamma","BatchNormalization","betaInitializer","gammaInitializer","movingMeanInitializer","movingVarianceInitializer","betaConstraint","gammaConstraint","betaRegularizer","gammaRegularizer","movingMean","movingVariance","sortedReductionAxes","needsBroadcasting","broadcastMovingMean","broadcastMovingVariance","broadcastBeta","broadcastGamma","normalizeInference","normedTraining","meanAndVariance","regularNormalizeBatchInTraining","broadcastMean","broadcastVariance","broadcastNormalizeBatchInTraining","normalizeBatchInTraining","doMovingAverage","origValue","updateDelta","updateMovingMeanAndVariance","LayerNormalization","nDims","broadcast","momentsTiling","scaleOffsetTiling","ZeroPadding2D","heightPadding","widthPadding","spatial2dPadding","pattern","pool2d","poolSize","poolMode","paddingString","pool3d","Pooling1D","poolingFunction","MaxPooling1D","AveragePooling1D","Pooling2D","MaxPooling2D","AveragePooling2D","Pooling3D","depths","MaxPooling3D","AveragePooling3D","GlobalPooling1D","GlobalAveragePooling1D","GlobalMaxPooling1D","GlobalPooling2D","GlobalAveragePooling2D","GlobalMaxPooling2D","Wrapper","newConfig","TimeDistributed","childInputShape","childOutputShape","timesteps","Bidirectional","forwDict","forwardLayer","backDict","backwardLayer","mergeMode","_trainable","numWeights","numeightsOver2","layerShapes","stateSpecs","isSymbolicTensor","yRev","forwardState","backwardState","rnnLayer","inputLayer","reLU","leakyReLU","thresholdedReLU","cropping2D","upSampling2d","dense","spatialDropout1d","repeatVector","permute","embedding","layerNormalization","zeroPadding2d","averagePooling1d","avgPool1d","avgPooling1d","averagePooling2d","avgPool2d","avgPooling2d","averagePooling3d","avgPooling3d","globalAveragePooling1d","globalAveragePooling2d","globalMaxPooling1d","globalMaxPooling2d","maxPooling1d","maxPooling2d","maxPooling3d","gru","gruCell","lstm","lstmCell","simpleRNN","simpleRNNCell","convLstm2d","convLstm2dCell","stackedRNNCells","bidirectional","timeDistributed","globalMaxPool1d","globalMaxPool2d","maxPool1d","maxPool2d","gaussianNoise","gaussianDropout","alphaDropout","masking","falseNegatives","l1l2","Callback","currVal","prevVal","EarlyStopping","restoreBestWeights","monitor","minDelta","patience","baseline","monitorFunc","wait","stoppedEpoch","best","current","getMonitorValue","monitorValue","earlyStopping","DataType","SaverDef","CheckpointFormatVersion","CUSTOM_OPS","registerOp","opFunc","opMapper","tfOpName","category","customExecutor","getRegisteredOp","deregisterOp","getParamValue","paramName","context","resourceManager","inputParam","inputParams","inputIndexStart","inputIndexEnd","getTensor","attrParam","attrParams","tensorsMap","nodeName","parseNodeName","getHashTableHandleByName","contextId","currentContextIds","find","getNodeNameWithContextId","getNodeNameAndIndex","currentContextId","parts","getPadding","explicitPadding","cloneTensor","OperationMapper","_instance","mappersJson","opMappers","mapper","graph","tfNodes","placeholders","initNodes","mapNode","inputNodeNameToKey","outputNodeNameToKey","mapSignatureEntries","allNodes","children","signatureKey","functions","library","function","func","mapFunction","newNode","rawAttrs","getStringParam","tfName","tfDeprecatedName","getStringArrayParam","getNumberParam","getNumericArrayParam","getBoolParam","getBoolArrayParam","getTensorShapeParam","getTensorShapeArrayParam","getDtypeParam","getDtypeArrayParam","getFuncParam","functionDef","nodeDef","inputArg","parseDtypeParam","returnNodeMap","outputArg","defaultOutput","mapArgsToSignature","methodName","mapArgToTensorInfo","parseStringParam","keepCase","decodeBase64","def","parseTensorShapeParam","unknownRank","NodeValueImpl","getInput","getAttr","assertShapesMatchAllowUndefinedSize","shapesEqualAllowUndefinedSize","TensorArray","maxSize","elementShape","identicalElementShapes","dynamicSize","clearAfterRead","closed_","idTensor","keepIds","tensorWithState","cleared","written","readMany","maxIndex","writeMany","totalLength","cumulativeLengths","elementPerRow","sizes","TensorList","elementDtype","maxNumElements","numElements","reshapedTensors","elementIndex","fusedConvAndDepthWiseParams","extraOp","activationFunc","isBiasAdd","isPrelu","isBatchNorm","numArgs","biasArg","preluArg","nmsParams","HashTable","keyDType","valueDType","handle","clear","checkKeyAndValueTensor","$keys","$values","keysLength","valuesLength","findWithDefault","thenFunc","elseFunc","cond","functionMap","executeFunctionAsync","tensorArrayMap","tensorListMap","bodyFunc","condFunc","condResult","argIds","condValue","origResult","resultIds","pred","frameId","enterFrame","exitFrame","nextIteration","tensorArray","addTensorArray","writeTensor","writeTensorArray","getTensorArray","readId","readIndex","gatherId","gatherIndices","gatherDtype","scatterId","scatterIndices","scatterTensor","scatterTensorArray","scatter","concatId","concatTensorArray","concatDtype","splitId","splitTensor","lengths","splitTensorArray","sizeId","closeId","closeTensorArray","clearAndClose","getTensorList","elementDType","addTensorList","numElementsParam","reserve","fromTensor","pushBack","popBack","summarize","squeezedShape","mapped","sameShape","hashTable","addHashTable","getHashTableById","import","ExecutionContext","weightMap","rootContext","frameName","iterationId","contexts","lastId","generateCurrentContextIds","_currentContextIds","contextIdforContexts","newFrame","shift","getExecutionSubgraph","usedNodes","missingInputs","dynamicNode","syncInputs","inputNodeNames","initNodeNames","frontier","isControlFlow","isDynamicShape","isHashTable","child","CONTROL_FLOW_OPS","DYNAMIC_SHAPE_OPS","HASH_TABLE_OPS","GraphExecutor","parent","compiledMap","_weightMap","SEPERATOR","_functions","_functionExecutorMap","_outputs","_inputs","_initNodes","_signature","weightIds","_weightIds","functionExecutorMap","_resourceManager","sortedInputs","sortedOutputs","executionInfo","outNames","inNames","inputNodes","orderedNodes","getNodesInTopologicalOrder","mapInputs","checkInputs","checkInputShapeAndType","mapOutputs","checkOutputs","outputNodeNames","outputNodes","compilationKey","getCompilationKey","tensorsToKeep","getFrozenTensorIds","intermediateTensorConsumerCount","checkTensorForDisposal","ids","getTensorsForCurrentContenxt","_executeAsync","isFunctionExecution","executeWithControlFlow","outputIds","inputIds","mappedInputs","currentContext","added","processStack","missingOutputs","alternativeMsg","processChildNodes","childNode","notInGraph","normalizedName","ResourceManager","hashTableNameToHandle","hashTableMap","GraphModel","modelUrl","executor","findIOHandler","loadSync","producer","minConsumer","Instance","transformGraph","convertTensorMapToTensorsMap","executeAsync","normalizeInputs","normalizeOutputs","newMap","loadGraphModel","fromTFHub","deepMapInternal","mapFn","containedIn","recurse","mappedIterable","childResult","deepZip","zipFn","zipToList","deepZipInternal","deepMapAndAwaitAll","mappedValue","isView","cloneIfTensor","RingBuffer","capacity","RangeError","doubledCapacity","isFull","wrap","isEmpty","relativeIndex","GrowingRingBuffer","INITIAL_CAPACITY","expand","newCapacity","newData","iteratorFromItems","ArrayIterator","iteratorFromFunction","FunctionCallIterator","LazyIterator","stream","prefetch","shouldContinue","ErrorHandlingLazyIterator","FilterIterator","transform","MapIterator","AsyncMapIterator","serial","FlatmapIterator","resolveFully","serialMapAsync","resolveWhile","smallLastBatch","RowMajorBatchIterator","rowMajorBatch","baseErrorHandler","ChainedIterator","TakeIterator","SkipIterator","bufferSize","PrefetchIterator","windowSize","ShuffleIterator","SerialIterator","trav","deepMap","nextFn","upstream","lastRead","serialNext","maxCount","skipped","enableSmallLastBatch","OneToManyIterator","outputQueue","pump","mappedArray","pushAll","iterators","moreIterators","readFromChain","iteratorResult","handleErrors","itemResult","ZipMismatchMode","ZipIterator","mismatchMode","FAIL","currentPromise","afterState","numIterators","iteratorsDone","SHORTEST","LONGEST","nextState","refill","upstreamExhausted","randomInt","chosenIndex","chooseIndex","shuffleExcise","Dataset","datasetFromIteratorFn","columnMajorBatch","deepBatchConcat","forEachAsync","mapAsync","baseIterators","take","skip","reshuffleEachIteration","seed2","int32","toArray","toArrayForTest","iteratorFn","zip","datasets","ds","iteratorFromZipped","batchConcat","MAX_BUFFER_SIZE","TextLineDataset","decodeUTF8","CODE_QUOTE","STATE_OUT","STATE_FIELD","STATE_QUOTE","STATE_QUOTE_AFTER_QUOTE","STATE_WITHIN_QUOTE_IN_QUOTE","CSVDataset","csvConfig","hasHeader","fullColumnNames","columnNamesValidated","columnConfigs","configuredColumnsOnly","delimiter","delimWhitespace","columnNames","setColumnNames","columnNamesFromFile","maybeReadHeaderLine","counts","countAcc","duplicateNames","firstElement","firstLine","parseRow","makeDataElement","features","parsedValue","default","required","isLabel","valueAsNum","getBoolean","validateElementCount","readOffset","readLength","currentState","charAt","MicrophoneIterator","microphoneConfig","isClosed","fftSize","fftSizeLog2","numFrames","numFramesPerSpectrogram","sampleRateHz","columnTruncateLength","audioTrackConstraints","smoothingTimeConstant","includeSpectrogram","includeWaveform","microphoneIterator","mediaDevices","getUserMedia","audio","video","ctxConstructor","AudioContext","webkitAudioContext","audioContext","sampleRate","streamSource","createMediaStreamSource","analyser","createAnalyser","connect","freqData","timeData","spectrogramTensor","waveformTensor","audioDataQueue","getAudioData","flattenQueue","freqDataQueue","getTensorFromAudioDataArray","timeDataQueue","currentFrames","intervalID","setInterval","getFloatFrequencyData","getFloatTimeDomainData","clearInterval","disconnect","getTracks","queue","frameSize","WebcamIterator","webcamVideoElement","webcamConfig","resize","needToResize","resizeHeight","resizeWidth","cropBoxInd","centerCrop","widthCroppingRatio","heightCroppingRatio","widthCropStart","heightCropStart","widthCropEnd","heightCropEnd","cropBox","webcamIterator","facingMode","deviceId","srcObject","src","play","onloadedmetadata","cropAndResizeFrame","expandedImage","resizedImage","DataSource","StringIterator","separator","SplitIterator","impl","SplitIteratorImpl","carryover","chunkResult","ByteChunkIterator","Utf8Iterator","Utf8IteratorImpl","decoder","StringDecoder","chunk","FileChunkIterator","File","chunkSize","fileReader","onabort","isLocalPath","source","FileDataSource","fs","readFileSync","URLDataSource","fileOptions","urlString","request","headers","credentials","cache","redirect","referrer","integrity","uint8Array","statusText","urlChunkIterator","csv","generator","webcam","microphone","assertNotComplex","MathBackendCPU","firstUse","outId","encodedValues","complexTensorInfos","decodedData","tensorData","unaryKernelFunc","cpuBackend","xSize","$dtype","makeTensorInfo","unaryKernelFuncFromImpl","unaryImpl","xi","eluConfig","identityConfig","outVals","leakyReluConfig","createSimpleBinaryKernelImpl","aVals","bVals","resultRank","resultStrides","aRank","bRank","aStrides","bStrides","aBroadcastDims","bBroadcastDims","aLoc","bLoc","preluImpl","xValue","aValue","resultData","preluConfig","reluConfig","relu6Config","realVals","imagVals","complexInfo","complexConfig","realVal","realConfig","zerosTensorInfo","disposeIntermediateTensorInfo","realPart","resultValues","castConfig","binaryKernelFunc","simpleImpl","complexImpl","$aComplex","$aComplexVals","aReal","aImag","aRealVals","aImagVals","$bComplex","$bComplexVals","bReal","bImag","bRealVals","bImagVals","resultRealData","resultImagData","resultReal","resultImag","createComplexBinaryKernelImpl","resultSize","resultRealVals","resultImagVals","aIdx","bIdx","opResult","addImpl","addComplexImpl","addConfig","$shape","$xSize","xData","reshapeConfig","batchMatMul","b3dShape","a3d","b3d","sharedDim","leftDim","rightDim","a3dValues","b3dValues","a3dStrides","b3dStrides","aBatch","aOuterStep","aInnerStep","bInnerStep","bOuterStep","bBatch","resVals","bi","i0","j0","k0","iBlock","jBlock","kBlock","batchOffsetA","batchOffsetB","batchMatMulConfig","_fusedMatMulConfig","addRes","activationRes","intermediates","simpleAbsImpl","absConfig","makeOutput","acosConfig","acoshConfig","addNConfig","outBuf","currVals","transposeImpl","xStrides","newLoc","transposeConfig","allConfig","permutedAxes","reduceShape","reshapedResult","anyConfig","anyVal","argMaxConfig","intermediateTensorInfos","argMinConfig","minIndex","asinConfig","asinhConfig","atanConfig","atan2Impl","bValue","atan2Config","atanhConfig","xValues","poolType","padTop","padLeft","POSITIVE_INFINITY","outputVals","outputBatchStrides","outputRowStrides","outputColStrides","outputBatchOffset","inputBatchOffset","yR","xRCorner","xRMin","xRMax","outputRowOffset","yC","xCCorner","xCMin","xCMax","minMaxValue","avgValue","xROffset","pixel","maxPoolPositions","flattenPositions","maxPositions","xBuf","maxPosition","wR","wC","padFront","outputDepthStrides","yDepth","xDepthCorner","xDepthMin","xDepthMax","outputDepthOffset","yRow","xRowCorner","xRowMin","xRowMax","yCol","xColCorner","xColMin","xColMax","outputColOffset","xDepth","xDepthOffset","xRow","xRowOffset","xCol","avgPoolConfig","avgPool3DConfig","avgMultiplier","dyBuf","bufferSync","dxDepth","dxRow","dxCol","dyDepthCorner","dyRowCorner","dyColCorner","dotProd","wDepth","dyDepth","wRow","dyRow","wCol","dyCol","dyData","dxR","dxC","dyRCorner","dyCCorner","dyR","dyC","batchNormConfig","mVals","varVals","sVals","offVals","offValsLength","sValsLength","varValsLength","mValsLength","offi","mi","si","vi","sliceImpl","isContinous","inBuf","outLoc","inLoc","$size","sliceConfig","batchToSpaceNDConfig","xReshaped","xTransposedReshaped","bincountImpl","weightsVals","weightsDtype","weightsShape","weightsSize","bincountReduceImpl","weightsBuf","bincountConfig","createSimpleUnaryImpl","ceilImpl","ceilConfig","clip","clipAttrs","clipConfig","complexAbsConfig","complexVals","hypot","concatImpl","simplyConcat","colOffset","tIdx","resIdx","col","imagVal","imagConfig","$inputs","reals","imags","realConcated","imagConcated","inputs2D","innerSize","inputsValShapes","finalOutShape","concatConfig","conv2D","isChannelsLast","filterStrides","xBatchStride","xRowStride","xColStride","xChannelStride","yBatchStride","yRowStride","yColStride","yChannelStride","wVals","xOffset1","yOffset1","yOffset2","wOffset1","xOffset2","yOffset3","xOffset3","wOffset3","d1","xVal","d2","conv2DConfig","conv2DBackpropFilterConfig","dW","leftPad","topPad","dyVals","yRMin","yRMax","yCMin","yCMax","conv2DBackpropInputConfig","dyStrides","dxValues","dyValues","fltValues","fltS0","fltS1","fltS2","dyOffset","fltOffset","conv3DConfig","yF","xFCorner","wF","wOffset2","yOffset4","xOffset4","wOffset4","conv3DBackpropFilterV2Config","dw","dwValues","dwS0","dwS1","dwS2","dwS3","dyS0","dyS1","dyS2","dyS3","xS0","xS1","xS2","xS3","frontPad","yFMin","yFMax","conv3DBackpropInputV2Config","dxS0","dxS1","dxS2","dxS3","fltS3","xFMin","cosConfig","coshConfig","cropAndResizeConfig","cropHeight","cropWidth","boxVals","boxIndVals","imageVals","inStride","outStride","startInd","y1","y2","bInd","heightScale","widthScale","yInd","ind","topInd","bottomInd","yLerp","xInd","leftInd","rightInd","xLerp","topLeft","topRight","bottomLeft","closestX","closestY","inInd","outInd","cumsumConfig","permutedAxis","resultDtype","finalDim","indexAdjuster","prevIdx","reverseTransposedResult","denseBincountConfig","depthToSpaceConfig","outputHeight","outputWidth","outputDepth","outputIdx","inH","offsetH","inW","offsetD","inputIdx","depthwiseConv2dNative","chMul","depthwiseConv2dNativeConfig","depthwiseConv2dNativeBackpropFilterConfig","dm","depthwiseConv2dNativeBackpropInputConfig","diagConfig","dilation2dConfig","filterVals","filterRank","outSize","outRank","hBeg","wBeg","curVal","hIn","wIn","filterIndex","dilation2dBackpropFilterConfig","hMax","wMax","dilation2dBackpropInputConfig","hInMax","wInMax","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","multiplyImpl","multiplyComplexImpl","multiplyConfig","realDivImpl","realDivConfig","subImpl","subComplexImpl","subConfig","fftBatch","innerDim","inputVals","real2D","imag2D","fftImpl","$realInfo","$imagInfo","inputSize","fftRadix2","realInfo","imagInfo","sizeInfo","sizeInfoCopy","divRealInfo","divImagInfo","divRealVals","divImagVals","term","fourierTransformByMatmul","evenComplex","evenRealVals","evenImagVals","evenShape","evenRealInfo","evenImagInfo","evenTensorInfo","oddComplex","oddRealVals","oddImagVals","oddShape","oddRealInfo","oddImagInfo","oddTensorInfo","$evenComplex","$evenRealVals","$evenImagVals","$evenShape","$evenRealInfo","$evenImagInfo","$evenTensorInfo","$oddComplex","$oddRealVals","$oddImagVals","$oddShape","$oddRealInfo","$oddImagInfo","$oddTensorInfo","eShape","eRealInfo","eImagInfo","exponentInfo","addPart","subPart","addPartReal","subPartReal","addPartImag","subPartImag","$realVals","$imagVals","fftConfig","input2D","resultReshaped","fillValues","fillConfig","flipLeftRightConfig","batchIdx","batchOffset","rowOffset","coordX","outputValue","floorImpl","floorConfig","floorDivImpl","floorDivConfig","fusedConv2DConfig","resultOld","fusedDepthwiseConv2DConfig","oldResult","gatherNdConfig","paramsSize","numSlices","indicesData","paramsData","flattenIndex","gatherV2Impl","indicesBuf","flattenOutputShape","originalLoc","indicesIdx","indicesIndex","originalIndex","gatherV2Config","$batchDims","shapeInfo","flattenX","greaterImpl","greaterConfig","greaterEqualImpl","greaterEqualConfig","ifftConfig","isFiniteConfig","isInfConfig","isNaNConfig","lessImpl","lessConfig","lessEqualImpl","lessEqualConfig","linSpaceImpl","linSpaceConfig","logImpl","logConfig","log1pConfig","logicalAndImpl","logicalAndConfig","logicalNotConfig","logicalOrImpl","logicalOrConfig","lRNConfig","channels","maxD","sumAcrossChannels","currentChannel","beginSumOffset","endSumOffset","lRNGradConfig","dySize","yValues","depthBegin","depthEnd","dyi","maxImpl","maxOutShape","maxConfig","maximumImpl","maximumConfig","maxPoolConfig","maxPool3DConfig","maxPosBuf","maxPool3dPositions","maxPoolWithArgmaxConfig","pooled","maxPools","maxPoolWithArgmaxImpl","pooledDataId","indexesDataId","permutedX","sumConfig","meanConfig","toDispose","reduceSizeScalar","minConfig","minimumImpl","minimumConfig","mirrorPadConfig","coords","inIndex","modImpl","rem","modConfig","logitsRank","maxLogit","expandedShape","maxLogitReshaped","sumExp","sumReshaped","softmaxConfig","multinomialConfig","probabilities","numEvents","probVals","resShape","cdf","outOffset","sampleId","negImpl","xDtype","minusOne","negConfig","nonMaxSuppressionV3Config","nonMaxSuppressionV4Config","nonMaxSuppressionV5Config","maxOutputSizeVal","iouThresholdVal","scoreThresholdVal","softNmsSigmaVal","notEqualImpl","notEqualConfig","oneHotConfig","indicesVal","imagPart","zerosLikeConfig","onesLikeConfig","pack","expandedT","packConfig","padV2Config","powImpl","powConfig","prodImpl","outDtype","prodConfig","rangeImpl","rangeConfig","reciprocalConfig","resizeBilinearConfig","imagesStrides","oldHeight","oldWidth","effectiveInputSize","effectiveOutputSize","effectiveRowSizeRatio","effectiveColSizeRatio","sourceFracRow","sourceRowFloor","rowFrac","sourceRowCeil","topRowOffset","botRowOffset","sourceFracCol","sourceColFloor","colFrac","sourceColCeil","topLeftOffest","botLeftOffset","topRightOffset","botRightOffest","xHeight","xWidth","yHeight","yWidth","effectiveXSize","effectiveYSize","bOffset","topDxRIndex","bottomDxRIndex","topDxROffset","bottomDxROffset","dxRLerp","inverseDxRLerp","leftDxCIndex","rightDxCIndex","dxCLerp","inverseDxCLerp","topLeftRCOffset","topRightRCOffset","bottomLeftRCOffset","bottomRightRCOffset","inverseDxRLerpTimesInverseDxCLerp","inverseDxRLerpTimesDxCLerp","dxRLerpTimesInverseDxCLerp","dxRLerpTimesDxCLerp","dyVal","resizeNearestNeighborConfig","outputOffset","sourceNearestRow","sourceNearestCol","invHeightScale","invWidthScale","winHeight","winWidth","startRLerp","startDyR","startCLerp","startDyC","accum","dyRIndex","dyROffset","dyCIndex","dyCOffset","reverseConfig","$dims","rotateWithOffsetConfig","centerX","centerY","sinFactor","cosFactor","coordY","roundConfig","rsqrtImpl","rsqrtConfig","scatterImpl","sumDupeIndices","flattenShape","updatesData","scatterNdConfig","selectConfig","conditionRank","tValues","eValues","seluConfig","sigmoidConfig","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","outputValues","kernelConfigs","valueRank","outIndex","tempRes","expanded","scalarValue","segmentId","maskCasted","sumTensorInfo","WEBGL_ATTRIBUTES","antialias","premultipliedAlpha","preserveDrawingBuffer","stencil","failIfMajorPerformanceCaveat","getWebGLContext","webGLVersion","newCtx","OffscreenCanvas","createCanvas","addEventListener","ev","preventDefault","getWebGLRenderingContext","gl","isContextLost","disable","DEPTH_TEST","STENCIL_TEST","BLEND","DITHER","POLYGON_OFFSET_FILL","SAMPLE_COVERAGE","enable","SCISSOR_TEST","CULL_FACE","cullFace","BACK","PackingScheme","TextureUsage","PhysicalTextureType","getUnpackedMatrixTextureShapeWidthHeight","getDenseTexShape","getPackedMatrixTextureShapeWidthHeight","getTextureConfig","textureHalfFloatExtension","glany","internalFormatFloat","internalFormatHalfFloat","internalFormatPackedHalfFloat","internalFormatPackedFloat","textureFormatFloat","downloadTextureFormat","downloadUnpackNumChannels","defaultNumChannels","textureTypeHalfFloat","textureTypeFloat","getNumber","R32F","R16F","RGBA16F","RGBA32F","RED","HALF_FLOAT","FLOAT","RGBA","HALF_FLOAT_OES","callAndCheck","returnValue","getError","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","INVALID_FRAMEBUFFER_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","getWebGLErrorMessage","checkWebGLError","canBeRepresented","getExtensionOrThrow","extensionName","throwIfNull","getExtension","lineNumberRegex","validateProgram","program","getProgramParameter","VALIDATE_STATUS","getProgramInfoLog","bindVertexBufferToProgramAttribute","attribute","arrayEntriesPerItem","itemStrideInBytes","itemOffsetInBytes","getAttribLocation","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","enableVertexAttribArray","bindTextureToProgramUniformSampler","texture","uniformSamplerLocation","textureUnit","maxTextureUnit","MAX_COMBINED_TEXTURE_IMAGE_UNITS","glTextureUnit","TEXTURE0","validateTextureUnit","activeTexture","bindTexture","TEXTURE_2D","bindTextureUnit","uniform1i","bindColorTextureToFramebuffer","framebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","unbindColorTextureFromFramebuffer","validateFramebuffer","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","getFramebufferErrorMessage","returnTOrNull","failureMessage","tOrNull","getBatchDim","dimsToSkip","getRowsCols","getShapeAs3D","shapeAs3D","isEven","isReshapeFree","shape1Cols","shape2Cols","MAX_TEXTURE_SIZE","MAX_TEXTURES_IN_SHADER","hasExtension","isWebGLVersionEnabled","createFloatTextureAndBindToFramebuffer","texConfig","createTexture","texImage2D","frameBuffer","createFramebuffer","isFrameBufferComplete","deleteTexture","deleteFramebuffer","getGlslDifferences","varyingVs","varyingFs","texture2D","defineOutput","defineSpecialNaN","defineSpecialInf","defineRound","getLogicalCoordinatesFromFlatIndex","getFlatIndexFrom3D","getParameter","getWebGLMaxTextureSize","MAX_TEXTURE_IMAGE_UNITS","getMaxTexturesInShader","queryTimerVersion","getWebGLDisjointQueryTimerVersion","isCapableOfRenderingToFloatTexture","COLOR_BUFFER_HALF_FLOAT","createHalfFloatTextureAndBindToFramebuffer","isDownloadFloatTextureEnabled","isWebGLFenceEnabled","fenceSync","ENCODE_FLOAT_SNIPPET","DecodeMatrixProgram","packedInputs","packedOutput","outPackingScheme","DENSE","texShape","glsl","userCode","DecodeMatrixPackedProgram","EncodeFloatProgram","outTexUsage","DOWNLOAD","EncodeFloatPackedProgram","EncodeMatrixProgram","inputIsUnsignedByte","EncodeMatrixPackedProgram","mainLoop","createAndConfigureTexture","internalFormat","textureFormat","textureType","maxTextureSize","tex2d","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","getInternalFormatForFloat32MatrixTexture","textureConfig","getInternalFormatForFloat16MatrixTexture","getInternalFormatForUnsignedBytesMatrixTexture","getInternalFormatForPackedMatrixTexture","getInternalFormatForFloat16PackedMatrixTexture","GPGPUContext","outputTexture","disposed","vertexAttrsAreBound","itemsToPoll","glVersion","setWebGLContext","COLOR_BUFFER_FLOAT","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","textureFloatExtension","colorBufferFloatExtension","colorBufferHalfFloatExtension","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","indexBuffer","ELEMENT_ARRAY_BUFFER","finish","deleteBuffer","UNSIGNED_BYTE","dataForUpload","texelDataType","downloadMatrixDriver","downloadTarget","readPixels","physicalRows","physicalCols","gl2","PIXEL_PACK_BUFFER","getBufferSubData","bindTextureToFrameBuffer","bufferSizeBytes","bytesPerFloat","STREAM_READ","unbindTextureToFrameBuffer","fenceContext","createFence","pollFence","isFencePassed","sync","SYNC_GPU_COMMANDS_COMPLETE","flush","clientWaitSync","ALREADY_SIGNALED","CONDITION_SATISFIED","beginQuery","endQuery","isQueryAvailable","packedRGBA","fragmentShaderSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","shaderInfoLog","lineNumberRegexResult","exec","lineNumber","shaderLines","linesWithLineNumbers","maxLineLength","beforeErrorLines","errorLine","afterErrorLines","logShaderSourceAndInfoLog","getShaderInfoLog","vertexShader","vertexShaderSource","VERTEX_SHADER","createProgram","attachShader","linkProgram","LINK_STATUS","debug","setProgram","deleteProgram","useProgram","uniformName","shouldThrow","getUniformLocation","inputMatrixTexture","uniformLocation","throwIfNoProgram","outputMatrixTexture","setOutputMatrixTextureDriver","outputPackedMatrixTexture","startRow","startColumn","setOutputMatrixWriteRegionDriver","debugValidate","drawElements","TRIANGLES","UNSIGNED_SHORT","disjointQueryTimerExtension","getQueryTimerExtension","ext","getQueryTimerExtensionWebGL2","createQuery","TIME_ELAPSED_EXT","getQueryTimerExtensionWebGL1","createQueryEXT","beginQueryEXT","endQueryEXT","getQueryTime","getQueryParameter","QUERY_RESULT","getQueryObjectEXT","QUERY_RESULT_EXT","available","QUERY_RESULT_AVAILABLE","disjoint","GPU_DISJOINT_EXT","QUERY_RESULT_AVAILABLE_EXT","addItemToPoll","linearSearchLastTrue","isDoneFn","resolveFn","pollItems","downloadAndDecode","outputMatrixTextureMaybePacked","viewport","scissor","makeShader","inputsInfo","usesPackedTextures","prefixSnippets","logicalShape","isUniform","inputPrefixSnippet","inputSamplingSnippet","inInfo","outShapeInfo","getPackedSamplerFromInInfo","getSamplerFromInInfo","inputInfo","texName","texFuncSnippet","funcName","broadcastDims","getCoordsDataType","rankDiff","coordsSnippet","unpackedCoordsSnippet","isInputScalar","isOutputScalar","getPackedSamplerAtOutputCoords","outTexShape","inTexShape","getSamplerAtOutputCoords","getInputSamplingSnippet","floatTextureSampleSnippet","getFloatTextureSampleSnippet","outputSamplingSnippet","floatTextureSetOutputSnippet","shaderPrefix","SAMPLE_1D_SNIPPET","SAMPLE_2D_SNIPPET","SAMPLE_3D_SNIPPET","getShaderPrefix","isPacked","packedTexShape","getOutputPacked1DCoords","texelsInLogicalRow","getOutputPacked2DCoords","texelsInBatch","getOutputPacked3DCoords","texelsInBatchN","getOutputPackedNDCoords","getPackedOutputSamplingSnippet","getFloatTextureSetRGBASnippet","getOutput2DCoords","coordsFromIndexSnippet","getOutput3DCoords","getOutput4DCoords","getOutput5DCoords","getOutput6DCoords","getOutputSamplingSnippet","getFloatTextureSetRSnippet","SHADER_PACKED_PREFIX","texNumR","texNumC","tNumR","tNumC","getFlatOffsetUniformName","getSamplerScalar","getUniformSampler","getSampler1D","squeezeInputInfo","getSqueezedParams","getSampler2D","stride0","stride1","getSampler3D","stride2","getSampler4D","stride3","getSampler5D","stride4","getSampler6D","getPackedSamplerScalar","getPackedSampler1D","getPackedSampler2D","valuesPerRow","getPackedSampler3D","getPackedSamplerND","newInputInfo","validateBinaryAndProgram","shapeInfos","texShapeA","texShapeB","texData","addImplCPU","bincountImplCPU","bincountReduceImplCPU","ceilImplCPU","concatImplCPU","expImplCPU","expm1ImplCPU","floorImplCPU","gatherV2ImplCPU","greaterImplCPU","lessImplCPU","linSpaceImplCPU","logImplCPU","maxImplCPU","maximumImplCPU","minimumImplCPU","multiplyImplCPU","negImplCPU","prodImplCPU","rangeImplCPU","rsqrtImplCPU","simpleAbsImplCPU","sliceImplCPU","stridedSliceImplCPU","subImplCPU","tileImplCPU","topKImplCPU","transposeImplCPU","uniqueImplCPU","getVecChannels","getChannels","PackProgram","outOfBoundsCondition","getOutOfBoundsCondition","setup","getSetup","sourceCoords","coord","getSourceCoordsArr","getOutput","ReshapePackedProgram","thisRC","TextureManager","gpgpu","numUsedTextures","numFreeTextures","_numBytesAllocated","_numBytesFree","freeTextures","logEnabled","usedTextures","shapeRC","usage","physicalTexType","getPhysicalFromLogicalTextureType","getKeyFromTextureShape","texBytes","computeBytes","newTexture","PACKED_2X2_FLOAT32","createPackedMatrixTexture","PACKED_2X2_FLOAT16","createFloat16PackedMatrixTexture","UNPACKED_FLOAT32","createFloat32MatrixTexture","UNPACKED_FLOAT16","createFloat16MatrixTexture","PACKED_4X1_UNSIGNED_BYTE","createUnsignedBytesMatrixTexture","logicalTexType","deleteTexThreshold","deleteMatrixTexture","texList","texIndex","freeRatio","tex","internalFormatForPhysicalTexType","packedWidth","packedHeight","numBytesForInternalFormat","UPLOAD","RENDER","getPhysicalTextureForRendering","PIXELS","shapeRowsCol","UnaryOpProgram","opSnippet","ABS","CLONE","UnaryOpPackedProgram","UnpackProgram","getSourceCoords","binaryCaches","MathBackendWebGL","pendingRead","pendingDisposal","WeakSet","dataRefCount","numBytesInGPU","uploadWaitMs","downloadWaitMs","warnedAboutMemory","warnedAboutCPUBackend","pendingDeletes","binaryCache","gpgpuCreatedLocally","textureManager","numMBBeforeWarning","screen","devicePixelRatio","checkNumericalProblems","complexParentRefCount","textureData","runWebGLProgram","convertAndCacheOnCPU","shouldTimeProgram","activeTimers","getValuesFromTexture","subscribers","tmpDownloadTarget","tmpData","createBufferFromTexture","createAndWaitForFence","downloadFloat32MatrixFromBuffer","dTypeVals","tmpTarget","downloadMatrixFromPackedTexture","shouldUsePackedProgram","downloadByteEncodedFloatMatrixFromOutputTexture","oldActiveTimers","newActiveTimers","outerMostTime","programTimersStack","flattenedActiveTimerQueries","flattenedActiveTimerNames","ms","numBytesInGPUAllocated","numBytesAllocated","numBytesInGPUFree","numBytesFree","startMs","endMs","waitForQueryAndGetTime","timerQuery","releaseGPUData","origDataId","releaseTexture","uploadToGPU","sizeThreshold","getCPUBackend","compileAndRun","shouldExecuteOnCPU","outValues","packedUnaryOp","afterShape","input3DShape","input3D","afterShapeAs3D","outputDtype","customSetup","preventEagerUnpackingOfOutput","outData","texelShape","dataToDispose","inputsData","uniformValues","unpackTensor","packTensor","savedInput","packedReshape","outputData","keyInputs","hasOffset","keyUserCode","binary","getAndSaveBinary","inputInfos","inShapeInfos","webGLProgram","infLoc","nanLoc","uniformLocations","startTimer","outTex","setOutputPackedMatrixTexture","setOutputMatrixTexture","uniform1f","varLoc","varOffsetLoc","uniform1fv","setInputMatrixTexture","executeProgram","endTimer","unpacked","getBinary","HTMLCanvasElement","remove","floatPrecisionValue","debugFlag","underflowCheckValue","logShape","maxTexSize","squeezeResult","isByteArray","tempDenseInputHandle","uploadDenseMatrixToTexture","getTexture","preventEagerUnpacking","encodedOutputTarget","outputTexData","acquireTexture","float32Values","float32ToTypedArray","texType","mb","BinaryOpProgram","BinaryOpPackedProgram","checkOutOfBounds","supportsBroadcasting","checkOutOfBoundsString","realTensorInfo","imagTensorInfo","LEAKYRELU","LEAKYRELU_PACKED","$alpha","PRELU","PRELU_PACKED","packedOpSnippet","cpuKernelImpl","webglBackend","supportsComplex","aData","bData","complexParts","aPart","bPart","aHandle","bHandle","complexOutput","mapActivationToShaderProgram","packed","CHECK_NAN_SNIPPET","MatMulPackedProgram","addBias","hasPreluActivation","hasLeakyreluActivation","sharedDimensionPacked","aSample","bSample","aSwizzle","bSwizzle","activationSnippet","applyActivationSnippet","addBiasSnippet","batchASnippet","batchBSnippet","BinaryOpComplexProgram","MUL","realProgram","imagProgram","xTexData","MeanProgram","reduceInfo","divisor","windowSizeNearestVec4","windowSizeVec4Remainder","updateSnippet","toPrecision","ReduceProgram","reduceType","initializationValue","compareOp","vecType","reductionType","reductionStages","stages","getReductionStages","previousResult","TransposeProgram","switched","originalOrder","switchedCoords","getSwitchedCoords","TransposePackedProgram","outputOrder","switchedOrder","nextColumn","getc","sumInputIsTransposed","sumInput","sumOutShape","reshapedInput","reduced","sumImpl","batchMatMulImpl","a3dShape","hasBias","hasPreluActivationWeights","hasLeakyreluAlpha","fusedActivation","aVec","bVec","shouldReshapeB","aVec3d","bVec3d","$leakyreluAlpha","outReshaped","ADD","addKernelFunc","AddNProgram","snippets","operation","AddNPackedProgram","midIndex","leftSide","rightSide","a2D","ArgMinMaxProgram","firstPass","compOp","indexSnippet","ArgMinMaxPackedProgram","sourceLocSetup","sourceRank","sourceLocDType","inChannel","intChannels","srcRCoords","srcGCoords","srcBCoords","srcACoords","fetchCandidateIdx","fetchValue","getBestIndicesAChannelSnippet","argReduce","bestIndicesA","argReducePacked","argMinMaxReduce","CHECK_NAN_SNIPPET_BINARY","Pool2DProgram","computePositions","isAvgPool","batchFlattenPositionStr","flattenPositionStr","filterWidthNearestVec4","filterWidthVec4Remainder","Pool3DProgram","avgPoolProgram","AvgPool2DBackpropProgram","AvgPool3DBackpropProgram","avgPoolGrad3DConfig","avgPoolBackpropProgram","BatchNormProgram","meanShape","varianceShape","offsetShape","scaleShape","offsetSnippet","scaleSnippet","BatchNormPackedProgram","finalInputs","SliceProgram","destSize","uniformPart","getCoords","startLoc","getUniformLocationNoThrow","uniform1iv","SlicePackedProgram","sourceLoc","getChannel","upperRow","lowerRow","getCustomSetupFunc","newTexData","shallowSlice","reshapedIntermediate","transposedIntermediate","reshapedIntermediate2","CEIL","ClipProgram","minLoc","maxLoc","ClipPackedProgram","clipByValueConfig","ComplexAbsProgram","makeComplexComponentTensorInfo","complexTensor","complexPart","programInputs","ConcatProgram","offsets","lastIndex","lastShift","ConcatPackedProgram","lastChannels","allChannels","getValueSnippet","shiftedChannels","channelIdx","tensors2D","computeTensors2D","Conv2DProgram","inputDepthNearestVec4","inputDepthVec4Remainder","rowDim","colDim","channelDim","Conv3DProgram","Im2ColPackedProgram","itemsPerBlockRow","unrolled","conv2dByMatMul","sharedMatMulDim","outerShapeX","outerShapeFilter","batchMatMulWillBeUnpacked","reshapeWillBeExpensive","originalXTexDataShape","filterReshaped","pointwiseConv","pointwiseConvTexData","conv2dWithIm2Row","x2ColShape","xSqueezed","w2Row","im2ColProgram","im2Col","im2ColReshaped","matmulProgram","Conv2DDerFilterProgram","Conv2DDerInputProgram","Conv3DDerFilterProgram","Conv3DDerInputProgram","conv3DBackpropInputConfig","CHECK_NAN_SNIPPET_UNARY","CropAndResizeProgram","imageShape","boxShape","methodId","inputHeightFloat","inputWidthFloat","heightRatio","inY","widthRatio","inX","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","nextTexelOffset","DepthwiseConv2DDerFilterProgram","DepthwiseConv2DDerInputProgram","DiagProgram","flat","Dilation2DProgram","dilation2DConfig","EXP","EXPM1","FFTProgram","component","exponentMultiplierSnippet","resultDenominator","opString","complexOutputReshaped","FillProgram","valueLoc","FlipLeftRightProgram","FLOOR","FromPixelsProgram","FromPixelsPackedProgram","fromPixelsConfig","tempPixelHandle","uploadPixelDataToTexture","shouldPackDepthwiseConv","GatherNDProgram","stridesType","strideString","flattenIndices","GatherProgram","currentCoords","LRNProgram","rad","powOperator","basis","LRNPackedProgram","LRNConfig","LRNGradProgram","LRNGradConfig","maxInputIsTransposed","maxInput","maxInputValues","reshapedOutput","maxPoolProgram","MaxPool2DBackpropProgram","MaxPool3DBackpropProgram","maxPoolGrad3DConfig","maxPool3dPositionsProgram","maxPoolBackpropProgram","maxPoolPositionsProgram","maxPoolBackPropProgram","poolOutput","meanInputIsTransposed","meanInput","meanInputValues","meanOutShape","meanImpl","MirrorPadProgram","unpackedCoords","MirrorPadPackedProgram","cLimit","padSetup","MultinomialProgram","seedLoc","realDiv","SUB","maxLogitsReshaped","sumExpReshaped","probs","NEG","OneHotProgram","numIndices","PadProgram","PadPackedProgram","componentSetup","paddingArea","ResizeBilinearProgram","effectiveInSize","effectiveOutSize","sourceFracIndexRC","ResizeBilinearPackedProgram","ResizeBilinearBackpropProgram","ResizeNearestNeighborProgram","roundBase","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","centerXString","centerYString","fillSnippet","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","SegmentOpProgram","segOpInfo","segOpType","checkValueOutOfBounds","checkSegmentIdOutOfBounds","segOpCompute","rangeInfo","tileInfo","regex","opts","exact","Configs","table_width","table_truncate","dtype_test_lim","table_max_row","table_max_col_in_console","utils","Utils","__in_object","df_list","df_object","duplicate_col_count","max_length","column","col_name","column_length","null_array","DataFrame","column_set","df_columns","not_exist","col_index","row_value","new_arr","Series","_set_column_property","col_vals","col_data","col_names","column_names","addColumn","csvFilePath","csvContent","require","writeFileSync","webCSV","encodeURI","params_needed","_throw_wrong_params_error","to_drop","new_col_data","new_dtype","col_idx","dtypes","old_cols","new_columns","df","__set_col_property","__update_frame_in_place","__key_in_object","new_data","new_index","data_idx","__remove_arr","row_data_tensor","tf","__set_index","indexLoc","row_len","indx","shuffled_index","iloc","other","__frame_is_compactible_for_operation","__get_ops_tensors","sum_vals","__get_df_from_tensor","operands","__get_tensor_and_idx","tensor_vals","sf","arraySync","col_data_tensor","median","__median","std","__count_nan","dp","new_vals","__round","ops","df_data","temp_val","temp_data","curr_val","__get_col_values","__cum_ops","inplace","copy","__reset_index","drop","numeric_df","select_dtypes","stats_arr","col_series","_stats","include","original_col_vals","__supported_dtypes","val_sums","temp_sum","abs_data","t_axis","operators","column_index","operator","data_value","elem","eval","new_df","column_name","data_length","new_val","new_dtypes","__get_t","new_col_names","col_dict","key_column","data1","data2","column_1_Unique","__unique","column_2_unique","col_value","col2_value","column_Unique","GroupBy","__arr_to_obj","__temp","final_data","nan_val","__isna","df_values","index_data","__is_function","callable","callable_data","new_row","__is_1D_array","__logical_ops","new_col_data_obj","temp_col_data","replaced_arr","old_arr","inner_arr","logical_type","int_vals","__is_number","series","__map_int_to_bool","new_array","__is_undefined","tensors_arr","this_tensor","other_tensor","new_values","Plot","new_types","col_types","col_values","new_col_values","temp_col","new_col_obj","cname","_unique","_index","data_set","_nunique","old_col_names","old_index","row_index","asc","index_val","__sort_by","column_val","row_data","col_obj","_res","_get_row_and_col_values","index_arr","df_index","sorted_val","__sort","duplicate_obj","__get_duplicate","indexs","row_i","df2","__is_object","d_types","Ndframe","NDframe","_read_array","_read_object","__is_string","__replace_undefined_with_NaN","_set_col_types","row_arr","data_arr","infer","new_idx","temp_arr","records","header","csv_str","json_arr","get_width","get_truncate","max_row","get_max_row","max_col_in_console","get_max_col_in_console","table_config","col_len","sub_idx","values_1","value_2","first_4_cols","last_3_cols","df_subset_1","df_subset_2","truncate","table_data","table","key_col","data_tensors","col1_index","col2_index","col1_value","key2","group_col_name","key1","group_col","ops_name","ops_map","is_array","local","count_group","arithemetic","to_DataFrame","operations","toLocaleLowerCase","key_1","key_val","key_2","k_data","key_data","ndframe","isColumnSplit","row_split","__range","row_idx","data_values","row_val","max_rowIndex","max_colIndex","final_row","__convert_2D_to_1D","__check_series_op_compactibility","div_result","tensor1","tensor2","_throw_str_dtype_error","_remove_nans","max_result","sorted_values","arr_obj","range_idx","sorted_idx","_sort_arr_with_index","is_callable","s_data","data_dict","__bool_ops","old_values","isna_vals","isna","ascending","sorted_index","sort_values","b_ops","r_series","l_series","l_val","r_val","Boolean","el","Str","timeseries","TimeSeries","preprocessed","__create_new_sf_from","f_char","l_char","new_str","position","final_arr","l_str","r_str","searchValue","replaceValue","startIndex","endIndex","splitVal","valToJoin","joinChar","r_char","new_char","__in_format","__monthName","__weekName","format_values","generate_format","date_list","date_string","format_dateString","__apply_format","valueDate","__is_validDate","is_timestamp","string2int","format_list","int2string","date_instance","toDateString","__date_ops","getMonth","getHours","getDay","getFullYear","getDate","getSeconds","getMinutes","to_datetime","destructive","selected","population","cols_len","cols_arr","first_col_len","rows_len","rows_arr","temp_row","isSeries","full_arr","ele","arr_val","lim","int_tracker","float_tracker","string_tracker","bool_tracker","get_dtype_test_lim","__checker","arr_map","return_val","null_count","val_count","result_arr","ele_arr","modes","arr_ele","gen_num","randi","recursive","recur_val","outer_val","tensor_data","zero_data","isNode","temp_obj","rslt_obj","arr1","arg1","read_csv","configs","tfdata","read_json","read_excel","sheet","header_index","data_index","workbook","XLSX","worksheet","Sheets","SheetNames","R","C","cell_ref","how","on","left_col_index","right_col_index","left_index","right_index","left_key_dict","right_key_dict","left_values","right_values","left_value","left_key_comb","left_value_filter","right_value","right_key_comb","right_value_filter","__create_columns","outer","inner","left_merge","right_merge","left_col","right_col","column_duplicate","temp_column","basic","left_keys","right_keys","key_array","left_row","left_i","left_row_row","right_row","r_i","right_row_row","inner_data","nan_array","merge","LabelEncoder","in_data","output_data","OneHotEncoder","onehot_data","__zeros","elem_index","MinMaxScaler","StandardScaler","date_range","period","freq","freq_list","freq_split","start_date","end_date","start_range","end_range","freq_type","start_year","end_year","month_end","day_end","range_array","offset_count","month_range","set_dateProps","toLocalString","date","ftype","rslt","d_array","r_array","new_date","valueOf","setYear","setMonth","setSeconds","setDate","setHours","setMinutes","toLocaleString","end_month","minus","y_val","m_range","prefix_sep","prefix_labels","get_dummies","is_dataframe","name_column","column_data","one_hotColumns","one_hotData","dt","final_columns","_version","Plotly","ret_params","__get_plot_params","this_config","trace","newPlot","xaxis","yaxis","____check_if_cols_exist","c_name","hoverinfo","automargin","cols_to_plot","cols_2_show","cols_data","root","parser_exit","SyntaxError","logHypot","_b","plus","loh","re","im","xx","cosm1","noIM","oneMinus","onePlus","places","E","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","P","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","cmp","xdL","ydL","xd","yd","pr","Ctor","sd","tinyPow","taylorSeries","times","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3","t3plusx","isZero","toExponential","divide","eq","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","inverseCosine","halfPi","isNeg","getPi","inverseHyperbolicCosine","lte","ln","inverseHyperbolicSine","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","px","isNegative","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","carry","getPrecision","sine","sin2_x","squareRoot","tangent","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","d0","n0","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","multiplyInteger","compare","aL","bL","subtract","more","prodL","qd","remL","rem0","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","guard","c0","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","pi","useDefaults","defaults","getRandomValues","randomBytes","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","p2","A","B","D","gcd","eps","cont","rec","excludeWhole","whole","dec","cycLen","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","asciiSize","baseProperty","string","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","tag","isFunc","stacked","subValue","objectCreate","baseCreate","proto","isSymbol","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","isPrototype","nativeKeys","nativeKeysIn","isProto","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","symbolProto","symbolToString","baseToString","stringToPath","baseSlice","baseIndexOf","strSymbols","chrSymbols","freeExports","nodeType","freeModule","allocUnsafe","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","setToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","types","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","hasUnicode","unicodeSize","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","CLONE_DEEP_FLAG","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsMap","baseUnary","nodeIsMap","baseIsRegExp","nodeIsRegExp","isRegExp","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseKeysIn","baseForOwn","baseIteratee","baseExtremum","baseGt","resolver","memoized","Cache","basePropertyDeep","castFunction","toInteger","MAX_ARRAY_LENGTH","nativeMin","toFinite","remainder","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","reTrimEnd","chars","stringSize","omission","strLength","newEnd","baseValues","matrix","predictable","randomSeed","_extends","freeze","MATRIX_OPTIONS","NUMBER_OPTIONS","is","extend","prop","deepStrictEqual","dependencies","meta","assertAndCreate","scope","deps","properties","pickShallow","stripOptionalNotation","dependency","isOptionalDependency","missingDependencies","assertDependencies","isFactory","createComplexClass","mathjs","phi","strRe","strIm","hasBase","isClass","hasher","hash","BigNumber","createBigNumberPi","createBigNumberClass","_ref","isBigNumber","fromJSON","createMatrixClass","Matrix","isMatrix","storage","datatype","subset","replacement","skipZeros","numberFactory","_ref2","createFractionClass","notation","newExp","valueWithoutExp","valueStr","toEngineering","lowerExp","upperExp","rounded","looksLikeFraction","formatArray","syntax","DimensionError","relation","IndexError","arraySize","_validate","dimNext","validate","validateIndex","_resize","oldLen","newLen","unsqueeze","_unsqueeze","ii","getArrayDataType","typeOf","itemType","isDimensionError","isIndexError","createDenseMatrixClass","DenseMatrix","_data","_size","_datatype","preprocess","isScalar","_getSubmatrix","last","_set","submatrix","sSize","iSize","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","createDenseMatrix","isDenseMatrix","getDataType","indexI","sizeArray","flatArray","totalSize","sizeIndex","tmpArray2","tmpArray","_reshape","me","diagonal","kSuper","kSub","_value","swapRows","_swapRows","_createTyped2","createTyped","typed","conversions","to","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","deepForEach","createIsInteger","createIsNumeric","createIsNaN","isNaNNumber","Unit","createEqualScalar","complexEquals","equalBase","createNumber","unit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","createApply","_apply","tran","I","J","createMultiplyScalar","_normalize","multiply","baseFormatter","2","8","16","createBaseFormatterFactory","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createSqrt","_sqrtNumber","createConj","conjugate","createMode","isNumeric","_mode","createSparseMatrixClass","equalScalar","SparseMatrix","_values","_ptr","_createFromArray","_createFromMatrix","ptr","_getsubset","kk","mvalues","mindex","mptr","_setsubset","x0","y0","_getValueIndex","_insert","k1","_toArray","createSparseMatrix","isSparseMatrix","density","_remove","colIndex","rowIndex","r1","_i2","_i3","_j","minRow","maxRow","minColumn","maxColumn","invoke","_k","_i5","_map","_k2","_i7","_forEachRow","kx","ky","vx","vy","createMatrix","_create","createAlgorithm01","denseMatrix","sparseMatrix","adata","asize","adt","bvalues","bindex","bptr","bsize","bdt","cf","cdata","mark","createAlgorithm04","avalues","aindex","aptr","cvalues","cindex","cptr","xa","xb","wa","wb","createAlgorithm10","createAlgorithm13","bdata","csize","_iterate","av","bv","cv","createAlgorithm14","createAlgorithm03","createAlgorithm05","wai","wbi","vc","createAlgorithm11","createAlgorithm12","createAlgorithm07","_scatter","va","vb","createIdentity","_identity","_identityVector","Big","noBignumber","noFraction","createSize","noMatrix","createCompare","algorithm03","algorithm05","algorithm12","algorithm13","algorithm14","createSmaller","algorithm07","createLarger","createFibonacciHeapClass","smaller","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","_cascadingCut","isFibonacciHeap","insert","extractMinimum","numberOfChildren","tempRight","numRoots","_linkNodes","_findMinimumNode","_decreaseKey","createAdd","addScalar","algorithm01","algorithm04","algorithm10","signatures","createDot","multiplyScalar","conj","_validateDim","aIsColumn","bIsColumn","_c","_c2","_c3","xindex","xvalues","yindex","yvalues","xLen","yLen","ySize","createAbs","createMultiply","algorithm11","_validateMatrixDimensions","size1","size2","_multiplyMatrixVector","arows","acolumns","af","mf","brows","ib","vbi","ka0","ka1","ka","ia","ic","_multiplyMatrixMatrix","bcolumns","jb","kb0","kb1","cij","kb","vbij","p0","xsize","ysize","_multiplyVectorVector","alength","_multiplyVectorDenseMatrix","_multiplyVectorMatrix","ArgumentsError","isArgumentsError","createPartitionSelect","_partitionSelect","quickSelect","pivot","createBignumber","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","outputType","inputType","improveErrorMessage","details","createSubtract","unaryMinus","checkEqualDimensions","createDivideScalar","numeric","createSpaClass","Spa","_heap","isSpa","accumulate","heap","swap","nodei","nodej","createLup","divideScalar","_denseLUP","lvalues","lindex","lptr","lsize","uvalues","uindex","uptr","usize","pvCo","pvOc","_loop","spa","vkj","vik","vjj","pabsv","absv","L","U","_sparseLUP","ldata","udata","vij","createDet","lup","decomp","det","evenCycles","_det","createInv","_inv","ABig","rBig","Ac","Bc","Ar","Br","createDivide","inv","DEFAULT_NORMALIZATION","createVariance","_var","_varDim","normalization","createStd","_std","createMedian","partitionSelect","_median","mid","middle2","containsCollections","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","isNegativeNumber","isPositiveNumber","isZeroNumber","isComplex","isFraction","isUnit","isCollection","isRange","isResultSet","isHelp","isDate","isNull","isUndefined","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","LN2","negate","roundDigits","splitNumber","coefficients","missingZeros","expDiff","decimalIdx","decimals","decimalVal","splitValue","pp","first","DBL_EPSILON","EPSILON","nearlyEqual","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","GLOBAL","startdenom","significance","overflow","oldRandom","ARC4","keylen","S","typ","mixkey","smear","stringseed","tostring","autoseed","plugins","use_entropy","entropy","arc4","resetGlobal","xor128","xorwow","xorshift7","xor4096","tychei","sr","Alea","mash","s0","xg","prng","double","quick","XorGen","strseed","X","math","nodecrypto","shortseed","msCrypto","browser","pass","is_math_call","isFullwidthCodePoint","astralRegex","ansiStyles","ESCAPES","wrapAnsi","code","insideEscape","escapeCode","visible","leftEscape","codePointAt","codes","colorConvert","wrapAnsi16","wrapAnsi256","wrapAnsi16m","rgb","styles","modifier","bold","italic","underline","hidden","strikethrough","color","black","red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","grey","groupName","styleName","style","ansi2ansi","rgb2rgb","ansi","ansi256","ansi16m","suite","ansi16","cssKeywords","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","hcg","apple","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","smin","lmin","hi","sl","vmin","wh","bl","ratio","hr","mult","colorString","char","integer","hue","chroma","mg","pure","route","fromModel","routes","toModel","wrappedFn","conversion","wrapRounded","raw","wrapRaw","link","wrapConversion","cur","models","buildGraph","adjacents","adjacent","deriveBFS","_isNumber2","_interopRequireDefault","_isString2","_stringWidth","__esModule","alignments","subject","containerWidth","alignment","subjectWidth","availableWidth","alignLeft","alignRight","halfWidth","alignCenter","_alignString","index1","_wrapCell","columnWidth","useWrapWord","_calculateCellWidthIndex","valueWidth","index0","_max2","_isBoolean2","_calculateCellHeight","tableWidth","rowSpanIndex","cellHeightIndex","wrapWord","_mapValues2","_values2","_trimEnd2","_makeStreamConfig","_drawRow","_drawBorder","_stringifyTableData","_truncateTableData","_mapDataUsingRowHeightIndex","_alignTableData","_padTableData","_calculateRowHeightIndex","prepareData","rowHeightIndex","userConfig","columnWidthIndex","paddingLeft","paddingRight","empty","columnCount","literalRow","border","drawBorderTop","drawBorderBottom","stdout","drawBorderJoin","drawBorder","columnSizeIndex","topBody","topJoin","joinBody","joinJoin","joinLeft","joinRight","bottomBody","bottomJoin","bottomRight","bodyLeft","bodyJoin","bodyRight","drawHorizontalLine","singleLine","realRowIndex","rowHeight","rowCount","_table","_cloneDeep2","_isUndefined2","_times2","_getBorderCharacters","_validateConfig","_calculateMaximumColumnWidthIndex","makeBorder","columnDefault","maximumColumnWidthIndex","makeColumns","_flatten2","unmappedRows","mappedRows","cellLine","index2","_drawTable","_makeConfig","_validateTableData","cellWidthIndex","_truncate2","content","refVal","refVal1","dataPath","parentData","parentDataProperty","rootData","vErrors","errors","key0","schema","schemaPath","additionalProperty","refVal2","pattern0","refVal3","refVal4","valid1","errs_1","schema1","enum","i1","allowedValues","errs__1","ruleErr1","columnNumber","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","return","_wrapString","_wrapWord","cellValue","cellLines","lineNr","lineChunks","_sliceAnsi","subjectSlice","chunks","onlyFirst","stripAnsi","emojiRegex","ansiRegex","notOk","undef","_types","anyType","_ignore","_conversions","ignore","findTypeByName","typeName","findInArray","hint","findTypeIndex","findTypeName","stringifyParams","typeNames","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","matches","filterConversions","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","test1","tests","compileTests","varIndex","lastTest","testRestParam","getParamAtIndex","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","uniq","flatMap","_name","matchingSignatures","nextMatchingDefs","actualType","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parsedParam","isInvalidParam","parseSignature","notNull","parsedSignature","conflictingSignature","hasOverlap","len1","len2","restParam1","restParam2","hasConflictingParams","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fns","fnConvert","compiledConversions","fnPreprocess","compileArgsPreprocessing","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","iStart","iEnd","generic","arg0","createSignaturesMap","array1","array2","getName","extractSignatures","validateUnique","_fn","addType","beforeObjectTest","addConversion","cptable","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","Buffer_from","nbfs","enc","mdl","mdb","sbcs_encode","cp","EE","ee","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","jj","dbcs_decode","utf8_d","ww","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","F","dash","tt","o64","c3","e2","e3","e4","isstr","hascp","DO_NOT_EXPORT_JSZIP","JSZipSync","globalThis","$","1","_dereq_","_keyStr","utf8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","getContent","getCompressedContent","3","STORE","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","crc","getTypeOf","iTop","5","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","6","base64","dir","createFolders","compression","comment","7","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","9","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","alloc","12","Uint8ArrayReader","NodeBufferReader","13","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","fileAdd","dataType","prepareFileAttrs","parentFolder","folderAdd","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","filename","relativePath","fileClone","folder","newFolder","kids","generate","writer","dirEnd","zipData","localDirLength","centralDirLength","compressionName","zipPart","CENTRAL_DIRECTORY_END","finalize","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","17","arraybuffer","uint8array","blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","18","sig0","sig1","sig2","sig3","19","20","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","21","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","22","ZipEntry","jszipProto","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","windowBits","memLevel","strategy","opt","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflate","inflator","next_out_utf8","tail","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","32","trees","adler32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","head","total_in","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","extra","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","33","xflags","extra_len","34","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","TYPE","BAD","ZSWAP32","InflateState","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","updatewindow","inflateInfo","36","lbase","lext","dbase","dext","lens_index","table_index","incr","used","huff","base_index","MAXBITS","offs","extra_index","37","38","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","39","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","utf16leread","utf16beread","_getchar","_getansi","Base64","e1","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","Q","parse_date_code","b2","dow","dout","T","H","date1904","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","getTimezoneOffset","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","V","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","outl","commaify","_general_num","_general","write_num","pct1","write_num_exp","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","ri","ff","aval","den","rr","myn","myd","write_num_f1","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","ssm","bt","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","m1","m2","choose_fmt","load_entry","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","signed_crc_table","bstr","crc32_buf_8","_fs","CFB","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","ct","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","payload","MSSZ","new_buf","cnt","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","cdirs","start_cd","fcnt","fi","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","clens","cmap","MAX","maxlen","ccode","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read_file","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","saveAs","chrome","downloads","revokeObjectURL","appendChild","click","removeChild","Folder","ks","o2","evert_key","K","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","safegetzipfile","getzipfile","getzipdata","safe","getdatabin","getzipstr","zip_add_file","zip_new","resolve_path","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encregex","coderegex","encodings","rencoding","unescapexml","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","orig","utf8readb","corpus","utf8readc","mtcache","entities","vt_cache","matchtag","htmldecode","vtregex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","oo","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","cstr","decode_range","encode_range","cs","ce","safe_decode_range","format_cell","XF","numFmtId","safe_format_cell","sheet_to_workbook","sheets","sheet_add_aoa","_ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","O","_crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","parse_TypedPropertyValue","parse_dictionary","CodePage","pid","parse_BLOB","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecHeadingPair","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","fSharedNote","parse_BOF","BIFFVer","write_BOF","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","ref","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","push_value","topic","ETH","eth_to_sheet","eth_to_aoa","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet","firstbyte","prn_to_aoa_str","prn_to_sheet_str","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","font","shadow","outline","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","align","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","xmlns","main","Count","uniqueCount","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PadArray","InitialCode","XorMatrix","XorRor","crypto_CreateXorArray_Method1","byte1","byte2","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","G","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","pt","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","themes","NumberFmt","formatCode","parse_numFmts","Fonts","condense","vertAlign","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","grbit","write_FontFlags","sss","charset","write_BrtFont","write_FONTS_bin","write_FILLS_bin","write_BrtBorder","write_BORDERS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","xfId","builtinId","write_BrtStyle","write_STYLES_bin","write_DXFS_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_TABLESTYLES_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_ExtProp","extType","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_FullColorExt","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","run","write_StrRun","write_BrtCommentText","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml_sheetpr","sheetPr","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","sviewregex","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","parse_ws_xml_data","sdata","sstr","ftag","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","margin","relc","tooltip","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","ncell","write_BrtCellIsst","write_BrtCellSt","d100","write_RkNumber","write_BrtCellRk","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_BrtBeginWsView","write_WSVIEWS2","write_BrtColInfo","write_COLINFOS","cap","write_CELLTABLE","write_BrtSheetProtection","write_SHEETPROTECT","write_AUTOFILTER","write_BrtBeginMergeCells","write_MERGECELLS","locidx","write_BrtHLink","write_HLINKS","write_BrtMargins","write_BrtCellIgnoreEC","write_IGNOREECS","write_LEGACYDRAWING","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","vistab","write_BrtBookView","write_BOOKVIEWS","write_BUNDLESHS","parse_ws","ai","seencol","R_n","aii","relId","Rel","rfx","tmpref","parse_ws_bin","mtch","ridx","parse_ws_xml_dim","svs","parse_ws_xml_sheetviews","coli","colm","colM","parse_ws_xml_cols","afilter","parse_ws_xml_autofilter","_merge","hlink","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","parse_ws_xml","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","nf","sid","StyleID","interiors","Parent","UTC","safe_format_xlml","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_props_xlml","write_sty_xlml","write_names_xlml","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","PSCLSID","parse_xlscfb","CompObj","WorkbookP","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","parse_compobj","lastcell","cmnt","rngC","rngR","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","parse_workbook","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","ArchID","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","display","idObj","stAuthor","parse_NoteSh","Info","Data","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","parse_FilePassHeader","XorArrayIndex","XorArray","verificationBytes","verifier","Value","crypto_DecryptData_Method1","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkMoniker","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","cexts","cchComment","themeXML","parse_frtHeader","area","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","o1","write_FormulaValue","o3","write_Formula","write_Number","write_Bes","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_Font","write_FONTS_biff8","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","fix_write_opts","write_biff8_buf","write_ws_biff2","write_biff2_buf","html_to_sheet","mtch2","split_regex","hd","midx","colspan","rowspan","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","get_computed_style","ownerDocument","defaultView","getComputedStyle","get_get_computed_style_function","getPropertyValue","number_formats","parse_content_xml","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","fixed","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","parse_cs_bin","parse_cs_xml","parse_cs","dfile","drelsp","chartp","parse_drawing","crelsp","csheet","nc","parse_Cache","parse_chart","parse_ds","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","textMatch","parse_comments_xml","parse_cmnt","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_sst_bin","parse_sst_xml","parse_sst","parse_theme","parse_sty_bin","parse_sty","parse_xlink_bin","parse_xlink","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_wb","propdata","parse_ext_props","toks","parse_cust_props","bookDeps","parse_cc_bin","parse_cc_xml","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","W","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","parse_TransformInfoHeader","ename","cmode","parse_Primary","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","write_vt","write_cust_props","wsrels","need_vml","rId1","write_sty","f1","f3","write_ct","read_plaintext","read_prn","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","zip_read","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","cn","check_wb","write_stxt_type","wbpath","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","fill_vba_xls","write_xlscfb","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","Readable","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","__webpack_module_cache__","__webpack_require__","moduleId","loaded","__webpack_modules__","amdD","amdO","getter","definition","nmd"],"mappings":"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ChCgiK,EAAe,GAAKrlK,OAAOopB,KAAK27I,GAAgBtnK,OAChD,MAAM6nK,EAAe,IAAI/hJ,GAAa8hJ,EAAgB7gK,GACtDygK,EAAc31J,SAAQ,CAACi2J,EAAoB7nK,KACvC,IAAK,IAAIm6B,EAAI,EAAGA,EAAIpqB,EAAS,GAAIoqB,IAC7B,IAAK,IAAI10B,EAAI,EAAGA,EAAIsK,EAAS,GAAItK,IAC7BmiK,EAAarhK,IAAI+gK,EAAYtkK,IAAIm3B,EAAG0tI,EAAoBpiK,GAAI00B,EAAGn6B,EAAGyF,MAM9E,MAAMsG,EAAclF,EAAMlB,QAE1B,OADAoG,EAAYmvE,GAASysF,EAAe,GAC7B,CACHG,aAAcF,EAAahhK,OAC3BmF,cACA7C,WClFD,MCkHD6+J,GAAgB,CAClBpqB,GACAK,GACAE,GACAC,GACAzC,GACA0C,GACAO,GACAI,GACAE,GACAE,GACAE,GACAC,GACAC,GACAG,GACAC,GACAqD,GACAC,GACA,GACA,GACAvF,GACA+G,GACAoB,GACAU,GACA1M,GACA6M,GACAG,GACAvN,GACAwN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACAwB,GACAhb,GACA,GACA+Z,GACAM,GACAE,GACAE,GACAE,GACAqE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAE,GACAa,GACAK,GACAE,GACAthB,GACAuhB,GACA3R,GACA4R,GACAC,GACAC,GACAxhB,GACA0hB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAe,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA7K,GACAwL,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACArmB,GACAwmB,GACAE,GACAlmB,GACAmmB,GACA1mB,GACAC,GACA4C,GACA8jB,GACA,GACAgD,GACA,GACAi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,GACA,GACA,GACA,GACA,GACAxJ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAoC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAe,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAyB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GDlPoC,CACpCt2L,WAAYwT,GACZW,YAAa,QACbmO,WA3DG,SAA4BntB,GAC/B,MAAM,OAAEogB,EAAM,QAAE5b,EAAO,MAAEynB,GAAUjsB,GAC7B,EAAEgG,EAAC,WAAEQ,GAAe4Z,GACpB,YAAE3Z,GAAgBwlB,EAClBimB,EAAQlsC,EAAEV,MAAM9G,OAChBq8J,EAAY,GAClB,IAAIx0J,EAAO,EACX,MAAMg0E,EAAc,GAAgC,CAACh0E,GAAO6rC,GAC5D,IAAIwoH,EAAY10J,EACG,MAAfq0E,IACAqgF,EAAY,GAAU,CAAEt6I,OAAQ,CAAEpa,KAAKxB,UAASynB,MAAO,CAAEvkB,KAAM2yE,KAC/DwgF,EAAU33J,KAAKw3J,GACfr0J,EAAO,GAA8B,EAAG6rC,GAAO,IAEnD,MAAMW,EAAW,GAA0C6nH,EAAUp1J,MAAOe,EAAMI,GAC5E8tE,EAAS,GAAmB,CAACmmF,EAAUp1J,M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,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ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","file":"bundle.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","module.exports = require(\"regenerator-runtime\");\n","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n constructor(backend, dataMover) {\n this.backend = backend;\n this.dataMover = dataMover;\n this.data = new WeakMap();\n this.dataIdsCount = 0;\n }\n get(dataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n set(dataId, value) {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n has(dataId) {\n return this.data.has(dataId);\n }\n delete(dataId) {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n numDataIds() {\n return this.dataIdsCount;\n }\n}\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend {\n /**\n * Decrease the complex ref count for the dataId, this is useful for WebGL\n * backend to keep the real and imag components of the complex tensor in sync\n * with the engine. WASM and node do not have internal ref count, they will\n * use on the default implementation.\n * @param dataId\n */\n decComplexRef(dataId) {\n return;\n }\n time(f) {\n return notYetImplemented('time');\n }\n read(dataId) {\n return notYetImplemented('read');\n }\n readSync(dataId) {\n return notYetImplemented('readSync');\n }\n numDataIds() {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId) {\n return notYetImplemented('disposeData');\n }\n write(values, shape, dtype) {\n return notYetImplemented('write');\n }\n move(dataId, values, shape, dtype) {\n return notYetImplemented('move');\n }\n memory() {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision() {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon() {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n batchMatMul(a, b, transposeA, transposeB) {\n return notYetImplemented('batchMatMul');\n }\n fusedBatchMatMul({ a, b, transposeA, transposeB, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedBatchMatMul');\n }\n slice(x, begin, size) {\n return notYetImplemented('slice');\n }\n stridedSlice(x, begin, end, strides) {\n return notYetImplemented('stridedSlice');\n }\n unstack(x, axis) {\n return notYetImplemented('unstack');\n }\n reverse(a, axis) {\n return notYetImplemented('reverse');\n }\n concat(tensors, axis) {\n return notYetImplemented('concat');\n }\n neg(a) {\n return notYetImplemented('neg');\n }\n add(a, b) {\n return notYetImplemented('add');\n }\n addN(tensors) {\n return notYetImplemented('addN');\n }\n subtract(a, b) {\n return notYetImplemented('subtract');\n }\n multiply(a, b) {\n return notYetImplemented('multiply');\n }\n realDivide(a, b) {\n return notYetImplemented('realDivide');\n }\n floorDiv(a, b) {\n return notYetImplemented('floorDiv');\n }\n sum(x, axes) {\n return notYetImplemented('sum');\n }\n prod(x, axes) {\n return notYetImplemented('prod');\n }\n unsortedSegmentSum(x, segmentIds, numSegments) {\n return notYetImplemented('unsortedSegmentSum');\n }\n argMin(x, axis) {\n return notYetImplemented('argMin');\n }\n argMax(x, axis) {\n return notYetImplemented('argMax');\n }\n equal(a, b) {\n return notYetImplemented('equal');\n }\n notEqual(a, b) {\n return notYetImplemented('notEqual');\n }\n less(a, b) {\n return notYetImplemented('less');\n }\n lessEqual(a, b) {\n return notYetImplemented('lessEqual');\n }\n greater(a, b) {\n return notYetImplemented('greater');\n }\n greaterEqual(a, b) {\n return notYetImplemented('greaterEqual');\n }\n logicalNot(a) {\n return notYetImplemented('logicalNot');\n }\n logicalAnd(a, b) {\n return notYetImplemented('logicalAnd');\n }\n logicalOr(a, b) {\n return notYetImplemented('logicalOr');\n }\n where(condition) {\n return notYetImplemented('where');\n }\n select(condition, a, b) {\n return notYetImplemented('select');\n }\n topk(x, k, sorted) {\n return notYetImplemented('topk');\n }\n min(x, axes) {\n return notYetImplemented('min');\n }\n minimum(a, b) {\n return notYetImplemented('minimum');\n }\n mod(a, b) {\n return notYetImplemented('mod');\n }\n max(x, axes) {\n return notYetImplemented('max');\n }\n maximum(a, b) {\n return notYetImplemented('maximum');\n }\n all(x, axes) {\n return notYetImplemented('all');\n }\n any(x, axes) {\n return notYetImplemented('any');\n }\n squaredDifference(a, b) {\n return notYetImplemented('squaredDifference');\n }\n ceil(x) {\n return notYetImplemented('ceil');\n }\n floor(x) {\n return notYetImplemented('floor');\n }\n round(x) {\n return notYetImplemented('round');\n }\n sign(x) {\n return notYetImplemented('sign');\n }\n isNaN(x) {\n return notYetImplemented('isNaN');\n }\n isInf(x) {\n return notYetImplemented('isInf');\n }\n isFinite(x) {\n return notYetImplemented('isFinite');\n }\n pow(a, b) {\n return notYetImplemented('pow');\n }\n exp(x) {\n return notYetImplemented('exp');\n }\n expm1(x) {\n return notYetImplemented('expm1');\n }\n softmax(x, dim) {\n return notYetImplemented('softmax');\n }\n log(x) {\n return notYetImplemented('log');\n }\n log1p(x) {\n return notYetImplemented('log1p');\n }\n sqrt(x) {\n return notYetImplemented('sqrt');\n }\n rsqrt(x) {\n return notYetImplemented('rsqrt');\n }\n square(x) {\n return notYetImplemented('square');\n }\n reciprocal(x) {\n return notYetImplemented('reciprocal');\n }\n relu(x) {\n return notYetImplemented('relu');\n }\n relu6(x) {\n return notYetImplemented('relu6');\n }\n prelu(x, a) {\n return notYetImplemented('prelu');\n }\n elu(x) {\n return notYetImplemented('elu');\n }\n eluDer(dy, y) {\n return notYetImplemented('eluDer');\n }\n selu(x) {\n return notYetImplemented('selu');\n }\n int(x) {\n return notYetImplemented('int');\n }\n clip(x, min, max) {\n return notYetImplemented('clip');\n }\n abs(x) {\n return notYetImplemented('abs');\n }\n complexAbs(x) {\n return notYetImplemented('complexAbs');\n }\n sigmoid(x) {\n return notYetImplemented('sigmoid');\n }\n softplus(x) {\n return notYetImplemented('softplus');\n }\n sin(x) {\n return notYetImplemented('sin');\n }\n cos(x) {\n return notYetImplemented('cos');\n }\n tan(x) {\n return notYetImplemented('tan');\n }\n asin(x) {\n return notYetImplemented('asin');\n }\n acos(x) {\n return notYetImplemented('acos');\n }\n atan(x) {\n return notYetImplemented('atan');\n }\n atan2(a, b) {\n return notYetImplemented('atan2');\n }\n sinh(x) {\n return notYetImplemented('sinh');\n }\n cosh(x) {\n return notYetImplemented('cosh');\n }\n tanh(x) {\n return notYetImplemented('tanh');\n }\n asinh(x) {\n return notYetImplemented('asinh');\n }\n acosh(x) {\n return notYetImplemented('acosh');\n }\n atanh(x) {\n return notYetImplemented('atanh');\n }\n erf(x) {\n return notYetImplemented('erf');\n }\n step(x, alpha) {\n return notYetImplemented('step');\n }\n fusedConv2d({ input, filter, convInfo, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedConv2d');\n }\n conv2d(x, filter, convInfo) {\n return notYetImplemented('conv2d');\n }\n conv2dDerInput(dy, filter, convInfo) {\n return notYetImplemented('conv2dDerInput');\n }\n conv2dDerFilter(x, dY, convInfo) {\n return notYetImplemented('conv2dDerFilter');\n }\n fusedDepthwiseConv2D({ input, filter, convInfo, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedDepthwiseConv2D');\n }\n depthwiseConv2D(input, filter, convInfo) {\n return notYetImplemented('depthwiseConv2D');\n }\n depthwiseConv2DDerInput(dy, filter, convInfo) {\n return notYetImplemented('depthwiseConv2DDerInput');\n }\n depthwiseConv2DDerFilter(x, dY, convInfo) {\n return notYetImplemented('depthwiseConv2DDerFilter');\n }\n conv3d(x, filter, convInfo) {\n return notYetImplemented('conv3d');\n }\n conv3dDerInput(dy, filter, convInfo) {\n return notYetImplemented('conv3dDerInput');\n }\n conv3dDerFilter(x, dY, convInfo) {\n return notYetImplemented('conv3dDerFilter');\n }\n maxPool(x, convInfo) {\n return notYetImplemented('maxPool');\n }\n maxPoolBackprop(dy, x, y, convInfo) {\n return notYetImplemented('maxPoolBackprop');\n }\n avgPool(x, convInfo) {\n return notYetImplemented('avgPool');\n }\n avgPoolBackprop(dy, x, convInfo) {\n return notYetImplemented('avgPoolBackprop');\n }\n avgPool3d(x, convInfo) {\n return notYetImplemented('avgPool3d');\n }\n avgPool3dBackprop(dy, x, convInfo) {\n return notYetImplemented('avgPool3dBackprop');\n }\n maxPool3d(x, convInfo) {\n return notYetImplemented('maxPool3d');\n }\n maxPool3dBackprop(dy, x, y, convInfo) {\n return notYetImplemented('maxPool3dBackprop');\n }\n reshape(x, shape) {\n return notYetImplemented('reshape');\n }\n cast(x, dtype) {\n return notYetImplemented('cast');\n }\n tile(x, reps) {\n return notYetImplemented('tile');\n }\n pad(x, paddings, constantValue) {\n return notYetImplemented('pad');\n }\n transpose(x, perm) {\n return notYetImplemented('transpose');\n }\n gather(x, indices, axis, batchDims = 0) {\n return notYetImplemented('gather');\n }\n gatherND(x, indices) {\n return notYetImplemented('gatherND');\n }\n scatterND(indices, updates, shape) {\n return notYetImplemented('scatterND');\n }\n batchToSpaceND(x, blockShape, crops) {\n return notYetImplemented('batchToSpaceND');\n }\n spaceToBatchND(x, blockShape, paddings) {\n return notYetImplemented('spaceToBatchND');\n }\n resizeBilinear(x, newHeight, newWidth, alignCorners, halfPixelCenters) {\n return notYetImplemented('resizeBilinear');\n }\n resizeBilinearBackprop(dy, x, alignCorners) {\n return notYetImplemented('resizeBilinearBackprop');\n }\n resizeNearestNeighbor(x, newHEight, newWidth, alignCorners, halfPixelCenters) {\n return notYetImplemented('resizeNearestNeighbor');\n }\n resizeNearestNeighborBackprop(dy, x, alignCorners) {\n return notYetImplemented('resizeNearestNeighborBackprop');\n }\n batchNorm(x, mean, variance, offset, scale, varianceEpsilon) {\n return notYetImplemented('batchNorm');\n }\n localResponseNormalization4D(x, radius, bias, alpha, beta) {\n return notYetImplemented('localResponseNormalization4D');\n }\n LRNGrad(dy, inputImage, outputImage, radius, bias, alpha, beta) {\n return notYetImplemented('LRNGrad');\n }\n multinomial(logits, normalized, numSamples, seed) {\n return notYetImplemented('multinomial');\n }\n oneHot(indices, depth, onValue, offValue) {\n return notYetImplemented('oneHot');\n }\n cumsum(x, axis, exclusive, reverse) {\n return notYetImplemented('cumsum');\n }\n nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {\n return notYetImplemented('nonMaxSuppression');\n }\n fft(x) {\n return notYetImplemented('fft');\n }\n ifft(x) {\n return notYetImplemented('ifft');\n }\n complex(real, imag) {\n return notYetImplemented('complex');\n }\n real(input) {\n return notYetImplemented('real');\n }\n imag(input) {\n return notYetImplemented('imag');\n }\n cropAndResize(image, boxes, boxIndex, cropSize, method, extrapolationValue) {\n return notYetImplemented('cropAndResize');\n }\n depthToSpace(x, blockSize, dataFormat) {\n return notYetImplemented('depthToSpace');\n }\n // Aligns with the \"SplitV\" kernel in TensorFlow.\n split(value, sizeSplits, axis) {\n return notYetImplemented('split');\n }\n sparseToDense(sparseIndices, sparseValues, outputShape, defaultValue) {\n return notYetImplemented('sparseToDense');\n }\n diag(x) {\n return notYetImplemented('diag');\n }\n fill(shape, value, dtype) {\n return notYetImplemented('fill');\n }\n onesLike(x) {\n return notYetImplemented('onesLike');\n }\n zerosLike(x) {\n return notYetImplemented('zerosLike');\n }\n linspace(start, stop, num) {\n return notYetImplemented('linspace');\n }\n dispose() {\n return notYetImplemented('dispose');\n }\n}\nfunction notYetImplemented(kernelName) {\n throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n//# sourceMappingURL=backend.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array) {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n/** Clamps a value to a specified range. */\nexport function clamp(min, x, max) {\n return Math.max(min, Math.min(x, max));\n}\nexport function nearestLargerEven(val) {\n return val % 2 === 0 ? val : val + 1;\n}\nexport function sum(arr) {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a, b) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a, b) {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr, msg) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\nexport function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {\n assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\nexport function assertNonNull(a) {\n assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);\n}\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function flatten(arr, result = [], skipTypedArray = false) {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n }\n else {\n result.push(arr);\n }\n return result;\n}\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape) {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\nexport function isScalarShape(shape) {\n return shape.length === 0;\n}\nexport function arraysEqual(n1, n2) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isInt(a) {\n return a % 1 === 0;\n}\nexport function tanh(x) {\n // tslint:disable-next-line:no-any\n if (Math.tanh != null) {\n // tslint:disable-next-line:no-any\n return Math.tanh(x);\n }\n if (x === Infinity) {\n return 1;\n }\n else if (x === -Infinity) {\n return -1;\n }\n else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\nexport function sizeToSquarishShape(size) {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n) {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\nexport function rightPad(a, size) {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\nexport function repeatedTry(checkFn, delayFn = (counter) => 0, maxCounter) {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n tryCount++;\n const nextBackoff = delayFn(tryCount);\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n tryFn();\n });\n}\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(shape, size) {\n let shapeProd = 1;\n let implicitIdx = -1;\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n }\n else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(`Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n }\n else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n if (shapeProd === 0) {\n throw Error(`Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(`The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\nexport function parseAxisParam(axis, shape) {\n const rank = shape.length;\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n // Check for valid range\n assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n // Check for only integers\n assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape, axis) {\n const newShape = [];\n const keptDims = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return { newShape, keptDims };\n}\nexport function getTypedArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function getArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else if (dtype === 'string') {\n values = new Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function checkConversionForErrors(vals, dtype) {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype) {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType, newType) {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\nexport function isTypedArray(a) {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\nexport function bytesPerElement(dtype) {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n }\n else if (dtype === 'complex64') {\n return 8;\n }\n else if (dtype === 'bool') {\n return 1;\n }\n else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr) {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n/** Returns true if the value is a string. */\nexport function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexport function isBoolean(value) {\n return typeof value === 'boolean';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function inferDtype(values) {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n }\n else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n }\n else if (isNumber(values)) {\n return 'float32';\n }\n else if (isString(values)) {\n return 'string';\n }\n else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\nexport function isFunction(f) {\n return !!(f && f.constructor && f.call && f.apply);\n}\nexport function nearestDivisor(size, start) {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\nexport function computeStrides(shape) {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\nfunction createNestedArray(offset, shape, a) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n }\n else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n return createNestedArray(0, shape, a);\n}\nexport function makeOnesTypedArray(size, dtype) {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\nexport function makeZerosTypedArray(size, dtype) {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size);\n }\n else if (dtype === 'int32') {\n return new Int32Array(size);\n }\n else if (dtype === 'bool') {\n return new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(shape, dtype) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n }\n else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n }\n else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\nexport function assertNonNegativeIntegerDimensions(shape) {\n shape.forEach(dimSize => {\n assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(locs, rank, strides) {\n if (rank === 0) {\n return 0;\n }\n else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(index, rank, strides) {\n if (rank === 0) {\n return [];\n }\n else if (rank === 1) {\n return [index];\n }\n const locs = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n//# sourceMappingURL=util_base.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { isPromise } from './util_base';\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n // tslint:disable-next-line: no-any\n constructor(global) {\n this.global = global;\n this.flags = {};\n this.flagRegistry = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n setPlatform(platformName, platform) {\n if (this.platform != null) {\n console.warn(`Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n registerFlag(flagName, evaluationFn, setHook) {\n this.flagRegistry[flagName] = { evaluationFn, setHook };\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n async getAsync(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n get(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n this.flags[flagName] = flagValue;\n return this.flags[flagName];\n }\n getNumber(flagName) {\n return this.get(flagName);\n }\n getBool(flagName) {\n return this.get(flagName);\n }\n getFlags() {\n return this.flags;\n }\n // For backwards compatibility.\n get features() {\n return this.flags;\n }\n set(flagName, value) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n evaluateFlag(flagName) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n setFlags(flags) {\n this.flags = Object.assign({}, flags);\n }\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n populateURLFlags() {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':');\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\nexport function getQueryParams(queryString) {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\nfunction decodeParam(params, name, value) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\nfunction parseValue(flagName, value) {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n else if (`${+value}` === value) {\n return +value;\n }\n throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\nexport let ENV = null;\nexport function setEnvironmentGlobal(environment) {\n ENV = environment;\n}\n//# sourceMappingURL=environment.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace;\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace() {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns;\n if (typeof (window) !== 'undefined') {\n ns = window;\n }\n else if (typeof (global) !== 'undefined') {\n ns = global;\n }\n else if (typeof (process) !== 'undefined') {\n ns = process;\n }\n else if (typeof (self) !== 'undefined') {\n ns = self;\n }\n else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n// tslint:disable-next-line:no-any\nfunction getGlobalMap() {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key, init) {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n }\n else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n//# sourceMappingURL=global_util.js.map","export const Abs = 'Abs';\nexport const Acos = 'Acos';\nexport const Acosh = 'Acosh';\nexport const Add = 'Add';\nexport const AddN = 'AddN';\nexport const All = 'All';\nexport const Any = 'Any';\nexport const ArgMax = 'ArgMax';\nexport const ArgMin = 'ArgMin';\nexport const Asin = 'Asin';\nexport const Asinh = 'Asinh';\nexport const Atan = 'Atan';\nexport const Atanh = 'Atanh';\nexport const Atan2 = 'Atan2';\nexport const AvgPool = 'AvgPool';\nexport const AvgPoolGrad = 'AvgPoolGrad';\nexport const AvgPool3D = 'AvgPool3D';\nexport const AvgPool3DGrad = 'AvgPool3DGrad';\nexport const BatchMatMul = 'BatchMatMul';\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport const Bincount = 'Bincount';\nexport const BroadcastTo = 'BroadcastTo';\nexport const Cast = 'Cast';\nexport const Ceil = 'Ceil';\nexport const ClipByValue = 'ClipByValue';\nexport const Complex = 'Complex';\nexport const ComplexAbs = 'ComplexAbs';\nexport const Concat = 'Concat';\nexport const Conv2D = 'Conv2D';\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport const Conv3D = 'Conv3D';\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport const Cos = 'Cos';\nexport const Cosh = 'Cosh';\nexport const Cumsum = 'Cumsum';\nexport const CropAndResize = 'CropAndResize';\nexport const DenseBincount = 'DenseBincount';\nexport const DepthToSpace = 'DepthToSpace';\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';\nexport const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';\nexport const Diag = 'Diag';\nexport const Dilation2D = 'Dilation2D';\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport const RealDiv = 'RealDiv';\nexport const Elu = 'Elu';\nexport const EluGrad = 'EluGrad';\nexport const Erf = 'Erf';\nexport const Equal = 'Equal';\nexport const Exp = 'Exp';\nexport const ExpandDims = 'ExpandDims';\nexport const Expm1 = 'Expm1';\nexport const FFT = 'FFT';\nexport const Fill = 'Fill';\nexport const FlipLeftRight = 'FlipLeftRight';\nexport const Floor = 'Floor';\nexport const FloorDiv = 'FloorDiv';\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport const GatherV2 = 'GatherV2';\nexport const GatherNd = 'GatherNd';\nexport const Greater = 'Greater';\nexport const GreaterEqual = 'GreaterEqual';\nexport const Identity = 'Identity';\nexport const IFFT = 'IFFT';\nexport const Imag = 'Imag';\nexport const IsFinite = 'IsFinite';\nexport const IsInf = 'IsInf';\nexport const IsNan = 'IsNan';\nexport const LeakyRelu = 'LeakyRelu';\nexport const Less = 'Less';\nexport const LessEqual = 'LessEqual';\nexport const LinSpace = 'LinSpace';\nexport const Log = 'Log';\nexport const Log1p = 'Log1p';\nexport const LogicalAnd = 'LogicalAnd';\nexport const LogicalNot = 'LogicalNot';\nexport const LogicalOr = 'LogicalOr';\nexport const LogSoftmax = 'LogSoftmax';\nexport const LRN = 'LRN';\nexport const LRNGrad = 'LRNGrad';\nexport const Max = 'Max';\nexport const Maximum = 'Maximum';\nexport const MaxPool = 'MaxPool';\nexport const MaxPoolGrad = 'MaxPoolGrad';\nexport const MaxPool3D = 'MaxPool3D';\nexport const MaxPool3DGrad = 'MaxPool3DGrad';\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport const Mean = 'Mean';\nexport const Min = 'Min';\nexport const Minimum = 'Minimum';\nexport const MirrorPad = 'MirrorPad';\nexport const Mod = 'Mod';\nexport const Multinomial = 'Multinomial';\nexport const Multiply = 'Multiply';\nexport const Neg = 'Neg';\nexport const NotEqual = 'NotEqual';\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport const OnesLike = 'OnesLike';\nexport const OneHot = 'OneHot';\nexport const Pack = 'Pack';\nexport const PadV2 = 'PadV2';\nexport const Pool = 'Pool';\nexport const Pow = 'Pow';\nexport const Prelu = 'Prelu';\nexport const Prod = 'Prod';\nexport const Range = 'Range';\nexport const Real = 'Real';\nexport const Reciprocal = 'Reciprocal';\nexport const Relu = 'Relu';\nexport const Reshape = 'Reshape';\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport const ResizeBilinear = 'ResizeBilinear';\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport const Relu6 = 'Relu6';\nexport const Reverse = 'Reverse';\nexport const Round = 'Round';\nexport const Rsqrt = 'Rsqrt';\nexport const ScatterNd = 'ScatterNd';\nexport const Select = 'Select';\nexport const Selu = 'Selu';\nexport const Slice = 'Slice';\nexport const Sin = 'Sin';\nexport const Sinh = 'Sinh';\nexport const Sign = 'Sign';\nexport const Sigmoid = 'Sigmoid';\nexport const Softplus = 'Softplus';\nexport const Sqrt = 'Sqrt';\nexport const Sum = 'Sum';\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport const SplitV = 'SplitV';\nexport const Softmax = 'Softmax';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const Sub = 'Sub';\nexport const SparseToDense = 'SparseToDense';\nexport const StridedSlice = 'StridedSlice';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transpose = 'Transpose';\nexport const Unique = 'Unique';\nexport const Unpack = 'Unpack';\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport const ZerosLike = 'ZerosLike';\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport const FromPixels = 'FromPixels';\nexport const RotateWithOffset = 'RotateWithOffset';\nexport const _FusedMatMul = '_FusedMatMul';\nexport const FusedConv2D = 'FusedConv2D';\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\n//# sourceMappingURL=kernel_names.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport { getGlobal } from './global_util';\nconst kernelRegistry = getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry = getGlobal('gradRegistry', () => new Map());\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName) {\n return gradRegistry.get(kernelName);\n}\nexport function getKernelsForBackend(backendName) {\n const it = kernelRegistry.entries();\n const result = [];\n while (true) {\n const { done, value } = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend,] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config) {\n const { kernelName, backendName } = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config) {\n const { kernelName } = config;\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName) {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(`The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(registeredBackendName, newBackendName) {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig = Object.assign({}, kernelConfig, { backendName: newBackendName });\n registerKernel(newKernelConfig);\n });\n}\nfunction makeKey(kernelName, backendName) {\n return `${backendName}_${kernelName}`;\n}\n//# sourceMappingURL=kernel_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as util from './util';\nexport class Profiler {\n constructor(backendTimer, logger) {\n this.backendTimer = backendTimer;\n this.logger = logger;\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n profileKernel(kernelName, inputs, f) {\n let outputs;\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n const timer = this.backendTimer.time(holdResultWrapperFn);\n if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n }\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n logKernelProfile(kernelProfile) {\n const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);\n });\n });\n }\n}\nexport function checkComputationForErrors(vals, dtype, kernelName) {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\nexport class Logger {\n logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n console.log(`%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${inputShapesDescription}\\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');\n }\n}\n//# sourceMappingURL=profiler.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { computeStrides, isString, rightPad, sizeFromShape } from './util';\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\nexport function tensorToString(vals, shape, dtype, verbose) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\nfunction computeMaxSizePerColumn(vals, shape, dtype, strides) {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\nfunction valToString(val, pad, dtype) {\n let valStr;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n }\n else if (isString(val)) {\n valStr = `'${val}'`;\n }\n else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n }\n else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n return rightPad(valStr, pad);\n}\nfunction boolNumToString(v) {\n return v === 0 ? 'false' : 'true';\n}\nfunction subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0])];\n }\n return [vals[0].toString()];\n }\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n let firstVals = Array.from(vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals = dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\nfunction createComplexTuples(vals) {\n const complexTuples = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]]);\n }\n return complexTuples;\n}\n//# sourceMappingURL=tensor_format.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as base from './util_base';\nexport * from './util_base';\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(value, dtype) {\n if (dtype === 'string') {\n return encodeString(value);\n }\n return toTypedArray([value], dtype);\n}\nfunction noConversionNeeded(a, dtype) {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\nexport function toTypedArray(a, dtype) {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a, dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a);\n }\n else if (dtype === 'int32') {\n return new Int32Array(a);\n }\n else if (dtype === 'bool') {\n const bool = new Uint8Array(a.length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round(a[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now() {\n return env().platform.now();\n}\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(path, requestInits) {\n return env().platform.fetch(path, requestInits);\n}\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { tensorToString } from './tensor_format';\nimport * as util from './util';\nimport { computeStrides, toNestedArray } from './util';\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n constructor(shape, dtype, values) {\n this.dtype = dtype;\n this.shape = shape.slice();\n this.size = util.sizeFromShape(shape);\n if (values != null) {\n const n = values.length;\n util.assert(n === this.size, () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value, ...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n const index = this.locToIndex(locs);\n this.values[index] = value;\n }\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index];\n }\n locToIndex(locs) {\n if (this.rank === 0) {\n return 0;\n }\n else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n indexToLoc(index) {\n if (this.rank === 0) {\n return [];\n }\n else if (this.rank === 1) {\n return [index];\n }\n const locs = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor() {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype);\n }\n}\n// For tracking tensor creation and disposal.\nlet trackerFn = null;\n// Used by chaining methods to call into ops.\nlet opHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn) {\n trackerFn = fn;\n}\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler) {\n opHandler = handler;\n}\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn) {\n deprecationWarningFn = fn;\n}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n constructor(shape, dtype, dataId, id) {\n /** Whether this tensor has been globally kept. */\n this.kept = false;\n this.isDisposedInternal = false;\n this.shape = shape.slice();\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher');\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer() {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype, vals);\n }\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync() {\n return opHandler.buffer(this.shape, this.dtype, this.dataSync());\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array() {\n const vals = await this.data();\n return toNestedArray(this.shape, vals);\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync() {\n return toNestedArray(this.shape, this.dataSync());\n }\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data() {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data;\n try {\n return bytes.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync() {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return data.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /** Returns the underlying bytes of the tensor's data. */\n async bytes() {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data;\n }\n else {\n return new Uint8Array(data.buffer);\n }\n }\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n get isDisposed() {\n return this.isDisposedInternal;\n }\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false) {\n return opHandler.print(this, verbose);\n }\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone() {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false) {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n cast(dtype) {\n this.throwIfDisposed();\n return opHandler.cast(this, dtype);\n }\n variable(trainable = true, name, dtype) {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype);\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n constructor(initialValue, trainable, name, tensorId) {\n super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.trainable = trainable;\n this.name = name;\n }\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue) {\n if (newValue.dtype !== this.dtype) {\n throw new Error(`dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(`shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n dispose() {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport var Rank;\n(function (Rank) {\n Rank[\"R0\"] = \"R0\";\n Rank[\"R1\"] = \"R1\";\n Rank[\"R2\"] = \"R2\";\n Rank[\"R3\"] = \"R3\";\n Rank[\"R4\"] = \"R4\";\n Rank[\"R5\"] = \"R5\";\n Rank[\"R6\"] = \"R6\";\n})(Rank || (Rank = {}));\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nvar UpcastInt32AndMap;\n(function (UpcastInt32AndMap) {\n UpcastInt32AndMap[\"float32\"] = \"float32\";\n UpcastInt32AndMap[\"int32\"] = \"int32\";\n UpcastInt32AndMap[\"bool\"] = \"int32\";\n UpcastInt32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastInt32AndMap || (UpcastInt32AndMap = {}));\nvar UpcastBoolAndMap;\n(function (UpcastBoolAndMap) {\n UpcastBoolAndMap[\"float32\"] = \"float32\";\n UpcastBoolAndMap[\"int32\"] = \"int32\";\n UpcastBoolAndMap[\"bool\"] = \"bool\";\n UpcastBoolAndMap[\"complex64\"] = \"complex64\";\n})(UpcastBoolAndMap || (UpcastBoolAndMap = {}));\nvar UpcastFloat32AndMap;\n(function (UpcastFloat32AndMap) {\n UpcastFloat32AndMap[\"float32\"] = \"float32\";\n UpcastFloat32AndMap[\"int32\"] = \"float32\";\n UpcastFloat32AndMap[\"bool\"] = \"float32\";\n UpcastFloat32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));\nvar UpcastComplex64AndMap;\n(function (UpcastComplex64AndMap) {\n UpcastComplex64AndMap[\"float32\"] = \"complex64\";\n UpcastComplex64AndMap[\"int32\"] = \"complex64\";\n UpcastComplex64AndMap[\"bool\"] = \"complex64\";\n UpcastComplex64AndMap[\"complex64\"] = \"complex64\";\n})(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\nexport function upcastType(typeA, typeB) {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n/** Returns the output type after summation. */\nexport function sumOutType(type) {\n return upcastType(type, 'int32');\n}\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { Tensor } from './tensor';\nimport { upcastType } from './types';\nimport { assert } from './util';\nexport function makeTypesMatch(a, b) {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\nexport function assertTypesMatch(a, b) {\n assert(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\nexport function isTensorInList(tensor, tensorList) {\n return tensorList.some(x => x.id === tensor.id);\n}\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result) {\n const list = [];\n const seen = new Set();\n walkTensorContainer(result, list, seen);\n return list;\n}\nfunction walkTensorContainer(container, list, seen) {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n// tslint:disable-next-line:no-any\nfunction isIterable(obj) {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n//# sourceMappingURL=tensor_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { KernelBackend } from './backends/backend';\nimport { Environment, setEnvironmentGlobal } from './environment';\nimport { getGlobalNamespace } from './global_util';\nimport { Add, Cast } from './kernel_names';\nimport { getGradient, getKernel, getKernelsForBackend } from './kernel_registry';\nimport { Profiler } from './profiler';\nimport { backpropagateGradients, getFilteredNodesXToY } from './tape';\nimport { setTensorTracker, Tensor, Variable } from './tensor';\nimport { getTensorsInContainer } from './tensor_util';\nimport * as util from './util';\nimport { bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape } from './util';\nclass EngineState {\n constructor() {\n // Public since optimizers will use it.\n this.registeredVariables = {};\n this.nextTapeNodeId = 0;\n this.numBytes = 0;\n this.numTensors = 0;\n this.numStringTensors = 0;\n this.numDataBuffers = 0;\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n this.gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n this.kernelDepth = 0;\n this.scopeStack = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n this.numDataMovesStack = [];\n this.nextScopeId = 0;\n this.tensorInfo = new WeakMap();\n this.profiling = false;\n this.activeProfile = {\n newBytes: 0,\n newTensors: 0,\n peakBytes: 0,\n kernels: [],\n result: null,\n get kernelNames() {\n return Array.from(new Set(this.kernels.map(k => k.name)));\n }\n };\n }\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\nexport class Engine {\n constructor(ENV) {\n this.ENV = ENV;\n this.registry = {};\n this.registryFactory = {};\n this.pendingBackendInitId = 0;\n this.state = new EngineState();\n }\n async ready() {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => { });\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n get backend() {\n if (this.pendingBackendInit != null) {\n throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const { name, asyncInit } = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(`The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n backendNames() {\n return Object.keys(this.registryFactory);\n }\n findBackend(backendName) {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const { asyncInit } = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n }\n else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n findBackendFactory(backendName) {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n registerBackend(backendName, factory, priority = 1) {\n if (backendName in this.registryFactory) {\n console.warn(`${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = { factory, priority };\n return true;\n }\n async setBackend(backendName) {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const { success, asyncInit } = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n return true;\n }\n setupRegisteredKernels() {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n disposeRegisteredKernels(backendName) {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n initializeBackend(backendName) {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);\n }\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend) &&\n typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success = backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return { success, asyncInit: true };\n }\n else {\n this.registry[backendName] = backend;\n return { success: true, asyncInit: false };\n }\n }\n catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return { success: false, asyncInit: false };\n }\n }\n removeBackend(backendName) {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n delete this.registryFactory[backendName];\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n getSortedBackends() {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a, b) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n initializeBackendsAndReturnBest() {\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const { success, asyncInit } = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return { name: backendName, asyncInit };\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n moveData(backend, dataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n tidy(nameOrFn, fn) {\n let name = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n }\n else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error('When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error('When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result;\n return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n scopedRun(start, end, f) {\n start();\n try {\n const res = f();\n end();\n return res;\n }\n catch (ex) {\n end();\n throw ex;\n }\n }\n nextTensorId() {\n return Engine.nextTensorId++;\n }\n nextVariableId() {\n return Engine.nextVariableId++;\n }\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n *\n * This method will go away once all kernels are modularized since we won't\n * need to turn off the tape inside runKernel().\n */\n clone(x) {\n const y = this.makeTensorFromDataId(x.dataId, x.shape, x.dtype);\n const inputs = { x };\n const grad = (dy) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = { x: dy };\n const attrs = { dtype };\n return ENGINE.runKernelFunc(backend => backend.cast(dy, dtype), gradInputs, null /* grad */, Cast, attrs);\n }\n });\n const saved = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(kernelName, inputs, attrs, inputsToSave, outputsToSave) {\n const forwardFunc = null;\n const backwardsFunc = null;\n // Call runKernel as a stop-gap until we modularize all kernels.\n // Once we modularize all kernels, we will remove the existing\n // `runKernelFunc`.\n return this.runKernelFunc(forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave, outputsToSave);\n }\n shouldCheckForMemLeaks() {\n return this.ENV.getBool('IS_TEST');\n }\n checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {\n const numDataIdsAfter = this.backend.numDataIds();\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(`Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n /**\n * @deprecated Use `runKernel` for newly added kernels. Keep using this method\n * only for kernels that are not yet fully modularized.\n */\n runKernelFunc(forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave, outputsToSave) {\n let outputs;\n let saved = [];\n const isTapeOn = this.isTapeOn();\n if (kernelName == null) {\n kernelName =\n this.state.activeScope != null ? this.state.activeScope.name : '';\n }\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n let kernelFunc;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n const kernel = getKernel(kernelName, this.backendName);\n let out;\n if (kernel != null) {\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({ inputs, attrs, backend: this.backend });\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map((outInfo) => {\n // todo (yassogba) remove this option (Tensor) when node backend\n // methods have been modularized and they all return tensorInfo.\n // TensorInfos do not have a rank attribute.\n if (outInfo.rank != null) {\n return outInfo;\n }\n const { dataId, shape, dtype } = outInfo;\n return this.makeTensorFromDataId(dataId, shape, dtype);\n });\n // Save the inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (isTapeOn) {\n let tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);\n if (tensorsToSave == null) {\n // Fallback for ops that call runKernelFunc and pass in\n // inputsToSave and outputsToSave. Currently this is the set of ops\n // with kernel support in the WASM backend. Once those ops and\n // respective gradients are modularised we can remove this path.\n if (outputsToSave == null) {\n outputsToSave = [];\n }\n const outsToSave = outTensors.filter((_, i) => outputsToSave[i]);\n tensorsToSave = (inputsToSave || []).slice().concat(outsToSave);\n }\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n }\n else {\n if (forwardFunc == null) {\n throw new Error(`Error running ${kernelName}: Neither modular kernel nor forward func passed`);\n }\n const saveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]);\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n // Stop recording to a tape when running a kernel.\n let kernelProfile;\n this.scopedRun(() => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n }\n else {\n kernelProfile = this.profiler.profileKernel(kernelName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n if (isTapeOn) {\n this.addTapeNode(kernelName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]);\n }\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n saveTensorsForBackwardMode(tensors) {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * Returns undefined if their is no registered gradient for this kernel in the\n * gradient registry.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n getTensorsForGradient(kernelName, inputs, outputs) {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave = gradConfig.inputsToSave || [];\n const outputsToSave = gradConfig.outputsToSave || [];\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave;\n if (gradConfig.saveAllInputs) {\n util.assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n }\n else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // TODO(yassogba) throw exception here once all runkernelFunc calls with\n // inputsToSave/outputsToSave are removed\n return null;\n }\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(values, shape, dtype, backend) {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = values.map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(dataId, shape, dtype, backend) {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n return t;\n }\n makeVariable(initialValue, trainable = true, name, dtype) {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n incRef(a, backend) {\n const refCount = this.state.tensorInfo.has(a.dataId) ?\n this.state.tensorInfo.get(a.dataId).refCount :\n 0;\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n if (refCount === 0) {\n this.state.numDataBuffers++;\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes,\n refCount: 0\n });\n this.state.numBytes += bytes;\n }\n this.state.tensorInfo.get(a.dataId).refCount++;\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n disposeTensor(a) {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n const refCount = info.refCount;\n if (refCount <= 1) {\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64') {\n this.state.numBytes -= info.bytes;\n }\n this.state.numDataBuffers--;\n info.backend.disposeData(a.dataId);\n this.state.tensorInfo.delete(a.dataId);\n }\n else {\n // Notify the backend to descrease the ref count for complex tensor\n // components. This method is only implemented in WebGL right now. When\n // there are multiple references, complex tensor cannot dispose the\n // components if ref count is not in sync with engine.\n info.backend.decComplexRef(a.dataId);\n this.state.tensorInfo.get(a.dataId).refCount--;\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n disposeVariables() {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n disposeVariable(v) {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n memory() {\n const info = this.backend.memory();\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push('Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n async profile(query) {\n this.state.profiling = true;\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n this.state.profiling = false;\n this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n isTapeOn() {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {\n const tapeNode = { id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved };\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n keep(result) {\n result.kept = true;\n return result;\n }\n startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n endTape() {\n this.state.gradientDepth--;\n }\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name) {\n const scopeInfo = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(f, xs, dy, allowNoGradients = false) {\n util.assert(xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));\n util.assert(y instanceof Tensor, () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n return this.tidy('backward', () => {\n const accumulatedGradientMap = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(accumulatedGradientMap, filteredTape, \n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f), \n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return { value: y, grads };\n });\n }\n customGrad(f) {\n util.assert(util.isFunction(f), () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs) => {\n util.assert(inputs.every(t => t instanceof Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n let res;\n const inputMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n return this.runKernelFunc((_, save) => {\n res = f(...[...inputs, save]);\n util.assert(res.value instanceof Tensor, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(util.isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n }, inputMap, (dy, saved) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads = Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(grads.every(t => t instanceof Tensor), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n });\n };\n }\n readSync(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n async time(query) {\n const start = now();\n const timingInfo = await this.backend.time(query);\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n track(result) {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n return result;\n }\n get registeredVariables() {\n return this.state.registeredVariables;\n }\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset() {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\nEngine.nextTensorId = 0;\nEngine.nextVariableId = 0;\nfunction ones(shape) {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\nexport function getOrMakeEngine() {\n const ns = getGlobalNamespace();\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\nexport const ENGINE = getOrMakeEngine();\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a, b) {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = { a, b };\n return ENGINE.runKernel(Add, inputs);\n}\n//# sourceMappingURL=engine.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as util from './util';\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(tape, xs, y) {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX = {};\n const nodesFromX = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n if (anyInputFromX) {\n break;\n }\n }\n }\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY = {};\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n // Return the paths that come from x and lead to y.\n const filteredTape = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n filteredTape.push(prunedNode);\n }\n }\n return filteredTape;\n}\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n const dys = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n }\n else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n if (node.gradient == null) {\n throw new Error(`Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(`Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n }\n else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n//# sourceMappingURL=tape.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined() {\n return typeof navigator !== 'undefined' && navigator != null;\n}\nexport function isMobile() {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || window.opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\nexport function isBrowser() {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n//# sourceMappingURL=device_util.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport './engine';\nimport * as device_util from './device_util';\nimport { env } from './environment';\nconst ENV = env();\n/**\n * This file contains environment-related flag registrations.\n */\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn('Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_NODE', () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n/** Whether this browser is Chrome. */\nENV.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n/** Whether to check computation result for errors. */\nENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);\n//# sourceMappingURL=flags.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from './engine';\nimport { env } from './environment';\nimport { Tensor } from './tensor';\nimport { assert, flatten, inferDtype, isTypedArray, toTypedArray } from './util';\nexport function inferShape(val, dtype) {\n let firstElem = val;\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape = [];\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n return shape;\n}\nfunction deepAssertShapeConsistency(val, shape, indices) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\nfunction assertDtype(expectedDtype, actualDType, argName, functionName) {\n if (expectedDtype === 'string_or_numeric') {\n return;\n }\n if (expectedDtype == null) {\n throw new Error(`Expected dtype cannot be null.`);\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(`Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\nexport function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : x.constructor.name;\n throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype) :\n flatten(x, [], skipTypedArray);\n return ENGINE.makeTensor(values, inferredShape, inferredDtype);\n}\nexport function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {\n if (!Array.isArray(arg)) {\n throw new Error(`Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg;\n return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));\n}\n//# sourceMappingURL=tensor_util_env.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { isPromise } from '../util';\nexport const OP_SCOPE_SUFFIX = '__op';\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f) {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(`Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n let opName = keys[0];\n const fn = f[opName];\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n // tslint:disable-next-line:no-any\n const f2 = (...args) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n }\n catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', { value: opName, configurable: true });\n // tslint:disable-next-line:no-any\n return f2;\n}\n//# sourceMappingURL=operation.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Complex } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real, imag) {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n const inputs = { real: $real, imag: $imag };\n return ENGINE.runKernel(Complex, inputs);\n}\nexport const complex = op({ complex_ });\n//# sourceMappingURL=complex.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray } from '../util';\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(values, shape, inferredShape, dtype) {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(`Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error('values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values];\n }\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values, [], true);\n return ENGINE.makeTensor(values, shape, dtype);\n}\n//# sourceMappingURL=tensor_ops_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(values, shape, dtype) {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/* Type definitions for exporting and importing of models. */\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { complex } from '../ops/complex';\nimport { tensor } from '../ops/tensor';\nimport { sizeFromShape } from '../util';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(tensors, group) {\n // TODO(adarob, cais): Support quantization.\n const specs = [];\n const dataPromises = [];\n const names = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec = { name, shape: t.shape, dtype: t.dtype };\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async (resolve) => {\n const vals = await t.bytes();\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n }\n else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n const tensorValues = await Promise.all(dataPromises);\n return { data: concatenateTypedArrays(tensorValues), specs };\n}\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(buffer, specs) {\n // TODO(adarob, cais): Support quantization.\n const out = {};\n let float16Decode;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values;\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n }\n else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n }\n else {\n throw new Error(`Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n }\n else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray);\n }\n else {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n }\n else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n }\n else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n values.push(bytes);\n offset += byteLength;\n }\n }\n else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n }\n else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs) {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n let totalByteLength = 0;\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs = [];\n xs.forEach((x) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(x.byteLength === x.buffer.byteLength ? x :\n new x.constructor(x));\n if (!(x instanceof Float32Array || x instanceof Int32Array ||\n x instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n return y.buffer;\n}\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str) {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer) {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str) {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers) {\n if (buffers.length === 1) {\n return buffers[0];\n }\n let totalByteLength = 0;\n buffers.forEach((buffer) => {\n totalByteLength += buffer.byteLength;\n });\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path) {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable() {\n const convertMantissa = (i) => {\n let m = i << 13;\n let e = 0;\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n return m | e;\n };\n const mantisaTable = new Uint32Array(2048);\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n return mantisaTable;\n}\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable() {\n const exponentTable = new Uint32Array(64);\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n return exponentTable;\n}\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable() {\n const offsetTable = new Uint32Array(64);\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n return offsetTable;\n}\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder() {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n return (quantizedArray) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n//# sourceMappingURL=io_utils.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport class IORouterRegistry {\n constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n static getInstance() {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url) {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url, loadOptions) {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n static getHandlers(url, handlerType, loadOptions) {\n const validHandlers = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\nexport const registerSaveRouter = (loudRouter) => IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter) => IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url) => IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);\n//# sourceMappingURL=router_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase() {\n const idbFactory = getIndexedDBFactory();\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\nfunction getIndexedDBFactory() {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error('The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\nfunction setUpDatabase(openRequest) {\n const db = openRequest.result;\n db.createObjectStore(MODEL_STORE_NAME, { keyPath: 'modelPath' });\n db.createObjectStore(INFO_STORE_NAME, { keyPath: 'modelPath' });\n}\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB {\n constructor(modelPath) {\n this.indexedDB = getIndexedDBFactory();\n if (modelPath == null || !modelPath) {\n throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n async save(modelArtifacts) {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n return this.databaseAction(this.modelPath, modelArtifacts);\n }\n async load() {\n return this.databaseAction(this.modelPath);\n }\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n databaseAction(modelPath, modelArtifacts) {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n }\n else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n }\n else {\n // Put model into object store.\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest = infoStore.put({ modelPath: this.modelPath, modelArtifactsInfo });\n let modelTx;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({ modelArtifactsInfo });\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\nBrowserIndexedDB.URL_SCHEME = 'indexeddb://';\nexport const indexedDBRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath) {\n return new BrowserIndexedDB(modelPath);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\nexport class BrowserIndexedDBManager {\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n async listModels() {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = store.getAll();\n getAllInfoRequest.onsuccess = () => {\n const out = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const getInfoRequest = infoStore.get(path);\n let modelTx;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n }\n else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error => reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n//# sourceMappingURL=indexed_db.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts() {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\nfunction getModelKeys(path) {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage {\n constructor(modelPath) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n if (modelPath == null || !modelPath) {\n throw new Error('For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));\n const result = {\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy\n };\n if (modelArtifacts.signature != null) {\n result.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n result.modelInitializer = modelArtifacts.modelInitializer;\n }\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify(result));\n return { modelArtifactsInfo };\n }\n catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load() {\n const info = JSON.parse(this.LS.getItem(this.keys.info));\n if (info == null) {\n throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);\n }\n if (info.modelTopologyType !== 'JSON') {\n throw new Error('BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n const out = {};\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(`In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString);\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n if (metadata['signature'] != null) {\n out.signature = metadata['signature'];\n }\n if (metadata['userDefinedMetadata'] != null) {\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n if (metadata['modelInitializer'] != null) {\n out.modelInitializer = metadata['modelInitializer'];\n }\n }\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(`In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n return out;\n }\n}\nBrowserLocalStorage.URL_SCHEME = 'localstorage://';\nexport const localStorageRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath) {\n return new BrowserLocalStorage(modelPath);\n}\nexport class BrowserLocalStorageManager {\n constructor() {\n assert(env().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');\n assert(typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n async listModels() {\n const out = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key));\n }\n }\n return out;\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info));\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n//# sourceMappingURL=local_storage.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\nimport { assert } from '../util';\nimport { IORouterRegistry } from './router_registry';\nconst URL_SCHEME_SUFFIX = '://';\nexport class ModelStoreManagerRegistry {\n constructor() {\n this.managers = {};\n }\n static getInstance() {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme, manager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);\n registry.managers[scheme] = manager;\n }\n static getManager(scheme) {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n static getSchemes() {\n return Object.keys(this.getInstance().managers);\n }\n}\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url) {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(`The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\nasync function cloneModelInternal(sourceURL, destURL, deleteSource = false) {\n assert(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);\n assert(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n const modelArtifacts = await loadHandler.load();\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n const saveResult = await saveHandler.save(modelArtifacts);\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n return saveResult.modelArtifactsInfo;\n}\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels() {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out = {};\n for (const scheme of schemes) {\n const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url) {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(sourceURL, destURL) {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(sourceURL, destURL) {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\nexport { moveModel, copyModel, removeModel, listModels };\n//# sourceMappingURL=model_management.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { BrowserIndexedDB, BrowserIndexedDBManager } from '../io/indexed_db';\nimport { BrowserLocalStorage, BrowserLocalStorageManager } from '../io/local_storage';\nimport { ModelStoreManagerRegistry } from '../io/model_management';\nexport class PlatformBrowser {\n fetch(path, init) {\n return fetch(path, init);\n }\n now() {\n return performance.now();\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n }\n catch (err) {\n }\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n }\n catch (err) {\n }\n}\n//# sourceMappingURL=platform_browser.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\nlet systemFetch;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch() {\n return systemFetch;\n}\nexport class PlatformNode {\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n fetch(path, requestInits) {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n now() {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n//# sourceMappingURL=platform_node.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { TensorBuffer } from '../tensor';\nimport * as util from '../util';\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(shape, dtype = 'float32', values) {\n dtype = dtype || 'float32';\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n//# sourceMappingURL=buffer.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Cast } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x, dtype) {\n const $x = convertToTensor(x, 'x', 'cast');\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n const inputs = { x: $x };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, inputs, attrs);\n}\nexport const cast = op({ cast_ });\n//# sourceMappingURL=cast.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Identity } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x) {\n const $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');\n const inputs = { x: $x };\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernel(Identity, inputs);\n}\nexport const clone = op({ clone_ });\n//# sourceMappingURL=clone.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x, verbose = false) {\n console.log(x.toString(verbose));\n}\n//# sourceMappingURL=print.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\nfunction defer(f) {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\nexport class BrowserDownloads {\n constructor(fileNamePrefix) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error('browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n async save(modelArtifacts) {\n if (typeof (document) === 'undefined') {\n throw new Error('Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], { type: 'application/octet-stream' }));\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const weightsManifest = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n const modelTopologyAndWeightManifestURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: 'application/json' }));\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n return { modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts) };\n }\n }\n}\nBrowserDownloads.URL_SCHEME = 'downloads://';\nclass BrowserFiles {\n constructor(files) {\n if (files == null || files.length < 1) {\n throw new Error(`When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n async load() {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse(event.target.result);\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n if (weightFiles.length === 0) {\n resolve({ modelTopology });\n }\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n let pathToFile;\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n }\n catch (err) {\n reject(err);\n return;\n }\n const weightSpecs = [];\n const paths = [];\n const perFileBuffers = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const weightData = event.target.result;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n const result = {\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy\n };\n if (modelJSON.signature != null) {\n result.signature = modelJSON.signature;\n }\n if (modelJSON.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelJSON.userDefinedMetadata;\n }\n if (modelJSON.modelInitializer != null) {\n result.modelInitializer = modelJSON.modelInitializer;\n }\n resolve(result);\n }\n };\n weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n checkManifestAndWeightFiles(manifest, files) {\n const basenames = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(`Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);\n }\n else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n if (basenames.length !== files.length) {\n throw new Error(`Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\nexport const browserDownloadsRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model') {\n return new BrowserDownloads(fileNamePrefix);\n}\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files) {\n return new BrowserFiles(files);\n}\n//# sourceMappingURL=browser_files.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Required side effectful code for tfjs-core\n// Set up Engine and ENV\nimport { getOrMakeEngine } from './engine';\ngetOrMakeEngine();\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n// Set up OpHandler\nimport { buffer } from './ops/buffer';\nimport { cast } from './ops/cast';\nimport { clone } from './ops/clone';\nimport { print } from './ops/print';\nimport { setOpHandler } from './tensor';\nconst opHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n//# sourceMappingURL=base_side_effects.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { assert } from '../util';\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n const registerMonitor = (promise) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n function checkPromises(promises) {\n assert(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');\n }\n function checkFraction(startFraction, endFraction) {\n assert(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n return Promise.all(promises.map(registerMonitor));\n}\n//# sourceMappingURL=progress.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\nimport * as util from '../util';\nimport { decodeWeights } from './io_utils';\nimport { monitorPromisesProgress } from './progress';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, { isBinary: true }));\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);\n const bufferPromises = responses.map(response => response.arrayBuffer());\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);\n return buffers;\n}\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n const fetchWeights = (fetchUrls) => loadWeightsAsArrayBuffer(fetchUrls, { requestInit });\n const loadWeights = weightsLoaderFactory(fetchWeights);\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(fetchWeightsFunction) {\n return async (manifest, filePathPrefix = '', weightNames) => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch = {};\n const weightsFound = weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n }\n else {\n enqueueWeightsForFetchingFn();\n }\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(`Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n const fetchUrls = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n const weightsTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n bufferIndexOffset += numBuffers;\n });\n return weightsTensorMap;\n };\n}\n//# sourceMappingURL=weights_loader.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nimport { loadWeightsAsArrayBuffer } from './weights_loader';\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest {\n constructor(path, loadOptions) {\n this.DEFAULT_METHOD = 'POST';\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n if (loadOptions.fetchFunc != null) {\n assert(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n }\n else {\n this.fetch = env().platform.fetch;\n }\n assert(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n if (Array.isArray(path)) {\n assert(path.length === 2, () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error('requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n const init = Object.assign({ method: this.DEFAULT_METHOD }, this.requestInit);\n init.body = new FormData();\n const weightsManifest = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: JSON_TYPE }), 'model.json');\n if (modelArtifacts.weightData != null) {\n init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], { type: OCTET_STREAM_MIME_TYPE }), 'model.weights.bin');\n }\n const response = await this.fetch(this.path, init);\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n }\n else {\n throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load() {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n if (!modelConfigRequest.ok) {\n throw new Error(`Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig;\n try {\n modelConfig = await modelConfigRequest.json();\n }\n catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n }\n else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const signature = modelConfig.signature;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n let weightSpecs;\n let weightData;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n const artifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n generatedBy,\n convertedBy,\n format\n };\n if (signature != null) {\n artifacts.signature = signature;\n }\n if (userDefinedMetadata != null) {\n artifacts.userDefinedMetadata = userDefinedMetadata;\n }\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n return artifacts;\n }\n async loadWeights(weightsManifest) {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n const fetchURLs = [];\n const urlPromises = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n }\n else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\nHTTPRequest.URL_SCHEME_REGEX = /^https?:\\/\\//;\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url) {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\nexport function isHTTPScheme(url) {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\nexport const httpRouter = (url, loadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n }\n else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n }\n else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n};\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path, loadOptions) {\n return new HTTPRequest(path, loadOptions);\n}\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(path, loadOptions) {\n return http(path, loadOptions);\n}\n//# sourceMappingURL=http.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nclass PassthroughLoader {\n constructor(modelArtifacts) {\n this.modelArtifacts = modelArtifacts;\n }\n async load() {\n return this.modelArtifacts;\n }\n}\nclass PassthroughSaver {\n constructor(saveHandler) {\n this.saveHandler = saveHandler;\n }\n async save(modelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {\n if (arguments.length === 1) {\n const isModelArtifacts = modelArtifacts.modelTopology != null ||\n modelArtifacts.weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts);\n }\n else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({ modelTopology: modelArtifacts });\n }\n }\n else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts,\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(saveHandler) {\n return new PassthroughSaver(saveHandler);\n}\n//# sourceMappingURL=passthrough.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { BatchMatMul } from '../kernel_names';\nimport { makeTypesMatch } from '../tensor_util';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(a, b, transposeA = false, transposeB = false) {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n const inputs = { a: $a, b: $b };\n const attrs = { transposeA, transposeB };\n return ENGINE.runKernel(BatchMatMul, inputs, attrs);\n}\nexport const matMul = op({ matMul_ });\n//# sourceMappingURL=mat_mul.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { OneHot } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(indices, depth, onValue = 1, offValue = 0) {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const inputs = { indices: $indices };\n const attrs = { depth, onValue, offValue };\n return ENGINE.runKernel(OneHot, inputs, attrs);\n}\nexport const oneHot = op({ oneHot_ });\n//# sourceMappingURL=one_hot.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Transpose } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x, perm) {\n const $x = convertToTensor(x, 'x', 'transpose');\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n if ($x.rank <= 1) {\n return $x.clone();\n }\n const inputs = { x: $x };\n const attrs = { perm };\n return ENGINE.runKernel(Transpose, inputs, attrs);\n}\nexport const transpose = op({ transpose_ });\n//# sourceMappingURL=transpose.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { cast } from './cast';\nimport { matMul } from './mat_mul';\nimport { oneHot } from './one_hot';\nimport { op } from './operation';\nimport { transpose } from './transpose';\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(labels, predictions, numClasses) {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');\n util.assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);\n const oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);\n const oneHotLabelsT = transpose(oneHotLabels);\n const product = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\nexport const confusionMatrix = op({ confusionMatrix_ });\n//# sourceMappingURL=confusion_matrix.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { assertNonNull } from '../util';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(values, shape, dtype) {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error('tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor3d.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { FromPixels } from '../kernel_names';\nimport { getKernel } from '../kernel_registry';\nimport { Tensor } from '../tensor';\nimport { convertToTensor } from '../tensor_util_env';\nimport { cast } from './cast';\nimport { op } from './operation';\nimport { tensor3d } from './tensor3d';\nlet fromPixels2DContext;\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(pixels, numChannels = 3) {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n let isImageBitmap = false;\n if (pixels.data instanceof Uint8Array) {\n isPixelData = true;\n }\n else if (typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n }\n else if (typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n }\n else if (typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n }\n else if (pixels.getContext != null) {\n isCanvasLike = true;\n }\n else if (typeof (ImageBitmap) !== 'undefined' &&\n pixels instanceof ImageBitmap) {\n isImageBitmap = true;\n }\n else {\n throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${pixels.constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n pixels.readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error('The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the
': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '
': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(2476);\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};"],"sourceRoot":""} \ No newline at end of file diff --git a/danfojs-browser/src/core/groupby.js b/danfojs-browser/src/core/groupby.js index a1e69345..693fbcc4 100644 --- a/danfojs-browser/src/core/groupby.js +++ b/danfojs-browser/src/core/groupby.js @@ -102,10 +102,6 @@ export class GroupBy { */ col(col_names){ - // if(!this.column_name.includes(col_name)){ - // throw new Error(`Column ${col_name} does not exist in groups`) - // } - if (Array.isArray(col_names)){ for (let i = 0; i < col_names.length; i++){ @@ -179,7 +175,11 @@ export class GroupBy { "cummin" : "cummin().values" }; let is_array = false; - + //the local variable to store variables to be used in eval + // this seems not to be needed in Node version, since local + //variable are easily accessed in the eval function + let local = null; + if (Array.isArray(operation)){ is_array = true; } @@ -201,10 +201,12 @@ export class GroupBy { if (!ops_name.includes(op)){ throw new Error("operation does not exist"); } - data = eval(`this.group_col[key1][key2][i].${ops_map[op]}`); + local = this.group_col[key1][key2][i]; + data = eval(`local.${ops_map[op]}`); } else { - data = eval(`this.group_col[key1][key2][i].${operation}`); + local = this.group_col[key1][key2][i]; + data = eval(`local.${operation}`); } count_group[key1][key2].push(data); @@ -227,10 +229,12 @@ export class GroupBy { if (!ops_name.includes(op)){ throw new Error("operation does not exist"); } - data = eval(`this.group_col[key1][i].${ops_map[op]}`); + local = this.group_col[key1][i]; + data = eval(`local.${ops_map[op]}`); } else { - data = eval(`this.group_col[key1][i].${operation}`); + local = this.group_col[key1][i]; + data = eval(`local.${operation}`); } count_group[key1].push(data); diff --git a/danfojs-browser/tests/core/groupby.js b/danfojs-browser/tests/core/groupby.js index 15b86ed9..4700673b 100644 --- a/danfojs-browser/tests/core/groupby.js +++ b/danfojs-browser/tests/core/groupby.js @@ -65,7 +65,7 @@ describe("groupby", function () { [ 20, 30, 1 ], [ 39, 89, 1 ] ]; - + assert.deepEqual(group_df.col([ "C" ]).count().values, new_data); }); it("sum column element in group", function () { @@ -130,38 +130,38 @@ describe("groupby", function () { assert.deepEqual(group_df.col([ "B", "C" ]).cumsum().values, new_data); }); - // it("cummulative max for groupby", function () { - - // let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; - // let cols = [ "A", "B", "C" ]; - // let df = new dfd.DataFrame(data, { columns: cols }); - // let group_df = df.groupby([ "A" ]); - // let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; + it("cummulative max for groupby", function () { + let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; + let cols = [ "A", "B", "C" ]; + let df = new dfd.DataFrame(data, { columns: cols }); + let group_df = df.groupby([ "A" ]); + let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; + - // assert.deepEqual(group_df.col([ "C" ]).cummax().values, new_data); - // }); - // it("cummulative min for groupby", function () { + assert.deepEqual(group_df.col([ "C" ]).cummax().values, new_data); + }); + it("cummulative min for groupby", function () { - // let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; - // let cols = [ "A", "B", "C" ]; - // let df = new dfd.DataFrame(data, { columns: cols }); - // let group_df = df.groupby([ "A" ]); - // let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; + let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; + let cols = [ "A", "B", "C" ]; + let df = new dfd.DataFrame(data, { columns: cols }); + let group_df = df.groupby([ "A" ]); + let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; - // assert.deepEqual(group_df.col([ "C" ]).cummin().values, new_data); - // }); + assert.deepEqual(group_df.col([ "C" ]).cummin().values, new_data); + }); - // it("cummulative prod for groupby", function () { + it("cummulative prod for groupby", function () { - // let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; - // let cols = [ "A", "B", "C" ]; - // let df = new dfd.DataFrame(data, { columns: cols }); - // let group_df = df.groupby([ "A" ]); - // let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; + let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; + let cols = [ "A", "B", "C" ]; + let df = new dfd.DataFrame(data, { columns: cols }); + let group_df = df.groupby([ "A" ]); + let new_data = [ [ 1, 3 ], [ 4, 6 ], [ 20, 40 ], [ 39, 78 ] ]; - // assert.deepEqual(group_df.col([ "C" ]).cumprod().values, new_data); - // }); + assert.deepEqual(group_df.col([ "C" ]).cumprod().values, new_data); + }); it("mean for groupby", function () { let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ] ]; @@ -178,31 +178,31 @@ describe("groupby", function () { assert.deepEqual(group_df.col([ "B", "C" ]).mean().values, new_data); }); - // it("printing multiindex table, example with cumsum operation for dataframe group by one column", function(){ - // let data = { 'A': [ 'foo', 'bar', 'foo', 'bar', - // 'foo', 'bar', 'foo', 'foo' ], - // 'B': [ 'one', 'one', 'two', 'three', - // 'two', 'two', 'one', 'three' ], - // 'C': [ 1, 3, 2, 4, 5, 2, 6, 7 ], - // 'D': [ 3, 2, 4, 1, 5, 6, 7, 8 ] }; - - - // let df = new dfd.DataFrame(data); - - // let grp = df.groupby([ "A" ]); - // let rslt = [ - // [ 'foo', 1 ], - // [ 'foo', 3 ], - // [ 'foo', 8 ], - // [ 'foo', 14 ], - // [ 'foo', 21 ], - // [ 'bar', 3 ], - // [ 'bar', 7 ], - // [ 'bar', 9 ] - // ]; - // assert.deepEqual(grp.col([ "C" ]).cumsum().values, rslt); - - // }); + it("printing multiindex table, example with cumsum operation for dataframe group by one column", function(){ + let data = { 'A': [ 'foo', 'bar', 'foo', 'bar', + 'foo', 'bar', 'foo', 'foo' ], + 'B': [ 'one', 'one', 'two', 'three', + 'two', 'two', 'one', 'three' ], + 'C': [ 1, 3, 2, 4, 5, 2, 6, 7 ], + 'D': [ 3, 2, 4, 1, 5, 6, 7, 8 ] }; + + + let df = new dfd.DataFrame(data); + + let grp = df.groupby([ "A" ]); + let rslt = [ + [ 'foo', 1 ], + [ 'foo', 3 ], + [ 'foo', 8 ], + [ 'foo', 14 ], + [ 'foo', 21 ], + [ 'bar', 3 ], + [ 'bar', 7 ], + [ 'bar', 9 ] + ]; + assert.deepEqual(grp.col([ "C" ]).cumsum().values, rslt); + + }); it("printing multiindex table, example with cumsum operation for dataframe group by one column", function(){ let data = { 'A': [ 'foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo' ],