From 88828a9c04ed7bddb83bbaf442980be8deac99c0 Mon Sep 17 00:00:00 2001 From: Rising Odegua Date: Sun, 30 May 2021 14:50:49 +0100 Subject: [PATCH] Fixes #181 Bug in str accessor when NaN values are present --- danfojs-browser/lib/bundle.js | 2 +- danfojs-browser/lib/bundle.js.map | 2 +- danfojs-browser/src/core/series.js | 18 ++-- danfojs-browser/src/core/strings.js | 143 ++++++++++++++++++++----- danfojs-browser/tests/core/frame.js | 24 +++++ danfojs-browser/tests/core/series.js | 12 ++- danfojs-node/dist/core/series.js | 18 +--- danfojs-node/dist/core/strings.js | 140 +++++++++++++++++++----- danfojs-node/src/core/series.js | 152 +++++++++++++-------------- danfojs-node/src/core/strings.js | 143 ++++++++++++++++++++----- danfojs-node/tests/core/frame.js | 26 +++++ danfojs-node/tests/core/series.js | 12 ++- danfojs-node/tests/core/strings.js | 96 ++++++++--------- 13 files changed, 543 insertions(+), 245 deletions(-) diff --git a/danfojs-browser/lib/bundle.js b/danfojs-browser/lib/bundle.js index 29044a73..688da624 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__={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)},7091:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>Ge,Acos:()=>Xe,Acosh:()=>Ke,AdadeltaOptimizer:()=>Vo,AdagradOptimizer:()=>Ho,AdamOptimizer:()=>Ko,AdamaxOptimizer:()=>el,Add:()=>qe,AddN:()=>Ye,All:()=>Je,Any:()=>Ze,ArgMax:()=>Qe,ArgMin:()=>et,Asin:()=>tt,Asinh:()=>nt,Atan:()=>rt,Atan2:()=>st,Atanh:()=>at,AvgPool:()=>it,AvgPool3D:()=>lt,AvgPool3DGrad:()=>ut,AvgPoolGrad:()=>ot,BatchMatMul:()=>ct,BatchToSpaceND:()=>ht,Bincount:()=>ft,BroadcastTo:()=>dt,Callback:()=>xx,CallbackList:()=>xy,Cast:()=>pt,Ceil:()=>mt,ClipByValue:()=>gt,Complex:()=>yt,ComplexAbs:()=>bt,Concat:()=>vt,Conv2D:()=>wt,Conv2DBackpropFilter:()=>_t,Conv2DBackpropInput:()=>xt,Conv3D:()=>kt,Conv3DBackpropFilterV2:()=>Et,Conv3DBackpropInputV2:()=>Ct,Cos:()=>St,Cosh:()=>Nt,CropAndResize:()=>At,Cumsum:()=>It,CustomCallback:()=>Cy,DataStorage:()=>V,DenseBincount:()=>Dt,DepthToSpace:()=>Tt,DepthwiseConv2dNative:()=>Ft,DepthwiseConv2dNativeBackpropFilter:()=>Rt,DepthwiseConv2dNativeBackpropInput:()=>Ot,Diag:()=>Mt,Dilation2D:()=>Bt,Dilation2DBackpropFilter:()=>Pt,Dilation2DBackpropInput:()=>$t,ENV:()=>Ve,EarlyStopping:()=>Cx,Einsum:()=>zt,Elu:()=>Wt,EluGrad:()=>Ut,Environment:()=>Le,Equal:()=>jt,Erf:()=>Vt,Exp:()=>Ht,ExpandDims:()=>Gt,Expm1:()=>Xt,FFT:()=>Kt,Fill:()=>qt,FlipLeftRight:()=>Yt,Floor:()=>Jt,FloorDiv:()=>Zt,FromPixels:()=>Wr,FusedBatchNorm:()=>Qt,FusedConv2D:()=>jr,FusedDepthwiseConv2D:()=>Hr,GatherNd:()=>tn,GatherV2:()=>en,GraphModel:()=>Lk,Greater:()=>nn,GreaterEqual:()=>rn,History:()=>Ey,IFFT:()=>sn,Identity:()=>an,Imag:()=>on,InputSpec:()=>uy,IsFinite:()=>ln,IsInf:()=>un,IsNan:()=>cn,KernelBackend:()=>j,LRN:()=>_n,LRNGrad:()=>xn,LayerVariable:()=>iy,LayersModel:()=>Db,LeakyRelu:()=>hn,Less:()=>fn,LessEqual:()=>dn,LinSpace:()=>pn,Log:()=>mn,Log1p:()=>gn,LogSoftmax:()=>wn,LogicalAnd:()=>yn,LogicalNot:()=>bn,LogicalOr:()=>vn,Max:()=>kn,MaxPool:()=>Cn,MaxPool3D:()=>Nn,MaxPool3DGrad:()=>In,MaxPoolGrad:()=>Sn,MaxPoolWithArgmax:()=>An,Maximum:()=>En,Mean:()=>Dn,Min:()=>Tn,Minimum:()=>Fn,MirrorPad:()=>Rn,Mod:()=>On,MomentumOptimizer:()=>nl,Multinomial:()=>Mn,Multiply:()=>Bn,Neg:()=>$n,NonMaxSuppressionV3:()=>Ln,NonMaxSuppressionV4:()=>zn,NonMaxSuppressionV5:()=>Wn,NotEqual:()=>Pn,OP_SCOPE_SUFFIX:()=>Ja,OneHot:()=>Vn,OnesLike:()=>Un,Optimizer:()=>Uo,Pack:()=>jn,PadV2:()=>Hn,Pool:()=>Gn,Pow:()=>Xn,Prelu:()=>Kn,Prod:()=>qn,RMSPropOptimizer:()=>rl,RNN:()=>Bv,Range:()=>Yn,Rank:()=>Ea,Real:()=>Jn,RealDiv:()=>Lt,Reciprocal:()=>Zn,Reduction:()=>Sf,Relu:()=>Qn,Relu6:()=>sr,Reshape:()=>er,ResizeBilinear:()=>rr,ResizeBilinearGrad:()=>ar,ResizeNearestNeighbor:()=>tr,ResizeNearestNeighborGrad:()=>nr,Reverse:()=>ir,RotateWithOffset:()=>Ur,Round:()=>or,Rsqrt:()=>lr,SGDOptimizer:()=>tl,ScatterNd:()=>ur,Select:()=>cr,Selu:()=>hr,Sequential:()=>Rb,Sigmoid:()=>gr,Sign:()=>mr,Sin:()=>dr,Sinh:()=>pr,Slice:()=>fr,Softmax:()=>xr,Softplus:()=>yr,SpaceToBatchND:()=>wr,SparseFillEmptyRows:()=>kr,SparseReshape:()=>Er,SparseToDense:()=>Cr,SplitV:()=>_r,Sqrt:()=>br,Square:()=>Nr,SquaredDifference:()=>Sr,Step:()=>zr,StridedSlice:()=>Ir,Sub:()=>Ar,Sum:()=>vr,SymbolicTensor:()=>cy,Tan:()=>Dr,Tanh:()=>Tr,Tensor:()=>_a,TensorBuffer:()=>ya,Tile:()=>Fr,TopK:()=>Rr,Transform:()=>Or,Transpose:()=>Mr,Unique:()=>Br,Unpack:()=>$r,UnsortedSegmentSum:()=>Pr,Variable:()=>ka,ZerosLike:()=>Lr,_FusedMatMul:()=>Vr,abs:()=>qo,acos:()=>al,acosh:()=>sl,add:()=>No,addN:()=>il,all:()=>ol,any:()=>ll,argMax:()=>ul,argMin:()=>cl,asin:()=>hl,asinh:()=>fl,atan:()=>dl,atan2:()=>pl,atanh:()=>ml,avgPool:()=>Dl,avgPool3d:()=>Tl,backend:()=>Co,backend_util:()=>g,basicLSTMCell:()=>Bl,batchNorm:()=>Pl,batchNorm2d:()=>Ll,batchNorm3d:()=>zl,batchNorm4d:()=>Wl,batchToSpaceND:()=>$l,bincount:()=>Ul,booleanMaskAsync:()=>Dh,broadcastTo:()=>Vl,browser:()=>l,buffer:()=>Xs,callbacks:()=>Sx,cast:()=>Ks,ceil:()=>jl,clipByValue:()=>Hl,clone:()=>qs,complex:()=>Qa,concat:()=>Fl,concat1d:()=>Gl,concat2d:()=>Xl,concat3d:()=>Kl,concat4d:()=>ql,constraints:()=>b,conv1d:()=>Jl,conv2d:()=>Yl,conv2dTranspose:()=>Ql,conv3d:()=>eu,conv3dTranspose:()=>nu,copyRegisteredKernels:()=>ta,cos:()=>ru,cosh:()=>au,cosineWindow:()=>Lh,cumsum:()=>su,customGrad:()=>Lo,data:()=>W,denseBincount:()=>iu,deprecationWarn:()=>lo,depthToSpace:()=>ou,depthwiseConv2d:()=>lu,deregisterOp:()=>Fx,device_util:()=>s,diag:()=>uu,dilation2d:()=>cu,disableDeprecationWarnings:()=>oo,dispose:()=>mo,disposeVariables:()=>uo,div:()=>Ao,divNoNan:()=>du,dot:()=>pu,dropout:()=>$h,einsum:()=>mu,elu:()=>gu,enableDebugMode:()=>io,enableProdMode:()=>so,enclosingPowerOfTwo:()=>Ph,engine:()=>co,env:()=>We,equal:()=>hu,erf:()=>yu,exp:()=>bu,expandDims:()=>vu,expm1:()=>wu,eye:()=>xu,fft:()=>ih,fill:()=>jo,findBackend:()=>xo,findBackendFactory:()=>ko,floor:()=>ku,floorDiv:()=>Io,fused:()=>p,gather:()=>Eu,gatherND:()=>Bh,gather_util:()=>u,getBackend:()=>wo,getGradient:()=>qr,getKernel:()=>Kr,getKernelsForBackend:()=>Yr,grad:()=>Oo,grads:()=>Mo,greater:()=>Cu,greaterEqual:()=>Su,ifft:()=>oh,imag:()=>Nu,image:()=>zf,inTopKAsync:()=>zh,initializers:()=>v,input:()=>$b,io:()=>i,irfft:()=>lh,isFinite:()=>Iu,isInf:()=>Au,isNaN:()=>Du,keep:()=>go,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>Tu,less:()=>Fu,lessEqual:()=>Ru,linalg:()=>Wf,linspace:()=>Ou,loadGraphModel:()=>zk,loadLayersModel:()=>Bb,localResponseNormalization:()=>Mu,log:()=>Bu,log1p:()=>$u,logSigmoid:()=>zu,logSoftmax:()=>Vu,logSumExp:()=>Zu,logicalAnd:()=>Qu,logicalNot:()=>ec,logicalOr:()=>tc,logicalXor:()=>nc,losses:()=>Uf,matMul:()=>pi,math:()=>o,max:()=>Wu,maxPool:()=>rc,maxPool3d:()=>ac,maxPoolWithArgmax:()=>sc,maximum:()=>Qo,mean:()=>ic,memory:()=>ho,meshgrid:()=>uc,metrics:()=>_,min:()=>cc,minimum:()=>hc,mirrorPad:()=>fc,mod:()=>dc,model:()=>Ob,models:()=>x,moments:()=>pc,movingAverage:()=>Rh,mul:()=>Do,multiRNNCell:()=>mc,multinomial:()=>gc,neg:()=>Pu,nextFrame:()=>Xf,norm:()=>Fh,notEqual:()=>yc,oneHot:()=>mi,ones:()=>lc,onesLike:()=>bc,op:()=>Za,outerProduct:()=>vc,pad:()=>wc,pad1d:()=>_c,pad2d:()=>xc,pad3d:()=>kc,pad4d:()=>Ec,pool:()=>Sc,pow:()=>Go,prelu:()=>Nc,print:()=>Ys,prod:()=>Ic,profile:()=>fo,rand:()=>Ac,randomGamma:()=>Oc,randomNormal:()=>Mc,randomUniform:()=>Bc,range:()=>$c,ready:()=>vo,real:()=>Pc,reciprocal:()=>Lc,registerBackend:()=>Eo,registerCallbackConstructor:()=>Pb,registerGradient:()=>Zr,registerKernel:()=>Jr,registerOp:()=>Dx,regularizers:()=>k,relu:()=>zc,relu6:()=>Wc,removeBackend:()=>_o,reshape:()=>Al,reverse:()=>Uc,reverse1d:()=>Vc,reverse2d:()=>jc,reverse3d:()=>Hc,reverse4d:()=>Gc,rfft:()=>ch,round:()=>Xc,rsqrt:()=>Kc,scalar:()=>Wo,scatterND:()=>Oh,scatter_util:()=>c,selu:()=>qc,separableConv2d:()=>Yc,sequential:()=>Mb,serialization:()=>f,setBackend:()=>bo,setPlatform:()=>So,setdiff1dAsync:()=>Jc,sigmoid:()=>Rl,sign:()=>Zc,signal:()=>Lf,sin:()=>Qc,sinh:()=>eh,slice:()=>Ol,slice1d:()=>th,slice2d:()=>nh,slice3d:()=>rh,slice4d:()=>ah,slice_util:()=>h,softmax:()=>sh,softplus:()=>Lu,spaceToBatchND:()=>Cc,sparse:()=>Vf,sparseToDense:()=>Mh,spectral:()=>Pf,split:()=>uh,sqrt:()=>To,square:()=>Fo,squaredDifference:()=>hh,squeeze:()=>fh,stack:()=>dh,step:()=>ph,stridedSlice:()=>mh,sub:()=>Xo,sum:()=>Uu,sumOutType:()=>Ta,tan:()=>gh,tanh:()=>Ml,tensor:()=>ts,tensor1d:()=>yh,tensor2d:()=>bh,tensor3d:()=>bi,tensor4d:()=>vh,tensor5d:()=>wh,tensor6d:()=>_h,tensor_util:()=>a,test_util:()=>d,tidy:()=>po,tile:()=>_u,time:()=>yo,topk:()=>xh,train:()=>Hf,transpose:()=>gi,truncatedNormal:()=>kh,unique:()=>Eh,unregisterGradient:()=>ea,unregisterKernel:()=>Qr,unsortedSegmentSum:()=>Ch,unstack:()=>Sh,upcastType:()=>Da,util:()=>r,valueAndGrad:()=>Bo,valueAndGrads:()=>$o,variable:()=>Nh,variableGrads:()=>Po,version:()=>qP,version_converter:()=>Wk,version_core:()=>ao,version_layers:()=>sb,where:()=>fu,whereAsync:()=>Ah,zeros:()=>oc,zerosLike:()=>Ro});var r={};n.r(r),n.d(r,{arraysEqual:()=>se,assert:()=>Q,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>te,assertShapesMatch:()=>ee,bytesFromStringArray:()=>xe,bytesPerElement:()=>_e,checkConversionForErrors:()=>ye,clamp:()=>K,computeStrides:()=>Ae,createScalarValue:()=>ra,createShuffledIndices:()=>ue,decodeString:()=>la,distSquared:()=>Z,encodeString:()=>oa,fetch:()=>ia,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:()=>Be,makeOnesTypedArray:()=>Fe,makeZerosNestedTypedArray:()=>Oe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ie,nearestLargerEven:()=>q,now:()=>sa,parseAxisParam:()=>de,randUniform:()=>J,repeatedTry:()=>he,rightPad:()=>ce,shuffle:()=>G,shuffleCombo:()=>X,sizeFromShape:()=>re,sizeToSquarishShape:()=>le,squeezeShape:()=>pe,sum:()=>Y,tanh:()=>oe,toNestedArray:()=>Te,toTypedArray:()=>aa});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Ra,getTensorsInContainer:()=>Ma,isTensorInList:()=>Oa,makeTypesMatch:()=>Fa});var s={};n.r(s),n.d(s,{isBrowser:()=>ja,isMobile:()=>Va});var i={};n.r(i),n.d(i,{browserFiles:()=>ei,browserHTTPRequest:()=>ui,concatenateArrayBuffers:()=>ls,copyModel:()=>Vs,decodeWeights:()=>as,encodeWeights:()=>rs,fromMemory:()=>fi,getLoadHandlers:()=>gs,getModelArtifactsInfoForJSON:()=>cs,getSaveHandlers:()=>ms,http:()=>li,isHTTPScheme:()=>ii,listModels:()=>Ws,loadWeights:()=>ri,moveModel:()=>js,registerLoadRouter:()=>ps,registerSaveRouter:()=>ds,removeModel:()=>Us,weightsLoaderFactory:()=>ai,withSaveHandler:()=>di});var o={};n.r(o),n.d(o,{confusionMatrix:()=>yi});var l={};n.r(l),n.d(l,{fromPixels:()=>ki,fromPixelsAsync:()=>_i,toPixels:()=>xi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>Ei});var c={};n.r(c),n.d(c,{calculateShapes:()=>Ni,validateInput:()=>Si,validateUpdateShape:()=>Ci});var h={};n.r(h),n.d(h,{assertParamsValid:()=>Ii,computeFlatOffset:()=>Wi,computeOutShape:()=>Di,getNormalizedAxes:()=>Oi,isSliceContinous:()=>zi,maskToAxes:()=>Ai,parseSliceParams:()=>Ui,sliceInfo:()=>Vi,startForAxis:()=>Pi,startIndicesWithElidedDims:()=>Mi,stopForAxis:()=>Li,stopIndicesWithElidedDims:()=>Bi,stridesForAxis:()=>$i,stridesWithElidedDims:()=>Ti});var f={};n.r(f),n.d(f,{Serializable:()=>ji,SerializationMap:()=>Hi,registerClass:()=>Gi});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>Xi,encodeStrings:()=>ro,expectArrayBuffersEqual:()=>no,expectArraysClose:()=>Ki,expectArraysEqual:()=>Zi,expectNumbersClose:()=>Qi,expectPromiseToFail:()=>Ji,expectValuesInRange:()=>to,testEpsilon:()=>qi});var p={};n.r(p),n.d(p,{conv2d:()=>Gh,depthwiseConv2d:()=>qh,matMul:()=>Yh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>Fd,computeOutShape:()=>Td,segOpComputeOptimalWindowSize:()=>Dd});var g={};n.r(g),n.d(g,{ERF_A1:()=>od,ERF_A2:()=>ld,ERF_A3:()=>ud,ERF_A4:()=>cd,ERF_A5:()=>hd,ERF_P:()=>id,PARALLELIZE_THRESHOLD:()=>Yf,SELU_SCALE:()=>sd,SELU_SCALEALPHA:()=>ad,applyActivation:()=>jh,assertAndGetBroadcastShape:()=>Zo,assertAxesAreInnerMostDims:()=>Ku,assertParamsConsistent:()=>Kf,assignToTypedArray:()=>vd,axesAreInnerMostDims:()=>ju,calculateShapes:()=>Ni,checkEinsumDimSizes:()=>Cd,combineLocations:()=>Hu,complexWithEvenIndex:()=>gd,complexWithOddIndex:()=>yd,computeConv2DInfo:()=>vl,computeConv3DInfo:()=>wl,computeDefaultPad:()=>_l,computeDilation2DInfo:()=>gl,computeOptimalWindowSize:()=>Jf,computeOutAndReduceShapes:()=>Gu,computeOutShape:()=>qf,computePool2DInfo:()=>yl,computePool3DInfo:()=>bl,convertConv2DDataFormat:()=>Il,decodeEinsumEquation:()=>kd,eitherStridesOrDilationsAreOne:()=>Nl,expandShapeToKeepDim:()=>Xu,exponent:()=>_d,exponents:()=>wd,fromStringArrayToUint8:()=>Od,fromUint8ToStringArray:()=>Rd,getAxesPermutation:()=>qu,getBroadcastDims:()=>Yo,getComplexWithIndex:()=>bd,getEinsumComputePath:()=>Sd,getEinsumPermutation:()=>Ed,getFusedBiasGradient:()=>Vh,getFusedDyActivation:()=>Uh,getImageCenter:()=>Zf,getInnerMostAxes:()=>Ju,getPermuted:()=>ed,getReductionAxes:()=>Jo,getReshaped:()=>Qf,getReshapedPermuted:()=>td,getSliceBeginCoords:()=>nd,getSliceSize:()=>rd,getUndoAxesPermutation:()=>Yu,isIdentityPermutation:()=>Nd,log:()=>dd,mergeRealAndImagArrays:()=>pd,prepareAndValidate:()=>Ei,prepareSplitSize:()=>Ad,segment_util:()=>m,shouldFuse:()=>Hh,slice_util:()=>h,splitRealAndImagArrays:()=>md,tupleValuesAreOne:()=>Sl,upcastType:()=>Da,validateInput:()=>Si,validateUpdateShape:()=>Ci,warn:()=>fd});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>uf,nonMaxSuppressionV4Impl:()=>cf,nonMaxSuppressionV5Impl:()=>hf,whereImpl:()=>Ih});var b={};n.r(b),n.d(b,{maxNorm:()=>Im,minMaxNorm:()=>Tm,nonNeg:()=>Dm,unitNorm:()=>Am});var v={};n.r(v),n.d(v,{constant:()=>Pg,glorotNormal:()=>Hg,glorotUniform:()=>jg,heNormal:()=>Gg,heUniform:()=>Xg,identity:()=>Ug,leCunNormal:()=>Kg,leCunUniform:()=>qg,ones:()=>$g,orthogonal:()=>Yg,randomNormal:()=>zg,randomUniform:()=>Lg,truncatedNormal:()=>Wg,varianceScaling:()=>Vg,zeros:()=>Bg});var w={};n.r(w),n.d(w,{Layer:()=>py,RNN:()=>Bv,RNNCell:()=>$v,activation:()=>r_,add:()=>f_,alphaDropout:()=>nx,average:()=>d_,averagePooling1d:()=>x_,averagePooling2d:()=>C_,averagePooling3d:()=>I_,avgPool1d:()=>k_,avgPool2d:()=>S_,avgPool3d:()=>A_,avgPooling1d:()=>E_,avgPooling2d:()=>N_,avgPooling3d:()=>D_,batchNormalization:()=>v_,bidirectional:()=>K_,concatenate:()=>p_,conv1d:()=>Kw,conv2d:()=>qw,conv2dTranspose:()=>Yw,conv3d:()=>Jw,conv3dTranspose:()=>Zw,convLstm2d:()=>j_,convLstm2dCell:()=>H_,cropping2D:()=>e_,dense:()=>a_,depthwiseConv2d:()=>n_,dot:()=>b_,dropout:()=>s_,elu:()=>Uw,embedding:()=>h_,flatten:()=>o_,gaussianDropout:()=>tx,gaussianNoise:()=>ex,globalAveragePooling1d:()=>T_,globalAveragePooling2d:()=>F_,globalMaxPool1d:()=>Y_,globalMaxPool2d:()=>J_,globalMaxPooling1d:()=>R_,globalMaxPooling2d:()=>O_,gru:()=>P_,gruCell:()=>L_,input:()=>$b,inputLayer:()=>Ww,layerNormalization:()=>w_,leakyReLU:()=>jw,lstm:()=>z_,lstmCell:()=>W_,masking:()=>rx,maxPool1d:()=>Z_,maxPool2d:()=>Q_,maxPooling1d:()=>M_,maxPooling2d:()=>B_,maxPooling3d:()=>$_,maximum:()=>m_,minimum:()=>g_,multiply:()=>y_,permute:()=>c_,prelu:()=>Hw,reLU:()=>Vw,repeatVector:()=>l_,reshape:()=>u_,rnn:()=>G_,separableConv2d:()=>Qw,simpleRNN:()=>U_,simpleRNNCell:()=>V_,softmax:()=>Gw,spatialDropout1d:()=>i_,stackedRNNCells:()=>X_,thresholdedReLU:()=>Xw,timeDistributed:()=>q_,upSampling2d:()=>t_,zeroPadding2d:()=>__});var _={};n.r(_),n.d(_,{MAPE:()=>px,MSE:()=>yx,binaryAccuracy:()=>ax,binaryCrossentropy:()=>sx,categoricalAccuracy:()=>ox,categoricalCrossentropy:()=>lx,cosineProximity:()=>hx,mape:()=>mx,meanAbsoluteError:()=>fx,meanAbsolutePercentageError:()=>dx,meanSquaredError:()=>gx,mse:()=>bx,precision:()=>ux,recall:()=>cx,sparseCategoricalAccuracy:()=>ix});var x={};n.r(x),n.d(x,{modelFromJSON:()=>Fb});var k={};n.r(k),n.d(k,{l1:()=>wx,l1l2:()=>vx,l2:()=>_x});var E={};n.r(E),n.d(E,{json:()=>zx});var C={};n.r(C),n.d(C,{json:()=>Wx});var S={};n.r(S),n.d(S,{json:()=>Ux});var N={};n.r(N),n.d(N,{json:()=>Vx});var I={};n.r(I),n.d(I,{json:()=>jx});var A={};n.r(A),n.d(A,{json:()=>Hx});var D={};n.r(D),n.d(D,{json:()=>Gx});var T={};n.r(T),n.d(T,{json:()=>Xx});var F={};n.r(F),n.d(F,{json:()=>Kx});var R={};n.r(R),n.d(R,{json:()=>qx});var O={};n.r(O),n.d(O,{json:()=>Yx});var M={};n.r(M),n.d(M,{json:()=>Jx});var B={};n.r(B),n.d(B,{json:()=>Zx});var $={};n.r($),n.d($,{json:()=>Qx});var P={};n.r(P),n.d(P,{json:()=>ek});var L={};n.r(L),n.d(L,{json:()=>tk});var z={};n.r(z),n.d(z,{json:()=>nk});var W={};n.r(W),n.d(W,{CSVDataset:()=>AE,Dataset:()=>yE,FileDataSource:()=>WE,TextLineDataset:()=>xE,URLDataSource:()=>UE,array:()=>vE,csv:()=>VE,func:()=>jE,generator:()=>HE,microphone:()=>XE,version_data:()=>KE,webcam:()=>GE,zip:()=>wE});var U={};n.r(U),n.d(U,{addImpl:()=>SC,bincountImpl:()=>bS,bincountReduceImpl:()=>vS,ceilImpl:()=>xS,concatImpl:()=>IS,expImpl:()=>_N,expm1Impl:()=>SN,floorImpl:()=>VN,gatherV2Impl:()=>ZN,greaterImpl:()=>eI,lessImpl:()=>dI,linSpaceImpl:()=>vI,logImpl:()=>_I,maxImpl:()=>BI,maximumImpl:()=>LI,minimumImpl:()=>qI,multiplyImpl:()=>nN,negImpl:()=>sA,notEqualImpl:()=>dA,prodImpl:()=>SA,rangeImpl:()=>IA,rsqrtImpl:()=>zA,simpleAbsImpl:()=>MC,sliceImpl:()=>pS,sparseFillEmptyRowsImpl:()=>iD,sparseReshapeImpl:()=>lD,squaredDifferenceImpl:()=>mD,stridedSliceImpl:()=>wD,subImpl:()=>FN,tileImpl:()=>CD,topKImpl:()=>SD,transposeImpl:()=>UC,uniqueImpl:()=>TD});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 K(e,t,n){return Math.max(e,Math.min(t,n))}function q(e){return e%2==0?e:e+1}function Y(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,r=!1){const a=new Array;if(1===t.length){const s=t[0]*(r?2:1);for(let t=0;te*t))*(r?2:1);for(let t=0;te*t))*(n?2:1);if(0===r)return[];if(r!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return De(0,e,t,n)}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 Me(e){e.forEach((t=>{Q(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{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(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...n)=>(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}function We(){return Ve}let Ue,Ve=null;function je(){if(null==Ue){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}Ue=e}return Ue}function He(e,t){const n=function(){const e=je();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 Ge="Abs",Xe="Acos",Ke="Acosh",qe="Add",Ye="AddN",Je="All",Ze="Any",Qe="ArgMax",et="ArgMin",tt="Asin",nt="Asinh",rt="Atan",at="Atanh",st="Atan2",it="AvgPool",ot="AvgPoolGrad",lt="AvgPool3D",ut="AvgPool3DGrad",ct="BatchMatMul",ht="BatchToSpaceND",ft="Bincount",dt="BroadcastTo",pt="Cast",mt="Ceil",gt="ClipByValue",yt="Complex",bt="ComplexAbs",vt="Concat",wt="Conv2D",_t="Conv2DBackpropFilter",xt="Conv2DBackpropInput",kt="Conv3D",Et="Conv3DBackpropFilterV2",Ct="Conv3DBackpropInputV2",St="Cos",Nt="Cosh",It="Cumsum",At="CropAndResize",Dt="DenseBincount",Tt="DepthToSpace",Ft="DepthwiseConv2dNative",Rt="DepthwiseConv2dNativeBackpropFilter",Ot="DepthwiseConv2dNativeBackpropInput",Mt="Diag",Bt="Dilation2D",$t="Dilation2DBackpropInput",Pt="Dilation2DBackpropFilter",Lt="RealDiv",zt="Einsum",Wt="Elu",Ut="EluGrad",Vt="Erf",jt="Equal",Ht="Exp",Gt="ExpandDims",Xt="Expm1",Kt="FFT",qt="Fill",Yt="FlipLeftRight",Jt="Floor",Zt="FloorDiv",Qt="FusedBatchNorm",en="GatherV2",tn="GatherNd",nn="Greater",rn="GreaterEqual",an="Identity",sn="IFFT",on="Imag",ln="IsFinite",un="IsInf",cn="IsNan",hn="LeakyRelu",fn="Less",dn="LessEqual",pn="LinSpace",mn="Log",gn="Log1p",yn="LogicalAnd",bn="LogicalNot",vn="LogicalOr",wn="LogSoftmax",_n="LRN",xn="LRNGrad",kn="Max",En="Maximum",Cn="MaxPool",Sn="MaxPoolGrad",Nn="MaxPool3D",In="MaxPool3DGrad",An="MaxPoolWithArgmax",Dn="Mean",Tn="Min",Fn="Minimum",Rn="MirrorPad",On="Mod",Mn="Multinomial",Bn="Multiply",$n="Neg",Pn="NotEqual",Ln="NonMaxSuppressionV3",zn="NonMaxSuppressionV4",Wn="NonMaxSuppressionV5",Un="OnesLike",Vn="OneHot",jn="Pack",Hn="PadV2",Gn="Pool",Xn="Pow",Kn="Prelu",qn="Prod",Yn="Range",Jn="Real",Zn="Reciprocal",Qn="Relu",er="Reshape",tr="ResizeNearestNeighbor",nr="ResizeNearestNeighborGrad",rr="ResizeBilinear",ar="ResizeBilinearGrad",sr="Relu6",ir="Reverse",or="Round",lr="Rsqrt",ur="ScatterNd",cr="Select",hr="Selu",fr="Slice",dr="Sin",pr="Sinh",mr="Sign",gr="Sigmoid",yr="Softplus",br="Sqrt",vr="Sum",wr="SpaceToBatchND",_r="SplitV",xr="Softmax",kr="SparseFillEmptyRows",Er="SparseReshape",Cr="SparseToDense",Sr="SquaredDifference",Nr="Square",Ir="StridedSlice",Ar="Sub",Dr="Tan",Tr="Tanh",Fr="Tile",Rr="TopK",Or="Transform",Mr="Transpose",Br="Unique",$r="Unpack",Pr="UnsortedSegmentSum",Lr="ZerosLike",zr="Step",Wr="FromPixels",Ur="RotateWithOffset",Vr="_FusedMatMul",jr="FusedConv2D",Hr="FusedDepthwiseConv2D",Gr=He("kernelRegistry",(()=>new Map)),Xr=He("gradRegistry",(()=>new Map));function Kr(e,t){const n=na(e,t);return Gr.get(n)}function qr(e){return Xr.get(e)}function Yr(e){const t=Gr.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 Jr(e){const{kernelName:t,backendName:n}=e,r=na(t,n);Gr.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Gr.set(r,e)}function Zr(e){const{kernelName:t}=e;Xr.has(t)&&We().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Xr.set(t,e)}function Qr(e,t){const n=na(e,t);if(!Gr.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Gr.delete(n)}function ea(e){if(!Xr.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xr.delete(e)}function ta(e,t){Yr(e).forEach((e=>{Jr(Object.assign({},e,{backendName:t}))}))}function na(e,t){return`${t}_${e}`}function ra(e,t){return"string"===t?oa(e):aa([e],t)}function aa(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ne(e)),We().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=sa();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(a);else{a();for(const e of r)e.dataSync();s=Promise.resolve({kernelMs:sa()-i})}if(We().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{ca(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 ca(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 fa(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?ga(e):e;if(o>1)for(let e=0;e" "+e)).join("\n")),l.join("\n")}function da(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?pa(e):parseFloat(e.toFixed(7)).toString(),ce(r,t)}function pa(e){return 0===e?"false":"true"}function ma(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?[da(ga(e)[0],0,n)]:"bool"===n?[pa(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=ga(r),s=ga(s)),["["+r.map(((e,t)=>da(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>da(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?ga(e):Array.from(e)).map(((e,t)=>da(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(...ma(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;tla(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=ba().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>la(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 ba().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(ba().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return va.print(this,e)}clone(){return this.throwIfDisposed(),va.clone(this)}toString(e=!1){return fa(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),va.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),ba().makeVariable(this,e,t,n)}}function xa(){return He("Tensor",(()=>_a))}Object.defineProperty(_a,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),xa();class ka extends _a{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`);ba().disposeTensor(this),this.dataId=e.dataId,ba().incRef(this,null)}dispose(){ba().disposeVariable(this),this.isDisposedInternal=!0}}var Ea,Ca,Sa,Na,Ia;Object.defineProperty(ka,Symbol.hasInstance,{value:e=>e instanceof _a&&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"}(Ea||(Ea={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(Ca||(Ca={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(Sa||(Sa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(Na||(Na={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Ia||(Ia={}));const Aa={float32:Na,int32:Ca,bool:Sa,complex64:Ia};function Da(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Aa[e][t]}function Ta(e){return Da(e,"int32")}function Fa(e,t){if(e.dtype===t.dtype)return[e,t];const n=Da(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Ra(e,t){Q(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Oa(e,t){return t.some((t=>t.id===e.id))}function Ma(e){const t=[];return Ba(e,t,new Set),t}function Ba(e,t,n){if(null==e)return;if(e instanceof _a)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),Ba(r,t,n))}}function $a(e){return null!=e.kernelName}class Pa{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 La{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Pa}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){Yr(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 La.nextTensorId++}nextVariableId(){return La.nextVariableId++}clone(e){const t=Wa.runKernel(an,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e};return Wa.runKernel(pt,t,{dtype:"float32"})}})),[],{}),t}runKernel(e,t,n){if(null==Kr(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=$a(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if($a(e)){const{kernelName:t,inputs:a,attrs:s}=e;null==this.backendName&&this.backend;const l=Kr(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=$a(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=qr(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=>oa(e))));const s=r.write(a,t,n),i=new _a(t,n,s,this.nextTensorId());if(this.trackTensor(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=xe(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new _a(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 ka(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*_e(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 ka||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*_e(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=qr(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=Ma(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 _a,(()=>"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 Wa.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)),Ua);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 _a)),(()=>"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 _a,(()=>"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 _a)),(()=>"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=sa(),n=await this.backend.time(e);return n.wallMs=sa()-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 Pa;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 za(){const e=je();if(null==e._tfengine){const t=new Le(e);e._tfengine=new La(t)}var t;return t=e._tfengine.ENV,Ve=t,ba=()=>e._tfengine,e._tfengine}La.nextTensorId=0,La.nextVariableId=0;const Wa=za();function Ua(e,t){const n={a:e,b:t};return Wa.runKernel(qe,n)}function Va(e){if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.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(t)||/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(t.substr(0,4))}return!1}function ja(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const Ha=We();function Ga(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)&&We().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Xa(e,r,[]),r}function Xa(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),Ka(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=Ga(e,a);we(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?aa(e,a):ne(e,[],!0);return Wa.makeTensor(i,s,a)}function Ya(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)=>qa(e,`${t}[${a}]`,n,r)))}Ha.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.")})),Ha.registerFlag("IS_BROWSER",(()=>ja())),Ha.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),Ha.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),Ha.registerFlag("PROD",(()=>!1)),Ha.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>Ha.getBool("DEBUG"))),Ha.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),Ha.registerFlag("IS_TEST",(()=>!1)),Ha.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0)),Ha.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1));const Ja="__op";function Za(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+=Ja;const a=(...e)=>{Wa.startScope(n);try{const t=r(...e);return Pe(t)&&console.error("Cannot return a Promise inside of tidy."),Wa.endScope(t),t}catch(e){throw Wa.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const Qa=Za({complex_:function(e,t){const n=qa(e,"real","complex"),r=qa(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 Wa.runKernel(yt,a)}});function es(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){Me(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?aa(e,r):ne(e,[],!0),Wa.makeTensor(e,t,r)}function ts(e,t,n){return es(e,t,Ga(e,n),n)}const ns={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function rs(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 is="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function os(e){return is?Buffer.byteLength(e):new Blob([e]).size}function ls(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 us(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function cs(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:os(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:os(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function hs(){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 fs{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==fs.instance&&(fs.instance=new fs),fs.instance}static registerSaveRouter(e){fs.getInstance().saveRouters.push(e)}static registerLoadRouter(e){fs.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return fs.getHandlers(e,"save")}static getLoadHandlers(e,t){return fs.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?fs.getInstance().loadRouters:fs.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const ds=e=>fs.registerSaveRouter(e),ps=e=>fs.registerLoadRouter(e),ms=e=>fs.getSaveHandlers(e),gs=(e,t)=>fs.getLoadHandlers(e,t),ys="tensorflowjs",bs="models_store",vs="model_info_store";function ws(){if(!We().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 _s(e){const t=e.result;t.createObjectStore(bs,{keyPath:"modelPath"}),t.createObjectStore(vs,{keyPath:"modelPath"})}class xs{constructor(e){if(this.indexedDB=ws(),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(ys,1);r.onupgradeneeded=()=>_s(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(bs,"readonly"),r=t.objectStore(bs).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=cs(t),s=a.transaction(vs,"readwrite");let i=s.objectStore(vs);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(bs,"readwrite");const o=l.objectStore(bs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(vs);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)}))}}xs.URL_SCHEME="indexeddb://";const ks=e=>{return We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(xs.URL_SCHEME)?(t=e.slice(xs.URL_SCHEME.length),new xs(t)):null;var t};fs.registerSaveRouter(ks),fs.registerLoadRouter(ks);class Es{constructor(){this.indexedDB=ws()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(ys,1);n.onupgradeneeded=()=>_s(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(vs,"readonly"),s=a.objectStore(vs).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(xs.URL_SCHEME)?t.slice(xs.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(ys,1);r.onupgradeneeded=()=>_s(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(vs,"readwrite"),i=s.objectStore(vs),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(bs,"readwrite");const r=l.objectStore(bs).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 Cs="/",Ss="tensorflowjs_models",Ns="info",Is="model_topology",As="weight_specs",Ds="weight_data",Ts="model_metadata";function Fs(e){return{info:[Ss,e,Ns].join(Cs),topology:[Ss,e,Is].join(Cs),weightSpecs:[Ss,e,As].join(Cs),weightData:[Ss,e,Ds].join(Cs),modelMetadata:[Ss,e,Ts].join(Cs)}}function Rs(e){const t=e.split(Cs);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Cs)}class Os{constructor(e){if(!We().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=Fs(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=cs(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(is)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Os.URL_SCHEME)?(t=e.slice(Os.URL_SCHEME.length),new Os(t)):null;var t};fs.registerSaveRouter(Ms),fs.registerLoadRouter(Ms);class Bs{constructor(){Q(We().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=Ss+Cs,n=Cs+Ns;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith($s)&&(e=e.slice(0,e.indexOf($s))),Q(e.length>0,(()=>"scheme must not be an empty string."));const n=Ps.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 Ls(e){if(-1===e.indexOf($s))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ps.getSchemes().join(",")}`);return{scheme:e.split($s)[0],path:e.split($s)[1]}}async function zs(e,t,n=!1){Q(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=fs.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=fs.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=Ls(e).scheme,l=Ls(e).path,u=o===Ls(e).scheme,c=await a.load();n&&u&&await Ps.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await Ps.getManager(o).removeModel(l),h.modelArtifactsInfo}async function Ws(){const e=Ps.getSchemes(),t={};for(const n of e){const e=await Ps.getManager(n).listModels();for(const r in e)t[n+$s+r]=e[r]}return t}async function Us(e){const t=Ls(e);return Ps.getManager(t.scheme).removeModel(t.path)}async function Vs(e,t){return zs(e,t,!1)}async function js(e,t){return zs(e,t,!0)}class Hs{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(We().get("IS_BROWSER")){We().setPlatform("browser",new Hs);try{Ps.registerManager(Os.URL_SCHEME,new Bs)}catch(e){}try{Ps.registerManager(xs.URL_SCHEME,new Es)}catch(e){}}let Gs;function Xs(e,t="float32",n){return t=t||"float32",Me(e),new ya(e,t,n)}We().get("IS_NODE")&&We().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=We().global.fetch?We().global.fetch(e,t):(null==Gs&&(Gs=n(8352)),Gs(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 Ks=Za({cast_:function(e,t){const n=qa(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 Wa.runKernel(pt,r,a)}}),qs=Za({clone_:function(e){const t={x:qa(e,"x","clone","string_or_numeric")};return Wa.runKernel(an,t)}});function Ys(e,t=!1){console.log(e.toString(t))}function Js(e){return new Promise((e=>setTimeout(e))).then(e)}za(),va={buffer:Xs,cast:Ks,clone:qs,print:Ys};class Zs{constructor(e){if(!We().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Zs.URL_SCHEME)&&(e=e.slice(Zs.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 Js((()=>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 Js((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:cs(e)}}}}Zs.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:ls(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=>us(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=us(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 ei(e){return new Qs(e)}function ti(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 ni(e,t){null==t&&(t={});const n=null==t.fetchFunc?We().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await ti(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await ti(a,t.onProgress,.5,1)}async function ri(e,t="",n,r){return ai((e=>ni(e,{requestInit:r})))(e,t,n)}function ai(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=ns[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=as(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}fs.registerSaveRouter((e=>We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Zs.URL_SCHEME)?function(e="model"){return new Zs(e)}(e.slice(Zs.URL_SCHEME.length)):null));class si{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=We().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:cs(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,ls(await ni(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function ii(e){return null!=e.match(si.URL_SCHEME_REGEX)}si.URL_SCHEME_REGEX=/^https?:\/\//;const oi=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>ii(e))):ii(e),n)return li(e,t)}return null};function li(e,t){return new si(e,t)}function ui(e,t){return li(e,t)}fs.registerSaveRouter(oi),fs.registerLoadRouter(oi);class ci{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class hi{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function fi(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new ci(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 ci({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 ci({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function di(e){return new hi(e)}const pi=Za({matMul_:function(e,t,n=!1,r=!1){let a=qa(e,"a","matMul"),s=qa(t,"b","matMul");[a,s]=Fa(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return Wa.runKernel(ct,i,o)}}),mi=Za({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:qa(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return Wa.runKernel(Vn,a,s)}}),gi=Za({transpose_:function(e,t){const n=qa(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 Wa.runKernel(Mr,r,a)}}),yi=Za({confusionMatrix_:function(e,t,n){const r=qa(e,"labels","confusionMatrix"),a=qa(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=mi(Ks(r,"int32"),n),i=mi(Ks(a,"int32"),n),o=gi(s),l=pi(o,i);return Ks(l,"int32")}});function bi(e,t,n){if(te(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Ga(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 es(e,t,r,n)}let vi;function wi(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!=Kr(Wr,Wa.backendName)){const n={pixels:e},r={numChannels:t};return Wa.runKernel(Wr,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==vi&&(vi=document.createElement("canvas").getContext("2d")),vi.canvas.width=l,vi.canvas.height=u,vi.drawImage(e,0,0,l,u),c=vi.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;n4||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 ki=Za({fromPixels_:wi});function Ei(e,t){const n=e.shape.length,r=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(r<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${r}.`);if("int32"!==t.dtype)throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[r-1]>n)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 Ci(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 Ai(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Di(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Mi(i,l,u,r,e),h=Bi(o,l,u,a,e),f=Ti(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=Fi(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=Fi(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=K(0,i,l-1),i}function Li(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?K(0,i,l):K(-1,i,l-1),i}function zi(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 Wi(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 Vi(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=Ai(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=Ai(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}=Oi(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=Ai(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=Di(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 ji{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Hi{constructor(){this.classNameMap={}}static getMap(){return null==Hi.instance&&(Hi.instance=new Hi),Hi.instance}static register(e){Hi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Gi(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.")),Hi.register(e)}const Xi=.1;function Ki(e,t,n){return null==n&&(n=qi()),Yi(e,t,((e,t)=>eo(e,t,n)))}function qi(){return 32===Wa.backend.floatPrecision()?.001:Xi}function Yi(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=Ga(e),r=Ga(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 Zi(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])?Yi(e,n,((e,t)=>e==t)):Yi(e,t,((e,t)=>eo(e,t,0)))}function Qi(e,t,n){if(null==n&&(n=qi()),!eo(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function eo(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function to(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function no(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function ro(e){for(let t=0;te.dispose()))}function go(e){return Wa.keep(e)}function yo(e){return Wa.time(e)}function bo(e){return Wa.setBackend(e)}function vo(){return Wa.ready()}function wo(){return Wa.backendName}function _o(e){Wa.removeBackend(e)}function xo(e){return Wa.findBackend(e)}function ko(e){return Wa.findBackendFactory(e)}function Eo(e,t,n=1){return Wa.registerBackend(e,t,n)}function Co(){return Wa.backend}function So(e,t){We().setPlatform(e,t)}wa=lo;const No=Za({add_:function(e,t){let n=qa(e,"a","add"),r=qa(t,"b","add");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(qe,a)}}),Io=Za({floorDiv_:function(e,t){let n=qa(e,"a","floorDiv"),r=qa(t,"b","floorDiv");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Zt,a)}}),Ao=Za({div_:function(e,t){let n=qa(e,"a","div"),r=qa(t,"b","div");if([n,r]=Fa(n,r),"int32"===n.dtype&&"int32"===r.dtype)return Io(n,r);const a={a:n,b:r};return Wa.runKernel(Lt,a,{})}}),Do=Za({mul_:function(e,t){let n=qa(e,"a","mul"),r=qa(t,"b","mul");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Bn,a)}}),To=Za({sqrt_:function(e){const t={x:qa(e,"x","sqrt")};return Wa.runKernel(br,t)}}),Fo=Za({square_:function(e){const t=qa(e,"x","square");return Wa.runKernel("Square",{x:t},{})}}),Ro=Za({zerosLike_:function(e){const t={x:qa(e,"x","zerosLike")};return Wa.runKernel(Lr,t)}});function Oo(e){return Q(Ne(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=qa(t,"x","tf.grad","string_or_numeric"),a=null!=n?qa(n,"dy","tf.grad"):null;return Wa.tidy((()=>{const{value:t,grads:n}=Wa.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)"),zo(n),n[0]}))}}function Mo(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=Ya(t,"args","tf.grads","string_or_numeric"),a=null!=n?qa(n,"dy","tf.grads"):null;return Wa.tidy((()=>{const{value:t,grads:n}=Wa.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,...])"),zo(n),n}))}}function Bo(e){return Q(Ne(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Q(t instanceof _a,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Q(null==n||n instanceof _a,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=Wa.gradients((()=>e(t)),[t],n);return zo(r),{grad:r[0],value:a}}}function $o(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 _a)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Q(null==n||n instanceof _a,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=Wa.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,...])"),zo(r.grads),r}}function Po(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 ka)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in Wa.registeredVariables)t.push(Wa.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}=Wa.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 Lo(e){return Wa.customGrad(e)}function zo(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 Wo(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 es(e,[],[],t)}class Uo extends ji{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 mo(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 Po(e,t)}dispose(){null!=this.iterations_&&mo(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:Wo(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(Uo,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Vo extends Uo{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Wa.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:po((()=>Ro(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:po((()=>Ro(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;po((()=>{const e=No(Do(s,this.rho),Do(Fo(a),1-this.rho)),t=Do(Ao(To(No(i,this.epsilon)),To(No(s,this.epsilon))),a),n=No(Do(i,this.rho),Do(Fo(t),1-this.rho));s.assign(e),i.assign(n);const o=No(Do(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(mo(this.accumulatedGrads.map((e=>e.variable))),mo(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 jo(e,t,n){const r={shape:e,value:t,dtype:n};return Wa.runKernel(qt,{},r)}Vo.className="Adadelta",Gi(Vo);class Ho extends Uo{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=Wa.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:po((()=>jo(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;po((()=>{const e=No(s,Fo(a));s.assign(e);const t=No(Do(Ao(a,To(No(e,Wa.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&mo(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)}}Ho.className="Adagrad",Gi(Ho);const Go=Za({pow_:function(e,t){let n=qa(e,"base","pow"),r=qa(t,"exp","pow");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Xn,a)}}),Xo=Za({sub_:function(e,t){let n=qa(e,"a","sub"),r=qa(t,"b","sub");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Ar,a)}});class Ko extends Uo{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],po((()=>{this.accBeta1=Wo(t).variable(),this.accBeta2=Wo(n).variable()})),null==r&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);po((()=>{const n=Xo(1,this.accBeta1),r=Xo(1,this.accBeta2);t.forEach(((t,a)=>{const s=Wa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:po((()=>Ro(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:po((()=>Ro(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=No(Do(o,this.beta1),Do(i,1-this.beta1)),c=No(Do(l,this.beta2),Do(Fo(i),1-this.beta2)),h=Ao(u,n),f=Ao(c,r);o.assign(u),l.assign(c);const d=No(Do(Ao(h,No(To(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(Do(this.accBeta1,this.beta1)),this.accBeta2.assign(Do(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&mo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&mo(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),po((()=>{this.accBeta1.assign(Go(this.beta1,this.iterations_+1)),this.accBeta2.assign(Go(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)}}Ko.className="Adam",Gi(Ko);const qo=Za({abs_:function(e){const t=qa(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return Wa.runKernel(bt,e)}{const e={x:t};return Wa.runKernel(Ge,e)}}});function Yo(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 Zo(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=Wo(0).variable(),this.accBeta1=Wo(t).variable()})),null==r&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);po((()=>{const n=Xo(1,this.accBeta1),r=Ao(-this.learningRate,No(Do(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=Wa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:Ro(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:Ro(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=No(Do(o,this.beta1),Do(i,1-this.beta1)),c=Do(l,this.beta2),h=qo(i),f=Qo(c,h);o.assign(u),l.assign(f);const d=No(Do(Ao(r,n),Ao(u,No(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(No(this.iteration,1)),this.accBeta1.assign(Do(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&mo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&mo(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)}}el.className="Adamax",Gi(el);class tl extends Uo{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=Wa.registeredVariables[t];po((()=>{const e=No(Do(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=go(Wo(-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)}}tl.className="SGD",Gi(tl);class nl extends tl{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=Wo(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Wa.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:po((()=>Ro(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&po((()=>{let e;const t=No(Do(this.m,a),s);e=this.useNesterov?No(Do(this.c,No(s,Do(t,this.m))),r):No(Do(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&mo(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)}}nl.className="Momentum",Gi(nl);class rl extends Uo{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=Wa.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=Wa.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:po((()=>Ro(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:po((()=>Ro(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:po((()=>Ro(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;po((()=>{const e=No(Do(i,this.decay),Do(Fo(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=No(Do(t,this.decay),Do(s,1-this.decay)),l=Ao(Do(s,this.learningRate),To(Xo(e,No(Fo(a),this.epsilon)))),u=No(Do(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=Xo(r,u);r.assign(c)}else{const e=No(Do(i,this.decay),Do(Fo(s),1-this.decay)),t=No(Do(o,this.momentum),Ao(Do(s,this.learningRate),To(No(e,this.epsilon))));i.assign(e),o.assign(t);const n=Xo(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&mo(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&mo(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&mo(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)}}rl.className="RMSProp",Gi(rl);const al=Za({acos_:function(e){const t={x:qa(e,"x","acos")};return Wa.runKernel(Xe,t)}}),sl=Za({acosh_:function(e){const t={x:qa(e,"x","acosh")};return Wa.runKernel(Ke,t)}}),il=Za({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)=>qa(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 Wa.runKernel(Ye,r)}}),ol=Za({all_:function(e,t=null,n=!1){const r={x:qa(e,"x","all","bool")},a={axis:t,keepDims:n};return Wa.runKernel(Je,r,a)}}),ll=Za({any_:function(e,t=null,n=!1){const r={x:qa(e,"x","any","bool")},a={axis:t,keepDims:n};return Wa.runKernel(Ze,r,a)}}),ul=Za({argMax_:function(e,t=0){const n={x:qa(e,"x","argMax")},r={axis:t};return Wa.runKernel(Qe,n,r)}}),cl=Za({argMin_:function(e,t=0){const n={x:qa(e,"x","argMin")},r={axis:t};return Wa.runKernel(et,n,r)}}),hl=Za({asin_:function(e){const t={x:qa(e,"x","asin")};return Wa.runKernel(tt,t)}}),fl=Za({asinh_:function(e){const t={x:qa(e,"x","asinh")};return Wa.runKernel(nt,t)}}),dl=Za({atan_:function(e){const t={x:qa(e,"x","atan")};return Wa.runKernel(rt,t)}}),pl=Za({atan2_:function(e,t){let n=qa(e,"a","atan2"),r=qa(t,"b","atan2");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(st,a)}}),ml=Za({atanh_:function(e){const t={x:qa(e,"x","atanh")};return Wa.runKernel(at,t)}});function gl(e,t,n,r,a="NHWC",s){return vl(e,[...t,e[3]],n,s,r,null,null,Il(a))}function yl(e,t,n,r,a,s,i="channelsLast"){const[o,l]=xl(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 vl(e,u,n,r,a,s,!1,i)}function bl(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=kl(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 wl(e,c,n,r,a,!1,h,s)}function vl(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]=xl(n),[y,b]=xl(r),v=El(f,y),w=El(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=_l(e,t,n));const s=e[1];return[Cl((e[0]-t+2*r)/n+1,a),Cl((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=Cl((t-s+f+d)/r+1,o),h=Cl((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 wl(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]=kl(n),[w,_,x]=kl(r),k=El(d,w),E=El(p,_),C=El(m,x),{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=_l(e,t,r));const i=e[1],o=e[2];return[Cl((e[0]-t+2*a)/r+1,s),Cl((i-t+2*a)/r+1,s),Cl((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:_,dilationWidth:x,inShape:e,outShape:T,filterShape:t}}function _l(e,t,n,r=1){const a=El(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function xl(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function kl(e){return"number"==typeof e?[e,e,e]:e}function El(e,t){return t<=1?e:e+(e-1)*(t-1)}function Cl(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 Sl(e){const[t,n,r]=xl(e);return 1===t&&1===n&&1===r}function Nl(e,t){return Sl(e)||Sl(t)}function Il(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const Al=Za({reshape_:function(e,t){const n={x:qa(e,"x","reshape","string_or_numeric")},r={shape:t};return Wa.runKernel(er,n,r)}}),Dl=Za({avgPool_:function(e,t,n,r,a){const s=qa(e,"x","avgPool","float32");Q(Nl(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=Al(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=Wa.runKernel(it,l,u);return c=Ks(c,s.dtype),o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Tl=Za({avgPool3d_:function(e,t,n,r,a,s="NDHWC"){const i=qa(e,"x","avgPool3d","float32");let o=i,l=!1;4===i.rank&&(l=!0,o=Al(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=Wa.runKernel(lt,u,c);return h=Ks(h,o.dtype),l?Al(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),Fl=Za({concat_:function(e,t=0){Q(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ya(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 qs(n[0]);const r=n,a={axis:t};return Wa.runKernel(vt,r,a)}}),Rl=Za({sigmoid_:function(e){const t={x:qa(e,"x","sigmoid")};return Wa.runKernel(gr,t)}}),Ol=Za({slice_:function(e,t,n){const r=qa(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 Wa.runKernel(fr,a,s)}}),Ml=Za({tanh_:function(e){const t={x:qa(e,"x","tanh")};return Wa.runKernel(Tr,t)}}),Bl=Za({basicLSTMCell_:function(e,t,n,r,a,s){const i=qa(e,"forgetBias","basicLSTMCell"),o=qa(t,"lstmKernel","basicLSTMCell"),l=qa(n,"lstmBias","basicLSTMCell"),u=qa(r,"data","basicLSTMCell"),c=qa(a,"c","basicLSTMCell"),h=qa(s,"h","basicLSTMCell"),f=Fl([u,h],1),d=pi(f,o),p=No(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=Ol(p,[0,0],y),v=Ol(p,[0,g],y),w=Ol(p,[0,2*g],y),_=Ol(p,[0,3*g],y),x=No(Do(Rl(b),Ml(v)),Do(c,Rl(No(i,w))));return[x,Do(Ml(x),Rl(_))]}}),$l=Za({batchToSpaceND_:function(e,t,n){const r=qa(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 Wa.runKernel(ht,s,i)}}),Pl=Za({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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?Al(e,[1,1,1,e.size]):2===e.rank?Al(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?Al(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=Wa.runKernel(Qt,h,f);return Al(d,i.shape)}}),Ll=Za({batchNorm2d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),zl=Za({batchNorm3d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),Wl=Za({batchNorm4d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),Ul=Za({bincount_:function(e,t,n){const r=qa(e,"x","bincount"),a=qa(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 Wa.runKernel(ft,s,i)}}),Vl=Za({broadcastTo_:function(e,t){let n=qa(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 qs(n);const i={x:n},o={reps:s};return Wa.runKernel(Fr,i,o)}}),jl=Za({ceil_:function(e){const t={x:qa(e,"x","ceil")};return Wa.runKernel(mt,t)}}),Hl=Za({clipByValue_:function(e,t,n){const r=qa(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 Wa.runKernel(gt,a,s)}}),Gl=Za({concat1d_:function(e){return Fl(e,0)}}),Xl=Za({concat2d_:function(e,t){return Fl(e,t)}}),Kl=Za({concat3d_:function(e,t){return Fl(e,t)}}),ql=Za({concat4d_:function(e,t){return Fl(e,t)}}),Yl=Za({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=qa(e,"x","conv2d"),l=qa(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Al(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(Nl(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=Wa.runKernel(wt,f,d);return c?Al(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Jl=Za({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=qa(e,"x","conv1d"),l=qa(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=Al(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(Nl(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=Al(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=Al(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=Yl(f,h,[1,n],r,"NHWC",[1,s],i);return Al(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Zl=Za({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=Al(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=Wa.runKernel(xt,f,d);return u?Al(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Ql=Za({conv2dTranspose_:function(e,t,n,r,a,s){const i=qa(e,"x","conv2dTranspose"),o=qa(t,"filter","conv2dTranspose");return Zl(n,i,o,r,a,"NHWC",s)}}),eu=Za({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=qa(e,"x","conv3d"),o=qa(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=Al(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(Nl(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=Wa.runKernel(kt,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),tu=Za({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=Al(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=Wa.runKernel(Ct,c,h);return o?Al(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),nu=Za({conv3dTranspose_:function(e,t,n,r,a){const s=qa(e,"x","conv3dTranspose"),i=qa(t,"filter","conv3dTranspose");return tu(n,s,i,r,a)}}),ru=Za({cos_:function(e){const t={x:qa(e,"x","cos")};return Wa.runKernel(St,t)}}),au=Za({cosh_:function(e){const t={x:qa(e,"x","cosh")};return Wa.runKernel(Nt,t)}}),su=Za({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:qa(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return Wa.runKernel(It,a,s)}}),iu=Za({denseBincount_:function(e,t,n,r=!1){const a=qa(e,"x","denseBincount"),s=qa(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 Wa.runKernel(Dt,i,o)}}),ou=Za({depthToSpace_:function(e,t,n="NHWC"){const r=qa(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 Wa.runKernel(Tt,o,l)}}),lu=Za({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=qa(e,"x","depthwiseConv2d"),l=qa(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Al(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=Wa.runKernel(Ft,h,f);return c?Al(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),uu=Za({diag_:function(e){const t={x:qa(e,"x","diag")};return Wa.runKernel(Mt,t)}}),cu=Za({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=qa(e,"x","dilation2d"),o=qa(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=Al(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=Wa.runKernel(Bt,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),hu=Za({equal_:function(e,t){let n=qa(e,"a","equal"),r=qa(t,"b","equal");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(jt,a)}}),fu=Za({where_:function(e,t,n){const r=qa(t,"a","where"),a=qa(n,"b","where"),s=qa(e,"condition","where","bool"),i=Zo(Zo(s.shape,r.shape),a.shape),o={condition:Vl(s,i),t:Vl(r,i),e:Vl(a,i)};return Wa.runKernel(cr,o)}}),du=Za({divNoNan_:function(e,t){let n=qa(e,"a","div"),r=qa(t,"b","div");[n,r]=Fa(n,r);const a=Ao(n,r),s=Ro(a),i=hu(r,s);return fu(i,s,a)}}),pu=Za({dot_:function(e,t){const n=qa(e,"t1","dot"),r=qa(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=Al(n,[1,-1]),t=Al(r,[-1,1]),a=pi(e,t);return Al(a,[])}if(1===n.rank&&2===r.rank){const e=Al(n,[1,-1]),t=Al(r,[r.shape[0],r.shape[1]]),a=pi(e,t);return Al(a,[a.size])}if(2===n.rank&&1===r.rank){const e=Al(r,[-1,1]),t=pi(n,e);return Al(t,[t.size])}{const e=Al(r,[r.shape[0],r.shape[1]]);return pi(n,e)}}}),mu=Za({einsum_:function(e,...t){const n=t.map(((e,t)=>qa(e,`tensors${t}`,"einsum"))),r={equation:e};return Wa.runKernel(zt,n,r)}}),gu=Za({elu_:function(e){const t={x:qa(e,"x","elu")};return Wa.runKernel(Wt,t)}}),yu=Za({erf_:function(e){let t=qa(e,"x","erf");Q("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=Ks(t,"float32"));const n={x:t};return Wa.runKernel(Vt,n)}}),bu=Za({exp_:function(e){const t={x:qa(e,"x","exp")};return Wa.runKernel(Ht,t)}}),vu=Za({expandDims_:function(e,t=0){const n=qa(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 Wa.runKernel(Gt,r,a)}}),wu=Za({expm1_:function(e){const t={x:qa(e,"x","expm1")};return Wa.runKernel(Xt,t)}}),_u=Za({tile_:function(e,t){const n=qa(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 Wa.runKernel(Fr,r,a)}}),xu=Za({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Xs([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=Al(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=Wa.runKernel(_n,l,u);return o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Bu=Za({log_:function(e){const t={x:qa(e,"x","log")};return Wa.runKernel(mn,t)}}),$u=Za({log1p_:function(e){const t={x:qa(e,"x","log1p")};return Wa.runKernel(gn,t)}}),Pu=Za({neg_:function(e){const t={x:qa(e,"x","neg")};return Wa.runKernel($n,t)}}),Lu=Za({softplus_:function(e){const t={x:qa(e,"x","softplus")};return Wa.runKernel(yr,t)}}),zu=Za({logSigmoid_:function(e){const t=qa(e,"x","logSigmoid");return Lo((e=>({value:Pu(Lu(Pu(e))),gradFunc:t=>Do(t,Rl(Pu(e)))})))(t)}}),Wu=Za({max_:function(e,t=null,n=!1){const r={x:qa(e,"x","max")},a={reductionIndices:t,keepDims:n};return Wa.runKernel(kn,r,a)}}),Uu=Za({sum_:function(e,t=null,n=!1){let r=qa(e,"x","sum");"bool"===r.dtype&&(r=Ks(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Wa.runKernel(vr,a,s)}}),Vu=Za({logSoftmax_:function(e,t=-1){const n=qa(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 Lo(((e,n)=>{const r=Wu(e,t,!0),a=Xo(e,r),s=Xo(Ks(a,"float32"),Bu(Uu(bu(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=bu(r);return Xo(e,Do(Uu(e,t,!0),a))}}}))(n)}});function ju(e,t){for(let n=0;ne[t]))]}function Xu(e,t){return Hu(e,t.map((e=>1)),t)}function Ku(e,t,n){Q(ju(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function qu(e,t){if(ju(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Yu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Ju(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Q(Nl(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=Wa.runKernel(Cn,l,u);return o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),ac=Za({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC"){const i=qa(e,"x","maxPool3d");let o=i,l=!1;4===i.rank&&(l=!0,o=Al(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=Wa.runKernel(Nn,u,c);return l?Al(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),sc=Za({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:qa(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=Wa.runKernel(An,s,i);return{result:o[0],indexes:o[1]}}}),ic=Za({mean_:function(e,t=null,n=!1){const r={x:qa(e,"x","mean")},a={axis:t,keepDims:n};return Wa.runKernel(Dn,r,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 Wa.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 Wa.makeTensor(n,e,t)}function uc(e,t,{indexing:n="xy"}={}){if("xy"!==n&&"ij"!==n)throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(void 0===e)return[];let r=qa(e,"x","meshgrid",e instanceof _a?e.dtype:"float32");if(void 0===t)return[r];let a=qa(t,"y","meshgrid",t instanceof _a?t.dtype:"float32");const s=re(r.shape),i=re(a.shape);return"xy"===n?(r=Al(r,[1,-1]),a=Al(a,[-1,1]),[pi(lc([i,1],r.dtype),r),pi(a,lc([1,s],a.dtype))]):(r=Al(r,[-1,1]),a=Al(a,[1,-1]),[pi(r,lc([1,i],r.dtype)),pi(lc([s,1],a.dtype),a)])}const cc=Za({min_:function(e,t=null,n=!1){const r={x:qa(e,"x","min")},a={axis:t,keepDims:n};return Wa.runKernel(Tn,r,a)}}),hc=Za({minimum_:function(e,t){let n=qa(e,"a","minimum"),r=qa(t,"b","minimum");[n,r]=Fa(n,r),"bool"===n.dtype&&(n=Ks(n,"int32"),r=Ks(r,"int32")),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Fn,a)}}),fc=Za({mirrorPad_:function(e,t,n){Q("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=qa(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 Wa.runKernel(Rn,i,s)}}),dc=Za({mod_:function(e,t){let n=qa(e,"a","mod"),r=qa(t,"b","mod");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(On,a)}}),pc=Za({moments_:function(e,t=null,n=!1){const r=de(t,(e=qa(e,"x","moments")).shape),a=ic(e,r,n);let s=a.shape;n||(s=Xu(a.shape,r));const i=Fo(Xo(Ks(e,"float32"),Al(a,s)));return{mean:a,variance:ic(i,r,n)}}}),mc=Za({multiRNNCell_:function(e,t,n,r){const a=qa(t,"data","multiRNNCell"),s=Ya(n,"c","multiRNNCell"),i=Ya(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?Al(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=Wa.runKernel(Mn,o,l);return 1===i?Al(u,[u.size]):u}}),yc=Za({notEqual_:function(e,t){let n=qa(e,"a","notEqual"),r=qa(t,"b","notEqual");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Pn,a)}}),bc=Za({onesLike_:function(e){const t={x:qa(e,"x","onesLike")};return Wa.runKernel(Un,t)}}),vc=Za({outerProduct_:function(e,t){const n=qa(e,"v1","outerProduct"),r=qa(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=Al(n,[-1,1]),s=Al(r,[1,-1]);return pi(a,s)}}),wc=Za({pad_:function(e,t,n=0){const r=qa(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 Wa.runKernel(Hn,s,a)}}),_c=Za({pad1d_:function(e,t,n=0){return Q(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),wc(e,[t],n)}}),xc=Za({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.")),wc(e,t,n)}}),kc=Za({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.")),wc(e,t,n)}}),Ec=Za({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.")),wc(e,t,n)}}),Cc=Za({spaceToBatchND_:function(e,t,n){const r=qa(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 Wa.runKernel(wr,a,s)}}),Sc=Za({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=qa(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=Al(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Q(Nl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=yl(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:Cc(o,c,d),y=("avg"===n?()=>Dl(g,t,s,m):()=>rc(g,t,s,m))(),b=f?y:$l(y,c,p);return l?Al(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),Nc=Za({prelu_:function(e,t){const n={x:qa(e,"x","prelu"),alpha:qa(t,"alpha","prelu")};return Wa.runKernel(Kn,n)}}),Ic=Za({prod_:function(e,t=null,n=!1){let r=qa(e,"x","prod");"bool"===r.dtype&&(r=Ks(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Wa.runKernel(qn,a,s)}}),Ac=Za({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 Fc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=Dc.alea(a.toString()),this.randn=new Tc(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=Dc.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Oc=Za({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 Fc(t,n,r,a),i=Xs(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Uc(t,0)}}),jc=Za({reverse2d_:function(e,t){const n=qa(e,"x","reverse");return Q(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Uc(n,t)}}),Hc=Za({reverse3d_:function(e,t){const n=qa(e,"x","reverse");return Q(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Uc(n,t)}}),Gc=Za({reverse4d_:function(e,t){const n=qa(e,"x","reverse");return Q(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Uc(n,t)}}),Xc=Za({round_:function(e){const t={x:qa(e,"x","round")};return Wa.runKernel(or,t)}}),Kc=Za({rsqrt_:function(e){const t={x:qa(e,"x","rsqrt")};return Wa.runKernel(lr,t)}}),qc=Za({selu_:function(e){const t={x:qa(e,"x","selu")};return Wa.runKernel(hr,t)}}),Yc=Za({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=qa(e,"x","separableConv2d"),l=qa(t,"depthwiseFilter","separableConv2d"),u=qa(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=Al(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=lu(c,l,r,a,i,s),m=Yl(p,u,1,"valid",i);return h?Al(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Jc=async function(e,t){const n=qa(e,"x","setdiff1d"),r=qa(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`)),Ol(r,[t],[n])}}),nh=Za({slice2d_:function(e,t,n){const r=qa(e,"x","slice2d");return Q(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),rh=Za({slice3d_:function(e,t,n){const r=qa(e,"x","slice3d");return Q(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),ah=Za({slice4d_:function(e,t,n){const r=qa(e,"x","slice4d");return Q(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),sh=Za({softmax_:function(e,t=-1){const n=qa(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 Wa.runKernel(xr,r,a)}}),ih=Za({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 Wa.runKernel(Kt,t)}}),oh=Za({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 Wa.runKernel(sn,t)}}),lh=Za({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=Al(e,[n,t]);r=oh(a)}else{const a=[n,2*(t-1)],s=Al(Pc(e),[n,t]),i=Al(Nu(e),[n,t]),o=Uc(Ol(s,[0,1],[n,t-2]),1),l=Do(Uc(Ol(i,[0,1],[n,t-2]),1),Wo(-1)),u=Fl([s,o],1),c=Fl([i,l],1),h=Al(Qa(u,c),[a[0],a[1]]);r=oh(h)}if(r=Pc(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=Al(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),uh=Za({split_:function(e,t,n=0){const r={x:qa(e,"x","split")},a={numOrSizeSplits:t,axis:n};return Wa.runKernel(_r,r,a)}}),ch=Za({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=Ol(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=Fl([e,oc(r)],e.shape.length-1),n=t}else a=e;const s=Ro(a),i=Al(Qa(a,s),[r,n]),o=ih(i),l=Math.floor(n/2)+1,u=Pc(o),c=Nu(o),h=uh(u,[l,n-l],u.shape.length-1),f=uh(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,Al(Qa(h[0],f[0]),d)}}),hh=Za({squaredDifference_:function(e,t){let n=qa(e,"a","squaredDifference"),r=qa(t,"b","squaredDifference");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Sr,a,{})}}),fh=Za({squeeze_:function(e,t){const n=qa(e,"x","squeeze");return Al(n,pe(n.shape,t).newShape)}}),dh=Za({stack_:function(e,t=0){const n=Ya(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 Wa.runKernel(jn,r,a)}}),ph=Za({step_:function(e,t=0){const n={x:qa(e,"x","step")},r={alpha:t};return Wa.runKernel(zr,n,r)}}),mh=Za({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:qa(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return Wa.runKernel(Ir,u,c)}}),gh=Za({tan_:function(e){const t={x:qa(e,"x","tan")};return Wa.runKernel(Dr,t)}});function yh(e,t){te(e);const n=Ga(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return es(e,null,n,t)}function bh(e,t,n){if(te(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Ga(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 es(e,t,r,n)}function vh(e,t,n){if(te(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Ga(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 es(e,t,r,n)}function wh(e,t,n){if(te(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Ga(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 es(e,t,r,n)}function _h(e,t,n){if(te(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Ga(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 es(e,t=t||r,r,n)}const xh=Za({topk_:function(e,t=1,n=!0){const r=qa(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]=Wa.runKernel(Rr,s,i);return{values:o,indices:l}}}),kh=Za({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new Tc(t,n,r,!0,a),i=Xs(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=Wa.runKernel(Br,r,a);return{values:s,indices:i}}}),Ch=Za({unsortedSegmentSum_:function(e,t,n){const r=qa(e,"x","unsortedSegmentSum"),a=qa(t,"segmentIds","unsortedSegmentSum","int32");Q(ie(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return Wa.runKernel(Pr,s,i)}}),Sh=Za({unstack_:function(e,t=0){const n=qa(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 Wa.runKernel($r,r,a)}});function Nh(e,t=!0,n,r){return Wa.makeVariable(e,t,n,r)}function Ih(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=Wo(1),u=Xo(l,o);let c=Do(Xo(i,s),u);if(a){Q(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=qa(r,"step","movingAverage");c=Ao(c,Xo(l,Go(o,e)))}return No(s,c)}}),Oh=Za({scatterND_:function(e,t,n){const r=qa(e,"indices","scatterND","int32"),a=qa(t,"updates","scatterND");Si(a,r,n);const s={indices:r,updates:a},i={shape:n};return Wa.runKernel(ur,s,i)}}),Mh=Za({sparseToDense_:function(e,t,n,r=0){const a=qa(e,"sparseIndices","sparseToDense","int32"),s=qa(t,"sparseValues","sparseToDense"),i=qa(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 Wa.runKernel(Cr,o,l)}}),Bh=Za({gatherND_:function(e,t){const n=qa(t,"indices","gatherND","int32"),r={params:qa(e,"x","gatherND"),indices:n};return Wa.runKernel(tn,r)}}),$h=Za({dropout_:function(e,t,n,r){const a=qa(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 _a?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 Wa.runKernel(_t,h,f)}});function Uh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return Do(e,ph(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Vh(e,t){let n=t;const r=Jo(e.shape,t.shape);return r.length>0&&(n=Uu(n,r)),Al(n,e.shape)}function jh(e,t,n,r){if("linear"===t)return e;if("relu"===t)return zc(e);if("elu"===t)return gu(e);if("relu6"===t)return Wc(e);if("prelu"===t)return Nc(e,n);if("leakyrelu"===t)return Tu(e,r);if("sigmoid"===t)return Rl(e);throw new Error(`Unknown fused activation ${t}.`)}const Hh=(e,t)=>!(e>0)||"linear"===t,Gh=Za({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===Hh(Wa.state.gradientDepth,l)){let h=Yl(e,t,n,r,a,s,i);return null!=o&&(h=No(h,o)),jh(h,l,u,c)}const h=qa(e,"x","conv2d"),f=qa(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Al(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(Nl(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=vl(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=qa(o,"bias","fused conv2d"),[g]=Fa(g,h),Zo(m.outShape,g.shape)),null!=u&&(y=qa(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Uh(e,o,l);Q(Sl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Zl(i.shape,c,a,n,r),Wh(i,c,a.shape,n,r)];if(null!=u){const e=Vh(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?Lo(((e,t,n)=>{let r=Wa.runKernel(jr,v,w);return n([t,e,r]),p&&(r=Al(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Lo(((e,t,n,r)=>{let a=Wa.runKernel(jr,v,w);return r([t,e,a,n]),p&&(a=Al(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Xh=Za({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=Al(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=Al(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 Wa.runKernel(Rt,u,c)}}),Kh=Za({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=Al(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=Wa.runKernel(Ot,u,c);return l?Al(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),qh=Za({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===Hh(Wa.state.gradientDepth,l)){let h=lu(e,t,n,r,a,s,i);return null!=o&&(h=No(h,o)),jh(h,l,u,c)}const h=qa(e,"x","depthwiseConv2d"),f=qa(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Al(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(Nl(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=vl(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=qa(o,"bias","fused conv2d"),[g]=Fa(g,h),Zo(m.outShape,g.shape)),null!=u&&(y=qa(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Q(Sl(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=Uh(e,u,l),f=Kh(o.shape,h,a,n,r,s,i),d=Xh(o,h,a.shape,n,r,s,i);return null!=c?[f,d,Vh(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?Lo(((e,t,n)=>{let r=Wa.runKernel(Hr,v,w);return n([t,e,r]),p&&(r=Al(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Lo(((e,t,n,r)=>{let a=Wa.runKernel(Hr,v,w);return r([t,e,a,n]),p&&(a=Al(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Yh=Za({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Hh(Wa.state.gradientDepth,s)){let l=pi(e,t,n,r);return null!=a&&(l=No(l,a)),jh(l,s,i,o)}let l=qa(e,"a","fused matMul"),u=qa(t,"b","fused matMul");[l,u]=Fa(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=Al(l,n?[g,c,f]:[g,f,c]),w=Al(u,r?[y,d,h]:[y,h,d]);let _,x;null!=a&&(_=qa(a,"bias","fused matMul"),[_]=Fa(_,l),Zo(b,_.shape)),null!=i&&(x=qa(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Uh(Al(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=pi(c,o,!1,!1),f=pi(c,i,!0,!1)):n&&!r?(h=pi(o,c,!1,!0),f=pi(i,c,!1,!1)):(h=pi(o,c,!0,!0),f=pi(c,i,!0,!0)):(h=pi(c,o,!1,!0),f=pi(i,c,!0,!1)),null!=a?[h,f,Vh(u,c)]:[h,f]},E={a:v,b:w,bias:_,preluActivationWeights:x},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Lo(((e,t,n)=>{const r=Wa.runKernel(Vr,E,C);return n([e,t,r]),{value:Al(r,b),gradFunc:k}}))(v,w):Lo(((e,t,n,r)=>{const a=Wa.runKernel(Vr,E,C);return r([e,t,a,n]),{value:Al(a,b),gradFunc:k}}))(v,w,_)}}),Jh=Za({hammingWindow_:function(e){return Lh(e,.54,.46)}}),Zh=Za({hannWindow_:function(e){return Lh(e,.5,.5)}}),Qh=Za({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(Ol(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 Wa.runKernel(At,c,h)}}),nf=Za({flipLeftRight_:function(e){const t=qa(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 Wa.runKernel(Yt,n,{})}}),rf=Za({rotateWithOffset_:function(e,t,n=0,r=.5){const a=qa(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 Wa.runKernel(Ur,s,i)}});function af(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 sf=Za({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=qa(e,"boxes","nonMaxSuppression"),i=qa(t,"scores","nonMaxSuppression"),o=af(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return Wa.runKernel(Ln,{boxes:s,scores:i},l)}});function of(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||lf)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function lf(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(mf);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=df(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*pf(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&&of(u,t,mf))}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 df(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 pf(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function mf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const gf=Za({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=qa(e,"boxes","nonMaxSuppression"),o=qa(t,"scores","nonMaxSuppression"),l=af(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=Wa.runKernel(Wn,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),yf=Za({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=qa(e,"boxes","nonMaxSuppression"),o=qa(t,"scores","nonMaxSuppression"),l=af(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=Wa.runKernel(zn,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),bf=Za({resizeBilinear_:function(e,t,n=!1,r=!1){const a=qa(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=Al(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Wa.runKernel(rr,o,l);return i?Al(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),vf=Za({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=qa(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=Al(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Wa.runKernel(tr,o,l);return i?Al(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),wf=Za({threshold_:function(e,t="binary",n=!1,r=.5){const a=qa(e,"image","threshold"),s=a.shape[0]*a.shape[1];let i,o,l,u,c=Do(yh([r]),255);if(Q(3===a.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${a.rank}.`)),Q(3===a.shape[2]||1===a.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${a.shape[2]}.`)),Q("int32"===a.dtype||"float32"===a.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${a.dtype}.`)),Q("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===a.shape[2]){[i,o,l]=uh(a,[1,1,1],-1);const e=Do(i,.2989),t=Do(o,.587),n=Do(l,.114);u=No(No(e,t),n)}else u=e;"otsu"===t&&(c=function(e,t){let n,r,a,s,i,o,l=yh([-1]),u=yh([0]),c=yh([0]);for(let h=0;h`Error in transform: image must be rank 4,but got rank ${i.rank}.`)),Q(2===o.rank&&(o.shape[0]===i.shape[0]||1===o.shape[0])&&8===o.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),Q(null==s||2===s.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`));const l={image:i,transforms:o},u={interpolation:n,fillMode:r,fillValue:a,outputShape:s};return Wa.runKernel(Or,l,u)}}),xf=Za({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=qa(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=Al($c(0,s,1,"int32"),[-1,1]),l=$c(0,i,1,"int32"),u=Xo(o,l),c=Qu(Ru(u,Wo(+t,"int32")),Su(u,Wo(-n,"int32"))),h=oc([s,i],r.dtype);return Al(dh(Sh(Al(r,[-1,s,i])).map((e=>fu(c,e,h)))),a)}}),kf=Za({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=uh(e,e.shape[0],0).map((e=>fh(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=xu(n),s=qs(e);const i=bh([[1]],[1,1]);let o=qs(i);const l=n>=r?r:n;for(let e=0;e{const t=Ol(s,[e,e],[n-e,1]),l=Fh(t),u=Ol(s,[e,e],[1,1]),c=fu(Cu(u,0),bh([[-1]]),bh([[1]])),h=Xo(u,Do(c,l)),f=Ao(t,h);o=1===f.shape[0]?qs(i):Fl([i,Ol(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Pu(Ao(pi(c,h),l)),p=Ol(s,[e,0],[n-e,r]),m=Do(d,o),g=gi(o);if(0===e)s=Xo(p,pi(m,pi(g,p)));else{const t=Xo(p,pi(m,pi(g,p)));s=Fl([Ol(s,[0,0],[e,r]),t],0)}const y=gi(m),b=Ol(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=Xo(b,pi(pi(b,o),y));else{const t=Xo(b,pi(pi(b,o),y));a=Fl([Ol(a,[0,0],[n,e]),t],1)}return[o,s,a]})),mo([t,l,u])}return!t&&n>r&&(a=Ol(a,[0,0],[n,r]),s=Ol(s,[0,0],[r,r])),[a,s]}))}const Cf=Za({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 Ef(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=Sh(Al(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=Ef(e,t);a.push(n),s.push(r)})),[Al(dh(a,0),e.shape),Al(dh(s,0),e.shape)]}}});var Sf;!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"}(Sf||(Sf={}));const Nf=Za({computeWeightedLoss_:function(e,t,n=Sf.SUM_BY_NONZERO_WEIGHTS){const r=qa(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=qa(t,"weights","computeWeightedLoss"));const s=null==a?r:Do(r,a);if(n===Sf.NONE)return s;if(n===Sf.SUM)return Uu(s);if(n===Sf.MEAN){if(null==a)return ic(s);{const e=r.size/a.size,t=Ao(Uu(s),Uu(a));return e>1?Ao(t,Wo(e)):t}}if(n===Sf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return Ao(Uu(s),Wo(r.size));{const e=Do(a,lc(r.shape)),t=Ks(Uu(yc(e,Wo(0))),"float32");return Ao(Uu(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),If=Za({absoluteDifference_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){const a=qa(e,"labels","absoluteDifference"),s=qa(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=qa(n,"weights","absoluteDifference")),ee(a.shape,s.shape,"Error in absoluteDifference: ");const o=qo(Xo(a,s));return Nf(o,i,r)}}),Af=Za({cosineDistance_:function(e,t,n,r,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","cosineDistance"),i=qa(t,"predictions","cosineDistance");let o=null;null!=r&&(o=qa(r,"weights","cosineDistance")),ee(s.shape,i.shape,"Error in cosineDistance: ");const l=Wo(1),u=Xo(l,Uu(Do(s,i),n,!0));return Nf(u,o,a)}}),Df=Za({hingeLoss_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){let a=qa(e,"labels","hingeLoss");const s=qa(t,"predictions","hingeLoss");let i=null;null!=n&&(i=qa(n,"weights","hingeLoss")),ee(a.shape,s.shape,"Error in hingeLoss: ");const o=Wo(1);a=Xo(Do(Wo(2),a),o);const l=zc(Xo(o,Do(a,s)));return Nf(l,i,r)}}),Tf=Za({huberLoss_:function(e,t,n,r=1,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","huberLoss"),i=qa(t,"predictions","huberLoss");let o=null;null!=n&&(o=qa(n,"weights","huberLoss")),ee(s.shape,i.shape,"Error in huberLoss: ");const l=Wo(r),u=qo(Xo(i,s)),c=hc(u,l),h=Xo(u,c),f=No(Do(Wo(.5),Fo(c)),Do(l,h));return Nf(f,o,a)}}),Ff=Za({logLoss_:function(e,t,n,r=1e-7,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","logLoss"),i=qa(t,"predictions","logLoss");let o=null;null!=n&&(o=qa(n,"weights","logLoss")),ee(s.shape,i.shape,"Error in logLoss: ");const l=Wo(1),u=Wo(r),c=Pu(Do(s,Bu(No(i,u)))),h=Do(Xo(l,s),Bu(No(Xo(l,i),u))),f=Xo(c,h);return Nf(f,o,a)}}),Rf=Za({meanSquaredError_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){const a=qa(e,"labels","meanSquaredError"),s=qa(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=qa(n,"weights","meanSquaredError")),ee(a.shape,s.shape,"Error in meanSquaredError: ");const o=hh(a,s);return Nf(o,i,r)}}),Of=Za({sigmoidCrossEntropy_:function(e,t,n,r=0,a=Sf.SUM_BY_NONZERO_WEIGHTS){let s=qa(e,"multiClassLabels","sigmoidCrossEntropy");const i=qa(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=qa(n,"weights","sigmoidCrossEntropy")),ee(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=Wo(r),t=Wo(1),n=Wo(.5);s=No(Do(s,Xo(t,e)),Do(n,e))}const l=function(e,t){const n=qa(e,"labels","sigmoidCrossEntropyWithLogits"),r=qa(t,"logits","sigmoidCrossEntropyWithLogits");ee(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=zc(r),s=Do(r,n),i=$u(bu(Pu(qo(r))));return No(Xo(a,s),i)}(s,i);return Nf(l,o,a)}}),Mf=Za({softmaxCrossEntropy_:function(e,t,n,r=0,a=Sf.SUM_BY_NONZERO_WEIGHTS){let s=qa(e,"onehotLabels","softmaxCrossEntropy");const i=qa(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=qa(n,"weights","softmaxCrossEntropy")),ee(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=Wo(r),t=Wo(1),n=Wo(s.shape[1]);s=No(Do(s,Xo(t,e)),Ao(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 Lo(((e,t,r)=>{const a=Zu(t,[n],!0),s=Xo(Ks(t,"float32"),a);r([e,s]);const i=Pu(Do(s,e));return{value:Uu(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Xu(e.shape,[n]);return[Do(Al(e,s),Xo(Ks(r,"float32"),bu(a))),Do(Al(e,s),Xo(bu(a),Ks(r,"float32")))]}}}))(e,t)}(s,i);return Nf(l,o,a)}}),Bf=Za({sparseFillEmptyRows_:function(e,t,n,r){const a=qa(e,"indices","sparseFillEmptyRows"),s=qa(t,"values","sparseFillEmptyRows"),i=qa(n,"denseShape","sparseFillEmptyRows"),o=qa(r,"defaultValue","sparseFillEmptyRows",s.dtype);if(2!==a.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${a.shape}`);if(1!==s.rank)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(0!==o.rank)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);const l={indices:a,values:s,denseShape:i,defaultValue:o},u=Wa.runKernel(kr,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}}),$f=Za({sparseReshape_:function(e,t,n){const r=qa(e,"inputIndices","sparseReshape"),a=qa(t,"inputShape","sparseReshape"),s=qa(n,"newShape","sparseReshape");if(2!==r.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==a.rank)throw new Error(`Input shape should be Tensor1D but received shape ${a.shape}`);if(1!==s.rank)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);const i={inputIndices:r,inputShape:a,newShape:s},o=Wa.runKernel(Er,i);return{outputIndices:o[0],outputShape:o[1]}}}),Pf={fft:ih,ifft:oh,rfft:ch,irfft:lh},Lf={hammingWindow:Jh,hannWindow:Zh,frame:Qh,stft:ef},zf={flipLeftRight:nf,resizeNearestNeighbor:vf,resizeBilinear:bf,rotateWithOffset:rf,cropAndResize:tf,nonMaxSuppression:sf,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=qa(e,"boxes","nonMaxSuppressionAsync"),i=qa(t,"scores","nonMaxSuppressionAsync"),o=af(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}=uf(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),yh(h,"int32")},nonMaxSuppressionWithScore:gf,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=qa(e,"boxes","nonMaxSuppressionAsync"),o=qa(t,"scores","nonMaxSuppressionAsync"),l=af(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}=hf(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:yh(f,"int32"),selectedScores:yh(d)}},nonMaxSuppressionPadded:yf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=qa(e,"boxes","nonMaxSuppressionAsync"),o=qa(t,"scores","nonMaxSuppressionAsync"),l=af(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}=cf(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:yh(p,"int32"),validOutputs:Wo(m,"int32")}},threshold:wf,transform:_f},Wf={bandPart:xf,gramSchmidt:kf,qr:Cf},Uf={absoluteDifference:If,computeWeightedLoss:Nf,cosineDistance:Af,hingeLoss:Df,huberLoss:Tf,logLoss:Ff,meanSquaredError:Rf,sigmoidCrossEntropy:Of,softmaxCrossEntropy:Mf},Vf={sparseFillEmptyRows:Bf,sparseReshape:$f};class jf{static sgd(e){return new tl(e)}static momentum(e,t,n=!1){return new nl(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new rl(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new Ko(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Vo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new el(e,t,n,r,a)}static adagrad(e,t=.1){return new Ho(e,t)}}const Hf={sgd:jf.sgd,momentum:jf.momentum,adadelta:jf.adadelta,adagrad:jf.adagrad,rmsprop:jf.rmsprop,adamax:jf.adamax,adam:jf.adam},Gf="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Xf(){return new Promise((e=>Gf((()=>e()))))}function Kf(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 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 td(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n/g;function kd(e,t){const n=((e=e.replace(/\s/g,"")).length-e.replace(xd,"").length)/"->".length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error('Equation must contain exactly one arrow ("->").');const[r,a]=e.split("->");Q(-1===r.indexOf("..."),(()=>'The ellipsis notation ("...") is not supported yet.'));const s=r.split(","),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const o=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===o.indexOf(t)&&o.push(t)}for(let e=0;e-1!==e)),{permutationIndices:n,expandDims:r}}function Cd(e,t,n){const r=new Array(e);for(let e=0;e`Expected dimension ${r[t[e][n]]} at axis ${n} of input shaped ${JSON.stringify(a)}, but got dimension ${a[n]}`))}}function Sd(e,t){const n=e,r=[];let a=0;0===e.length&&n.push(-1),a=e.length+1;for(let e=0;ee===t))}function Id(e,t){const n=[];for(let r=0;r"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 Dd(e,t){let n,r=!1;for(e<=Yf?(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 Td(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(nla(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Od(e){return e.map((e=>oa(e)))}const Md={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,ph(Ks(n,"float32"),-1))}}},Bd={kernelName:Xe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Fo(Ks(n,"float32")),r=To(Xo(Wo(1),t));return Pu(Ao(e,r))}}}},$d={kernelName:Ke,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=To(Xo(Fo(Ks(n,"float32")),1));return Ao(e,t)}}}},Pd={kernelName:qe,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{let t=e;const r=Jo(n.shape,a);return r.length>0&&(t=Uu(t,r)),Al(t,n.shape)},b:()=>{let t=e;const n=Jo(r.shape,a);return n.length>0&&(t=Uu(t,n)),Al(t,r.shape)}}}},Ld={kernelName:Ye,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},zd={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ro(n)}}},Wd={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ro(n)}}},Ud={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,To(Xo(Wo(1),Fo(Ks(n,"float32")))))}}},Vd={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=To(No(Wo(1),Fo(Ks(n,"float32"))));return Ao(e,t)}}}},jd={kernelName:st,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=No(Fo(n),Fo(r));let s=Do(e,Ao(r,t));const i=Jo(n.shape,a);return i.length>0&&(s=Uu(s,i)),Al(s,n.shape)},b:()=>{const t=No(Fo(n),Fo(r));let s=Pu(Do(e,Ao(n,t)));const i=Jo(r.shape,a);return i.length>0&&(s=Uu(s,i)),Al(s,r.shape)}}}},Hd={kernelName:rt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,No(Fo(Ks(n,"float32")),1))}}},Gd={kernelName:at,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Xo(Wo(1),Fo(Ks(n,"float32"))))}}},Xd=Za({avgPool3dGrad_:function(e,t,n,r,a,s){const i=qa(e,"dy","avgPool3dGrad"),o=qa(t,"input","avgPool3dGrad");let l=i,u=o,c=!1;4===o.rank&&(c=!0,l=Al(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=Al(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=Wa.runKernel(ut,h,f);return c?Al(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}}),Kd={kernelName:lt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>Xd(e,r,a,s,i,o)}}},qd=Za({avgPoolGrad_:function(e,t,n,r,a){const s=qa(e,"dy","avgPoolGrad"),i=qa(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=Al(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=Al(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=Wa.runKernel(ot,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Yd={kernelName:it,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>qd(e,r,a,s,i)}}},Jd={kernelName:ct,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>pi(e,a,!1,!1),b:()=>pi(e,r,!0,!1)}:s&&!i?{a:()=>pi(a,e,!1,!0),b:()=>pi(r,e,!1,!1)}:{a:()=>pi(a,e,!0,!0),b:()=>pi(e,r,!0,!0)}:{a:()=>pi(e,a,!1,!0),b:()=>pi(r,e,!0,!1)}}},Zd={kernelName:ht,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>Cc(e,r,a)}}},Qd={kernelName:dt,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:()=>Uu(e,o,!0)}}},ep={kernelName:pt,gradFunc:e=>({x:()=>e.clone()})},tp={kernelName:mt,gradFunc:e=>({x:()=>Ro(e)})},np={kernelName:gt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>fu(Qu(Su(r,a),Ru(r,s)),e,Ro(e))}}},rp={kernelName:bt,inputsToSave:["x"],gradFunc:Md.gradFunc},ap={kernelName:vt,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 uh(e,i,s).map((e=>()=>e))}},sp={kernelName:wt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Q(Sl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Zl(r.shape,e,a,i,o,l),filter:()=>Wh(r,e,a.shape,i,o,l)}}},ip={kernelName:xt,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Yl(e,a,s,i,o,1,l),filter:()=>Wh(e,r,a.shape,s,i,o,l)}}},op=Za({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=Al(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=Al(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 Wa.runKernel(Et,o,l)}}),lp={kernelName:kt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Q(Sl(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:()=>tu(i.shape,e,o,a,s),filter:()=>op(i,e,o.shape,a,s)}}},up={kernelName:St,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(Pu(Qc(Ks(n,"float32"))),e)}}},cp={kernelName:Nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(eh(Ks(n,"float32")),e)}}},hp={kernelName:It,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=qu([a],r.rank);let n=su(e,a,s,!i);return null!=t&&(n=gi(n,t)),n}}}},fp={kernelName:Ft,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Q(Sl(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(Nl(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:()=>Kh(l.shape,e,u,a,s,r,i),filter:()=>Xh(l,e,u.shape,a,s,r,i)}}},dp={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:()=>Wa.runKernel($t,s,n),filter:()=>Wa.runKernel(Pt,i,n)}}},pp={kernelName:Wt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>Wa.runKernel(Ut,r)}}},mp={kernelName:Vt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=Do(bu(Pu(Fo(n))),2/Math.sqrt(Math.PI));return{x:()=>Do(e,r)}}},gp={kernelName:Ht,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,n)}}},yp={kernelName:Gt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>Al(e,n.shape)}}},bp={kernelName:Xt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,bu(n))}}},vp={kernelName:Jt,gradFunc:e=>({x:()=>Ro(e)})},wp={kernelName:Zt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Ao(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{let t=Do(e,Ks(n,"float32"));const s=Jo(r.shape,a);s.length>0&&(t=Al(Uu(t,s),r.shape));const i=Fo(r);return Pu(Ao(t,Ks(i,"float32")))}}}},_p={kernelName:Qt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?Wo(1):o,u=Jo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?Al(Do(Do(e,_u(Al(d,[1,1,1,s.shape[0]]),c)),l),a.shape):Al(Do(Do(e,d),l),a.shape),mean:()=>{let e=Do(Do(d,Wo(-1)),f);return 1===s.rank&&(e=Uu(e,u)),Al(e,s.shape)},variance:()=>{let e=Do(Do(p,h),f);return 1===s.rank&&(e=Uu(e,u)),Al(e,s.shape)},scale:()=>{const t=Do(h,d);let n=Do(e,t);return 1===s.rank&&(n=Uu(n,u)),Al(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=Uu(t,u)),Al(t,s.shape)}}}},xp={kernelName:en,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=kp(0,l),f=kp(l+1,l+1+c),d=Ep([o,[n],u]),p=Al(e,d),m=Al(a,[n]),g=Ep([[l],h,f]),y=gi(p,g);let b=Ch(y,m,r.shape[i]);const v=Yu(g);return b=gi(b,v),b},indices:()=>a}}};function kp(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>Ro(n),b:()=>Ro(r)}}},Sp={kernelName:an,gradFunc:e=>({x:()=>Ks(e,"float32")})},Np={kernelName:ln,gradFunc:e=>({x:()=>Ro(e)})},Ip={kernelName:un,gradFunc:e=>({x:()=>Ro(e)})},Ap={kernelName:cn,gradFunc:e=>({x:()=>Ro(e)})},Dp={kernelName:hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=Cu(r,0);return{x:()=>fu(s,e,Do(e,a))}}},Tp={kernelName:gn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,No(n,1))}}},Fp={kernelName:mn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Ks(n,"float32"))}}},Rp={kernelName:wn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=bu(r);return Xo(e,Do(Uu(e,a,!0),t))}}}},Op=Za({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 Wa.runKernel(xn,o,l)}}),Mp={kernelName:_n,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>Op(r,a,e,s,i,o,l)}}};function Bp(e,t,n,r){return t.rankDo(e,Ks(hu(n,t),e.dtype))}}const $p={kernelName:kn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=Bp(e,t[1],s,de(a,s.shape));return{x:()=>i.x()}}},Pp={kernelName:En,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>Do(e,Ks(Su(n,r),"float32")),b:()=>Do(e,Ks(Fu(n,r),"float32"))}}},Lp=Za({maxPool3dGrad_:function(e,t,n,r,a,s,i){const o=qa(e,"dy","maxPool3dGrad"),l=qa(t,"input","maxPool3dGrad"),u=qa(n,"output","maxPool3dGrad");let c=o,h=l,f=u,d=!1;4===l.rank&&(d=!0,c=Al(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=Al(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=Al(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=Wa.runKernel(In,p,m);return d?Al(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),zp={kernelName:Nn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>Lp(e,r,a,s,i,o,l)}}},Wp=Za({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=qa(e,"dy","maxPoolGrad"),l=qa(t,"input","maxPoolGrad"),u=qa(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 Wa.runKernel(Sn,c,h)}}),Up={kernelName:Hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Ol(e,s,r.shape)}}},Vp={kernelName:wr,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>$l(e,r,a)}}},jp={kernelName:_r,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Fl(e,r)}}},Hp=[Md,Bd,$d,Pd,Ld,zd,Wd,Ud,Vd,jd,Hd,Gd,Kd,Yd,Jd,Zd,Qd,ep,tp,np,rp,ap,ip,sp,lp,up,cp,hp,fp,dp,{kernelName:Lt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Ao(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{let t=Do(e,Ks(n,"float32"));const s=Jo(r.shape,a);s.length>0&&(t=Al(Uu(t,s),r.shape));const i=Fo(r);return Pu(Ao(t,Ks(i,"float32")))}}}},pp,mp,gp,yp,bp,wp,vp,_p,xp,Cp,Sp,Np,Ip,Ap,Dp,Tp,Fp,Rp,Mp,$p,$p,Pp,zp,{kernelName:Cn,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:Dn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=de(a,r.shape),i=re(Gu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=Al(e,t);return Ao(Do(n,lc(r.shape,"float32")),i)}}}},{kernelName:Tn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=Bp(e,i,s,de(a,s.shape));return{x:()=>o.x()}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>Do(e,Ks(Ru(n,r),"float32")),b:()=>Do(e,Ks(Cu(n,r),"float32"))}}},{kernelName:Rn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Ol(e,s,r.shape)}}},{kernelName:On,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Jo(n.shape,a);return t.length>0?Al(Uu(e,t),n.shape):e},b:()=>{const t=Do(e,Pu(ku(Ao(n,r)))),s=Jo(r.shape,a);return s.length>0?Al(Uu(t,s),r.shape):t}}}},{kernelName:Bn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Do(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{const t=Do(e,Ks(n,"float32")),s=Jo(r.shape,a);return s.length>0?Al(Uu(t,s),r.shape):t}}}},{kernelName:$n,gradFunc:e=>({x:()=>Pu(e)})},{kernelName:Vn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>oc(n.shape,"float32")}}},{kernelName:Un,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:jn,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return Sh(e,r).map((e=>()=>e))}},Up,Up,{kernelName:Xn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Zo(s.shape,i.shape);return{a:()=>{const t=Ks(i,"float32");let n=Do(e,Do(t,Go(s,Xo(t,Wo(1)))));const r=Jo(s.shape,o);return r.length>0&&(n=Uu(n,r)),Al(n,s.shape)},b:()=>{const t=Cu(s,0),n=fu(t,Bu(s),Ro(s));let r=Do(e,Do(a,n));const l=Jo(i.shape,o);return l.length>0&&(r=Uu(r,l)),Al(r,i.shape)}}}},{kernelName:Kn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=Cu(n,0);return{x:()=>fu(a,e,Do(e,r)),alpha:()=>{let t=fu(a,Ro(e),Do(e,n));const s=Jo(r.shape,e.shape);return s.length>0&&(t=Uu(t,s)),Al(t,r.shape)}}}},{kernelName:Zn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Pu(Fo(n)))}}},{kernelName:sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=Do(Ru(n,6),ph(n));return{x:()=>Do(e,Ks(r,"float32"))}}},{kernelName:Qn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Ks(ph(n),"float32"))}}},{kernelName:er,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Al(e,n.shape)}}},{kernelName:rr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Wa.runKernel(ar,a,n)}}},{kernelName:tr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Wa.runKernel(nr,a,n)}}},{kernelName:ir,gradFunc:(e,t,n)=>{const{dims:r}=n,a=de(r,e.shape);return{x:()=>Uc(e,a)}}},{kernelName:or,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pu(Ao(e,Do(Go(n,1.5),2)))}}},{kernelName:cr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>Ks(Ro(n),"float32"),t:()=>Do(e,Ks(n,e.dtype)),e:()=>Do(e,Ks(ec(n),e.dtype))}}},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Cu(n,Wo(0)),r=Wo(ad),a=Wo(sd),s=Do(e,a),i=Do(Do(e,r),bu(Ks(n,"float32")));return fu(t,s,i)}}}},{kernelName:gr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Do(n,Xo(Wo(1),n)))}}},{kernelName:mr,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(ru(Ks(n,"float32")),e)}}},{kernelName:pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(au(Ks(n,"float32")),e)}}},{kernelName:fr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Ui(r,a,s),u=[];for(let t=0;twc(e,u)}}},{kernelName:xr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=Do(e,r);return{logits:()=>Xo(s,Do(Uu(s,[a],!0),r))}}},{kernelName:yr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Rl(n))}}},Vp,Vp,jp,jp,{kernelName:br,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Do(To(Ks(n,"float32")),2))}}},{kernelName:Sr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Wo(2);return{a:()=>Do(e,Do(a,Xo(n,r))),b:()=>Do(e,Do(a,Xo(r,n)))}}},{kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Do(Ks(n,"float32"),2))}}},{kernelName:zr,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:Ar,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{let t=e;const r=Jo(n.shape,a);return r.length>0&&(t=Uu(t,r)),Al(t,n.shape)},b:()=>{let t=e;const n=Jo(r.shape,a);return n.length>0&&(t=Uu(t,n)),Al(Pu(t),r.shape)}}}},{kernelName:vr,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=Al(e,a),o=Do(i,lc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Fo(ru(n)))}}},{kernelName:Tr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(Xo(Wo(1),Fo(n)),e)}}},{kernelName:Fr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=Ro(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Yu(a);return{x:()=>gi(e,s)}}},{kernelName:$r,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>dh(e,a)}}},{kernelName:Pr,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=Qo(t,Ro(t)),r=Eu(e,n);let a=Su(t,Wo(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>Ro(e)})}];for(const e of Hp)Zr(e);let Gp;function Xp(){return null==Gp&&(Gp=Co().epsilon()),Gp}xa().prototype.abs=function(){return this.throwIfDisposed(),qo(this)},xa().prototype.acos=function(){return this.throwIfDisposed(),al(this)},xa().prototype.acosh=function(){return this.throwIfDisposed(),sl(this)},xa().prototype.add=function(e){return this.throwIfDisposed(),No(this,e)},xa().prototype.all=function(e,t){return this.throwIfDisposed(),ol(this,e,t)},xa().prototype.any=function(e,t){return this.throwIfDisposed(),ll(this,e,t)},xa().prototype.argMax=function(e){return this.throwIfDisposed(),ul(this,e)},xa().prototype.argMin=function(e){return this.throwIfDisposed(),cl(this,e)},xa().prototype.asScalar=function(){return this.throwIfDisposed(),Q(1===this.size,(()=>"The array must have only 1 element.")),Al(this,[])},xa().prototype.asType=function(e){return this.throwIfDisposed(),Ks(this,e)},xa().prototype.as1D=function(){return this.throwIfDisposed(),Al(this,[this.size])},xa().prototype.as2D=function(e,t){return this.throwIfDisposed(),Al(this,[e,t])},xa().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),Al(this,[e,t,n])},xa().prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),Al(this,[e,t,n,r])},xa().prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),Al(this,[e,t,n,r,a])},xa().prototype.asin=function(){return this.throwIfDisposed(),hl(this)},xa().prototype.asinh=function(){return this.throwIfDisposed(),fl(this)},xa().prototype.atan=function(){return this.throwIfDisposed(),dl(this)},xa().prototype.atan2=function(e){return this.throwIfDisposed(),pl(this,e)},xa().prototype.atanh=function(){return this.throwIfDisposed(),ml(this)},xa().prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),Dl(this,e,t,n,r)},xa().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$l(this,e,t)},xa().prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Pl(this,e,t,n,r,a)},xa().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Vl(this,e)},xa().prototype.cast=function(e){return this.throwIfDisposed(),Ks(this,e)},xa().prototype.ceil=function(){return this.throwIfDisposed(),jl(this)},xa().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Hl(this,e,t)},xa().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof _a&&(e=[e]),Fl([this,...e],t)},xa().prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Jl(this,e,t,n,r,a,s)},xa().prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),Ql(this,e,t,n,r,a)},xa().prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Yl(this,e,t,n,r,a,s)},xa().prototype.cos=function(){return this.throwIfDisposed(),ru(this)},xa().prototype.cosh=function(){return this.throwIfDisposed(),au(this)},xa().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),su(this,e,t,n)},xa().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),ou(this,e,t)},xa().prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),lu(this,e,t,n,r,a,s)},xa().prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),cu(this,e,t,n,r,a)},xa().prototype.divNoNan=function(e){return this.throwIfDisposed(),du(this,e)},xa().prototype.div=function(e){return this.throwIfDisposed(),Ao(this,e)},xa().prototype.dot=function(e){return this.throwIfDisposed(),pu(this,e)},xa().prototype.elu=function(){return this.throwIfDisposed(),gu(this)},xa().prototype.equal=function(e){return this.throwIfDisposed(),hu(this,e)},xa().prototype.erf=function(){return this.throwIfDisposed(),yu(this)},xa().prototype.exp=function(){return this.throwIfDisposed(),bu(this)},xa().prototype.expandDims=function(e){return this.throwIfDisposed(),vu(this,e)},xa().prototype.expm1=function(){return this.throwIfDisposed(),wu(this)},xa().prototype.fft=function(){return this.throwIfDisposed(),ih(this)},xa().prototype.flatten=function(){return this.throwIfDisposed(),Al(this,[this.size])},xa().prototype.floor=function(){return this.throwIfDisposed(),ku(this)},xa().prototype.floorDiv=function(e){return this.throwIfDisposed(),Io(this,e)},xa().prototype.gather=function(e,t){return this.throwIfDisposed(),Eu(this,e,t)},xa().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Su(this,e)},xa().prototype.greater=function(e){return this.throwIfDisposed(),Cu(this,e)},xa().prototype.ifft=function(){return this.throwIfDisposed(),oh(this)},xa().prototype.irfft=function(){return this.throwIfDisposed(),lh(this)},xa().prototype.isFinite=function(){return this.throwIfDisposed(),Iu(this)},xa().prototype.isInf=function(){return this.throwIfDisposed(),Au(this)},xa().prototype.isNaN=function(){return this.throwIfDisposed(),Du(this)},xa().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Tu(this,e)},xa().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ru(this,e)},xa().prototype.less=function(e){return this.throwIfDisposed(),Fu(this,e)},xa().prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Mu(this,e,t,n,r)},xa().prototype.logSigmoid=function(){return this.throwIfDisposed(),zu(this)},xa().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Vu(this,e)},xa().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Zu(this,e,t)},xa().prototype.log=function(){return this.throwIfDisposed(),Bu(this)},xa().prototype.log1p=function(){return this.throwIfDisposed(),$u(this)},xa().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Qu(this,e)},xa().prototype.logicalNot=function(){return this.throwIfDisposed(),ec(this)},xa().prototype.logicalOr=function(e){return this.throwIfDisposed(),tc(this,e)},xa().prototype.logicalXor=function(e){return this.throwIfDisposed(),nc(this,e)},xa().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),pi(this,e,t,n)},xa().prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),rc(this,e,t,n,r)},xa().prototype.max=function(e,t){return this.throwIfDisposed(),Wu(this,e,t)},xa().prototype.maximum=function(e){return this.throwIfDisposed(),Qo(this,e)},xa().prototype.mean=function(e,t){return this.throwIfDisposed(),ic(this,e,t)},xa().prototype.min=function(e,t){return this.throwIfDisposed(),cc(this,e,t)},xa().prototype.minimum=function(e){return this.throwIfDisposed(),hc(this,e)},xa().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),fc(this,e,t)},xa().prototype.mod=function(e){return this.throwIfDisposed(),dc(this,e)},xa().prototype.mul=function(e){return this.throwIfDisposed(),Do(this,e)},xa().prototype.neg=function(){return this.throwIfDisposed(),Pu(this)},xa().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Fh(this,e,t,n)},xa().prototype.notEqual=function(e){return this.throwIfDisposed(),yc(this,e)},xa().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),mi(this,e,t,n)},xa().prototype.onesLike=function(){return this.throwIfDisposed(),bc(this)},xa().prototype.pad=function(e,t){return this.throwIfDisposed(),wc(this,e,t)},xa().prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),Sc(this,e,t,n,r,a)},xa().prototype.pow=function(e){return this.throwIfDisposed(),Go(this,e)},xa().prototype.prelu=function(e){return this.throwIfDisposed(),Nc(this,e)},xa().prototype.prod=function(e,t){return this.throwIfDisposed(),Ic(this,e,t)},xa().prototype.reciprocal=function(){return this.throwIfDisposed(),Lc(this)},xa().prototype.relu=function(){return this.throwIfDisposed(),zc(this)},xa().prototype.relu6=function(){return this.throwIfDisposed(),Wc(this)},xa().prototype.reshapeAs=function(e){return this.throwIfDisposed(),Al(this,e.shape)},xa().prototype.reshape=function(e){return this.throwIfDisposed(),Al(this,e)},xa().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),bf(this,e,t,n)},xa().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),vf(this,e,t,n)},xa().prototype.reverse=function(e){return this.throwIfDisposed(),Uc(this,e)},xa().prototype.rfft=function(){return this.throwIfDisposed(),ch(this)},xa().prototype.round=function(){return this.throwIfDisposed(),Xc(this)},xa().prototype.rsqrt=function(){return this.throwIfDisposed(),Kc(this)},xa().prototype.selu=function(){return this.throwIfDisposed(),qc(this)},xa().prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Yc(this,e,t,n,r,a,s)},xa().prototype.sigmoid=function(){return this.throwIfDisposed(),Rl(this)},xa().prototype.sign=function(){return this.throwIfDisposed(),Zc(this)},xa().prototype.sin=function(){return this.throwIfDisposed(),Qc(this)},xa().prototype.sinh=function(){return this.throwIfDisposed(),eh(this)},xa().prototype.slice=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)},xa().prototype.softmax=function(e){return this.throwIfDisposed(),sh(this,e)},xa().prototype.softplus=function(){return this.throwIfDisposed(),Lu(this)},xa().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Cc(this,e,t)},xa().prototype.split=function(e,t){return this.throwIfDisposed(),uh(this,e,t)},xa().prototype.sqrt=function(){return this.throwIfDisposed(),To(this)},xa().prototype.square=function(){return this.throwIfDisposed(),Fo(this)},xa().prototype.squaredDifference=function(e){return this.throwIfDisposed(),hh(this,e)},xa().prototype.squeeze=function(e){return this.throwIfDisposed(),fh(this,e)},xa().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof _a?[this,e]:[this,...e];return dh(n,t)},xa().prototype.step=function(e){return this.throwIfDisposed(),ph(this,e)},xa().prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),mh(this,e,t,n,r,a,s,i,o)},xa().prototype.sub=function(e){return this.throwIfDisposed(),Xo(this,e)},xa().prototype.sum=function(e,t){return this.throwIfDisposed(),Uu(this,e,t)},xa().prototype.tan=function(){return this.throwIfDisposed(),gh(this)},xa().prototype.tanh=function(){return this.throwIfDisposed(),Ml(this)},xa().prototype.tile=function(e){return this.throwIfDisposed(),_u(this,e)},xa().prototype.toBool=function(){return this.throwIfDisposed(),Ks(this,"bool")},xa().prototype.toFloat=function(){return this.throwIfDisposed(),Ks(this,"float32")},xa().prototype.toInt=function(){return this.throwIfDisposed(),Ks(this,"int32")},xa().prototype.topk=function(e,t){return this.throwIfDisposed(),xh(this,e,t)},xa().prototype.transpose=function(e){return this.throwIfDisposed(),gi(this,e)},xa().prototype.unique=function(e){return this.throwIfDisposed(),Eh(this,e)},xa().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Ch(this,e,t)},xa().prototype.unstack=function(e){return this.throwIfDisposed(),Sh(this,e)},xa().prototype.where=function(e,t){return this.throwIfDisposed(),fu(e,this,t)},xa().prototype.zerosLike=function(){return this.throwIfDisposed(),Ro(this)};class Kp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Kp.prototype)}}class qp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,qp.prototype)}}class Yp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Yp.prototype)}}class Jp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Jp.prototype)}}class Zp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Zp.prototype)}}function Qp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let im={};function om(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function lm(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>lm(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?lm(t):e[n]=t.value)}}}function um(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 im)s=im[a];else if(s=t[a],null==s)throw new Yp(`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 Yp(`${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 im?[o,l]=im.className:i in t&&([o,l]=t[i]),null==o)throw new Yp(`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(im))e[t]=im[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},im);for(const e of Object.keys(n))im[e]=n[e];lm(s.config);const r=l(o,s.config,n,a);return im=Object.assign({},t),r}{const e=Object.assign({},im);for(const e of Object.keys(n))im[e]=n[e];const t=new o(s.config);return im=Object.assign({},e),t}}}function cm(e,t){return-1*function(e,t){return et?1:0}(e,t)}function hm(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function fm(e){if(null==e)throw new Yp(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function dm(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Yp(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function pm(e,t,n=0,r=1/0){return em(n>=0),em(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function mm(e,t){Array.isArray(e)?(Q(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>mm(e,`element ${n+1} of ${t}`)))):Q(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${gm(e)}.`))}function gm(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>gm(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function ym(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function bm(e,t){return po((()=>To(Uu(Do(e,e),t,!0))))}class vm extends ji{getConfig(){return{}}}class wm extends vm{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 po((()=>{const t=bm(e,this.axis),n=Hl(t,0,this.maxValue);return Do(e,Ao(n,No(Xp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}wm.className="MaxNorm",Gi(wm);class _m extends vm{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return po((()=>Ao(e,No(Xp(),bm(e,this.axis)))))}getConfig(){return{axis:this.axis}}}_m.className="UnitNorm",Gi(_m);class xm extends vm{apply(e){return zc(e)}}xm.className="NonNeg",Gi(xm);class km extends vm{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 po((()=>{const t=bm(e,this.axis),n=No(Do(this.rate,Hl(t,this.minValue,this.maxValue)),Do(1-this.rate,t));return Do(e,Ao(n,No(Xp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}km.className="MinMaxNorm",Gi(km);const Em={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Cm(e){return om(e)}function Sm(e,t={}){return um(e,Hi.getMap().classNameMap,t,"constraint")}function Nm(e){return null==e?null:"string"==typeof e?Sm({className:e in Em?Em[e]:e,config:{}}):e instanceof vm?e:Sm(e)}function Im(e){return new wm(e)}function Am(e){return new _m(e)}function Dm(){return new xm}function Tm(e){return new km(e)}const Fm=["channelsFirst","channelsLast"],Rm=["nearest","bilinear"],Om=["valid","same","causal"],Mm=["max","avg"],Bm=["sum","mul","concat","ave"],$m=new Map;function Pm(e){dm(Fm,"DataFormat",e)}function Lm(e){dm(Om,"PaddingMode",e)}function zm(e){dm(Mm,"PoolMode",e)}const Wm=[];function Um(e,t){Wm.push(e);try{const e=t();return Wm.pop(),e}catch(e){throw Wm.pop(),e}}function Vm(e){if(!Gm(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Wm.length?"":Wm.join("/")+"/")+e}function jm(e){if(!Gm(e))throw new Error("Not a valid tensor name: '"+e+"'");$m.has(e)||$m.set(e,0);const t=$m.get(e);if($m.set(e,$m.get(e)+1),t>0){const n=`${e}_${t}`;return $m.set(n,1),n}return e}const Hm=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Gm(e){return!!e.match(Hm)}function Xm(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 th(e,t,n);case 2:return nh(e,[t,0],[n,e.shape[1]]);case 3:return rh(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return ah(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ol(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ol(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 Yp(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function tg(e,t,n){return po((()=>{switch(e.rank){case 1:return th(e,t,n);case 2:return nh(e,[0,t],[e.shape[0],n]);case 3:return rh(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return ah(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Yp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function ng(e,t,n,r){return po((()=>{switch(e.rank){case 1:return th(e,t,n);case 2:switch(r){case 1:return eg(e,t,n);case 2:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return eg(e,t,n);case 2:return rh(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return eg(e,t,n);case 2:return ah(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return ah(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}default:throw new Yp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function rg(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Fl(e,t)}function ag(e,t){switch(e.rank){case 1:return Gl([e,t]);case 2:return Xl([e,t],0);case 3:return Kl([e,t],0);case 4:return ql([e,t],0);default:throw new Yp(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function sg(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Yp(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return _u(e,t)}function ig(e,t=0,n=1,r,a){return Mc(e,t,n,r,a)}function og(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 Yh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?cg(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 Yh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?cg(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function lg(e,t,n){return po((()=>(t=Array.isArray(t)?yh(t,"int32"):t.toInt(),Eu(e,t,n))))}function ug(e){return Do(e,e)}function cg(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Yp(`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 Yp(`Unsupported input rank by biasAdd: ${t.rank}`)}function hg(e,t,n){return po((()=>(null==n&&(n="channelsLast"),Pm(n),e.add(cg(e.rank,t,n)))))}function fg(e,t,n,r){return po((()=>$h(e,t,n,r)))}function dg(e,t,n=!1){return n?e():t()}const pg=["fanIn","fanOut","fanAvg"],mg=["normal","uniform","truncatedNormal"];class gg extends ji{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class yg extends gg{apply(e,t){return oc(e,t)}}yg.className="Zeros",Gi(yg);class bg extends gg{apply(e,t){return lc(e,t)}}bg.className="Ones",Gi(bg);class vg extends gg{constructor(e){if(super(),"object"!=typeof e)throw new Yp(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Yp(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return po((()=>Do(Wo(this.value),lc(e,t))))}getConfig(){return{value:this.value}}}vg.className="Constant",Gi(vg);class wg extends gg{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 Bc(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}wg.className="RandomUniform",Gi(wg);class _g extends gg{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 ig(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}_g.className="RandomNormal",Gi(_g);class xg extends gg{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 kh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}xg.className="TruncatedNormal",Gi(xg);class kg extends gg{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return po((()=>{if(2!==e.length||e[0]!==e[1])throw new Yp("Identity matrix initializer can only be used for 2D square matrices.");return Do(this.gain,xu(e[0]))}))}getConfig(){return{gain:this.gain}}}kg.className="Identity",Gi(kg);class Eg extends gg{constructor(e){if(super(),e.scale<0)throw new Yp(`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,dm(pg,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){dm(mg,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(Pm(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Xm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=Xm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=Xm(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 kh(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Bc(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}Eg.className="VarianceScaling",Gi(Eg);class Cg extends Eg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Cg.className="GlorotUniform",Gi(Cg);class Sg extends Eg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Sg.className="GlorotNormal",Gi(Sg);class Ng extends Eg{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ng.className="HeNormal",Gi(Ng);class Ig extends Eg{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ig.className="HeUniform",Gi(Ig);class Ag extends Eg{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ag.className="LeCunNormal",Gi(Ag);class Dg extends Eg{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Dg.className="LeCunNormal",Gi(Dg);class Tg extends gg{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 po((()=>{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=ig(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=Wf.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),Do(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}Tg.className="Orthogonal",Gi(Tg);const Fg={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 Rg(e,t={}){return um(e,Hi.getMap().classNameMap,t,"initializer")}function Og(e){return om(e)}function Mg(e){if("string"==typeof e){const t=e in Fg?Fg[e]:e;if("GlorotNormal"===t)return new Sg;if("GlorotUniform"===t)return new Cg;if("HeNormal"===t)return new Ng;if("HeUniform"===t)return new Ig;if("LeCunNormal"===t)return new Ag;if("LeCunUniform"===t)return new Dg;{const e={};return e.className=t,e.config={},Rg(e)}}return e instanceof gg?e:Rg(e)}function Bg(){return new yg}function $g(){return new bg}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)}function jg(e){return new Cg(e)}function Hg(e){return new Sg(e)}function Gg(e){return new Ng(e)}function Xg(e){return new Ig(e)}function Kg(e){return new Ag(e)}function qg(e){return new Dg(e)}function Yg(e){return new Tg(e)}let Jg=0;function Zg(){return Jg++}const Qg={};function ey(e=""){return e in Qg||(Qg[e]=0),Qg[e]+=1,e+Qg[e].toString()}function ty(e){return Array.isArray(e)&&Array.isArray(e[0])}function ny(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function ry(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Yp(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ay(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Yp(`Expected exactly 1 Shape; got ${e.length}`)}return e}function sy(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 iy{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Zg(),n=null==n?"Variable":n,this.originalName=Vm(n),this.name=jm(this.originalName),this.trainable_=r,this.constraint=a,this.val=Nh(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 oy(e){return e.map((e=>e.read()))}function ly(e){e.forEach((e=>{e[0].write(e[1])}))}class uy{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 cy{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=Zg(),null!=s&&(this.originalName=Vm(s),this.name=jm(this.originalName)),this.rank=t.length}}let hy=0;class fy{constructor(e,t){this.callArgs=t,this.id=hy++,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 dy=0;class py extends ji{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=dy++,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=am(e)+"_"+ey(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 qp(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Yp(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return nm(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return nm(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Kp(`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 Kp(`Layer ${this.name} is not connected, no input to return.`);return nm(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Kp(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Kp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return nm(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=rm(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=rm(this.inputSpec);if(e.length!==t.length)throw new Yp(`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 Yp(`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 Yp(`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 rm(e))t.push(n.shape);this.build(nm(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=rm(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=nm(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=rm(e);const t=[];for(const n of e)t.push(n.shape);return nm(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 cy(s,n,this,rm(e),t,this.name,r))):new cy(s,r,this,rm(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 Kp(`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 Kp(`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 qp(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return sy(this.weights)}build(e){this.built=!0}getWeights(e=!1){return oy(e?this.trainableWeights:this.weights)}setWeights(e){po((()=>{const t=this.weights;if(t.length!==e.length)throw new Yp(`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=oy(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=rm(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=rm(e);t=rm(t),n=rm(n),r=rm(r),a=ny(a),s=ny(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new fy({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 my(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;tNo(this.totals[e],Do(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:po((()=>{const n=Do(Ao(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),go(t[e])})))}}class Ey extends _y{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=sa();return s-rnew Cy(e,t)))}class Ny{constructor(){}static registerCallbackConstructor(e,t){Q(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),Ny.checkForDuplicate(t),null==Ny.constructors[e]&&(Ny.constructors[e]=[]),Ny.constructors[e].push(t)}static checkForDuplicate(e){for(const t in Ny.constructors)Ny.constructors[+t].forEach((t=>{if(t===e)throw new Yp("Duplicate callback constructor.")}))}static clear(){Ny.constructors={}}static createCallbacks(e){const t=[];for(const n in Ny.constructors){const r=+n;e>=r&&t.push(...Ny.constructors[r])}return t.map((e=>new e))}}function Iy(e,t,n,r,a,s,i,o,l){const u=new Ey,c=[new ky,...Ny.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new xy(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 Ay(e,t={},n=!1){return um(e,Hi.getMap().classNameMap,t,"layer",n)}function Dy(e,t){return po((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=Uu(ug(e),t,!0),r=jo(n.shape,Xp()),a=To(Qo(n,r));return Ao(e,a)}))}function Ty(e,t){return po((()=>ic(ug(Xo(t,e)),-1)))}function Fy(e,t){return po((()=>ic(qo(Xo(t,e)),-1)))}function Ry(e,t){return po((()=>{const n=Xo(e,t),r=Hl(qo(e),Xp(),Number.MAX_VALUE),a=qo(Ao(n,r));return Do(100,ic(a,-1))}))}function Oy(e,t,n=!1){return po((()=>{if(n)t=sh(t);else{const e=Uu(t,t.shape.length-1,!0);t=Ao(t,e)}return t=Hl(t,Xp(),1-Xp()),Pu(Uu(Do(e.toFloat(),Bu(t)),t.shape.length-1))}))}function My(e,t,n=!1){return po((()=>{const r=ku(function(e){const t=[Xm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Hl(t,Xp(),1-Xp())).shape;return Oy(mi(r,a[a.length-1]).reshape(a),t,n)}))}function By(e,t){return po((()=>{let n;return n=Hl(t,Xp(),1-Xp()),n=Bu(Ao(n,Xo(1,n))),ic(function(e,t){if(!se(e.shape,t.shape))throw new Yp(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return po((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function $y(e,t){return po((()=>{const n=Dy(e,-1),r=Dy(t,-1),a=Do(n,r);return Pu(Uu(a,-1))}))}Ny.constructors={};const Py={meanSquaredError:Ty,meanAbsoluteError:Fy,meanAbsolutePercentageError:Ry,meanSquaredLogarithmicError:function(e,t){return po((()=>{const n=Hl(t,Xp(),Number.MAX_VALUE),r=Bu(No(1,n)),a=Hl(e,Xp(),Number.MAX_VALUE),s=Bu(No(1,a));return ic(ug(Xo(r,s)),-1)}))},squaredHinge:function(e,t){return po((()=>{const n=Qo(0,Xo(1,Do(e,t)));return ic(ug(n),-1)}))},hinge:function(e,t){return po((()=>{const n=Qo(0,Xo(1,Do(e,t)));return ic(n,-1)}))},categoricalHinge:function(e,t){return po((()=>{const n=Uu(Do(e,t),-1),r=Wu(Do(Xo(1,e),t),-1);return Qo(0,No(1,Xo(r,n)))}))},logcosh:function(e,t){return po((()=>{const n=Math.log(2),r=Xo(t,e),a=Xo(No(r,Lu(Do(-2,r))),n);return ic(a,-1)}))},categoricalCrossentropy:Oy,sparseCategoricalCrossentropy:My,binaryCrossentropy:By,kullbackLeiblerDivergence:function(e,t){return po((()=>{const n=Hl(e,Xp(),1),r=Hl(t,Xp(),1);return Uu(Do(e,Bu(Ao(n,r))),-1)}))},poisson:function(e,t){return po((()=>{const n=Bu(No(Xp(),t));return ic(Xo(t,Do(e,n)),-1)}))},cosineProximity:$y};function Ly(e){if("string"==typeof e){if(e in Py)return Py[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 Yp(t)}return e}function zy(e,t){return po((()=>{const n=Do(.5,bc(t)),r=Zm(Cu(t,n),e.dtype);return ic(hu(e,r),-1)}))}function Wy(e,t){return po((()=>Zm(hu(ul(e,-1),ul(t,-1)),"float32")))}function Uy(e,t){return po((()=>Qu(e.equal(1),t.equal(1)).sum().cast("float32")))}function Vy(e,t){return po((()=>{const n=Uy(e,t),r=function(e,t){return po((()=>Qu(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return fu(Cu(a,0),n.div(a),0).cast("float32")}))}function jy(e,t){return By(e,t)}function Hy(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)),hu(e,t).asType("float32")}const Gy=Oy,Xy=My,Ky={binaryAccuracy:zy,categoricalAccuracy:Wy,precision:Vy,categoricalCrossentropy:Gy,sparseCategoricalCrossentropy:Xy,mse:Ty,MSE:Ty,mae:Fy,MAE:Fy,mape:Ry,MAPE:Ry,cosine:$y};function qy(e){if("string"==typeof e&&e in Ky)return Ky[e];if("string"!=typeof e&&null!=e)return e;throw new Yp(`Unknown metric ${e}`)}function Yy(e){if(em(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Py))if(Py[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Ky))if(Ky[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||!Zy(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 Zy(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(!Zy(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Zy(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Qy(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 eb(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}Qy([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function tb(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==ob[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=hb(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=hb(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:cb(r)}}(i,t);h=e.sorted,f=e.recipientCounts,ob[c]=h,lb[c]=f}h=ob[c],f={},a||Object.assign(f,lb[c]);const d=new ib(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 fb(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);hm(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;em(0===n,"input layer has >1 nodes"),em(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 qp(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(db.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(cm);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 db&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(cm);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 qp(`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 qp(`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 fy({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 Yp("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 Yp(`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 Yp(`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 Yp(`${e.length} of ${r} weights are not set: ${e}`)}ly(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${sb}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=ab(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return po((()=>{e=rm(e);const n=new ib;for(let t=0;t{let n;return e=rm(e),n=null==t?Qp(null,e.length):rm(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=ny(e);if(t.length!==this.inputLayers.length)throw new Yp(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(cm);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(cm);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=rm(t.call(e,u)),l=rm(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=rm(t.call(r,u)),l=rm(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(nm(n),r)}function l(e){const n=e.name,s=Ay(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Yp(`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(;!fm(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];em(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];em(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 Yp("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(){po((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function pb(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 mb(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=po((()=>{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());mo(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])})),yh(a,"float32")}return null}function gb(e,t){return Do(e,t)}function yb(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=bb("input",e.inputNames,n),i=bb("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 bb(e,t,n){if(n instanceof _a)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 Yp(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function vb(e){return"function"==typeof e.iterator}function wb(e){Q(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function _b(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>eg(e,t,n-t))):eg(e,t,n-t)}function xb(e,t){return po((()=>null==e?null:Array.isArray(e)?e.map((e=>xb(e,t))):lg(e,"int32"===t.dtype?t:t.toInt())))}function kb(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function Eb(e){const t=[];e instanceof _a&&(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 _a)-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 Nb(e){return!function(e){return e instanceof _a}(e)&&!Sb(e)}function Ib(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(Nb(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Yp(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(Nb(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Yp(`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 Yp(`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 Yp(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=Eb(s),null!=n)for(let e=0;e=0&&o!==l)throw new Yp(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function Ab(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Yp(`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 Yp(`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)),Qy(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eHf.adagrad(.01),Adadelta:()=>Hf.adadelta(1,.95,Xp()),Adam:()=>Hf.adam(.001,.9,.999,Xp()),Adamax:()=>Hf.adamax(.002,.9,.999,Xp(),0),RMSProp:()=>Hf.rmsprop(.001,.9,0,Xp()),SGD:()=>Hf.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 Yp(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Uo))throw new Yp("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 Yp(`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=>Ly(e)))}else{const n=Ly(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 Yp(`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(Ly(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])};Um("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]===By?-1!==["accuracy","acc"].indexOf(i)?r=zy:-1!==["crossentropy","ce"].indexOf(i)&&(r=jy):this.lossFunctions[e]===My?-1!==["accuracy","acc"].indexOf(i)?r=Hy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Xy):-1!==["accuracy","acc"].indexOf(i)?r=Wy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Gy),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=qy(i);s=e,n=""+Yy(i)}let t;Um(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;wb(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return nm(this.testLoop(i,s,r,n.verbose,n.steps))}finally{Cb(a[0],e),Cb(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.");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}=yb(e,t.value),i=n.concat(r),u=po((()=>a(i)));if(mo(i),0===l)for(let e=0;eNo(s[e],Do(c,t)))),l>0&&mo(n)}mo(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 Yp(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return po((()=>{const r=this.checkNumSamples(e);if(n)throw new Jp("Verbose predictLoop() is not implemented yet.");const a=kb(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=_b(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return nm(s.map((e=>Fl(e,0))))}))}predict(e,t={}){const n=Eb(e);Ab(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return wb(r),this.predictLoop(n,r)}finally{Cb(n,e)}}predictOnBatch(e){Ab(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 qp("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=hm(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Yp(`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 Yp(`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 Yp(`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=Ib(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=Ib(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[Ty,By,Oy];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Yp(`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=pb(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=kb(s,n),a=yh(Jm(0,s));for(let n=0;n1&&(a+=`_${tm(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=No(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>po((()=>{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 Yp(`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=_b(a,e,t),a=_b(a,0,e),u=_b(s,e,t),s=_b(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 _=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=Jm(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=Iy(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=eg(i,f,d-f);h.batch=c,h.size=d-f;const g=xb(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(vb(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 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=Sy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=Iy(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=vb(n.validationData)?rm(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):rm(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;nam(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]=am(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[am(Yy(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>am(Yy(e))));{const e={};for(const t in this.metrics)e[t]=am(Yy(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=Ay(rb(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=sm(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>sm(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=sm(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>sm(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=sm(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=ms(e);if(0===t.length)throw new Yp(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Yp(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Yp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await rs(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${sb}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await rs(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=ls([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}}Db.className="Model",Gi(Db);class Tb extends Db{}async function Fb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=Ay(rb(n),t);if(null!=e.weightsManifest){const t=await ri(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),mo(t)}return r}Tb.className="Functional",Gi(Tb);class Rb extends Db{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:ey("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 Yp(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Rb||e instanceof Db;let n;if(t){if(n=e,1!==n.outputs.length)throw new Yp("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 Yp("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 Yp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=yy({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 Yp(`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 Yp("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=my(this.outputs[0])}this.inboundNodes=[],new fy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Qp(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(ay(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 Db({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 qp("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 qp("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 qp("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 qp("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 Yp("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 Rb))throw new Jp(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=Ay(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Yp("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 Yp("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 Ob(e){return new Db(e)}function Mb(e){return new Rb(e)}function Bb(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=gs(e,t);if(0===n.length)n.push(ui(e,t));else if(n.length>1)throw new Yp(`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 Yp("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=Ay(rb(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 Yp("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=as(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),mo(e),mo(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function $b(e){return yy(e)}function Pb(e,t){Ny.registerCallbackConstructor(e,t)}Rb.className="Sequential",Gi(Rb);class Lb extends ji{getConfig(){return{}}}class zb extends Lb{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 gu(e)}(e,t)}}zb.className="elu",Gi(zb);class Wb extends Lb{apply(e){return qc(e)}}Wb.className="selu",Gi(Wb);class Ub extends Lb{apply(e){return zc(e)}}Ub.className="relu",Gi(Ub);class Vb extends Lb{apply(e){return po((()=>hc(6,zc(e))))}}Vb.className="relu6",Gi(Vb);class jb extends Lb{apply(e){return e}}jb.className="linear",Gi(jb);class Hb extends Lb{apply(e){return Rl(e)}}Hb.className="sigmoid",Gi(Hb);class Gb extends Lb{apply(e){return function(e){return po((()=>{const t=No(.5,Do(.2,e));return Hl(t,0,1)}))}(e)}}Gb.className="hardSigmoid",Gi(Gb);class Xb extends Lb{apply(e){return Lu(e)}}Xb.className="softplus",Gi(Xb);class Kb extends Lb{apply(e){return function(e){return po((()=>Ao(e,qo(e).add(1))))}(e)}}Kb.className="softsign",Gi(Kb);class qb extends Lb{apply(e){return Ml(e)}}qb.className="tanh",Gi(qb);class Yb extends Lb{apply(e,t=-1){return sh(e,t)}}Yb.className="softmax",Gi(Yb);class Jb extends Lb{apply(e,t=-1){return Vu(e,t)}}Jb.className="logSoftmax",Gi(Jb);class Zb extends Lb{apply(e,t=1){return po((()=>Rl(e.mul(t)).mul(e)))}}Zb.className="swish",Gi(Zb);class Qb extends Lb{apply(e){return po((()=>Do(e,Ml(Lu(e)))))}}function ev(e){return e.getClassName()}function tv(e,t={}){return um(e,Hi.getMap().classNameMap,t,"activation")}function nv(e){if(null==e){return tv({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},tv(t)}return e instanceof Lb?e:tv(e)}function rv(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}`)}Qb.className="mish",Gi(Qb);class av extends ji{}class sv extends av{constructor(e){super(),rv(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 po((()=>{let t=oc([1]);return this.hasL1&&(t=No(t,Uu(Do(this.l1,qo(e))))),this.hasL2&&(t=No(t,Uu(Do(this.l2,ug(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}sv.className="L1L2",Gi(sv);const iv={l1l2:"L1L2"};function ov(e){return om(e)}function lv(e,t={}){return um(e,Hi.getMap().classNameMap,t,"regularizer")}function uv(e){return null==e?null:"string"==typeof e?lv({className:e in iv?iv[e]:e,config:{}}):e instanceof av?e:lv(e)}class cv extends py{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=ry(e);let n=zc(e);return null!=this.maxValue&&(n=Hl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}cv.className="ReLU",Gi(cv);class hv extends py{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=ry(e);return Tu(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}hv.className="LeakyReLU",Gi(hv);class fv extends py{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Mg(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=uv(e.alphaRegularizer),this.alphaConstraint=Nm(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 Yp(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=ay(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(Pm(t),"channelsFirst"===t?gi(e,[0,2,3,1]):e)))}function wv(e,t){return po((()=>(Pm(t),"channelsFirst"===t?gi(e,[0,2,3,4,1]):e)))}function _v(e,t,n,r=[1,1],a="valid",s,i,o=null){return po((()=>{if(null==s&&(s="channelsLast"),Pm(s),3!==e.rank&&4!==e.rank)throw new Yp(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Yp(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=vv(e,s);if("causal"===a)throw new Jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Gh({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=gi(l,[0,3,1,2])),l}))}mv.className="Softmax",Gi(mv);class xv extends py{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",xv.verifyArgs(t),this.rank=e,mm(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=gv(t.kernelSize,e,"kernelSize"),this.strides=gv(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Lm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Pm(this.dataFormat),this.activation=nv(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Mg(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Nm(t.biasConstraint),this.biasRegularizer=uv(t.biasRegularizer),this.activityRegularizer=uv(t.activityRegularizer),this.dilationRate=gv(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Yp(`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 Yp(`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 Yp(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(em("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!pm(e.kernelSize,"number",1,3))throw new Yp(`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:ev(this.activation),useBias:this.useBias,biasInitializer:Og(this.biasInitializer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),biasConstraint:Cm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class kv extends xv{constructor(e,t){super(e,t),this.kernel=null,kv.verifyArgs(t),this.filters=t.filters,mm(this.filters,"filters"),this.kernelInitializer=Mg(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Nm(t.kernelConstraint),this.kernelRegularizer=uv(t.kernelRegularizer)}build(e){e=ay(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Yp(`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 po((()=>{let t;e=ry(e);const n=null==this.bias?null:this.bias.read(),r=ym(this.activation.getClassName());if(null!=r&&2===this.rank)t=_v(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 po((()=>{if(null==s&&(s="channelsLast"),Pm(s),3!==e.shape.length)throw new Yp(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Yp(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Yp(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=gi(e,[0,2,1])),"causal"===a)throw new Jp("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=hg(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=_v(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 po((()=>{if(null==s&&(s="channelsLast"),Pm(s),4!==e.rank&&5!==e.rank)throw new Yp(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Yp(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=wv(e,s);if("causal"===a)throw new Jp("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=eu(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=hg(o,n)),"channelsFirst"===s&&(o=gi(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=ay(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 Ev extends kv{constructor(e){super(2,e),Ev.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!pm(e.kernelSize,"number",1,2))throw new Yp(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}Ev.className="Conv2D",Gi(Ev);class Cv extends kv{constructor(e){super(3,e),Cv.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 Yp(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}Cv.className="Conv3D",Gi(Cv);class Sv extends Ev{constructor(e){if(super(e),this.inputSpec=[new uy({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Yp(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=ay(e)).length)throw new Yp("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 Yp("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 uy({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return po((()=>{let t=ry(e);if(4!==t.shape.length)throw new Yp(`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,bv(i,c,l,this.padding),bv(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=gi(t,[0,2,3,1]));let d=Ql(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=gi(d,[0,3,1,2])),null!=this.bias&&(d=hg(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=ay(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]=bv(t[r],o,s,this.padding),t[a]=bv(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Sv.className="Conv2DTranspose",Gi(Sv);class Nv extends Cv{constructor(e){if(super(e),this.inputSpec=[new uy({ndim:5})],"same"!==this.padding&&"valid"!==this.padding)throw new Yp(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(5!==(e=ay(e)).length)throw new Yp("Input should have rank 5; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Yp("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 uy({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return po((()=>{let t=ry(e);if(5!==t.shape.length)throw new Yp(`Conv3DTranspose.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,i;"channelsFirst"===this.dataFormat?(i=2,a=3,s=4):(i=1,a=2,s=3);const o=n[i],l=n[a],u=n[s],c=this.kernelSize[0],h=this.kernelSize[1],f=this.kernelSize[2],d=this.strides[0],p=this.strides[1],m=this.strides[2],g=[r,bv(o,d,c,this.padding),bv(l,p,h,this.padding),bv(u,m,f,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=gi(t,[0,2,3,4,1]));let y=nu(t,this.kernel.read(),g,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(y=gi(y,[0,4,1,2,3])),null!==this.bias&&(y=hg(y,this.bias.read(),this.dataFormat)),null!==this.activation&&(y=this.activation.apply(y)),y}))}computeOutputShape(e){const t=(e=ay(e)).slice();let n,r,a,s;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3,s=4):(n=4,r=1,a=2,s=3);const i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],c=this.strides[1],h=this.strides[2];return t[n]=this.filters,t[r]=bv(t[r],u,i,this.padding),t[a]=bv(t[a],c,o,this.padding),t[s]=bv(t[s],h,l,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Nv.className="Conv3DTranspose",Gi(Nv);class Iv extends kv{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 Yp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Yp("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 Yp(`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=Mg(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=uv(t.depthwiseRegularizer),this.depthwiseConstraint=Nm(t.depthwiseConstraint),this.pointwiseInitializer=Mg(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=uv(t.pointwiseRegularizer),this.pointwiseConstraint=Nm(t.pointwiseConstraint)}build(e){if((e=ay(e)).length{let t;if(e=ry(e),1===this.rank)throw new Jp("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=gi(e,[0,2,3,1])),t=Yc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=hg(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=gi(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=Og(this.depthwiseInitializer),e.pointwiseInitializer=Og(this.pointwiseInitializer),e.depthwiseRegularizer=ov(this.depthwiseRegularizer),e.pointwiseRegularizer=ov(this.pointwiseRegularizer),e.depthwiseConstraint=Cm(this.depthwiseConstraint),e.pointwiseConstraint=Cm(this.pointwiseConstraint),e}}Iv.className="SeparableConv";class Av extends Iv{constructor(e){super(2,e)}}Av.className="SeparableConv2D",Gi(Av);class Dv extends kv{constructor(e){super(1,e),Dv.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&&!pm(e.kernelSize,"number",1,1))throw new Yp(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}Dv.className="Conv1D",Gi(Dv);class Tv extends py{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 po((()=>{if(e=ry(e),"channelsLast"===this.dataFormat){const t=ng(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return ng(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=ng(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return ng(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}}Tv.className="Cropping2D",Gi(Tv);class Fv extends py{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,Pm(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,dm(Rm,"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 po((()=>{let t=ry(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=gi(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 gi(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}}Fv.className="UpSampling2D",Gi(Fv);class Rv extends xv{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Mg(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Nm(e.depthwiseConstraint),this.depthwiseRegularizer=uv(e.depthwiseRegularizer)}build(e){if((e=ay(e)).length<4)throw new Yp(`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 Yp(`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 po((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return po((()=>{null==a&&(a="channelsLast"),Pm(a);let i=vv(e,a);if(4!==e.rank)throw new Yp(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Yp(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=lu(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=gi(i,[0,3,1,2])),i}))}(e=ry(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=hg(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=ay(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=yv(t,this.kernelSize[0],this.padding,this.strides[0]),s=yv(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=Og(this.depthwiseInitializer),e.depthwiseRegularizer=ov(this.depthwiseRegularizer),e.depthwiseConstraint=Cm(this.depthwiseRegularizer),e}}function Ov(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Yp("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 Mv(e,t,n,r=!1,a,s,i=!1,o=!1){return po((()=>{const l=t.shape.length;if(l<3)throw new Yp(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(Jm(2,l));if(t=gi(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=vu(a,-1)),a=gi(a,u)),r&&(t=Uc(t,0),null!=a&&(a=Uc(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=Sh(t);let m,g;null!=a&&(m=Sh(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=po((()=>{const e=m[t],n=bc(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=dh(c,1)),[h,g,f]}))}Rv.className="DepthwiseConv2D",Gi(Rv);class Bv extends py{constructor(e){let t;if(super(e),null==e.cell)throw new Yp("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new jv({cells:e.cell}):e.cell,null==t.stateSize)throw new Yp("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 uy({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){ty(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 po((()=>{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 Yp(`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 uy({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){po((()=>{if(!this.stateful)throw new Kp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Yp("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)mo(this.states_),null!=this.keptStates&&(mo(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 Yp(`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()):mo(this.states_);for(let t=0;tgo(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Ov(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 uy({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 cy){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 po((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=ry(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 Yp(`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=Mv(((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 po((()=>{let t=oc(e.shape);return t=Uu(t,[1,2]),t=Qm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?sg(t,[1,e]):t)):this.cell.stateSize>1?[sg(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()===Bv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=Ay(t.cell,n);return new e(Object.assign(t,{cell:r}))}}Bv.className="RNN",Gi(Bv);class $v extends py{}class Pv extends $v{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,mm(this.units,"units"),this.activation=nv(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ay(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 po((()=>{if(2!==(e=e).length)throw new Yp(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0bc(e),rate:this.dropout,training:r})),0bc(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=og(null!=s?Do(e,s):e,this.kernel.read()),null!=this.bias&&(a=hg(a,this.bias.read())),null!=i&&(n=Do(n,i));let o=No(a,og(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:ev(this.activation),useBias:this.useBias,kernelInitializer:Og(this.kernelInitializer),recurrentInitializer:Og(this.recurrentInitializer),biasInitializer:Og(this.biasInitializer),kernelRegularizer:ov(this.kernelRegularizer),recurrentRegularizer:ov(this.recurrentRegularizer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),kernelConstraint:Cm(this.kernelConstraint),recurrentConstraint:Cm(this.recurrentConstraint),biasConstraint:Cm(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Pv.className="SimpleRNNCell",Gi(Pv);class Lv extends Bv{constructor(e){e.cell=new Pv(e),super(e)}call(e,t){return po((()=>{null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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)}}Lv.className="SimpleRNN",Gi(Lv);class zv extends $v{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 Yp("GRUCell does not support reset_after parameter set to true.");this.units=e.units,mm(this.units,"units"),this.activation=nv(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=nv(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([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=ay(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 po((()=>{if(2!==(e=e).length)throw new Yp(`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],0bc(e),rate:this.dropout,training:n,count:3})),0bc(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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="GRU",Gi(Wv);class Uv extends $v{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,mm(this.units,"units"),this.activation=nv(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=nv(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([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=ay(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 gg{apply(t,r){const a=e.apply([n]),s=(new bg).apply([n]),i=e.apply([2*n]);return ag(ag(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 po((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Yp(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0bc(e),rate:this.dropout,training:n,count:4})),0bc(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&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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)}}Vv.className="LSTM",Gi(Vv);class jv extends $v{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 po((()=>{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{Um(`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(Ay(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 oy(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;efg(t(),n),i=()=>dg(s,t,r);return!a||a<=1?go(i().clone()):Array(a).fill(void 0).map(i).map((e=>go(e.clone())))}jv.className="StackedRNNCells",Gi(jv);class Gv extends Bv{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 uy({ndim:5})]}call(e,t){return po((()=>{if(null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Yp("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 po((()=>{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){po((()=>{if(!this.stateful)throw new Kp("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 Yp("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)mo(this.states_),null!=this.keptStates&&(mo(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 Yp(`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()):mo(this.states_);for(let t=0;tgo(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=yv(l,r[0],a,s[0],i[0]),h=yv(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}Gv.className="ConvRNN2D";class Xv extends Uv{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,mm(this.filters,"filters"),this.kernelSize=gv(n,2,"kernelSize"),this.kernelSize.forEach((e=>mm(e,"kernelSize"))),this.strides=gv(r||1,2,"strides"),this.strides.forEach((e=>mm(e,"strides"))),this.padding=a||"valid",Lm(this.padding),this.dataFormat=s||"channelsLast",Pm(this.dataFormat),this.dilationRate=gv(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>mm(e,"dilationRate")))}build(e){var t;e=ay(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Yp(`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 gg{apply(e,t){return rg([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 po((()=>{if(3!==e.length)throw new Yp(`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];0bc(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?Do(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);0bc(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]=uh(this.kernel.read(),4,3),[_,x,k,E]=this.useBias?uh(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]=uh(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(No(l,d)),D=this.recurrentActivation.apply(No(u,p)),T=No(Do(D,s),Do(A,this.activation.apply(No(c,m)))),F=Do(this.recurrentActivation.apply(No(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=ry(e);if(0fg(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()}}qv.className="Dropout",Gi(qv);class Yv extends qv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Yv.className="SpatialDropout1D",Gi(Yv);class Jv extends py{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,mm(this.units,"units"),this.activation=nv(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Nm(e.kernelConstraint),this.biasConstraint=Nm(e.biasConstraint),this.kernelRegularizer=uv(e.kernelRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.activityRegularizer=uv(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=ay(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=ay(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return po((()=>{this.invokeCallHook(e,t);const n=ry(e),r=ym(this.activation.getClassName());let a;return null!=r?a=og(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=og(n,this.kernel.read()),null!=this.bias&&(a=hg(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:ev(this.activation),useBias:this.useBias,kernelInitializer:Og(this.kernelInitializer),biasInitializer:Og(this.biasInitializer),kernelRegularizer:ov(this.kernelRegularizer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),kernelConstraint:Cm(this.kernelConstraint),biasConstraint:Cm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Jv.className="Dense",Gi(Jv);class Zv extends py{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ay(e);for(const t of e.slice(1))if(null==t)throw new Yp(`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],Xm(e,1)]}call(e,t){return po((()=>{this.invokeCallHook(e,t);let n=ry(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=ry(e);return this.activation.apply(n)}))}getConfig(){const e={activation:ev(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}Qv.className="Activation",Gi(Qv);class ew extends py{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 po((()=>{return e=ry(e),t=e,n=this.n,po((()=>{if(2!==t.shape.length)throw new Yp(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return sg(Qm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}ew.className="RepeatVector",Gi(ew);class tw extends py{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=ry(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}}tw.className="Reshape",Gi(tw);class nw extends py{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(!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 uy({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=ay(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return gi(ry(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}nw.className="Permute",Gi(nw);class rw extends py{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=ry(e);return ll(yc(n,this.maskValue),-1)}call(e,t){return po((()=>{this.invokeCallHook(e,t);const n=ry(e),r=ll(yc(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}rw.className="Masking",Gi(rw);class aw extends py{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(rm(e.inputLength))}this.inputDim=e.inputDim,mm(this.inputDim,"inputDim"),this.outputDim=e.outputDim,mm(this.outputDim,"outputDim"),this.embeddingsInitializer=Mg(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=uv(e.embeddingsRegularizer),this.activityRegularizer=uv(e.activityRegularizer),this.embeddingsConstraint=Nm(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 po((()=>this.maskZero?(e=ry(e),yc(e,Ro(e))):null))}computeOutputShape(e){if(e=ay(e),null==this.inputLength)return[...e,this.outputDim];const t=rm(this.inputLength);if(t.length!==e.length-1)throw new Yp(`"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=ry(e);return"int32"!==n.dtype&&(n=Zm(n,"int32")),lg(this.embeddings.read(),n.as1D()).reshape(ay(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Og(this.embeddingsInitializer),embeddingsRegularizer:ov(this.embeddingsRegularizer),activityRegularizer:ov(this.activityRegularizer),embeddingsConstraint:Cm(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}aw.className="Embedding",Gi(aw);class sw extends py{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 Yp(`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===hm(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return po((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Ym(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=Jm(1,e).concat([0]);t.push(gi(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=gi(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(Jm(0,a-1));r=gi(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 Yp("`mask` should be an Array");if(!Array.isArray(e))throw new Yp("`inputs` should be an Array");if(t.length!==e.length)throw new Yp(`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:vu(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 Yp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return po((()=>rg(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Yp("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 Yp("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Yp("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Yp(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return po((()=>{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 Yp(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Yp(`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)=>fw(t,e[n].shape.length))):[fw(this.axes,n.shape.length),fw(this.axes,r.shape.length)],this.normalize&&(n=Dy(n,t[0]),r=Dy(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(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 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 po((()=>{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}}dw.className="Dot",Gi(dw);class pw extends py{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 po((()=>{this.invokeCallHook(e,t);const n=ry(e);return dg((()=>ig(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}pw.className="GaussianNoise",Gi(pw);class mw extends py{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 po((()=>{this.invokeCallHook(e,t);const n=ry(e);return this.rate>0&&this.rate<1?dg((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(ig(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}mw.className="GaussianDropout",Gi(mw);class gw extends py{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||ry(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 po((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return dg((()=>{const t=ry(e),r=-1.7580993408473766;let a=Su(Bc(n),this.rate);a=Zm(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)}),(()=>ry(e)),t.training||!1)}return e}))}}function yw(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Ll(e,t,n,r,a,s);else if(3===e.rank)i=zl(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=Wl(e,t,n,r,a,s)}return i}gw.className="AlphaDropout",Gi(gw);class bw extends py{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=Mg(e.betaInitializer||"zeros"),this.gammaInitializer=Mg(e.gammaInitializer||"ones"),this.movingMeanInitializer=Mg(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Mg(e.movingVarianceInitializer||"ones"),this.betaConstraint=Nm(e.betaConstraint),this.gammaConstraint=Nm(e.gammaConstraint),this.betaRegularizer=uv(e.betaRegularizer),this.gammaRegularizer=uv(e.gammaRegularizer)}build(e){e=ay(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Yp(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new uy({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 po((()=>{const n=null!=t.training&&t.training,r=ry(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=Qp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!se(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 yw(r,e,t,n,a,this.epsilon)}return yw(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(),Jm(0,e.rank-1))?function(e,t,n,r,a=.001){return po((()=>{const s=pc(e,r),i=s.mean,o=s.variance;return[yw(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return po((()=>{const s=pc(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[yw(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)=>{po((()=>{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:Og(this.betaInitializer),gammaInitializer:Og(this.gammaInitializer),movingMeanInitializer:Og(this.movingMeanInitializer),movingVarianceInitializer:Og(this.movingVarianceInitializer),betaRegularizer:ov(this.betaRegularizer),gammaRegularizer:ov(this.gammaRegularizer),betaConstraint:Cm(this.betaConstraint),gammaConstraint:Cm(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}bw.className="BatchNormalization",Gi(bw);class vw extends py{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=Mg(e.betaInitializer||"zeros"),this.gammaInitializer=Mg(e.gammaInitializer||"ones"),this.betaRegularizer=uv(e.betaRegularizer),this.gammaRegularizer=uv(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=ay(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!==hm(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=ry(e),r=n.shape,a=r.length;return po((()=>{let{mean:e,variance:t}=pc(n,this.axis,!0);const s=Qp(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 po((()=>{return t=ry(e),n=this.padding,r=this.dataFormat,po((()=>{if(4!==t.rank)throw new Yp(`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 Yp("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 Yp(`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]],wc(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 _w(e,t,n,r,a,s){return po((()=>{let i;Pm(a),zm(s),Lm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=vv(e,a);const o="same"===r?"same":"valid";return i="max"===s?rc(e,t,n,o):Dl(e,t,n,o),"channelsFirst"===a&&(i=gi(i,[0,3,1,2])),i}))}function xw(e,t,n,r,a,s){return po((()=>{let i;Pm(a),zm(s),Lm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=wv(e,a);const o="same"===r?"same":"valid";return i="max"===s?ac(e,t,n,o):Tl(e,t,n,o),"channelsFirst"===a&&(i=gi(i,[0,4,1,2,3])),i}))}ww.className="ZeroPadding2D",Gi(ww);class kw extends py{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 Yp(`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(mm(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 Yp(`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}mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Lm(this.padding),this.inputSpec=[new uy({ndim:3})]}computeOutputShape(e){const t=yv((e=ay(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return po((()=>{this.invokeCallHook(e,t),e=Qm(ry(e),2);const n=this.poolingFunction(ry(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return fh(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class Ew extends kw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"max")}}Ew.className="MaxPooling1D",Gi(Ew);class Cw extends kw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"avg")}}Cw.className="AveragePooling1D",Gi(Cw);class Sw extends py{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 Yp(`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];mm(this.poolSize,"poolSize"),mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),Lm(this.padding),this.inputSpec=[new uy({ndim:4})]}computeOutputShape(e){e=ay(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=yv(t,this.poolSize[0],this.padding,this.strides[0]),n=yv(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 po((()=>(this.invokeCallHook(e,t),this.poolingFunction(ry(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 Nw extends Sw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"max")}}Nw.className="MaxPooling2D",Gi(Nw);class Iw extends Sw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"avg")}}Iw.className="AveragePooling2D",Gi(Iw);class Aw extends py{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 Yp(`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];mm(this.poolSize,"poolSize"),mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),Lm(this.padding),this.inputSpec=[new uy({ndim:5})]}computeOutputShape(e){e=ay(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=yv(t,this.poolSize[0],this.padding,this.strides[0]),n=yv(n,this.poolSize[1],this.padding,this.strides[1]),r=yv(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 po((()=>(this.invokeCallHook(e,t),this.poolingFunction(ry(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 Dw extends Aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),xw(e,t,n,r,a,"max")}}Dw.className="MaxPooling3D",Gi(Dw);class Tw extends Aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),xw(e,t,n,r,a,"avg")}}Tw.className="AveragePooling3D",Gi(Tw);class Fw extends py{constructor(e){super(e),this.inputSpec=[new uy({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Jp}}class Rw extends Fw{constructor(e){super(e||{})}call(e,t){return po((()=>{const t=ry(e);return ic(t,1)}))}}Rw.className="GlobalAveragePooling1D",Gi(Rw);class Ow extends Fw{constructor(e){super(e||{})}call(e,t){return po((()=>{const t=ry(e);return Wu(t,1)}))}}Ow.className="GlobalMaxPooling1D",Gi(Ow);class Mw extends py{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),this.inputSpec=[new uy({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 Bw extends Mw{call(e,t){return po((()=>{const t=ry(e);return"channelsLast"===this.dataFormat?ic(t,[1,2]):ic(t,[2,3])}))}}Bw.className="GlobalAveragePooling2D",Gi(Bw);class $w extends Mw{call(e,t){return po((()=>{const t=ry(e);return"channelsLast"===this.dataFormat?Wu(t,[1,2]):Wu(t,[2,3])}))}}$w.className="GlobalMaxPooling2D",Gi($w);class Pw extends py{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=Ay(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class Lw extends Pw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=ay(e)).length<3)throw new Yp(`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=ay(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 po((()=>Mv(((e,n)=>[ry(this.layer.call(e,t)),[]]),e=ry(e),[],!1,null,null,!1,!0)[1]))}}Lw.className="TimeDistributed",Gi(Lw);class zw extends Pw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ay(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=Ay(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,dm(Bm,"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()):nm(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Ov(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 Yp("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 uy({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 cy;for(const e of s)if(e instanceof cy!==o)throw new Yp("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 po((()=>{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=Uc(a,1)),"concat"===this.mergeMode?i=rg([r,a]):"sum"===this.mergeMode?i=No(r,a):"ave"===this.mergeMode?i=Do(.5,No(r,a)):"mul"===this.mergeMode?i=Do(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){Um(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Um(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=Ay(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 Ww(e){return new gy(e)}function Uw(e){return new dv(e)}function Vw(e){return new cv(e)}function jw(e){return new hv(e)}function Hw(e){return new fv(e)}function Gw(e){return new mv(e)}function Xw(e){return new pv(e)}function Kw(e){return new Dv(e)}function qw(e){return new Ev(e)}function Yw(e){return new Sv(e)}function Jw(e){return new Cv(e)}function Zw(e){return new Nv(e)}function Qw(e){return new Av(e)}function e_(e){return new Tv(e)}function t_(e){return new Fv(e)}function n_(e){return new Rv(e)}function r_(e){return new Qv(e)}function a_(e){return new Jv(e)}function s_(e){return new qv(e)}function i_(e){return new Yv(e)}function o_(e){return new Zv(e)}function l_(e){return new ew(e)}function u_(e){return new tw(e)}function c_(e){return new nw(e)}function h_(e){return new aw(e)}function f_(e){return new iw(e)}function d_(e){return new lw(e)}function p_(e){return new hw(e)}function m_(e){return new uw(e)}function g_(e){return new cw(e)}function y_(e){return new ow(e)}function b_(e){return new dw(e)}function v_(e){return new bw(e)}function w_(e){return new vw(e)}function __(e){return new ww(e)}function x_(e){return new Cw(e)}function k_(e){return x_(e)}function E_(e){return x_(e)}function C_(e){return new Iw(e)}function S_(e){return C_(e)}function N_(e){return C_(e)}function I_(e){return new Tw(e)}function A_(e){return I_(e)}function D_(e){return I_(e)}function T_(e){return new Rw(e)}function F_(e){return new Bw(e)}function R_(e){return new Ow(e)}function O_(e){return new $w(e)}function M_(e){return new Ew(e)}function B_(e){return new Nw(e)}function $_(e){return new Dw(e)}function P_(e){return new Wv(e)}function L_(e){return new zv(e)}function z_(e){return new Vv(e)}function W_(e){return new Uv(e)}function U_(e){return new Lv(e)}function V_(e){return new Pv(e)}function j_(e){return new Kv(e)}function H_(e){return new Xv(e)}function G_(e){return new Bv(e)}function X_(e){return new jv(e)}function K_(e){return new zw(e)}function q_(e){return new Lw(e)}zw.className="Bidirectional",Gi(zw);const Y_=R_,J_=O_,Z_=M_,Q_=B_;function ex(e){return new pw(e)}function tx(e){return new mw(e)}function nx(e){return new gw(e)}function rx(e){return new rw(e)}function ax(e,t){return zy(e,t)}function sx(e,t){return jy(e,t)}function ix(e,t){return Hy(e,t)}function ox(e,t){return Wy(e,t)}function lx(e,t){return Gy(e,t)}function ux(e,t){return Vy(e,t)}function cx(e,t){return function(e,t){return po((()=>{const n=Uy(e,t),r=function(e,t){return po((()=>Qu(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return fu(Cu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function hx(e,t){return $y(e,t)}function fx(e,t){return Fy(e,t)}function dx(e,t){return Ry(e,t)}function px(e,t){return Ry(e,t)}function mx(e,t){return Ry(e,t)}function gx(e,t){return Ty(e,t)}function yx(e,t){return Ty(e,t)}function bx(e,t){return Ty(e,t)}function vx(e){return new sv(e)}function wx(e){return rv(t=e),new sv({l1:null!=t?t.l1:null,l2:0});var t}function _x(e){return rv(t=e),new sv({l2:null!=t?t.l2:null,l1:0});var t}class xx extends _y{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Db))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function kx(e,t){return et}class Cx extends xx{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=kx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=Ex:this.monitorFunc=kx,this.monitorFunc===kx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===kx?1/0:-1/0}async onEpochEnd(e,t){await by(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 Sx={earlyStopping:function(e){return new Cx(e)}};var Nx,Ix;!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"}(Nx||(Nx={})),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={}))}(Ix||(Ix={}));const Ax={};function Dx(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Ax[e]=n}function Tx(e){return Ax[e]}function Fx(e){delete Ax[e]}function Rx(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 Ox(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>Ox(e,n,r,a)));const o=Ox(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 Ox(e,t,n,r){const[a,s]=$x(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[Bx(a,e)]));return void 0!==i?t[Bx(a,i)][s]:void 0}function Mx(e,t){const[n,r]=$x(e);return[Bx(n,t&&t.currentContextId),r]}function Bx(e,t){return t?`${e}-${t}`:e}function $x(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function Px(e,t,n){let r=Rx("pad",e,t,n);if("explicit"===r){r=Rx("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 Lx(e){return e.kept?e:qs(e)}const zx=[{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}]}],Wx=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Ux=[{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"}]}],Vx=[{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"}]}],jx=[{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"}]}],Hx=[{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}]}],Gx=[{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"}]}],Xx=[{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"}]}],Kx=[{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}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],qx=[{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"}]}],Yx=[{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}]}],Jx=[{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],Zx=[{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}]}],Qx=[{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"}]}],ek=[{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}]}],tk=[{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}]}],nk=[{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 rk{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,A,D,O,R,T,M,B,$,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]=Mx(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]=Mx(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]=Mx(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=Tx(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=sk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=mk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=mk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=ok(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=pk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=pk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=ik(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ik(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=yk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=yk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=dk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=dk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=gk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=gk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=ck(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ck(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=hk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=hk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=uk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=uk(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]=Mx(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:lk(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]=Mx(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=Mx(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 ak(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=We().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 sk(e,t,n,r=!1){const a=e[t];return null!=a?ak(a.s,r):n}function ik(e,t,n){const r=e[t];return r?r.b:n}function ok(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 lk(e){switch("string"==typeof e&&(e=Nx[e]),e){case Nx.DT_FLOAT:return"float32";case Nx.DT_INT32:case Nx.DT_INT64:case Nx.DT_INT8:case Nx.DT_UINT8:return"int32";case Nx.DT_BOOL:return"bool";case Nx.DT_DOUBLE:return"float32";case Nx.DT_STRING:return"string";default:return null}}function uk(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function ck(e,t,n){const r=e[t];return r&&r.type?lk(r.type):n}function hk(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>lk(e))):n}function fk(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function dk(e,t,n){const r=e[t];return r&&r.shape?fk(r.shape):n}function pk(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 mk(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>ak(e,r))):n}function gk(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>fk(e))):n}function yk(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class bk{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 Ox(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return Ox(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return ok(this.node.rawAttrs,e,t);if(null!=n.s)return sk(this.node.rawAttrs,e,t);if(null!=n.b)return ik(this.node.rawAttrs,e,t);if(null!=n.shape)return dk(this.node.rawAttrs,e,t);if(null!=n.type)return ck(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return pk(this.node.rawAttrs,e,t);if(null!=n.list.s)return mk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return gk(this.node.rawAttrs,e,t);if(null!=n.list.b)return yk(this.node.rawAttrs,e,t);if(null!=n.list.type)return hk(this.node.rawAttrs,e,t)}return t}}function vk(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 wk(e){return"number"!=typeof e&&!e.some((e=>e<0))}function _k(e,t,n){let r=xk(e,n);const a=!wk(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=xk(e.shape,r)})),!wk(r))throw new Error(`Non-fully-defined elementShape: ${r}`);return r}function xk(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 kk{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=Wo(0),go(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),vk(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,go(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,Sh(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=[];po((()=>{t=Al(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}`);vk(t,e.shape,"TensorList shape mismatch: "),go(e)})),this.idTensor=Wo(0),this.maxNumElements=r,go(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.`);vk(e,this.elementShape,"TensorList shape mismatch: ");const r=_k(this.elementShape,this.tensors,e);return po((()=>{const e=this.tensors.map((e=>Al(e,r)));return dh(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=_k(this.elementShape,this.tensors,e),r=this.tensors.pop();return vk(r.shape,e,"TensorList shape mismatch: "),Al(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(vk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");go(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.`);vk(this.tensors[e].shape,t,"TensorList shape mismatch: ");const r=_k(this.elementShape,this.tensors,t);return Al(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.`);vk(this.elementShape,t.shape,"TensorList shape mismatch: "),go(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}`);vk(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const r=_k(this.elementShape,this.tensors,n);return 0===e.length?ts([],[0].concat(r)):po((()=>{const t=e.map((e=>Al(this.tensors[e],r)));return dh(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);vk(this.elementShape,t,"TensorList shape mismatch: ");const n=_k(this.elementShape,this.tensors,t);return 0===this.size()?ts([],[0].concat(n)):po((()=>{const e=this.tensors.map((e=>Al(e,n)));return Fl(e,0)}))}}function Ck(e,t,n){const[r,a]=Rx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=Rx("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=Rx("strides",e,t,n),c=Px(e,t,n),h=Rx("dataFormat",e,t,n).toUpperCase(),f=Rx("dilations",e,t,n),[d,p]=Rx("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:Rx("leakyreluAlpha",e,t,n)}}function Sk(e,t,n){return{boxes:Rx("boxes",e,t,n),scores:Rx("scores",e,t,n),maxOutputSize:Rx("maxOutputSize",e,t,n),iouThreshold:Rx("iouThreshold",e,t,n),scoreThreshold:Rx("scoreThreshold",e,t,n),softNmsSigma:Rx("softNmsSigma",e,t,n)}}class Nk{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=Wo(0),this.tensorMap=new Map,go(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}tensorSize(){return Wo(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),po((()=>{const e=Sh(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 po((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[No(Rx("a",e,t,n),Rx("b",e,t,n))];case"AddN":return[il(Rx("tensors",e,t,n))];case"FloorMod":case"Mod":return[dc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Mul":return[Do(Rx("a",e,t,n),Rx("b",e,t,n))];case"RealDiv":case"Div":return[Ao(Rx("a",e,t,n),Rx("b",e,t,n))];case"DivNoNan":return[du(Rx("a",e,t,n),Rx("b",e,t,n))];case"FloorDiv":return[Io(Rx("a",e,t,n),Rx("b",e,t,n))];case"Sub":return[Xo(Rx("a",e,t,n),Rx("b",e,t,n))];case"Minimum":return[hc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Maximum":return[Qo(Rx("a",e,t,n),Rx("b",e,t,n))];case"Pow":return[Go(Rx("a",e,t,n),Rx("b",e,t,n))];case"SquaredDifference":return[hh(Rx("a",e,t,n),Rx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return po((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[qo(Rx("x",e,t,n))];case"Acos":return[al(Rx("x",e,t,n))];case"Acosh":return[sl(Rx("x",e,t,n))];case"Asin":return[hl(Rx("x",e,t,n))];case"Asinh":return[fl(Rx("x",e,t,n))];case"Atan":return[dl(Rx("x",e,t,n))];case"Atan2":return[pl(Rx("x",e,t,n),Rx("y",e,t,n))];case"Atanh":return[ml(Rx("x",e,t,n))];case"Ceil":return[jl(Rx("x",e,t,n))];case"Complex":return[Qa(Rx("real",e,t,n),Rx("imag",e,t,n))];case"Cos":return[ru(Rx("x",e,t,n))];case"Cosh":return[au(Rx("x",e,t,n))];case"Elu":return[gu(Rx("x",e,t,n))];case"Erf":return[yu(Rx("x",e,t,n))];case"Exp":return[bu(Rx("x",e,t,n))];case"Expm1":return[wu(Rx("x",e,t,n))];case"Floor":return[ku(Rx("x",e,t,n))];case"Log":return[Bu(Rx("x",e,t,n))];case"Log1p":return[$u(Rx("x",e,t,n))];case"Imag":return[Nu(Rx("x",e,t,n))];case"Neg":return[Pu(Rx("x",e,t,n))];case"Reciprocal":return[Lc(Rx("x",e,t,n))];case"Real":return[Pc(Rx("x",e,t,n))];case"Relu":return[zc(Rx("x",e,t,n))];case"Round":return[Xc(Rx("x",e,t,n))];case"Selu":return[qc(Rx("x",e,t,n))];case"Sigmoid":return[Rl(Rx("x",e,t,n))];case"Sin":return[Qc(Rx("x",e,t,n))];case"Sign":return[Zc(Rx("x",e,t,n))];case"Sinh":return[eh(Rx("x",e,t,n))];case"Softplus":return[Lu(Rx("x",e,t,n))];case"Sqrt":return[To(Rx("x",e,t,n))];case"Square":return[Fo(Rx("x",e,t,n))];case"Tanh":return[Ml(Rx("x",e,t,n))];case"Tan":return[gh(Rx("x",e,t,n))];case"ClipByValue":return[Hl(Rx("x",e,t,n),Rx("clipValueMin",e,t,n),Rx("clipValueMax",e,t,n))];case"Relu6":return[Wc(Rx("x",e,t,n))];case"Rsqrt":return[Kc(Ox(e.inputNames[0],t,n))];case"Prod":return[Ic(Rx("x",e,t,n),Rx("axes",e,t,n))];case"LeakyRelu":return[Tu(Rx("x",e,t,n),Rx("alpha",e,t,n))];case"Prelu":return[Nc(Rx("x",e,t,n),Rx("alpha",e,t,n))];case"IsNan":return[Du(Ox(e.inputNames[0],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=Rx("thenBranch",e,t,n),a=Rx("elseBranch",e,t,n),s=Rx("cond",e,t,n),i=Rx("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=Rx("body",e,t,n),a=Rx("cond",e,t,n),s=Rx("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[Lx(Rx("pred",e,t,n))];case"Switch":{const r=Rx("pred",e,t,n);let a=Rx("data",e,t,n);return a.kept||(a=Lx(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==Ox(e,t,n)));return r?[Lx(Ox(r,t,n))]:void 0}case"Enter":{const r=Rx("frameName",e,t,n),a=Rx("tensor",e,t,n);return n.enterFrame(r),[Lx(a)]}case"Exit":{const r=Rx("tensor",e,t,n);return n.exitFrame(),[Lx(r)]}case"NextIteration":{const r=Rx("tensor",e,t,n);return n.nextIteration(),[Lx(r)]}case"TensorArrayV3":{const r=Rx("size",e,t,n),a=Rx("dtype",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("dynamicSize",e,t,n),o=Rx("clearAfterRead",e,t,n),l=Rx("identicalElementShapes",e,t,n),u=Rx("name",e,t,n),c=new kk(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,Wo(1)]}case"TensorArrayWriteV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("index",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("indices",e,t,n),s=Rx("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("indices",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=Rx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=Rx("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("tensor",e,t,n),s=Rx("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=Rx("tensorArrayId",e,t,n);return[Wo(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=Rx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=Rx("tensorListId",e,t,n),a=Rx("index",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=Rx("tensorListId",e,t,n),a=Rx("index",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=Rx("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=Sh(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(Rx("tensor",e,t,n),r,Rx("elementShape",e,t,n),Rx("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=Rx("elementShape",e,t,n),a=Rx("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,Rx(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=Rx("tensorListId",e,t,n),a=Rx("indices",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=Rx("tensorListId",e,t,n),a=Rx("elementShape",e,t,n),s=Rx("elementDType",e,t,n),i=Rx("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}`);vk(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=Sh(e);return new Ek(a,t,r)}(Rx("tensor",e,t,n),Rx("elementShape",e,t,n),Rx("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=Rx("tensorListId",e,t,n),a=n.getTensorList(r.id),s=Rx("dtype",e,t,n),i=Rx("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=Rx("tensorListId",e,t,n),a=Rx("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=Rx("tensorListId",e,t,n),a=Rx("elementShape",e,t,n),s=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=Rx("tensor",e,t,n),a=Rx("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=xk(e.shape.slice(1),n),i=0===r?0:e.size/r,o=po((()=>{const n=[];e=Al(e,[1,r,i]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=Rx("stride",e,t,n),a=Rx("pad",e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilation",e,t,n);return[Jl(Rx("x",e,t,n),Rx("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=Rx("strides",e,t,n),a=Px(e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilations",e,t,n);return[Yl(Rx("x",e,t,n),Rx("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}=Ck(e,t,n);return[Gh({x:Rx("x",e,t,n),filter:Rx("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}=Ck(e,t,n);return[qh({x:Rx("x",e,t,n),filter:Rx("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=Rx("outputShape",e,t,n),a=Rx("strides",e,t,n),s=Px(e,t,n);return[Ql(Rx("x",e,t,n),Rx("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=Rx("strides",e,t,n),a=Px(e,t,n),s=Rx("dilations",e,t,n),i=Rx("dataFormat",e,t,n).toUpperCase();return[lu(Rx("input",e,t,n),Rx("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilations",e,t,n);return[eu(Rx("x",e,t,n),Rx("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[Dl(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[rc(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n),i=Rx("includeBatchInIndex",e,t,n),{result:o,indexes:l}=sc(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[Tl(Rx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[ac(Rx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[cu(Rx("x",e,t,n),Rx("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 po((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=Rx("shape",e,t,n),a=Rx("dtype",e,t,n);return[jo(r,Rx("value",e,t,n),a)]}case"LinSpace":return[Ou(Rx("start",e,t,n),Rx("stop",e,t,n),Rx("num",e,t,n))];case"Multinomial":{const r=Rx("logits",e,t,n),a=Rx("numSamples",e,t,n),s=Rx("seed",e,t,n);return[gc(r,a,s)]}case"OneHot":{const r=Rx("indices",e,t,n),a=Rx("depth",e,t,n),s=Rx("onValue",e,t,n),i=Rx("offValue",e,t,n);return[mi(r,a,s,i)]}case"Ones":return[lc(Rx("shape",e,t,n),Rx("dtype",e,t,n))];case"OnesLike":return[bc(Rx("x",e,t,n))];case"RandomUniform":return[Bc(Rx("shape",e,t,n),Rx("minval",e,t,n),Rx("maxval",e,t,n),Rx("dtype",e,t,n))];case"Range":return[$c(Rx("start",e,t,n),Rx("stop",e,t,n),Rx("step",e,t,n),Rx("dtype",e,t,n))];case"TruncatedNormal":{const r=Rx("shape",e,t,n),a=Rx("mean",e,t,n),s=Rx("stdDev",e,t,n),i=Rx("seed",e,t,n);return[kh(r,a,s,Rx("dtype",e,t,n),i)]}case"Zeros":return[oc(Rx("shape",e,t,n),Rx("dtype",e,t,n))];case"ZerosLike":return[Ro(Rx("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}=Sk(e,t,n),u=await zf.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}=Sk(e,t,n),l=Rx("padToMaxOutputSize",e,t,n),u=await zf.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}=Sk(e,t,n);return[await zf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=Ks(Rx("condition",e,t,n),"bool"),a=[await Ah(r)];return r.dispose(),a}case"ListDiff":return Jc(Rx("x",e,t,n),Rx("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return po((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=Rx("x",e,t,n),a=Rx("k",e,t,n),s=Rx("sorted",e,t,n),i=xh(r,a,s);return[i.values,i.indices]}case"Unique":{const r=Rx("x",e,t,n),a=Eh(r);return[a.values,a.indices]}case"UniqueV2":{const r=Rx("x",e,t,n),a=Rx("axis",e,t,n),s=Eh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return po((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=Rx("images",e,t,n),a=Rx("size",e,t,n),s=Rx("alignCorners",e,t,n),i=Rx("halfPixelCenters",e,t,n);return[zf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=Rx("images",e,t,n),a=Rx("size",e,t,n),s=Rx("alignCorners",e,t,n),i=Rx("halfPixelCenters",e,t,n);return[zf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=Rx("image",e,t,n),a=Rx("boxes",e,t,n),s=Rx("boxInd",e,t,n),i=Rx("cropSize",e,t,n),o=Rx("method",e,t,n),l=Rx("extrapolationValue",e,t,n);return[zf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return po((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=Rx("default",e,t,n);return[Ox(e.name,t,n)||r];case"Placeholder":return[Ox(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[Lx(Rx("x",e,t,n))];case"IdentityN":return Rx("x",e,t,n).map((e=>Lx(e)));case"Snapshot":return[Lx(Rx("x",e,t,n))];case"Shape":return[yh(Rx("x",e,t,n).shape,"int32")];case"ShapeN":return Rx("x",e,t,n).map((e=>yh(e.shape)));case"Size":return[Wo(Rx("x",e,t,n).size,"int32")];case"Rank":return[Wo(Rx("x",e,t,n).rank,"int32")];case"NoOp":return[Wo(1)];case"Print":const a=Rx("x",e,t,n),s=Rx("data",e,t,n),i=Rx("message",e,t,n),o=Rx("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[hu(Rx("a",e,t,n),Rx("b",e,t,n))];case"NotEqual":return[yc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Greater":return[Cu(Rx("a",e,t,n),Rx("b",e,t,n))];case"GreaterEqual":return[Su(Rx("a",e,t,n),Rx("b",e,t,n))];case"Less":return[Fu(Rx("a",e,t,n),Rx("b",e,t,n))];case"LessEqual":return[Ru(Rx("a",e,t,n),Rx("b",e,t,n))];case"LogicalAnd":return[Qu(Rx("a",e,t,n),Rx("b",e,t,n))];case"LogicalNot":return[ec(Rx("a",e,t,n))];case"LogicalOr":return[tc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Select":case"SelectV2":return[fu(Rx("condition",e,t,n),Rx("a",e,t,n),Rx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return po((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[pi(Rx("a",e,t,n),Rx("b",e,t,n),Rx("transposeA",e,t,n),Rx("transposeB",e,t,n))];case"Einsum":return[mu(Rx("equation",e,t,n),...Rx("tensors",e,t,n))];case"Transpose":return[gi(Rx("x",e,t,n),Rx("perm",e,t,n))];case"_FusedMatMul":const[r,a]=Rx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=Rx("numArgs",e,t,n),l=Rx("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]=Rx("args",e,t,n);return[Yh({a:Rx("a",e,t,n),b:Rx("b",e,t,n),transposeA:Rx("transposeA",e,t,n),transposeB:Rx("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 po((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Pl(Rx("x",e,t,n),Rx("mean",e,t,n),Rx("variance",e,t,n),Rx("offset",e,t,n),Rx("scale",e,t,n),Rx("epsilon",e,t,n))];case"LRN":return[Mu(Rx("x",e,t,n),Rx("radius",e,t,n),Rx("bias",e,t,n),Rx("alpha",e,t,n),Rx("beta",e,t,n))];case"Softmax":return[sh(Rx("x",e,t,n))];case"LogSoftmax":return[Vu(Rx("x",e,t,n))];case"SparseToDense":return[Mh(Rx("sparseIndices",e,t,n),Rx("outputShape",e,t,n),Rx("sparseValues",e,t,n),Rx("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return po((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Wu(Rx("x",e,t,n),r,a)]}case"Mean":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ic(Rx("x",e,t,n),r,a)]}case"Min":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[cc(Rx("x",e,t,n),r,a)]}case"Sum":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Uu(Rx("x",e,t,n),r,a)]}case"All":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ol(Rx("x",e,t,n),r,a)]}case"Any":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ll(Rx("x",e,t,n),r,a)]}case"ArgMax":{const r=Rx("axis",e,t,n);return[ul(Rx("x",e,t,n),r)]}case"ArgMin":{const r=Rx("axis",e,t,n);return[cl(Rx("x",e,t,n),r)]}case"Prod":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Ic(Rx("x",e,t,n),r,a)]}case"Cumsum":{const r=Rx("axis",e,t,n),a=Rx("exclusive",e,t,n),s=Rx("reverse",e,t,n);return[su(Rx("x",e,t,n),r,a,s)]}case"Bincount":const r=Rx("x",e,t,n),a=Rx("weights",e,t,n),s=Rx("size",e,t,n);return[Ul(r,a,s)];case"DenseBincount":{const r=Rx("x",e,t,n),a=Rx("weights",e,t,n),s=Rx("size",e,t,n),i=Rx("binaryOutput",e,t,n);return[iu(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return po((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=Rx("n",e,t,n),a=Rx("axis",e,t,n);let s=Rx("tensors",e,t,n);return s=s.slice(0,r),[Fl(s,a)]}case"Gather":{const r=Rx("x",e,t,n),a=Rx("indices",e,t,n);return[Eu(r,Ks(a,"int32"),0)]}case"GatherV2":{const r=Rx("axis",e,t,n),a=Rx("batchDims",e,t,n),s=Rx("x",e,t,n),i=Rx("indices",e,t,n);return[Eu(s,Ks(i,"int32"),r,a)]}case"Reverse":{const r=Rx("dims",e,t,n),a=[];for(let e=0;e{const r=Rx("axis",e,t,n),a=Rx("tensors",e,t,n),s=a[0].shape,i=fh(a[0]).shape,o=a.map((e=>{const t=se(e.shape,s);if(!t&&!se(fh(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:Al(e,s)}));return[dh(o,r)]}));case"Unpack":{const r=Rx("axis",e,t,n),a=Rx("tensor",e,t,n);return Sh(a,r)}case"Tile":{const r=Rx("reps",e,t,n);return[_u(Rx("x",e,t,n),r)]}case"Split":case"SplitV":{const r=Rx("axis",e,t,n),a=Rx("numOrSizeSplits",e,t,n),s=Rx("x",e,t,n);return uh(s,a,r)}case"ScatterNd":{const r=Rx("indices",e,t,n),a=Rx("values",e,t,n),s=Rx("shape",e,t,n);return[Oh(r,a,s)]}case"GatherNd":{const r=Rx("x",e,t,n),a=Rx("indices",e,t,n);return[Bh(r,a)]}case"SparseToDense":{const r=Rx("sparseIndices",e,t,n),a=Rx("outputShape",e,t,n),s=Rx("sparseValues",e,t,n),i=Rx("defaultValue",e,t,n);return[Mh(r,s,a,s.dtype===i.dtype?i:Ks(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"sparse":return po((()=>((e,t,n)=>{switch(e.op){case"SparseReshape":{const{outputIndices:r,outputShape:a}=Vf.sparseReshape(Rx("inputIndices",e,t,n),Rx("inputShape",e,t,n),Rx("newShape",e,t,n));return[r,a]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return po((()=>((e,t,n)=>{switch(e.op){case"FFT":return[ih(Rx("x",e,t,n))];case"IFFT":return[oh(Rx("x",e,t,n))];case"RFFT":return[ch(Rx("x",e,t,n))];case"IRFFT":return[lh(Rx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return po((()=>((e,t,n)=>{switch(e.op){case"Cast":return[Ks(Rx("x",e,t,n),Rx("dtype",e,t,n))];case"ExpandDims":{const r=Rx("axis",e,t,n);return[vu(Rx("x",e,t,n),r)]}case"Squeeze":{const r=Rx("axis",e,t,n);return[fh(Rx("x",e,t,n),r)]}case"Reshape":return[Al(Rx("x",e,t,n),Rx("shape",e,t,n))];case"MirrorPad":return[fc(Rx("x",e,t,n),Rx("padding",e,t,n),Rx("mode",e,t,n))];case"PadV2":case"Pad":return[wc(Rx("x",e,t,n),Rx("padding",e,t,n),Rx("constantValue",e,t,n))];case"SpaceToBatchND":{const r=Rx("blockShape",e,t,n),a=Rx("paddings",e,t,n);return[Cc(Rx("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=Rx("blockShape",e,t,n),a=Rx("crops",e,t,n);return[$l(Rx("x",e,t,n),r,a)]}case"DepthToSpace":{const r=Rx("blockSize",e,t,n),a=Rx("dataFormat",e,t,n).toUpperCase();return[ou(Rx("x",e,t,n),r,a)]}case"BroadcastTo":return[Vl(Rx("x",e,t,n),Rx("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=Rx("keyDType",e,t,n),s=Rx("valueDType",e,t,n),i=new Nk(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=Rx("tableHandle",e,t,n,r),s=Rx("keys",e,t,n),i=Rx("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=Rx("tableHandle",e,t,n,r),s=Rx("keys",e,t,n),i=Rx("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{const a=Rx("tableHandle",e,t,n,r);return[r.getHashTableById(a.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=Tx(e.op);if(a&&a.customExecutor)return a.customExecutor(new bk(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 Ak{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 Dk(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>$x(e)[0]));let c=[];null!=r&&(c=r.map((e=>$x(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(Ok(e)||Mk(e)||Bk(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 Tk=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],Fk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],Rk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function Ok(e){return Tk.indexOf(e.op)>=0}function Mk(e){return Fk.indexOf(e.op)>=0}function Bk(e){return Rk.indexOf(e.op)>=0}class $k{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 $k(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=Dk(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=>$x(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[$x(e)[0]])),a=t.map((e=>$x(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 po((()=>{const n=new Ak(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=$x(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;eOx(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[Bx(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!e.kept&&!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 Ak(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>Ox(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.kept||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[$x(e)[0]])),i=n.map((e=>$x(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}=Dk(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]=$x(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=>!Ok(e)&&!Ox(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&&Rx("isConstant",e.node,r,n)&&([c]=Mx(e.node.name,n)),null==r[e.node.name]){const h=Ik(e.node,r,n,this._resourceManager);c||([c]=Mx(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]=Mx(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!Ox(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!Ox(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]=$x(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]=$x(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]=$x(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 Lk{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=ui(e,this.loadOptions);else{const t=gs(e,this.loadOptions);if(0===t.length)t.push(ui(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=as(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new $k(rk.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=rk.Instance.transformGraph(e.modelInitializer);this.initializer=new $k(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=ms(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 _a||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 zk(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 Lk(e,t);return await n.load(),n}const Wk="3.6.0";function Uk(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(Xk(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=Uk(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=Hk){return jk(e,t)}function jk(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(Xk(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=jk(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 Hk(e){return null===e?null:Xk(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Gk(e,t){const n=new Map;Uk(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 Uk(e,t,n)}function Xk(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof _a))}function Kk(e){return e instanceof _a?{value:e.clone(),recurse:!1}:Xk(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class qk{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 Yk extends qk{constructor(){super(Yk.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 sE(this,e,t)}columnMajorBatch(e,t=!0,n=Hk){return this.rowMajorBatch(e,t).map((e=>Vk(e,n)))}concatenate(e,t){return new fE(Jk([this,e]),t)}take(e){return e<0||null==e?this:new aE(this,e)}skip(e){return e<0||null==e?this:new rE(this,e)}prefetch(e){return new mE(this,e)}shuffle(e,t){return new gE(this,e,t)}serial(){return new nE(this)}}class eE extends Qk{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 Uk(e,t)}(t,Kk)),done:!1};var t}}class tE extends Qk{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 nE extends Qk{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 rE extends Qk{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 sE extends Qk{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 iE extends Qk{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;mo(e.value)}}}class oE extends Qk{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=Ma(e.value),n=this.transform(e.value),r=Ma(n);for(const e of t)Oa(e,r)||e.dispose();return{value:n,done:!1}}}class lE extends Qk{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 uE extends Qk{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=Ma(e.value),n=await this.transform(e.value),r=Ma(n);for(const e of t)Oa(e,r)||e.dispose();return{value:n,done:!1}}}class cE extends Qk{constructor(){super(),this.outputQueue=new Yk,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 hE extends cE{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=Ma(e.value),n=this.transform(e.value),r=Ma(n);this.outputQueue.pushAll(n);for(const e of t)Oa(e,r)||e.dispose();return!0}}class fE extends Qk{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 dE;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(dE||(dE={}));class pE extends Qk{constructor(e,t=dE.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 Gk(this.iterators,(function(e){return e instanceof Qk?{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 dE.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case dE.SHORTEST:return{value:null,done:!0};case dE.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class mE extends Qk{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new qk(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 gE extends mE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=Dc.alea(n||sa().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 yE{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),bE((async()=>(await n.iterator()).columnMajorBatch(e,t,_E)),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,bE((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,bE((async()=>(await t.iterator()).filter((t=>po((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return bE((async()=>(await t.iterator()).map((t=>po((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return bE((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 bE((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,bE((async()=>{return n=Zk((async()=>({value:await t.iterator(),done:!1}))).take(e),new fE(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=Dc.alea(t||sa().toString());return bE((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,bE((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 bE(e,t=null){return new class extends yE{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function vE(e){return bE((async()=>Jk(e)),e.length)}function wE(e){if(!Xk(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=dE.FAIL){return new pE(e,t)}(await Gk(e,(e=>{if(e instanceof yE)return{value:e.iterator(),recurse:!1};if(Xk(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),dE.SHORTEST)),t)}function _E(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 _a||we(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof _a?dh(e):ts(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}yE.MAX_BUFFER_SIZE=1e4;class xE extends yE{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 kE='"',EE=Symbol("out"),CE=Symbol("field"),SE=Symbol("quote"),NE=Symbol("quoteafterquote"),IE=Symbol("quoteinquote");class AE extends yE{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 xE(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(We().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new DE(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),ts(n,t)}}class TE extends Qk{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=yh([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=bh([r,n,s,a],[1,4])}else this.cropBox=bh([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(We().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 TE(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=ki(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 po((()=>{const t=vu(Ks(e,"float32"),0);let n;n=zf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return Al(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 FE{}class RE extends Qk{split(e){return new OE(this,e)}}class OE extends RE{constructor(e,t){super(),this.upstream=e,this.impl=new ME(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class ME extends cE{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 BE extends Qk{decodeUTF8(){return new $E(this)}}class $E extends RE{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 cE{constructor(e){if(super(),this.upstream=e,We().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=We().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class LE extends BE{constructor(e,t={}){super(),this.file=e,this.options=t,Q(e instanceof Uint8Array||!!We().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 zE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class WE extends FE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(zE(this.input)&&We().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new LE(this.input,this.options)}}class UE extends FE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return zE(this.url)?new WE(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 ia(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new LE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function VE(e,t={}){return new AE(new UE(e),t)}function jE(e){const t=Zk(e);return bE((async()=>t))}function HE(e){return bE((async()=>{const t=await e();return Zk((()=>t.next()))}))}async function GE(e,t){return TE.create(e,t)}async function XE(e){return DE.create(e)}const KE="3.6.0";function qE(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 YE=Ih;class JE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,co())}nextDataId(){return JE.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,We().get("IS_NODE")&&fd("\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=>oa(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?pd(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=>la(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Xs(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return co().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=sa();return e(),{kernelMs:sa()-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){qE([e],"where");const t=this.readSync(e.dataId);return YE(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function ZE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(qE(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(qE(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)}}JE.nextDataId=0,Eo("cpu",(()=>new JE),1);const eC=ZE(Wt,(e=>e>=0?e:Math.exp(e)-1)),tC={kernelName:Wt,backendName:"cpu",kernelFunc:eC};function nC(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 rC={kernelName:an,backendName:"cpu",kernelFunc:nC};function aC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;qE([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=Zo(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=Yo(t,i),m=Yo(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 oC=iC(((e,t)=>e<0?t*e:e));function lC(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;qE([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=oC(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const uC={kernelName:Kn,backendName:"cpu",kernelFunc:lC},cC=ZE(Qn,(e=>Math.max(0,e))),hC={kernelName:Qn,backendName:"cpu",kernelFunc:cC},fC=ZE(sr,(e=>Math.min(Math.max(0,e),6))),dC={kernelName:sr,backendName:"cpu",kernelFunc:fC},pC=ZE(gr,(e=>1/(1+Math.exp(-e)))),mC={kernelName:gr,backendName:"cpu",kernelFunc:pC};function gC(e,t,n,r,a){if("linear"===n)return nC({inputs:{x:t},backend:e});if("relu"===n)return cC({inputs:{x:t},backend:e});if("elu"===n)return eC({inputs:{x:t},backend:e});if("relu6"===n)return fC({inputs:{x:t},backend:e});if("prelu"===n)return lC({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return aC({inputs:{x:t},backend:e,attrs:{alpha:a}});if("sigmoid"===n)return pC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function yC(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 bC={kernelName:yt,backendName:"cpu",kernelFunc:yC};function vC(e,t,n="float32"){if("complex64"===n)return yC({inputs:{real:vC(e,t,"float32"),imag:vC(e,t,"float32")},backend:e});const r=Re(re(t),n);return e.makeTensorInfo(t,n,r)}function wC(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 _C={kernelName:Jn,backendName:"cpu",kernelFunc:wC};function xC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return nC({inputs:{x:a},backend:n});const e=vC(n,a.shape,a.dtype),t=xC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=yC({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=wC({inputs:{input:a},backend:n}),t=xC({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!ve(a.dtype,s)){const e=nC({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=aa([0],a.dtype),[r,s]=iC(((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 kC={kernelName:pt,backendName:"cpu",kernelFunc:xC};function EC(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;qE([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=xC({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=xC({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),_=yC({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=Zo(t,n),l=re(o),u=o.length,c=Ae(o),h=me("float32",l),f=me("float32",l),d=Yo(t,o),p=Yo(n,o),m=pd(r,a),g=pd(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=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 SC=iC(((e,t)=>e+t)),NC=CC(((e,t,n,r)=>({real:e+n,imag:t+r}))),IC=EC(qe,SC,NC),AC={kernelName:qe,backendName:"cpu",kernelFunc:IC};function DC(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 TC={kernelName:er,backendName:"cpu",kernelFunc:DC};function FC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;qE([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=DC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),_=DC({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=Ae(w.shape),A=Ae(_.shape),[D,T,F]=i?[I[0],1,I[1]]:[I[0],I[1],1],[R,O,M]=o?[1,A[1],A[0]]:[A[1],1,A[0]],B=k*E,$=Xs([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;qE(t,"abs");let r=new Float32Array(re(t.shape));return r=MC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},$C=ZE(Xe,(e=>Math.acos(e))),PC={kernelName:Xe,backendName:"cpu",kernelFunc:$C},LC=ZE(Ke,(e=>Math.acosh(e))),zC={kernelName:Ke,backendName:"cpu",kernelFunc:LC},WC={kernelName:Ye,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;qE(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Xs(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)}},KC={kernelName:et,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;qE(a,"argMin");let i=de(s,a.shape);const o=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=VC({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),i=[i[0]],Ku("argMin",i,l.shape.length);const[c,h]=Gu(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)}},qC=ZE(tt,(e=>Math.asin(e))),YC={kernelName:tt,backendName:"cpu",kernelFunc:qC},JC=ZE(nt,(e=>Math.asinh(e))),ZC={kernelName:nt,backendName:"cpu",kernelFunc:JC},QC=ZE(rt,(e=>Math.atan(e))),eS={kernelName:rt,backendName:"cpu",kernelFunc:QC},tS=iC(((e,t)=>Math.atan2(e,t))),nS=EC(st,tS),rS={kernelName:st,backendName:"cpu",kernelFunc:nS},aS=ZE(at,(e=>Math.atanh(e))),sS={kernelName:at,backendName:"cpu",kernelFunc:aS};function iS(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=Xs(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 oS(e,t,n,r,a=!1,s=!1){const i=Xs(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=Xs(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 lS(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=Xs(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 uS={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;qE(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=nC({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=iS(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},cS={kernelName:lt,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;qE(a,"avgPool3d");const c=bl(a.shape,s,i,1,o,l,u),h=lS(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}},hS={kernelName:ut,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;qE([a,s],"avgPool3DGrad");const c=bl(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,_=c.effectiveFilterHeight,x=c.effectiveFilterWidth,k=w-1-c.padInfo.front,E=x-1-c.padInfo.left,C=_-1-c.padInfo.top,S=Xs(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<_;n+=b){const a=(i+n)/f;if(!(a<0||a>=c.outHeight||Math.floor(a)!==a))for(let n=0;n=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)}},fS={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;qE([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=yl(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,_=Xs(i.shape,"float32"),x=1/(d*p),k=n.data.get(a.dataId).values,E=Xs(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)}},dS={kernelName:Qt,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.")),qE([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 pS(e,t,n,r,a){const s=zi(r,t,n),i=re(n),o=Ae(r);if(s){const n=Wi(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Xs(r,a,"string"===a?Rd(e):e),u=Xs(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?Od(u.values):u.values}function mS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;qE(a,"slice");const[o,l]=Ui(a,s,i);Ii(a,o,l);const u=pS(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const gS={kernelName:fr,backendName:"cpu",kernelFunc:mS},yS={kernelName:ht,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;qE([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Qf(a.shape,s,o),u=ed(l.length,s.length),c=td(a.shape,s,o),h=nd(i,s.length),f=rd(c,i,s.length),d=DC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=VC({inputs:{x:d},backend:n,attrs:{perm:u}}),m=DC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=mS({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function bS(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 vS(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Xs([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 wS={kernelName:ft,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=bS(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 _S(e){return(t,n,r)=>{const a=me(n,t.length);for(let n=0;nMath.ceil(e))),kS=QE(mt,xS),ES={kernelName:mt,backendName:"cpu",kernelFunc:kS},CS=ZE(gt,((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?Rd(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 nC({inputs:{x:o[0]},backend:n});if(Kf(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>wC({inputs:{input:e},backend:n}))),t=o.map((e=>AS({inputs:{input:e},backend:n}))),r=TS({inputs:e,backend:n,attrs:{axis:s}}),a=TS({inputs:t,backend:n,attrs:{axis:s}}),i=yC({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 DC({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=IS(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 FS={kernelName:vt,backendName:"cpu",kernelFunc:TS};function RS(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;qE([a,s],"conv2d");const h=Il(l),f=vl(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 ya(f.outShape,a.dtype),_=Ae(a.shape),x=Ae(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],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*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))),WS={kernelName:St,backendName:"cpu",kernelFunc:zS},US=ZE(Nt,(e=>Math.cosh(e))),VS={kernelName:Nt,backendName:"cpu",kernelFunc:US},jS={kernelName:At,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=Xs([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,_=Ae(a.shape),x=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=vl(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 ya(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}=gl(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[Be([e,t,s,o],I,Ae(S))]=l}}}return{dataId:l.write(aa(A,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},eN={kernelName:Pt,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:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=gl(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${Pt}, 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(aa(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},tN={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:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=gl(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(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(aa(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},nN=iC(((e,t)=>e*t)),rN=CC(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),aN=EC(Bn,nN,rN),sN={kernelName:Bn,backendName:"cpu",kernelFunc:aN};function iN(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;qE(a,"sum"),o="bool"===a.dtype?xC({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):nC({inputs:{x:a},backend:n});const l=o.shape.length,u=de(s,o.shape),c=qu(u,l);let h=u,f=o;null!=c&&(f=VC({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Ju(h.length,l)),Ku("sum",h,f.shape.length);const[d,p]=Gu(f.shape,h);let m=vC(n,d,Da(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;e=0&&(f=iN({inputs:{x:f},backend:n,attrs:{axis:u[e]-(i.length-d),keepDims:!1}}),p.push(f)),d--)}for(const e of p)e!==f&&n.disposeIntermediateTensorInfo(e);return f}},uN={kernelName:Ut,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;qE([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)}},cN=iC(((e,t)=>e===t?1:0)),hN=EC(jt,cN,null,"bool"),fN={kernelName:jt,backendName:"cpu",kernelFunc:hN},dN=id,pN=od,mN=ld,gN=ud,yN=cd,bN=hd,vN=ZE(Vt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+dN*n);return t*(1-((((bN*r+yN)*r+gN)*r+mN)*r+pN)*r*Math.exp(-n*n))})),wN={kernelName:Vt,backendName:"cpu",kernelFunc:vN},_N=_S((e=>Math.exp(e))),xN=QE(Ht,_N),kN={kernelName:Ht,backendName:"cpu",kernelFunc:xN};function EN(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),DC({inputs:{x:a},backend:n,attrs:{shape:o}})}const CN={kernelName:Gt,backendName:"cpu",kernelFunc:EN},SN=_S((e=>Math.expm1(e))),NN=QE(Xt,SN),IN={kernelName:Xt,backendName:"cpu",kernelFunc:NN},AN=iC(((e,t)=>e/t)),DN=EC(Lt,AN),TN={kernelName:Lt,backendName:"cpu",kernelFunc:DN},FN=iC(((e,t)=>e-t)),RN=CC(((e,t,n,r)=>({real:e-n,imag:t-r}))),ON=EC(Ar,FN,RN),MN={kernelName:Ar,backendName:"cpu",kernelFunc:ON};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=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))),jN=QE(Jt,VN),HN={kernelName:Jt,backendName:"cpu",kernelFunc:jN},GN=iC(((e,t)=>Math.floor(e/t))),XN=EC(Zt,GN,null,"int32"),KN={kernelName:Zt,backendName:"cpu",kernelFunc:XN},qN={kernelName:jr,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=RS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=IC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=gC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},YN={kernelName:Hr,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=KS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=IC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=gC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},JN={kernelName:tn,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]=Ei(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Xs([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)),tI=EC(nn,eI,null,"bool"),nI={kernelName:nn,backendName:"cpu",kernelFunc:tI},rI=iC(((e,t)=>e>=t?1:0)),aI=EC(rn,rI,null,"bool"),sI={kernelName:rn,backendName:"cpu",kernelFunc:aI},iI={kernelName:sn,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=DC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=BN(i,!0,n),l=DC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},oI=ZE(ln,(e=>Number.isFinite(e)?1:0),"bool"),lI={kernelName:ln,backendName:"cpu",kernelFunc:oI},uI=ZE(un,(e=>Math.abs(e)===1/0?1:0),"bool"),cI={kernelName:un,backendName:"cpu",kernelFunc:uI},hI=ZE(cn,(e=>Number.isNaN(e)?1:0),"bool"),fI={kernelName:cn,backendName:"cpu",kernelFunc:hI},dI=iC(((e,t)=>ee<=t?1:0)),yI=EC(dn,gI,null,"bool"),bI={kernelName:dn,backendName:"cpu",kernelFunc:yI};function vI(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),xI=QE(mn,_I),kI={kernelName:mn,backendName:"cpu",kernelFunc:xI},EI=ZE(gn,(e=>Math.log1p(e))),CI={kernelName:gn,backendName:"cpu",kernelFunc:EI},SI=iC(((e,t)=>e&&t)),NI=EC(yn,SI,null,"bool"),II={kernelName:yn,backendName:"cpu",kernelFunc:NI},AI=ZE(bn,(e=>e?0:1),"bool"),DI={kernelName:bn,backendName:"cpu",kernelFunc:AI},TI=iC(((e,t)=>e||t)),FI=EC(vn,TI,null,"bool"),RI={kernelName:vn,backendName:"cpu",kernelFunc:FI},OI={kernelName:_n,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;qE(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 $I(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=qu(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))),zI=EC(En,LI),WI={kernelName:En,backendName:"cpu",kernelFunc:zI},UI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;qE(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=nC({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=iS(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},VI={kernelName:Nn,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;qE(a,"maxPool3d");const c=bl(a.shape,s,i,1,o,l,u),h=lS(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}},jI={kernelName:In,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;qE([a,s],"maxPool3DGrad");const c=bl(s.shape,i,o,1,l,u),h=function(e,t){const n=Xs(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,_=b-1-c.padInfo.front,x=w-1-c.padInfo.left,k=v-1-c.padInfo.top,E=Xs(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)}},HI={kernelName:Sn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;qE([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=yl(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Xs(f.outShape,o.dtype,oS(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=Xs(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Xs(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)}},GI={kernelName:An,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;qE(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=yl(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=iS(e,0,n,Ae(t),a,"max"),i=oS(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"}]}},XI={kernelName:Dn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=de(s,a.shape),l=re(Gu(a.shape,o)[1]),u=[],c=n.makeTensorInfo([],"float32",new Float32Array([l]));u.push(c);const h=xC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}});u.push(h);const f=DN({inputs:{a:h,b:c},backend:n});u.push(f);const d=iN({inputs:{x:f},backend:n,attrs:{axis:s,keepDims:i}});return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}},KI={kernelName:Tn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;qE(a,"min");const o=de(s,a.shape);let l=o;const u=qu(l,a.shape.length);let c=a;null!=u&&(c=VC({inputs:{x:a},backend:n,attrs:{perm:u}}),l=Ju(l.length,a.shape.length)),Ku("min",l,c.shape.length);const[h,f]=Gu(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))),YI=EC(Fn,qI),JI={kernelName:Fn,backendName:"cpu",kernelFunc:YI},ZI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;qE(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=Be(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},QI=iC(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),eA=EC(On,QI),tA={kernelName:On,backendName:"cpu",kernelFunc:eA};function nA(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=$I({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Xu(u.shape,l),h=DC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=ON({inputs:{a,b:h},backend:n}),d=xN({inputs:{x:f},backend:n}),p=iN({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=DC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=DN({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 rA={kernelName:xr,backendName:"cpu",kernelFunc:nA},aA={kernelName:Mn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;qE(a,"multinomial");const l=o?a:nA({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)),pA=EC(Pn,dA,null,"bool"),mA={kernelName:Pn,backendName:"cpu",kernelFunc:pA},gA={kernelName:Vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;qE(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=TS({inputs:t.map((e=>{const t=EN({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 _A={kernelName:jn,backendName:"cpu",kernelFunc:wA},xA={kernelName:Hn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;qE(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}}},kA=iC(((e,t)=>Math.pow(e,t))),EA=EC(Xn,kA),CA={kernelName:Xn,backendName:"cpu",kernelFunc:EA};function SA(e,t,n,r){const[a,s]=Gu(e,r),i=Da(t,"int32"),o=Re(re(a),i),l=re(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function IA(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)),TA={kernelName:Zn,backendName:"cpu",kernelFunc:DA},FA={kernelName:rr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;qE(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],_=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)}},BA={kernelName:ir,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;qE(a,"reverse");const i=a.shape.length,o=de(s,a.shape);if(0===i)return nC({inputs:{x:a},backend:n});const l=new ya(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)}},$A={kernelName:Ur,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]=Zf(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})),LA={kernelName:or,backendName:"cpu",kernelFunc:PA},zA=_S((e=>1/Math.sqrt(e))),WA=QE(lr,zA),UA={kernelName:lr,backendName:"cpu",kernelFunc:WA};function VA(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 Xs(n,t.dtype);const d=Xs(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?XA*e:GA*(Math.exp(e)-1))),qA={kernelName:hr,backendName:"cpu",kernelFunc:KA},YA=ZE(mr,(e=>e<0?-1:e>0?1:0)),JA={kernelName:mr,backendName:"cpu",kernelFunc:YA},ZA=ZE(dr,(e=>Math.sin(e))),QA={kernelName:dr,backendName:"cpu",kernelFunc:ZA},eD=ZE(pr,(e=>Math.sinh(e))),tD={kernelName:pr,backendName:"cpu",kernelFunc:eD},nD=Math.log(1.1920928955078125e-7)+2,rD=ZE(yr,(e=>{const t=e>-nD,n=e=l)throw new Error(`indices(${t}, 0) is invalid: ${n} >= ${l}`);++p[n],f=f&&n>=d,d=n}let m=!0;for(let e=0;e0&&(p[e]+=p[e-1])}if(m&&f){const t=e,n=r;for(let e=0;eNumber(e))))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}};function lD(e,t,n,r,a){const s=re(r),i=t[0],o=a.length,l=[];let u=1,c=-1;for(let e=0;e0){d[f-1]=1;for(let e=f-2;e>=0;--e)d[e]=d[e+1]*r[e+1]}const p=[];if(o>0){p[o-1]=1;for(let e=o-2;e>=0;--e)p[e]=p[e+1]*l[e+1]}const m=ge(n,i*o);for(let t=0;t{const t=[...c];t[o]=e;const r=mS({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},fD=ZE(br,(e=>Math.sqrt(e))),dD={kernelName:br,backendName:"cpu",kernelFunc:fD},pD={kernelName:Nr,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;qE(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})),gD=EC(Sr,mD),yD={kernelName:Sr,backendName:"cpu",kernelFunc:gD},bD=ZE(zr,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),vD={kernelName:zr,backendName:"cpu",kernelFunc:bD};function wD(e,t,n,r){const a=Xs(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=wD(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const _=DC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},xD=ZE(Dr,(e=>Math.tan(e))),kD={kernelName:Dr,backendName:"cpu",kernelFunc:xD},ED=ZE(Tr,(e=>Math.tanh(e)));function CD(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;et-1)if(t<=1)n=0;else{const e=2*t;n-=e*Math.trunc(n/e),n>=t&&(n=e-n-1)}return K(0,n,t-1)}(e,t);case"wrap":return function(e,t){let n=e;if(n<0)if(t<=1)n=0;else{const e=t-1;n+=t*(Math.trunc(-n/e)+1)}else if(n>t-1)if(t<=1)n=0;else{const e=t-1;n-=t*Math.trunc(n/e)}return K(0,n,t-1)}(e,t);case"nearest":return function(e,t){return K(0,e,t-1)}(e,t);case"constant":default:return function(e,t){return e}(e)}}function ID(e,t,n,r,a,s,i,o,l,u,c){return 0<=o&&o{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},bA];for(const e of FD)Jr(e);const RD={},OD={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function MD(e){if(!(e in RD)){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 RD[e]}),!1),1===e?t.getContext("webgl",OD)||t.getContext("experimental-webgl",OD):t.getContext("webgl2",OD)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;RD[e]=t}const t=RD[e];return t.isContextLost()?(delete RD[e],MD(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),RD[e])}var BD,$D,PD;function LD(e,t){return[t,e]}function zD(e){const t=re(e);return le(Math.ceil(t/4))}function WD(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===We().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 VD(e,t){const n=t();return We().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 jD(e){return!!(We().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"}(BD||(BD={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}($D||($D={})),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"}(PD||(PD={}));const GD=/ERROR: [0-9]+:([0-9]+):/g;function XD(e,t){if(VD(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function KD(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),VD(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),VD(e,(()=>e.enableVertexAttribArray(o))),!0)}function qD(e,t,n,r){VD(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),VD(e,(()=>e.activeTexture(e.TEXTURE0+n))),VD(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),VD(e,(()=>e.uniform1i(n,r)))}function YD(e,t,n){VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),VD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function JD(e,t){VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),VD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function ZD(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 QD(e,t,n){const r=VD(e,(()=>t()));if(null==r)throw new Error(n);return r}function eT(e,t=2){return re(e.slice(0,e.length-t))}function tT(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 nT(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[eT(e),...tT(e)]),t}function rT(e){return e%2==0}function aT(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(rT(n)&&rT(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&rT(e[0])&&rT(t[0])}let sT,iT;function oT(e,t){return null!=e.getExtension(t)}function lT(e){try{if(null!=MD(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function uT(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 cT(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 hT=We();function fT(){let e,t,n,r,a,s,i,o,l,u;return 2===We().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 dT(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 pT(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`}hT.registerFlag("HAS_WEBGL",(()=>hT.getNumber("WEBGL_VERSION")>0)),hT.registerFlag("WEBGL_VERSION",(()=>lT(2)?2:lT(1)?1:0)),hT.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),hT.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===hT.get("WEBGL_VERSION"))),hT.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),hT.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),hT.registerFlag("WEBGL_PACK",(()=>hT.getBool("HAS_WEBGL"))),hT.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_CLIP",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_REDUCE",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_LAZILY_UNPACK",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_CONV_IM2COL",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==sT){const t=MD(e);sT=t.getParameter(t.MAX_TEXTURE_SIZE)}return sT}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==iT){const t=MD(e);iT=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,iT)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=hT.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=MD(e);return t=oT(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:oT(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),hT.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>hT.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Va())),hT.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=MD(e);if(1===e){if(!oT(t,"OES_texture_float"))return!1}else if(!oT(t,"EXT_color_buffer_float"))return!1;return uT(t)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!hT.getBool("WEBGL_FORCE_F16_TEXTURES")&&hT.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),hT.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=MD(e);if(1!==e){if(oT(t,"EXT_color_buffer_float"))return uT(t);const e="EXT_color_buffer_half_float";if(oT(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!!oT(t,"OES_texture_float")&&!!oT(t,"WEBGL_color_buffer_float")&&uT(t)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=hT.getNumber("WEBGL_VERSION"))&&null!=MD(e).fenceSync;var e})),hT.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>hT.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),hT.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}.`)})),hT.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>Va()&&hT.getBool("IS_CHROME")?1:-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 mT="\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 gT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=BD.DENSE;const t=zD(e),n=fT();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${dT(["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 yT{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=BD.DENSE;const t=zD(e),n=fT();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${dT(["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 bT{constructor(e){this.variableNames=["A"],this.outTexUsage=$D.DOWNLOAD;const t=fT();this.outputShape=e,this.userCode=`\n ${mT}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class vT{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=$D.DOWNLOAD;const t=fT();this.outputShape=e,this.userCode=`\n ${mT}\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 wT{constructor(e,t,n=!1){this.variableNames=["A"];const r=fT(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${pT(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 _T{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=fT(),[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 ${pT(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 xT(e,t,n,r,a,s){!function(e,t){const n=We().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 QD(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return VD(e,(()=>e.bindTexture(o,i))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),VD(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),VD(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function kT(e){return e.internalFormatFloat}function ET(e){return e.internalFormatHalfFloat}function CT(e){return e.downloadTextureFormat}function ST(e){return e.internalFormatPackedFloat}function NT(e){return e.internalFormatPackedHalfFloat}class IT{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=We().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){RD[e]=t}(t,e)):this.gl=MD(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===We().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=HD(this.gl,e),oT(this.gl,t))this.textureHalfFloatExtension=HD(this.gl,t);else if(We().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),oT(this.gl,r))this.colorBufferHalfFloatExtension=HD(this.gl,r);else if(We().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",oT(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!oT(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=QD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),VD(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=QD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return VD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),VD(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 QD(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=UD(this.gl,this.textureHalfFloatExtension)}get debug(){return We().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;VD(e,(()=>e.finish())),VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),VD(e,(()=>e.deleteFramebuffer(this.framebuffer))),VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),VD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),VD(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=LD(t,n);return xT(e,a,s,kT(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]=LD(t,n);return xT(e,a,s,ET(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]=LD(t,n);return xT(e,a,s,CT(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){VD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),VD(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;VD(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),VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),VD(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]=WD(t,n);return xT(e,a,s,NT(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]=WD(t,n);return xT(e,a,s,ST(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(JD(this.gl,this.framebuffer),this.outputTexture=null),VD(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=LD(t,n),i=new Uint8Array(t*n*4);return VD(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]=WD(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();VD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return VD(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),VD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),VD(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(We().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 We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,We().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 VD(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=QD(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(VD(e,(()=>e.shaderSource(n,t))),VD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=GD.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(VD(e,(()=>e.shaderSource(n,t))),VD(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));const r=function(e){return QD(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return VD(t,(()=>t.attachShader(r,this.vertexShader))),VD(t,(()=>t.attachShader(r,n))),function(e,t){if(VD(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,r),this.debug&&XD(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=function(e,t,n){return VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),KD(e,t,"clipSpacePos",n,3,20,0)&&KD(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&VD(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&XD(this.gl,this.program),VD(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return QD(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(),VD(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(),qD(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=WD(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&&XD(this.gl,this.program),ZD(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),VD(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),VD(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=HD(this.gl,2===We().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===We().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===We().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,We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,We().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&&ZD(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(YD(this.gl,this.outputTexture,this.framebuffer),this.debug&&ZD(this.gl)):JD(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&&ZD(r),this.outputTexture=e,VD(r,(()=>r.viewport(0,0,t,n))),VD(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),VD(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:AT}=g;function DT(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?FT(e):TT(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=AT(e.shapeInfo.logicalShape,t.logicalShape),l=LT(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=LT(l),c=AT(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=fT(),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 ${RT}\n ${OT}\n ${MT}\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:VT,bincountImpl:jT,bincountReduceImpl:HT,ceilImpl:GT,concatImpl:XT,expImpl:KT,expm1Impl:qT,floorImpl:YT,gatherV2Impl:JT,greaterImpl:ZT,lessImpl:QT,linSpaceImpl:eF,logImpl:tF,maxImpl:nF,maximumImpl:rF,minimumImpl:aF,multiplyImpl:sF,negImpl:iF,prodImpl:oF,rangeImpl:lF,rsqrtImpl:uF,simpleAbsImpl:cF,sliceImpl:hF,sparseFillEmptyRowsImpl:fF,sparseReshapeImpl:dF,stridedSliceImpl:pF,subImpl:mF,tileImpl:gF,topKImpl:yF,transposeImpl:bF,uniqueImpl:vF}=U;function wF(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function _F(e,t){return 1===t?[e]:wF(e,t)}class xF{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=_F("rc",t),r=LT(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 kF{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 ${dT(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${pT(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 EF{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=SF(t,n),a=NF(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=CF(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===PD.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===PD.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===PD.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===PD.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===PD.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=SF(n,r),s=NF(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=CF(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=We().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 CF(e,t,n,r,a){const s=function(e,t){switch(e){case PD.PACKED_2X2_FLOAT32:return ST(t);case PD.PACKED_2X2_FLOAT16:return NT(t);case PD.UNPACKED_FLOAT32:return kT(t);case PD.UNPACKED_FLOAT16:return ET(t);case PD.PACKED_4X1_UNSIGNED_BYTE:return CT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=WD(e[0],e[1]);i=t*n}else{const[t,n]=LD(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 SF(e,t){if(e===$D.UPLOAD)return PD.PACKED_2X2_FLOAT32;if(e===$D.RENDER||null==e)return function(e){return We().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?PD.PACKED_2X2_FLOAT32:PD.UNPACKED_FLOAT32:e?PD.PACKED_2X2_FLOAT16:PD.UNPACKED_FLOAT16}(t);if(e===$D.DOWNLOAD||e===$D.PIXELS)return PD.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function NF(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class IF{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 AF="return abs(x);",DF="return x;";class TF{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 FF{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=_F("rc",t),r=LT(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 TF(r,DF):new IF(r,DF);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(!We().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===We().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&&We().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...zD(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=pd(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)&&co().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=>la(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Xs(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(We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=Y(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 We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:sa(),endMs:null}}endTimer(e){return We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=sa(),e)}async getQueryTime(e){if(We().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)}shouldExecuteOnCPU(e,t=128){return We().getBool("WEBGL_CPU_FORWARD")&&e.every((e=>null==this.texData.get(e.dataId).texture&&re(e.shape)0&&ke(n[0])){const a=n.map((e=>oa(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 co().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new FF(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new xF(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[eT(e.shape),...tT(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[eT(t),...tT(t)],s=new kF(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=nT(r);let i;return i=n?new yT(s):new gT(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===BD.DENSE){const t=zD(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)<=We().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&&!aT(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=DT(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===We().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=We().get("WEBGL_FLUSH_THRESHOLD");if(p>0){const e=sa();e-this.lastGlFlushTime>p&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!We().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||(We().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=po((()=>{if(!We().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=We().getBool("DEBUG");We().set("DEBUG",!1);const t=this.abs(Wo(1e-8)).dataSync()[0];if(We().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=sa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=We().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?q(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=eT(e);let n=2,a=2;return e.length&&([n,a]=tT(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=nT(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=WD(c[0],c[1]),s=new _T(e,[h,i],f)):s=new wT(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?$D.PIXELS:$D.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+=sa()-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]*_e(t)}}MF.nextDataId=0,ja()&&Eo("webgl",(()=>new MF),2);class BF{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Zo(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 $F{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Zo(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 ${LT(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=_F("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 PF(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 LF={kernelName:an,backendName:"webgl",kernelFunc:PF};function zF(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=PF({inputs:{x:r},backend:n}),l=PF({inputs:{x:a},backend:n});return i.complexTensorInfos={real:o,imag:l},s}const WF={kernelName:yt,backendName:"webgl",kernelFunc:zF},UF="return (a < 0.) ? b * a : a;",VF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",jF={kernelName:hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",ra(s,"float32")),o=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F(VF,a.shape,i.shape):new BF(UF,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},HF="return (a < 0.) ? b * a : a;",GF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",XF={kernelName:Kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F(GF,r.shape,a.shape):new BF(HF,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function KF({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=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new TF(i.shape,t):new IF(i.shape,e),o.runWebGLProgram(u,[i],l)}}function qF({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 BF(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],Da(n.dtype,r.dtype))})),s=zF({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||Da(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=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new $F(t,l.shape,u.shape,n):new BF(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function YF(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?GF:HF;if("leakyrelu"===e)return t?VF:UF;if("sigmoid"===e)return"return 1.0 / (1.0 + exp(-1.0 * x));";throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class JF{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||aT(a.shape,l)||null!==c.texture&&aT(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[eT(e.shape),...tT(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[eT(t),...tT(t)],i=new kF(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const rR={kernelName:er,backendName:"webgl",kernelFunc:nR};class aR{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 sR{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 iR(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=Jf(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=LT(this.rank),a=wF("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],_=r?[b,p,f]:[b,f,p],x=nR({inputs:{x:e},backend:a,attrs:{shape:w}}),k=nR({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,A="leakyrelu"===l,D=null!=l?YF(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||A||null!=D)){let e=x,t=k;n&&(e=fR({inputs:{x},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=fR({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=nR({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=nR({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=eR({inputs:{a:i,b:l},backend:a});T=cR({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=Da(e.dtype,t.dtype),u=new JF(w,_,[C,d,p],n,r,N,D,I,A),c=[x,k];if(null!=s&&c.push(s),I&&c.push(i),A){const e=a.makeTensorInfo([],"float32",ra(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const F=nR({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return F}const mR={kernelName:Vr,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 pR({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},gR="return abs(x);",yR={kernelName:Ge,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=cF(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new TF(r.shape,gR):new IF(r.shape,gR),n.runWebGLProgram(a,[r],r.dtype)}},bR=KF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),vR={kernelName:Xe,backendName:"webgl",kernelFunc:bR},wR=KF({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),_R={kernelName:Ke,backendName:"webgl",kernelFunc:wR},xR="return a + b;",kR=qF({opSnippet:xR,packedOpSnippet:xR,supportsComplex:!0,cpuKernelImpl:VT}),ER={kernelName:qe,backendName:"webgl",kernelFunc:kR};class CR{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 SR{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 NR={kernelName:Ye,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return PF({inputs:{x:a[0]},backend:r});if(a.length>We().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)=>Da(e,t))),i=a.map((e=>e.shape)),o=We().getBool("WEBGL_PACK")?new SR(a[0].shape,i):new CR(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},IR={kernelName:Je,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=qu(u,o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Ju(u.length,o)),Ku("all",u,o);const[f,d]=Gu(h.shape,u),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=iR(p,p.dtype,"all",n);let g;return g=nR(i?{inputs:{x:m},backend:n,attrs:{shape:Xu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},AR={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=qu(u,o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Ju(u.length,o)),Ku("any",u,o);const[f,d]=Gu(h.shape,u),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=iR(p,p.dtype,"any",n);let g;return g=nR(i?{inputs:{x:m},backend:n,attrs:{shape:Xu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class DR{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 TR{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=LT(o),u=_F("coords",o);let c,h;if(1===s){h=o+1;const e=LT(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=_F("sourceLocR",h-1).concat("inIdx.r"),g=_F("sourceLocG",h-1).concat("inIdx.g"),y=_F("sourceLocB",h-1).concat("inIdx.b"),b=_F("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 FR(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=Jf(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new DR(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=FR(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function RR(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=Jf(a[a.length-1]),i=new TR(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=RR(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function OR(e,t,n,r){const a=[n];if(Ku("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!We().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Gu(t.shape,a),o=re(i),l=nR({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=FR(e,l,r);n.push(u);const c=nR({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return RR(e,t,r)}const MR={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=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=fR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),Ku("argMax",[i[0]],l.shape.length);const c=OR(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},BR={kernelName:et,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=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=fR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),Ku("argMin",[i[0]],l.shape.length);const c=OR(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},$R=KF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),PR={kernelName:tt,backendName:"webgl",kernelFunc:$R},LR=KF({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),zR={kernelName:nt,backendName:"webgl",kernelFunc:LR},WR=KF({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),UR={kernelName:rt,backendName:"webgl",kernelFunc:WR},VR=qF({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"}),jR={kernelName:st,backendName:"webgl",kernelFunc:VR},HR=KF({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;"}),GR={kernelName:at,backendName:"webgl",kernelFunc:HR};class XR{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 KR{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 qR={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;cT(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return PF({inputs:{x:a},backend:n});const c=new XR(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},YR={kernelName:lt,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=bl(a.shape,s,i,[1,1,1],o,l,u),h=new KR(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class JR{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 ZR{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 QR={kernelName:ut,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=bl(i.shape,o,l,[1,1,1],u,c),f=new ZR(h);return n.runWebGLProgram(f,[a],i.dtype)}},eO={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;cT([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=yl(i.shape,o,l,1,u),h=new JR(c);return n.runWebGLProgram(h,[a],i.dtype)}},tO={kernelName:ct,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return pR({a,b:s,transposeA:i,transposeB:o,backend:n})}};class nO{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Zo(e,t),Zo(e,n);let i="0.0";null!=r&&(Zo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Zo(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 rO{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Zo(e,t),Zo(e,n);let i="vec4(0.0)";null!=r&&(Zo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Zo(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 aO={kernelName:Qt,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=We().getBool("WEBGL_PACK_NORMALIZATION")?new rO(r.shape,a.shape,s.shape,c,h,l):new nO(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class sO{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=LT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return iO.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.${iO[t]} = start[${t}] + coords.${iO[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 iO=["x","y","z","w","u","v"];class oO{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=LT(this.rank),n=_F("coords",this.rank),r=_F("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 lO(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Ui(a,s,i);if(Ii(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=hF(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=zi(a.shape,o,l);if(u||!c){const e=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new oO(l):new sO(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=Wi(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 uO={kernelName:fr,backendName:"webgl",kernelFunc:lO},cO={kernelName:ht,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=Qf(a.shape,s,o),u=ed(l.length,s.length),c=td(a.shape,s,o),h=nd(i,s.length),f=rd(c,i,s.length),d=[],p=nR({inputs:{x:a},backend:n,attrs:{shape:l}}),m=fR({inputs:{x:p},backend:n,attrs:{perm:u}}),g=nR({inputs:{x:m},backend:n,attrs:{shape:c}}),y=lO({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}},hO={kernelName:ft,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=jT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},fO=qF({opSnippet:"return float(a != b);",dtype:"bool"}),dO={kernelName:Pn,backendName:"webgl",kernelFunc:fO};function pO(e){const{inputs:t,backend:n}=e,{input:r}=t;return PF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const mO={kernelName:Jn,backendName:"webgl",kernelFunc:pO},gO={kernelName:pt,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 PF({inputs:{x:s},backend:r});const t=oc(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=zF({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=pO({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=PF({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new IF(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=fO({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}`)}},yO="return ceil(x);",bO=KF({opSnippet:yO,packedOpSnippet:yO,cpuKernelImpl:GT}),vO={kernelName:mt,backendName:"webgl",kernelFunc:bO};class wO{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 _O{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 xO={kernelName:gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=We().getBool("WEBGL_PACK_CLIP")?new _O(a.shape):new wO(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class kO{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 CO={kernelName:bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new kO(r.shape),i=[EO(r,a.complexTensorInfos.real),EO(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class SO{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}(${IO(i,l,t)}),\n vec2(${IO(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${IO(i,l,d)}),\n vec2(${IO(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 IO(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function AO(e){const{inputs:t,backend:n}=e,{input:r}=t;return PF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const DO={kernelName:on,backendName:"webgl",kernelFunc:AO};function TO(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>pO({inputs:{input:e},backend:n}))),a=e.map((e=>AO({inputs:{input:e},backend:n}))),s=TO(r,t,n),i=TO(a,t,n),o=zF({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}let a=n.shouldExecuteOnCPU(e);if("string"===r&&(a=!0),a){const a=e.map((e=>{const r=re(e.shape.slice(t));return nR({inputs:{x:e},backend:n,attrs:{shape:[-1,r]}})})),s=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),i=qf(a.map((e=>e.shape)),1),o=1===a[0].shape[0],l=XT(s,i,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>We().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=TO(e.slice(0,r),t,n),s=TO(e.slice(r),t,n),i=TO([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new NO(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:s,outShape:i}=function(e,t,n){const r=qf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>nR({inputs:{x:e},attrs:{shape:[-1,re(e.shape.slice(t))]},backend:n}))),outShape:r}}(e,t,n),o=new SO(s.map((e=>e.shape))),l=n.runWebGLProgram(o,s,r);s.forEach((e=>n.disposeIntermediateTensorInfo(e)));const u=nR({inputs:{x:l},attrs:{shape:i},backend:n});return n.disposeIntermediateTensorInfo(l),u}function FO(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=de(a,t[0].shape)[0],i=qf(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?PF({inputs:{x:o[0]},backend:n}):(Kf(o.map((e=>e.shape)),s),TO(o,s,n))}const RO={kernelName:vt,backendName:"webgl",kernelFunc:FO};class OO{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 MO{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 BO{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=fT(),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 $O({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&&We().getBool("WEBGL_LAZILY_UNPACK")&&We().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(aT(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=nR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=pR({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=PF({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=nR({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=nR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=pR({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=nR({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 PO({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=nR({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=nR({inputs:{x:t},backend:r,attrs:{shape:[1,m,re(t.shape)/m]}});b.push(v),b.push(w);const _=new BO(y,v.shape,n),x=r.runWebGLProgram(_,[v],"float32"),k=nR({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?YF(o,!0):null,I=new JF(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",ra(i,"float32"));A.push(e),b.push(e)}const D=r.runWebGLProgram(I,A,"float32"),T=nR({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 LO={kernelName:wt,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=Il(l),f=vl(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(We().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=PO({x:a,filter:s,convInfo:f,backend:n});else{const e=new OO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=$O({x:a,filter:s,convInfo:f,backend:n});const p=nR({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class zO{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 WO{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 UO{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 VO{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 jO={kernelName:_t,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=Il(l),f=vl(a.shape,c,i,1,o,u,!1,h),d=new zO(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=Il(u),f=vl(i,s.shape,o,1,l,c,!1,h),d=new WO(f);return n.runWebGLProgram(d,[a,s],"float32")}},GO={kernelName:kt,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=wl(a.shape,s.shape,i,l,o),c=new MO(u);return n.runWebGLProgram(c,[a,s],"float32")}},XO={kernelName:Et,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=wl(a.shape,l,i,1,o),c=new UO(u);return n.runWebGLProgram(c,[a,s],"float32")}},KO={kernelName:Ct,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=wl(l,s.shape,o,1,i),c=new VO(u);return n.runWebGLProgram(c,[a,s],"float32")}},qO=KF({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),YO={kernelName:St,backendName:"webgl",kernelFunc:qO},JO=KF({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),ZO={kernelName:Nt,backendName:"webgl",kernelFunc:JO};class QO{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 eM={kernelName:At,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 QO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class tM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${nM(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 ${LT(r)} coords = getOutputCoords();\n int end = ${rM(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${rM(r,"coords")} = idx;\n val += getX(${nM(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 nM(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 rM(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 aM={kernelName:It,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=qu([s],l);let c=a;null!=u&&(c=fR({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=Ju(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=PF({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new tM(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 tM(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=fR({inputs:{x:d},backend:n,attrs:{perm:Yu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},sM={kernelName:Dt,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=jT(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=HT(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 iM{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 oM={kernelName:Tt,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 iM("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class lM{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 uM{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.outChannels/e.inChannels,i=e.inHeight,o=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,h=e.strideWidth,f=e.dilationHeight,d=e.dilationWidth,p=e.filterHeight,m=e.filterWidth,g=m;let y="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < ${i}) {\n `;for(let t=0;t<(g+1)/2;t++){const n=2*t,r=n*d;if(y+=`\n xC = xCCorner + ${r};\n `,1===h){if(n= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = 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 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n `,y+=1===d&&r>0?`\n xC${n} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < ${o}) {\n 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 >= ${o}) {\n previous.zw = vec2(0.0);\n }\n\n xC${n} = vec4(previous.zw, xTexelC${r}.xy);\n } else {\n xC${n} = vec4(0.0, 0.0, xTexelC${r}.xy);\n }\n `):y+=`\n if (xC >= 0 && xC < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xC, d1);\n if (xC + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n xC${n} = xTexelC${r};\n `,r+1= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = 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 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n `,d>1&&(y+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xCOffset, d1);\n xTexelC${r}Ready = 1;\n }\n `),y+=`\n xC${n+1} = vec4(xTexelC${r}.zw, xTexelC${r+2}.xy);\n `):y+=1===e?`\n xC${n+1} = xTexelC${r};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n+1} = xTexelC${r+2};\n `}}else r= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n} = vec4(xTexelC${r}.zw, xTexelC${r+2}.zw);\n `,r+1= 0 && xCOffset < ${o}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${n+1} = vec4(xTexelC${r+2}.xy, final.xy);\n `)):(y+=`\n if(xC >= 0 && xC < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xC, d1);\n if (xC + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n xCOffset = xC + ${h};\n if(xCOffset >= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n} = vec4(\n xTexelC${r}.xy, xTexelC${r+2}.xy);\n `,r+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=vl(a.shape,s.shape,i,c,o,u,!0);let f;return f=We().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new uM(h):new lM(h),n.runWebGLProgram(f,[a,s],"float32")}};class hM{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 fM{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 dM={kernelName:Rt,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=vl(a.shape,c,i,o,l,u,!0),f=new hM(h);return n.runWebGLProgram(f,[a,s],"float32")}},pM={kernelName:Ot,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=vl(c,s.shape,i,o,l,u,!0),f=new fM(h);return n.runWebGLProgram(f,[a,s],"float32")}};class mM{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 gM={kernelName:Mt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=re(r.shape),i=nR({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new mM(s),l=n.runWebGLProgram(o,[i],i.dtype),u=nR({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class yM{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 bM={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=gl(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new yM(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=nR({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},vM={kernelName:zt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{equation:a}=r,s=t,{allDims:i,summedDims:o,idDims:l}=kd(a,s.length);Cd(i.length,l,s);const{path:u,steps:c}=Sd(o,l),h=c.length;let f=null,d=i.length;const p=[];for(let e=0;e=0&&(f=cR({inputs:{x:f},backend:n,attrs:{axis:u[e]-(i.length-d),keepDims:!1}}),p.push(f)),d--)}for(const e of p)e!==f&&n.disposeIntermediateTensorInfo(e);return f}},wM=KF({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"}),_M={kernelName:Wt,backendName:"webgl",kernelFunc:wM},xM={kernelName:Ut,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F("\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 BF("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},kM=qF({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),EM={kernelName:jt,backendName:"webgl",kernelFunc:kM},CM=KF({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 = ${id};\n float a1 = ${od};\n float a2 = ${ld};\n float a3 = ${ud};\n float a4 = ${cd};\n float a5 = ${hd};\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`}),SM={kernelName:Vt,backendName:"webgl",kernelFunc:CM},NM="return exp(x);",IM=KF({opSnippet:NM,packedOpSnippet:NM,cpuKernelImpl:KT}),AM={kernelName:Ht,backendName:"webgl",kernelFunc:IM};function DM(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),nR({inputs:{x:s},backend:r,attrs:{shape:o}})}const TM={kernelName:Gt,backendName:"webgl",kernelFunc:DM},FM="return exp(x) - 1.0;",RM=KF({opSnippet:FM,packedOpSnippet:FM,cpuKernelImpl:qT}),OM={kernelName:Xt,backendName:"webgl",kernelFunc:RM};class MM{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 BM(e,t,n){const r=n.texData.get(e.dataId),a=re(e.shape),s=e.shape[e.shape.length-1],i=nR({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new MM("real",o,t),u=new MM("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=zF({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=nR({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const $M={kernelName:Kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return BM(r,!1,n)}};class PM{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 LM(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 PM(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const zM={kernelName:qt,backendName:"webgl",kernelFunc:LM};class WM{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 UM={kernelName:Yt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new WM(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},VM="return floor(x);",jM=KF({opSnippet:VM,packedOpSnippet:VM,cpuKernelImpl:YT}),HM={kernelName:Jt,backendName:"webgl",kernelFunc:jM},GM=qF({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"}),XM={kernelName:Zt,backendName:"webgl",kernelFunc:GM};class KM{constructor(e){this.variableNames=["A"];const t=fT(),[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 qM{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=fT(),[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 YM={kernelName:Wr,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,u]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],c=[u,l],h=[u,l,s];(o||i)&&(null==JM&&(JM=document.createElement("canvas").getContext("2d")),JM.canvas.width=l,JM.canvas.height=u,JM.drawImage(a,0,0,l,u),a=JM.canvas);const f=n.makeTensorInfo(c,"int32");n.texData.get(f.dataId).usage=$D.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(f.dataId),a);const d=We().getBool("WEBGL_PACK")?new qM(h):new KM(h),p=n.runWebGLProgram(d,[f],"int32");return n.disposeData(f.dataId),p}};let JM;const ZM={kernelName:jr,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=Il(c),g=vl(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(We().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=PO({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?YF(d,!1):null,u=new OO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",ra(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=$O({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=nR({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},QM={kernelName:Hr,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(Nl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=vl(a.shape,s.shape,l,m,u,h,!0),y=We().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?YF(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",ra(d,"float32"));v.push(e),p.push(e)}let k;k=y?new uM(g,w,b,_,x):new lM(g,w,b,_,x);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class eB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=LT(t.length),a=LT(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:tn,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]=Ei(r,a),h=nR({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=nR({inputs:{x:r},backend:n,attrs:{shape:[re(r.shape)/u,u]}}),d=new eB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=nR({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class nB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=LT(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 nB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=nR({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},aB=qF({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:ZT,dtype:"bool"}),sB={kernelName:nn,backendName:"webgl",kernelFunc:aB},iB=qF({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),oB={kernelName:rn,backendName:"webgl",kernelFunc:iB},lB={kernelName:sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return BM(r,!0,n)}},uB=KF({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),cB={kernelName:ln,backendName:"webgl",kernelFunc:uB},hB=KF({opSnippet:"return float(isinf(x));",dtype:"bool"}),fB={kernelName:un,backendName:"webgl",kernelFunc:hB},dB=KF({opSnippet:"return float(isnan(x));",dtype:"bool"}),pB={kernelName:cn,backendName:"webgl",kernelFunc:dB},mB=qF({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:QT,dtype:"bool"}),gB={kernelName:fn,backendName:"webgl",kernelFunc:mB},yB=qF({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),bB={kernelName:dn,backendName:"webgl",kernelFunc:yB},vB={kernelName:pn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=eF(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},wB=KF({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:tF}),_B={kernelName:mn,backendName:"webgl",kernelFunc:wB},xB=KF({opSnippet:"return log(1.0 + x);"}),kB={kernelName:gn,backendName:"webgl",kernelFunc:xB},EB=qF({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"}),CB={kernelName:yn,backendName:"webgl",kernelFunc:EB},SB=KF({opSnippet:"return float(!(x >= 1.0));"}),NB={kernelName:bn,backendName:"webgl",kernelFunc:SB},IB=qF({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"}),AB={kernelName:vn,backendName:"webgl",kernelFunc:IB};class DB{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 TB{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 FB={kernelName:_n,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=We().getBool("WEBGL_PACK_NORMALIZATION")?new TB(a.shape,s,i,o,l):new DB(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class RB{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 OB={kernelName:xn,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 RB(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function MB(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=qu(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:rF}),PB={kernelName:En,backendName:"webgl",kernelFunc:$B},LB={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;cT(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return PF({inputs:{x:a},backend:n});const c=new XR(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},zB={kernelName:Nn,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=bl(a.shape,s,i,[1,1,1],o,u,l),h=new KR(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class WB{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 UB{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 VB={kernelName:In,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=bl(i.shape,o,l,[1,1,1],u,c),f=new KR(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new UB(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},jB={kernelName:Sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;cT([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=yl(o.shape,l,u,1,c,h),d=new XR(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new WB(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},HB={kernelName:An,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(Nl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=yl(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new XR(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new XR(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},GB={kernelName:Dn,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=qu(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:aF}),qB={kernelName:Fn,backendName:"webgl",kernelFunc:KB};class YB{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=LT(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 JB{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=LT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=_F("rc",r),l=_F("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 ZB={kernelName:Rn,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new JB(r.shape,a,s):new YB(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},QB=qF({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"}),e$={kernelName:On,backendName:"webgl",kernelFunc:QB};class t${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 n$=qF({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}),r$={kernelName:Lt,backendName:"webgl",kernelFunc:n$},a$="return a - b;",s$=qF({opSnippet:a$,packedOpSnippet:a$,supportsComplex:!0,cpuKernelImpl:mF}),i$={kernelName:Ar,backendName:"webgl",kernelFunc:s$};function o$(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=de([s],a.shape),o=MB({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Xu(o.shape,i),u=nR({inputs:{x:o},backend:n,attrs:{shape:l}}),c=s$({inputs:{a,b:u},backend:n}),h=IM({inputs:{x:c},backend:n}),f=cR({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=nR({inputs:{x:f},backend:n,attrs:{shape:l}}),p=n$({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 l$={kernelName:xr,backendName:"webgl",kernelFunc:o$},u$={kernelName:Mn,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:o$({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new t$(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},c$="return -x;",h$={kernelName:$n,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]=iF(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new TF(r.shape,c$):new IF(r.shape,c$),n.runWebGLProgram(a,[r],r.dtype)}},f$=uf,d$={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){fd("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}=f$(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},p$=cf,m$={kernelName:zn,backendName:"webgl",kernelFunc:function(e){fd("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}=p$(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},g$=hf,y$={kernelName:Wn,backendName:"webgl",kernelFunc:function(e){fd("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}=g$(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class b${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 v$={kernelName:Vn,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 b$(l,s,i,o),c=nR({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=nR({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function w$(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=pO({inputs:{input:r},backend:n}),t=w$({inputs:{x:e},backend:n}),a=AO({inputs:{input:r},backend:n}),s=w$({inputs:{x:a},backend:n}),i=zF({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return LM({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const _$={kernelName:Lr,backendName:"webgl",kernelFunc:w$},x$={kernelName:Un,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=pO({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=AO({inputs:{input:a},backend:r}),i=w$({inputs:{x:s},backend:r}),o=zF({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return LM({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},k$={kernelName:jn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return DM({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=FO({inputs:t.map((e=>{const t=DM({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=LT(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 uniform float value;\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n uniform float value;\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class C${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=LT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=_F("rc",r),l=_F("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{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}const S$=e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new C$(a.shape,s,i):new E$(a.shape,s,i),l=o.getCustomSetupFunc(i);return n.runWebGLProgram(o,[a],a.dtype,l)},N$={kernelName:Hn,backendName:"webgl",kernelFunc:S$},I$=qF({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"}),A$={kernelName:Xn,backendName:"webgl",kernelFunc:I$},D$={kernelName:qn,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=qu(c,o);let f,d=a;if(null!=h&&(d=fR({inputs:{x:a},backend:n,attrs:{perm:h}}),c=Ju(c.length,o),l.push(d)),Ku("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=oF(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Gu(d.shape,c),r=re(t),s=nR({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=iR(s,Ta(a.dtype),"prod",n);f=nR({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Xu(f.shape,u);f=nR({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},T$=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=lF(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},F$={kernelName:Yn,backendName:"webgl",kernelFunc:T$},R$=KF({opSnippet:"return 1.0 / x;"}),O$={kernelName:Zn,backendName:"webgl",kernelFunc:R$},M$=KF({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"}),B$={kernelName:Qn,backendName:"webgl",kernelFunc:M$},$$=KF({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:sr,backendName:"webgl",kernelFunc:$$};class L${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 z${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 W$={kernelName:rr,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=We().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new z$(a.shape,l,u,s,i):new L$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class U${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:ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new U$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class j${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 `}}class H${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],h=r?"0.5":"0.0";let f;f=a?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"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 = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\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 vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}}const G$={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=We().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new H$(a.shape,l,u,s,i):new j$(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:nr,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 q${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=LT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class Y${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=_F("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=LT(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 J$={kernelName:ir,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 PF({inputs:{x:a},backend:n});const l=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Y$(a.shape,o):new q$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class Z${constructor(e,t){this.variableNames=["Image"],this.outputShape=[];const n=e[1],r=e[2];this.outputShape=e;let a="";a="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:`\n vec3 fill = vec3(${t.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n uniform vec4 params;\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${a}\n if(coordX >= 0 && coordX < ${r} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}getCustomSetupFunc(e,t,n,r){return(a,s)=>{null==this.paramsLoc&&(this.paramsLoc=a.getUniformLocationNoThrow(s,"params")),a.gl.uniform4f(this.paramsLoc,e,t,n,r)}}}const Q$={kernelName:Ur,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new Z$(r.shape,s),[u,c]=Zf(i,r.shape[1],r.shape[2]),h=l.getCustomSetupFunc(u,c,Math.sin(a),Math.cos(a));return o.runWebGLProgram(l,[r],r.dtype,h)}},eP=KF({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"}),tP={kernelName:or,backendName:"webgl",kernelFunc:eP},nP=KF({opSnippet:"return inversesqrt(x);",cpuKernelImpl:uF}),rP={kernelName:lr,backendName:"webgl",kernelFunc:nP};class aP{constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=LT(a.length),l=LT(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 sP={kernelName:ur,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}=Ni(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=nR({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=nR({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new aP(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=nR({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class iP{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 oP={kernelName:cr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new iP(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],Da(a.dtype,s.dtype))}},lP=KF({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${ad};\n float scale = ${sd};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),uP={kernelName:hr,backendName:"webgl",kernelFunc:lP},cP=KF({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),hP={kernelName:gr,backendName:"webgl",kernelFunc:cP},fP=KF({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),dP={kernelName:mr,backendName:"webgl",kernelFunc:fP},pP=KF({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),mP={kernelName:dr,backendName:"webgl",kernelFunc:pP},gP=KF({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),yP={kernelName:pr,backendName:"webgl",kernelFunc:gP},bP=KF({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"}),vP={kernelName:yr,backendName:"webgl",kernelFunc:bP},wP={kernelName:wr,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}},_P={kernelName:kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{indices:r,values:a,denseShape:s,defaultValue:i}=t;if(1!==s.shape.length)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(2!==r.shape.length)throw new Error(`Indices must be a matrix, saw:\n ${r.shape}`);if(1!==a.shape.length)throw new Error(`Values must be a vector, saw:\n ${a.shape}`);if(0!==i.shape.length)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);const o=n.readSync(r.dataId),l=n.readSync(a.dataId),u=n.readSync(s.dataId),c=n.readSync(i.dataId)[0],[h,f,d,p,m]=fF(o,r.shape,r.dtype,l,a.dtype,u,c);return[n.makeTensorInfo(f,r.dtype,h),n.makeTensorInfo([f[0]],a.dtype,d),n.makeTensorInfo([p.length],"bool",new Uint8Array(p.map((e=>Number(e))))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}},xP={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{inputIndices:r,inputShape:a,newShape:s}=t;if(2!==r.shape.length)throw new Error(`Input indices should be a matrix but received shape ${r.shape}`);if(1!==a.shape.length)throw new Error(`Input shape should be a vector but received shape ${a.shape}`);if(1!==s.shape.length)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);const i=Array.from(n.readSync(a.dataId)),o=n.readSync(r.dataId),l=Array.from(n.readSync(s.dataId)),[u,c,h]=dF(o,r.shape,r.dtype,i,l);return[n.makeTensorInfo(c,r.dtype,u),n.makeTensorInfo([h.length],s.dtype,new Int32Array(h))]}},kP={kernelName:Cr,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}=Ni(0,a,o),f=new aP(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=nR({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},EP={kernelName:_r,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=Ad(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=lO({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},CP=KF({opSnippet:"return sqrt(x);"}),SP={kernelName:br,backendName:"webgl",kernelFunc:CP},NP=KF({opSnippet:"return x * x;"}),IP={kernelName:Nr,backendName:"webgl",kernelFunc:NP},AP="return (a - b) * (a - b);",DP=qF({opSnippet:AP,packedOpSnippet:AP}),TP={kernelName:Sr,backendName:"webgl",kernelFunc:DP},FP={kernelName:zr,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 IF(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class RP{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=LT(n.length),s=LT(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:Ir,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}=Vi(a.shape,s,i,o,l,u,c,h,f),v=nR({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=lO({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=nR({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=Xs(v.shape,v.dtype,e),r=pF(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new RP(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const _=nR({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},MP=KF({opSnippet:"return tan(x);"}),BP={kernelName:Dr,backendName:"webgl",kernelFunc:MP},$P=KF({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),PP={kernelName:Tr,backendName:"webgl",kernelFunc:$P};class LP{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;t5){const e=n.readSync(a.dataId),t="string"===a.dtype?e.map((e=>la(e))):e,r=Xs(a.shape,a.dtype,t),i=gF(r,s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}const i=new LP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const WP={kernelName:Fr,backendName:"webgl",kernelFunc:zP},UP={kernelName:Rr,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]=yF(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}};class VP{constructor(e,t,n,r,a,s){this.variableNames=["Image","Transforms"],this.outputShape=s;const i="nearest"===n?1:2;let o;switch(r){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${o} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${a});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${a});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${t}));\n float mapY = mapCoord(inY, float(${e}));\n\n if (${i} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}}const jP={kernelName:Or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=r,[c,h,f,d]=a.shape,[p,m]=null!=u?u:[h,f],g=new VP(h,f,i,o,l,[c,p,m,d]);return n.runWebGLProgram(g,[a,s],"float32")}},HP={kernelName:Br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;cT(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}=vF(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},GP={kernelName:$r,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 XP{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 KP=[FB,OB,mR,yR,vR,_R,ER,NR,IR,AR,MR,BR,PR,zR,jR,UR,GR,YR,qR,QR,eO,tO,aO,cO,hO,gO,vO,xO,CO,WF,RO,jO,HO,LO,XO,KO,GO,YO,ZO,eM,aM,sM,oM,dM,pM,cM,gM,bM,vM,_M,xM,EM,SM,AM,TM,OM,$M,zM,UM,HM,XM,YM,ZM,QM,tB,rB,sB,oB,LF,lB,DO,cB,fB,pB,jF,gB,bB,vB,kB,_B,CB,NB,AB,BB,zB,LB,VB,jB,HB,PB,GB,XB,qB,ZB,e$,u$,tR,h$,d$,m$,y$,dO,v$,x$,k$,N$,A$,XF,D$,F$,mO,r$,O$,P$,B$,rR,W$,V$,G$,K$,J$,Q$,tP,rP,sP,oP,uP,hP,dP,mP,yP,uO,l$,vP,wP,_P,xP,kP,EP,SP,IP,TP,FP,OP,i$,hR,BP,PP,WP,UP,jP,dR,HP,GP,{kernelName:Pr,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=qu([u],o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=Ju(1,o)[0]);const f=Td(h.shape,u,i),d=re([h.shape[u]]),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Ta(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=Dd(o,s),c=new XP({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=T$({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=zP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=nR({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Yu(c);b=fR({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},_$];for(const e of KP)Jr(e);const qP={"tfjs-core":ao,"tfjs-backend-cpu":"3.6.0","tfjs-backend-webgl":"3.6.0","tfjs-data":KE,"tfjs-layers":sb,"tfjs-converter":Wk,tfjs:"3.6.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:()=>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:()=>p});var r=n(8),a=n.n(r),s=n(319),i=n.n(s),o=n(4575),l=n.n(o),u=n(3676),c=n(697),h=n(3938),f=new c.c,d=function e(t){l()(this,e),f.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),f.__in_object(t,"axis","axis not found: specify the axis");var n,r,s=null;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 o=Object.assign({},n);if(1==r){var c=[],d={},p=0,m=Object.keys(o)[0];for(var g in s=o[m].index,o){var y=o[g].columns,b=o[g].values.length;for(var v in b>p&&(p=b),y){var w=y[v];if(w in d){var _=d[w],x="".concat(w,"_").concat(_+1);c.push(x),d[w]=_+1}else c.push(w),d[w]=1}}var k=new Array(p);for(var E in n){for(var C=n[E].values,S=0;S0)for(var w=0;w{"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__(7091),_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,n=[];(1==e?this.col_data:this.values).map((function(e){var t=utils._remove_nans(e),r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(t).mean().arraySync();n.push(Number(r.toFixed(5)))})),t=1==e?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:"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=utils._remove_nans(e),r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(t).sum().arraySync();n.push(Number(r.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(7091),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_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_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__),_frame__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(697),_series__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(3938);function _createForOfIteratorHelper(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){o=!0,s=e},f:function(){try{i||null==n.return||n.return()}finally{if(o)throw s}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(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)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()})),r=this.col(t),a=r.arithemetic(n),s=this.to_DataFrame(r.key_col,r.group_col_name,a,n);return s}},{key:"to_DataFrame",value:function(e,t,n,r){var a=[];!function e(t,n,r){if(Array.isArray(n))if(Array.isArray(n[0])){var s,i=_createForOfIteratorHelper(n[0].map((function(e,t){return n.map((function(e){return e[t]}))})));try{for(i.s();!(s=i.n()).done;){var o=s.value;a.push(t.concat(o))}}catch(e){i.e(e)}finally{i.f()}}else a.push(t.concat(n));else for(var l=0,u=Object.entries(n);l{"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?(d=""==m[0]?0:parseInt(m[0])||0,p=""==m[1]?parseInt(e.columns.length-1):parseInt(m[1])-1==0?0:parseInt(m[1])-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:()=>R});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(7091),x=n(3346),k=n(697),E=n(1745),C=n(2847),S=n(107),N=n(7737),I=n(9187),A=n(4564),D=n(9365);var T=new k.c,F=new N.z,R=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=T._remove_nans(this.values),t=_.tensor(e).sum().arraySync();return Number(t)}var n=T._remove_nans(this.values),r=_.tensor(n).sum().arraySync();return Number(r.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=F.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(7091),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"===e.constructor.name}},{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:"_replace_nan_with_null",value:function(e){return e.map((function(e){return isNaN(e)?null: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:()=>U.z,DataFrame:()=>o.N,LabelEncoder:()=>D,MinMaxScaler:()=>R,NDframe:()=>a.Z,OneHotEncoder:()=>T,Series:()=>i.F,StandardScaler:()=>O,Str:()=>V.W,Utils:()=>E.c,_version:()=>j,concat:()=>I.z,date_range:()=>B,get_dummies:()=>W,merge:()=>N,read:()=>r.read,read_csv:()=>m,read_excel:()=>y,read_json:()=>g,tf:()=>s,to_datetime:()=>l.J});var r={};n.r(r),n.d(r,{Ol:()=>m,PU:()=>y,Ac:()=>g});var a=n(2847),s=n(7091),i=n(3938),o=n(3676),l=n(9187),u=n(7757),c=n.n(u),h=n(8926),f=n.n(h),d=n(7869),p=n.n(d),m=function(){var e=f()(c().mark((function e(t){var n,r,a,i,l,u=arguments;return c().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")||t.startsWith("blob")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,s.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return l=new o.N(i),e.abrupt("return",l);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=f()(c().mark((function e(t){var n,r,a;return c().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 o.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){var e=f()(c().mark((function e(t){var n,r,a,s,i,l,u,h,f,d,m,g,y,b,v,w=arguments;return c().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,s=n.data_index,a||(a=1),s||(s=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return l=e.sent,e.next=10,l.arrayBuffer();case 10:for(l=e.sent,l=new Uint8Array(l),i=p().read(l,{type:"array"}),u=i.Sheets[r||i.SheetNames[0]],h=p().utils.decode_range(u["!ref"]),f=[],d=[],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=p().utils.encode_cell({c:y,r:a-1}),u[b]&&f.push(u[b].v)),m>=s-1&&(b=p().utils.encode_cell({c:y,r:m}),u[b]&&g.push(u[b].v));m>=s-1&&d.push(g)}return v=new o.N(d,{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)}}(),b=n(319),v=n.n(b),w=n(4575),_=n.n(w),x=n(3913),k=n.n(x),E=n(697),C=new E.c,S=function(){function e(t){var n=this;if(_()(this,e),C.__in_object(t,"left"),C.__in_object(t,"right"),C.__in_object(t,"on"),C.__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 o.N&&t.right instanceof o.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=M.__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=M.__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=M.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};L.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,s=null;if(Array.isArray(e.data)?s=e.data:e.data instanceof o.N?(s=e.data,a=!0):s=e.data.values,a){var i=[];if(r?r.forEach((function(e){var t=r.indexOf(e);i.push(t)})):(r=[],s.col_types.map((function(e,t){if("string"==e){var n=s.columns[t];r.push(n),i.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=s.values,u=s.columns,c=s.col_data,h=[];i.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=z(e,t[r],n),s=P()(a,2),i=s[0],o=s[1];f.push.apply(f,v()(o)),0==d.length?d.push.apply(d,v()(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,v()(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=L.__remove_arr(n,i);return r.push.apply(r,v()(d[t])),r})),m=L.__remove_arr(u,i);return m.push.apply(m,f),new o.N(p,{columns:m})}var g=z(s,t,n),y=P()(g,2),b=y[0],w=y[1];return new o.N(b,{columns:w})},U=n(7737),V=n(1745),j="0.2.6"},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.x].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 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/Y(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=q(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=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/Y(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=q(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=q(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=q(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,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=B(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 q(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=q(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=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=B(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:(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=M(r,!0):(D(e,0,u),void 0===t?t=a.rounding:D(t,0,8),n=M(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=M(a):(D(e,0,u),void 0===t?t=s.rounding:D(t,0,8),n=M(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 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: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 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,+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=M(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(D(e,1,u),void 0===t?t=a.rounding:D(t,0,8),n=M(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=M(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=M(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,M=r.d,B=a.d;if(!(M&&M[0]&&B&&B[0]))return new F(r.s&&a.s&&(M?!B||M[0]!=B[0]:B)?M&&0==M[0]||!B?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=B.length,I=M.length,w=(b=new F(R)).d=[],f=0;B[f]==(M[f]||0);f++);if(B[f]>(M[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,B=B[0],E++;(f1&&(B=e(B,d,u),M=e(M,d,u),D=B.length,I=M.length),N=D,x=(_=M.slice(0,D)).length;x=u/2&&++A;do{d=0,(c=t(B,_,D,x))<0?(k=_[0],D!=x&&(k=k*u+(_[1]||0)),(d=k/A|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(B,d,u),_,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 B(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=B(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 q(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 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?(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=M(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=F(M(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 Me(e){return new this(e).tan()}function Be(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,A,D,T,F){var R,O=1&n,M=2&n,B=4&n;if(A&&(R=T?A(t,D,T,F):A(t)),void 0!==R)return R;if(!_(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=M||L?{}:y(t),!O)return M?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),x(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:(B?M?d:f:M?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),_=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}},7561:(e,t,n)=>{var r=n(7990),a=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(a,""):e}},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""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},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(7561),a=n(3218),s=n(3448),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(s(e))return NaN;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);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=n(7990);e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.slice(0,l(e)+1);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 M(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new M(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 B(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||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 B(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",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)}})})),Me="mode",Be=f(Me,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Me,{"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?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;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 M(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=qe({typed:t,DenseMatrix:a}),o=Ke({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)}: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 M(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,_[1],b,v,w),d._swapRows(n,F,C[1],x,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?(x.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 _=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(Bt,{"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:()=>A,tS:()=>D,nu:()=>T,l7:()=>F,VO:()=>R,Cl:()=>O,UG:()=>M,Lr:()=>B,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 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 M(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function B(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":M(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 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,_=w&&w(w(A([])));_&&_!==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 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=B(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,_=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,D=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,R=i?g(s[0].params[1]):t,B=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+D++]))))&&(C=(15&N)<<4|I>>2,_.push(C),-1!==(A=E.indexOf(String.fromCharCode(a[p+D++]))));)S=(3&I)<<6|A,A<64&&_.push(S);for(x=n(1201,_),D=0;D255?(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,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(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 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 _=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,A,D,T,F,R,O,M,B=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,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&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(M=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(M=S+3;v>>=S)),b>>>=3,v-=3}else{for(M=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,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=(B=n.lencode[b&(1<>>16&255,I=65535&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&B,!(A+(S=B>>>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(M=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(B=n.distcode[b&(1<>>16&255,I=65535&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&B,!(A+(S=B>>>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(M=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===M[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(B[1]=0,k=1;k<15;k++)B[k+1]=B[k]+M[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-A,h[E]b?(w=$[P+h[E]],_=R[O+h[E]]):(w=96,_=0),d=1<>A)+(p-=d)]=v<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(F&=d-1,F+=d):F=0,E++,0==--M[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 _(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--)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?M(e,t,n,r):4===e.strategy||s===a?(x(e,2+(r?1:0),3),D(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 A="";if(x=b.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return k=Math.min(x[4].length,7),E=g(N,Math.pow(10,k)-1,!1),_=""+I," "==(A=S("n",x[1],E[1])).charAt(A.length-1)&&(A=A.substr(0,A.length-1)+"0"),_+=A+x[2]+"/"+x[3],(A=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 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(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 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==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 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)&&(_>=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",F=c);_>=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)_>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(D=N.charAt(_--)+D);o[c].v=D,o[c].t="t",F=c}for(_>=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=_(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 M(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=M,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]&&M(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 M,B=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){Mt(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);Mt(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&&Mt(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);_[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&&Mt(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=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(!B.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|M>>8|M));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 K(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 q(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+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+=K(e,n,h),n+=h),u=K(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+=K(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;Mt(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 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 Me=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},Be=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☃🍣";Me(Pe)==$e(Pe)&&(Me=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Me(Pe)==Le(Pe)&&(Me=Le),Be=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 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(qe)?' 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]},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 Mt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Rt}function Bt(e,t){e.l+=t}function $t(e){var t=w(e);return Mt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Mt(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?"":"$")+Kt(e.s.c)+":"+(e.e.cRel?"":"$")+Kt(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 Kt(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 qt(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:qt(e),e:qt(e)}:{s:qt(e.slice(0,t)),e:qt(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=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?qt(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 _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,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"),Mn=W(Tn,"n"),Bn={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=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 Xn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Kn(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=Me(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=Ae(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=Ke(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===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 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=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 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=Kr(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(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=qt(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=qt(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=Kr,Ca=Br,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}Mt(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,Mt(_,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=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,_=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}}}(),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=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=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=qt(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||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[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=Me(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:Me(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")}}}(),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){Mt(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=q(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:Bt}},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:Bt}};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}}}(),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("")}}(),Ma=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ba=/<(?:\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(Me(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Me(e),n&&(r.h=Fe(r.t))):e.match(Ba)&&(r.r=Me(e),r.t=Se(Me((e.replace($a,"").match(Ma)||[]).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]=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 Ka(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 qa(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:qa(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(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(_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:Ae(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 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=Bt;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 Ms=Bt;function Bs(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 Bt(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 Bt(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 Ks=1024;function qs(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})];Ks<1e3*e;)Ks+=1e3;return t.forEach((function(e){var t=qt(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);++Ks,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=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(Ye("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 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:qt(e[0]),e:qt(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?"":"$")+Kt(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=Jt(t).s,a=qt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:Kt(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?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"],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:Bt},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:qi)[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:Bt},40:{n:"PtgMemNoMem",f:Bt},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: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:{}},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 Bt(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(Bt(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)]):Bt(e,t);return i}function Mi(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+Bi[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 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[Yt(o)]){var F=r.sharedf[Yt(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("{"+Mi(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[[],Bt(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?[[],Bt(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=Kr(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[[],Bt(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,Ki=ji,qi={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]){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(Me(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=A._table[14]);break;default:a=e.v}var o=Ye("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=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",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]),Ze("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,_=0,x=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 M=(f=F[R].trim()).length;if(0!==M){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(Do))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Me(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(Me(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=qt(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=Ze("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=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=Be(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||"")+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]=Kt(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,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]=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 Mo(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 Bo=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||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([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),Mo(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]=Kt(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 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 Ko(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 qo(e){Ko(e.WBProps,Vo),Ko(e.CalcPr,Go),Xo(e.WBView,jo),Xo(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: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]=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",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=[],_=!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 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=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},R||(R=!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 "+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"]=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),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"]=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&&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 _=c.match(fo);_&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Me(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=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 Me(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)):Me(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={},R=0,O=[],M=[],B={},$=[],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]?B: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(M.length>0&&(g.c=M),(!n.sheetRows||n.sheetRows>_)&&void 0!==g.v&&(n.dense?(p[_]||(p[_]=[]),p[_][w]=g):p[Kt(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 X=w;X<=U;++X)for(var K=_;K<=V;++K)(X>w||K>_)&&(n.dense?(p[K]||(p[K]=[]),p[K][X]={t:"z"}):p[Kt(X)+Gt(K)]={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,M=[];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"),F[E.nf]&&(E.nf=F[E.nf]);for(var q=0;392!=q&&A._table[q]!=E.nf;++q);if(392==q)for(q=57;392!=q;++q)if(null==A._table[q]){A.load(E.nf,q);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(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(B),M.push(B)}else u.push([a[3],!1]),B={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 ql(r,n);if(0==u.length&&"uof"==a[3])return ql(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 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"]="="+Ae(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=qt(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=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=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(Ze("NumberFormat",null,{"ss:Format":Ae(A._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]},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=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)!==X)throw new Error("rt mismatch: "+Y+"!="+X);12==q.r&&(e.l+=10,K-=10)}var J={};J="EOF"===q.n?q.f(e,K,T):Cl(q,e,K,T);var Z=q.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++}F.length>0&&(d["!merges"]=F),R.length>0&&(d["!objects"]=R),O.length>0&&(d["!cols"]=O),M.length>0&&(d["!rows"]=M),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}[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-K,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"),F=[],R=[],T.arrayf=x=[],O=[],M=[],B=!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),D({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),D({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),D({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),D({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),D(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),D(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),D({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),D({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),D({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),D({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&&A.load(J[1],U+163)}else A.load(J[1],J[0]);break;case"BIFF2FORMAT":V[U++]=J;for(var fe=0;fe=163&&A.load(J,U+163);break;case"MergeCells":F=F.concat(J);break;case"Obj":R[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=R[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(q.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},B||(B=!0,ps(J.w/256)),ms(O[J.e+1]);break;case"Row":var pe={};null!=J.level&&(M[J.r]=pe,pe.level=J.level),J.hidden&&(M[J.r]=pe,pe.hidden=!0),J.hpt&&(M[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(q.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(q.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 "+q.n}}}}}else e.l+=K}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=B.find(e,"PerfectOffice_MAIN"))&&s.content)a=Fa.to_workbook(s.content,(t.type=i,t));else{if(!(s=B.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&&B.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=B.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*/,"");B.utils.cfb_add(t,a,e.FileIndex[r].content)}})),B.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=B.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=B.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:Ms},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:Bt,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:Bo,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=Ki(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:""}},Fl=W(Tl,"n"),Rl={3:{n:"BIFF2NUM",f:function(e){var t=Kr(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=Kr(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=qa(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: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]||Bt)(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]=Bn[t]||t,t=e.read_shift(2),n[1]=Bn[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(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: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=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=Kr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=Kr(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(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=Kr(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=Kr(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 Ml(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 Bl(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?Ml(e,2,(s=n,i=r,o=a,l=$t(9),Bl(l,s,i),l.write_shift(2,o),l)):Ml(e,3,function(e,t,n){var r=$t(15);return Bl(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Ml(e,5,function(e,t,n,r){var a=$t(9);return Bl(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 Ml(e,4,function(e,t,n){var r=$t(8+2*n.length);return Bl(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)}Ml(a,2057,ia(0,16,t)),Ml(a,"CalcMode",Mr(1)),Ml(a,"CalcCount",Mr(100)),Ml(a,"CalcRefMode",Rr(!0)),Ml(a,"CalcIter",Rr(!1)),Ml(a,"CalcDelta",Cn(.001)),Ml(a,"CalcSaveRecalc",Rr(!0)),Ml(a,"PrintRowCol",Rr(!1)),Ml(a,"PrintGrid",Rr(!1)),Ml(a,"GridSet",Mr(1)),Ml(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])),Ml(a,"HCenter",Rr(!1)),Ml(a,"VCenter",Rr(!1)),Ml(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]=Kt(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&&Ml(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&&Ml(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]=Kt(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),Ml(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?qt(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||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[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,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={},M=["",""],B=[],$={},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),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),x=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]){x+=D,D=1;break}if((s=we(i[0],!1))["行号"]?x=s["行号"]-1:-1==x&&(x=0),(D=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(A[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=D?x+D-1:x;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),B=[],$={},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),F.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=F[U][0].s.r&&x<=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: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),B.length>0&&(o.c=B,B=[]),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,B.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":M=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:M[0]+"!"+M[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[(M=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:M[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&&(M=eo(O.Target.slice(1)),O.Target="#"+M[0]+"!"+M[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 K={Sheets:m,SheetNames:g,Workbook:R};return u.bookSheets&&delete K.Sheets,K});function Kl(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:Me(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function ql(e,t){return Xl(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"]=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=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=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=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: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]=Kn(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),Kn(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=Kt(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,Kn(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=qt(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=qt(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 Kn(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),qo(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=Me(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(Me(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: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=B.find(e,r);try{if(r="/!DataSpaces/Version",!(a=B.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=B.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(Ka(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=B.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=B.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=B.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,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=B.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(Ks=1024,"ods"==t.bookType)return Zl(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),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""+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),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",Ae(e));return n.replace(/"/g,"_x0022_");case"number":return Ze((0|e)==e?"vt:i4":"vt:r8",Ae(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:Ae(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",qs(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,Xn(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)?Bs: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 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=Me(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,B.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 B.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Be(r));case"binary":return Be(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&&B.utils.cfb_add(t,"/SummaryInformation",Dr(a,Il,Mn,Tn)),(r.length||o.length)&&B.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)&&B.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,B.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?B.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?Me(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]=Kt(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]=Kt(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]=Kt(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 Mu(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?qt(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||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(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&&(Bu=n(791).Readable,t.stream={to_json:function(e,t){var n=Bu({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]=Kt(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=Bu(),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=Bu(),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]=Kt(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=_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),M.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=A,void 0!==B&&(t.CFB=B)}(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)},7091:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>Ge,Acos:()=>Xe,Acosh:()=>Ke,AdadeltaOptimizer:()=>Vo,AdagradOptimizer:()=>Ho,AdamOptimizer:()=>Ko,AdamaxOptimizer:()=>el,Add:()=>qe,AddN:()=>Ye,All:()=>Je,Any:()=>Ze,ArgMax:()=>Qe,ArgMin:()=>et,Asin:()=>tt,Asinh:()=>nt,Atan:()=>rt,Atan2:()=>st,Atanh:()=>at,AvgPool:()=>it,AvgPool3D:()=>lt,AvgPool3DGrad:()=>ut,AvgPoolGrad:()=>ot,BatchMatMul:()=>ct,BatchToSpaceND:()=>ht,Bincount:()=>ft,BroadcastTo:()=>dt,Callback:()=>xx,CallbackList:()=>xy,Cast:()=>pt,Ceil:()=>mt,ClipByValue:()=>gt,Complex:()=>yt,ComplexAbs:()=>bt,Concat:()=>vt,Conv2D:()=>wt,Conv2DBackpropFilter:()=>_t,Conv2DBackpropInput:()=>xt,Conv3D:()=>kt,Conv3DBackpropFilterV2:()=>Et,Conv3DBackpropInputV2:()=>Ct,Cos:()=>St,Cosh:()=>Nt,CropAndResize:()=>At,Cumsum:()=>It,CustomCallback:()=>Cy,DataStorage:()=>V,DenseBincount:()=>Dt,DepthToSpace:()=>Tt,DepthwiseConv2dNative:()=>Ft,DepthwiseConv2dNativeBackpropFilter:()=>Rt,DepthwiseConv2dNativeBackpropInput:()=>Ot,Diag:()=>Mt,Dilation2D:()=>Bt,Dilation2DBackpropFilter:()=>Pt,Dilation2DBackpropInput:()=>$t,ENV:()=>Ve,EarlyStopping:()=>Cx,Einsum:()=>zt,Elu:()=>Wt,EluGrad:()=>Ut,Environment:()=>Le,Equal:()=>jt,Erf:()=>Vt,Exp:()=>Ht,ExpandDims:()=>Gt,Expm1:()=>Xt,FFT:()=>Kt,Fill:()=>qt,FlipLeftRight:()=>Yt,Floor:()=>Jt,FloorDiv:()=>Zt,FromPixels:()=>Wr,FusedBatchNorm:()=>Qt,FusedConv2D:()=>jr,FusedDepthwiseConv2D:()=>Hr,GatherNd:()=>tn,GatherV2:()=>en,GraphModel:()=>Lk,Greater:()=>nn,GreaterEqual:()=>rn,History:()=>Ey,IFFT:()=>sn,Identity:()=>an,Imag:()=>on,InputSpec:()=>uy,IsFinite:()=>ln,IsInf:()=>un,IsNan:()=>cn,KernelBackend:()=>j,LRN:()=>_n,LRNGrad:()=>xn,LayerVariable:()=>iy,LayersModel:()=>Db,LeakyRelu:()=>hn,Less:()=>fn,LessEqual:()=>dn,LinSpace:()=>pn,Log:()=>mn,Log1p:()=>gn,LogSoftmax:()=>wn,LogicalAnd:()=>yn,LogicalNot:()=>bn,LogicalOr:()=>vn,Max:()=>kn,MaxPool:()=>Cn,MaxPool3D:()=>Nn,MaxPool3DGrad:()=>In,MaxPoolGrad:()=>Sn,MaxPoolWithArgmax:()=>An,Maximum:()=>En,Mean:()=>Dn,Min:()=>Tn,Minimum:()=>Fn,MirrorPad:()=>Rn,Mod:()=>On,MomentumOptimizer:()=>nl,Multinomial:()=>Mn,Multiply:()=>Bn,Neg:()=>$n,NonMaxSuppressionV3:()=>Ln,NonMaxSuppressionV4:()=>zn,NonMaxSuppressionV5:()=>Wn,NotEqual:()=>Pn,OP_SCOPE_SUFFIX:()=>Ja,OneHot:()=>Vn,OnesLike:()=>Un,Optimizer:()=>Uo,Pack:()=>jn,PadV2:()=>Hn,Pool:()=>Gn,Pow:()=>Xn,Prelu:()=>Kn,Prod:()=>qn,RMSPropOptimizer:()=>rl,RNN:()=>Bv,Range:()=>Yn,Rank:()=>Ea,Real:()=>Jn,RealDiv:()=>Lt,Reciprocal:()=>Zn,Reduction:()=>Sf,Relu:()=>Qn,Relu6:()=>sr,Reshape:()=>er,ResizeBilinear:()=>rr,ResizeBilinearGrad:()=>ar,ResizeNearestNeighbor:()=>tr,ResizeNearestNeighborGrad:()=>nr,Reverse:()=>ir,RotateWithOffset:()=>Ur,Round:()=>or,Rsqrt:()=>lr,SGDOptimizer:()=>tl,ScatterNd:()=>ur,Select:()=>cr,Selu:()=>hr,Sequential:()=>Rb,Sigmoid:()=>gr,Sign:()=>mr,Sin:()=>dr,Sinh:()=>pr,Slice:()=>fr,Softmax:()=>xr,Softplus:()=>yr,SpaceToBatchND:()=>wr,SparseFillEmptyRows:()=>kr,SparseReshape:()=>Er,SparseToDense:()=>Cr,SplitV:()=>_r,Sqrt:()=>br,Square:()=>Nr,SquaredDifference:()=>Sr,Step:()=>zr,StridedSlice:()=>Ir,Sub:()=>Ar,Sum:()=>vr,SymbolicTensor:()=>cy,Tan:()=>Dr,Tanh:()=>Tr,Tensor:()=>_a,TensorBuffer:()=>ya,Tile:()=>Fr,TopK:()=>Rr,Transform:()=>Or,Transpose:()=>Mr,Unique:()=>Br,Unpack:()=>$r,UnsortedSegmentSum:()=>Pr,Variable:()=>ka,ZerosLike:()=>Lr,_FusedMatMul:()=>Vr,abs:()=>qo,acos:()=>al,acosh:()=>sl,add:()=>No,addN:()=>il,all:()=>ol,any:()=>ll,argMax:()=>ul,argMin:()=>cl,asin:()=>hl,asinh:()=>fl,atan:()=>dl,atan2:()=>pl,atanh:()=>ml,avgPool:()=>Dl,avgPool3d:()=>Tl,backend:()=>Co,backend_util:()=>g,basicLSTMCell:()=>Bl,batchNorm:()=>Pl,batchNorm2d:()=>Ll,batchNorm3d:()=>zl,batchNorm4d:()=>Wl,batchToSpaceND:()=>$l,bincount:()=>Ul,booleanMaskAsync:()=>Dh,broadcastTo:()=>Vl,browser:()=>l,buffer:()=>Xs,callbacks:()=>Sx,cast:()=>Ks,ceil:()=>jl,clipByValue:()=>Hl,clone:()=>qs,complex:()=>Qa,concat:()=>Fl,concat1d:()=>Gl,concat2d:()=>Xl,concat3d:()=>Kl,concat4d:()=>ql,constraints:()=>b,conv1d:()=>Jl,conv2d:()=>Yl,conv2dTranspose:()=>Ql,conv3d:()=>eu,conv3dTranspose:()=>nu,copyRegisteredKernels:()=>ta,cos:()=>ru,cosh:()=>au,cosineWindow:()=>Lh,cumsum:()=>su,customGrad:()=>Lo,data:()=>W,denseBincount:()=>iu,deprecationWarn:()=>lo,depthToSpace:()=>ou,depthwiseConv2d:()=>lu,deregisterOp:()=>Fx,device_util:()=>s,diag:()=>uu,dilation2d:()=>cu,disableDeprecationWarnings:()=>oo,dispose:()=>mo,disposeVariables:()=>uo,div:()=>Ao,divNoNan:()=>du,dot:()=>pu,dropout:()=>$h,einsum:()=>mu,elu:()=>gu,enableDebugMode:()=>io,enableProdMode:()=>so,enclosingPowerOfTwo:()=>Ph,engine:()=>co,env:()=>We,equal:()=>hu,erf:()=>yu,exp:()=>bu,expandDims:()=>vu,expm1:()=>wu,eye:()=>xu,fft:()=>ih,fill:()=>jo,findBackend:()=>xo,findBackendFactory:()=>ko,floor:()=>ku,floorDiv:()=>Io,fused:()=>p,gather:()=>Eu,gatherND:()=>Bh,gather_util:()=>u,getBackend:()=>wo,getGradient:()=>qr,getKernel:()=>Kr,getKernelsForBackend:()=>Yr,grad:()=>Oo,grads:()=>Mo,greater:()=>Cu,greaterEqual:()=>Su,ifft:()=>oh,imag:()=>Nu,image:()=>zf,inTopKAsync:()=>zh,initializers:()=>v,input:()=>$b,io:()=>i,irfft:()=>lh,isFinite:()=>Iu,isInf:()=>Au,isNaN:()=>Du,keep:()=>go,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>Tu,less:()=>Fu,lessEqual:()=>Ru,linalg:()=>Wf,linspace:()=>Ou,loadGraphModel:()=>zk,loadLayersModel:()=>Bb,localResponseNormalization:()=>Mu,log:()=>Bu,log1p:()=>$u,logSigmoid:()=>zu,logSoftmax:()=>Vu,logSumExp:()=>Zu,logicalAnd:()=>Qu,logicalNot:()=>ec,logicalOr:()=>tc,logicalXor:()=>nc,losses:()=>Uf,matMul:()=>pi,math:()=>o,max:()=>Wu,maxPool:()=>rc,maxPool3d:()=>ac,maxPoolWithArgmax:()=>sc,maximum:()=>Qo,mean:()=>ic,memory:()=>ho,meshgrid:()=>uc,metrics:()=>_,min:()=>cc,minimum:()=>hc,mirrorPad:()=>fc,mod:()=>dc,model:()=>Ob,models:()=>x,moments:()=>pc,movingAverage:()=>Rh,mul:()=>Do,multiRNNCell:()=>mc,multinomial:()=>gc,neg:()=>Pu,nextFrame:()=>Xf,norm:()=>Fh,notEqual:()=>yc,oneHot:()=>mi,ones:()=>lc,onesLike:()=>bc,op:()=>Za,outerProduct:()=>vc,pad:()=>wc,pad1d:()=>_c,pad2d:()=>xc,pad3d:()=>kc,pad4d:()=>Ec,pool:()=>Sc,pow:()=>Go,prelu:()=>Nc,print:()=>Ys,prod:()=>Ic,profile:()=>fo,rand:()=>Ac,randomGamma:()=>Oc,randomNormal:()=>Mc,randomUniform:()=>Bc,range:()=>$c,ready:()=>vo,real:()=>Pc,reciprocal:()=>Lc,registerBackend:()=>Eo,registerCallbackConstructor:()=>Pb,registerGradient:()=>Zr,registerKernel:()=>Jr,registerOp:()=>Dx,regularizers:()=>k,relu:()=>zc,relu6:()=>Wc,removeBackend:()=>_o,reshape:()=>Al,reverse:()=>Uc,reverse1d:()=>Vc,reverse2d:()=>jc,reverse3d:()=>Hc,reverse4d:()=>Gc,rfft:()=>ch,round:()=>Xc,rsqrt:()=>Kc,scalar:()=>Wo,scatterND:()=>Oh,scatter_util:()=>c,selu:()=>qc,separableConv2d:()=>Yc,sequential:()=>Mb,serialization:()=>f,setBackend:()=>bo,setPlatform:()=>So,setdiff1dAsync:()=>Jc,sigmoid:()=>Rl,sign:()=>Zc,signal:()=>Lf,sin:()=>Qc,sinh:()=>eh,slice:()=>Ol,slice1d:()=>th,slice2d:()=>nh,slice3d:()=>rh,slice4d:()=>ah,slice_util:()=>h,softmax:()=>sh,softplus:()=>Lu,spaceToBatchND:()=>Cc,sparse:()=>Vf,sparseToDense:()=>Mh,spectral:()=>Pf,split:()=>uh,sqrt:()=>To,square:()=>Fo,squaredDifference:()=>hh,squeeze:()=>fh,stack:()=>dh,step:()=>ph,stridedSlice:()=>mh,sub:()=>Xo,sum:()=>Uu,sumOutType:()=>Ta,tan:()=>gh,tanh:()=>Ml,tensor:()=>ts,tensor1d:()=>yh,tensor2d:()=>bh,tensor3d:()=>bi,tensor4d:()=>vh,tensor5d:()=>wh,tensor6d:()=>_h,tensor_util:()=>a,test_util:()=>d,tidy:()=>po,tile:()=>_u,time:()=>yo,topk:()=>xh,train:()=>Hf,transpose:()=>gi,truncatedNormal:()=>kh,unique:()=>Eh,unregisterGradient:()=>ea,unregisterKernel:()=>Qr,unsortedSegmentSum:()=>Ch,unstack:()=>Sh,upcastType:()=>Da,util:()=>r,valueAndGrad:()=>Bo,valueAndGrads:()=>$o,variable:()=>Nh,variableGrads:()=>Po,version:()=>qP,version_converter:()=>Wk,version_core:()=>ao,version_layers:()=>sb,where:()=>fu,whereAsync:()=>Ah,zeros:()=>oc,zerosLike:()=>Ro});var r={};n.r(r),n.d(r,{arraysEqual:()=>se,assert:()=>Q,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>te,assertShapesMatch:()=>ee,bytesFromStringArray:()=>xe,bytesPerElement:()=>_e,checkConversionForErrors:()=>ye,clamp:()=>K,computeStrides:()=>Ae,createScalarValue:()=>ra,createShuffledIndices:()=>ue,decodeString:()=>la,distSquared:()=>Z,encodeString:()=>oa,fetch:()=>ia,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:()=>Be,makeOnesTypedArray:()=>Fe,makeZerosNestedTypedArray:()=>Oe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ie,nearestLargerEven:()=>q,now:()=>sa,parseAxisParam:()=>de,randUniform:()=>J,repeatedTry:()=>he,rightPad:()=>ce,shuffle:()=>G,shuffleCombo:()=>X,sizeFromShape:()=>re,sizeToSquarishShape:()=>le,squeezeShape:()=>pe,sum:()=>Y,tanh:()=>oe,toNestedArray:()=>Te,toTypedArray:()=>aa});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Ra,getTensorsInContainer:()=>Ma,isTensorInList:()=>Oa,makeTypesMatch:()=>Fa});var s={};n.r(s),n.d(s,{isBrowser:()=>ja,isMobile:()=>Va});var i={};n.r(i),n.d(i,{browserFiles:()=>ei,browserHTTPRequest:()=>ui,concatenateArrayBuffers:()=>ls,copyModel:()=>Vs,decodeWeights:()=>as,encodeWeights:()=>rs,fromMemory:()=>fi,getLoadHandlers:()=>gs,getModelArtifactsInfoForJSON:()=>cs,getSaveHandlers:()=>ms,http:()=>li,isHTTPScheme:()=>ii,listModels:()=>Ws,loadWeights:()=>ri,moveModel:()=>js,registerLoadRouter:()=>ps,registerSaveRouter:()=>ds,removeModel:()=>Us,weightsLoaderFactory:()=>ai,withSaveHandler:()=>di});var o={};n.r(o),n.d(o,{confusionMatrix:()=>yi});var l={};n.r(l),n.d(l,{fromPixels:()=>ki,fromPixelsAsync:()=>_i,toPixels:()=>xi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>Ei});var c={};n.r(c),n.d(c,{calculateShapes:()=>Ni,validateInput:()=>Si,validateUpdateShape:()=>Ci});var h={};n.r(h),n.d(h,{assertParamsValid:()=>Ii,computeFlatOffset:()=>Wi,computeOutShape:()=>Di,getNormalizedAxes:()=>Oi,isSliceContinous:()=>zi,maskToAxes:()=>Ai,parseSliceParams:()=>Ui,sliceInfo:()=>Vi,startForAxis:()=>Pi,startIndicesWithElidedDims:()=>Mi,stopForAxis:()=>Li,stopIndicesWithElidedDims:()=>Bi,stridesForAxis:()=>$i,stridesWithElidedDims:()=>Ti});var f={};n.r(f),n.d(f,{Serializable:()=>ji,SerializationMap:()=>Hi,registerClass:()=>Gi});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>Xi,encodeStrings:()=>ro,expectArrayBuffersEqual:()=>no,expectArraysClose:()=>Ki,expectArraysEqual:()=>Zi,expectNumbersClose:()=>Qi,expectPromiseToFail:()=>Ji,expectValuesInRange:()=>to,testEpsilon:()=>qi});var p={};n.r(p),n.d(p,{conv2d:()=>Gh,depthwiseConv2d:()=>qh,matMul:()=>Yh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>Fd,computeOutShape:()=>Td,segOpComputeOptimalWindowSize:()=>Dd});var g={};n.r(g),n.d(g,{ERF_A1:()=>od,ERF_A2:()=>ld,ERF_A3:()=>ud,ERF_A4:()=>cd,ERF_A5:()=>hd,ERF_P:()=>id,PARALLELIZE_THRESHOLD:()=>Yf,SELU_SCALE:()=>sd,SELU_SCALEALPHA:()=>ad,applyActivation:()=>jh,assertAndGetBroadcastShape:()=>Zo,assertAxesAreInnerMostDims:()=>Ku,assertParamsConsistent:()=>Kf,assignToTypedArray:()=>vd,axesAreInnerMostDims:()=>ju,calculateShapes:()=>Ni,checkEinsumDimSizes:()=>Cd,combineLocations:()=>Hu,complexWithEvenIndex:()=>gd,complexWithOddIndex:()=>yd,computeConv2DInfo:()=>vl,computeConv3DInfo:()=>wl,computeDefaultPad:()=>_l,computeDilation2DInfo:()=>gl,computeOptimalWindowSize:()=>Jf,computeOutAndReduceShapes:()=>Gu,computeOutShape:()=>qf,computePool2DInfo:()=>yl,computePool3DInfo:()=>bl,convertConv2DDataFormat:()=>Il,decodeEinsumEquation:()=>kd,eitherStridesOrDilationsAreOne:()=>Nl,expandShapeToKeepDim:()=>Xu,exponent:()=>_d,exponents:()=>wd,fromStringArrayToUint8:()=>Od,fromUint8ToStringArray:()=>Rd,getAxesPermutation:()=>qu,getBroadcastDims:()=>Yo,getComplexWithIndex:()=>bd,getEinsumComputePath:()=>Sd,getEinsumPermutation:()=>Ed,getFusedBiasGradient:()=>Vh,getFusedDyActivation:()=>Uh,getImageCenter:()=>Zf,getInnerMostAxes:()=>Ju,getPermuted:()=>ed,getReductionAxes:()=>Jo,getReshaped:()=>Qf,getReshapedPermuted:()=>td,getSliceBeginCoords:()=>nd,getSliceSize:()=>rd,getUndoAxesPermutation:()=>Yu,isIdentityPermutation:()=>Nd,log:()=>dd,mergeRealAndImagArrays:()=>pd,prepareAndValidate:()=>Ei,prepareSplitSize:()=>Ad,segment_util:()=>m,shouldFuse:()=>Hh,slice_util:()=>h,splitRealAndImagArrays:()=>md,tupleValuesAreOne:()=>Sl,upcastType:()=>Da,validateInput:()=>Si,validateUpdateShape:()=>Ci,warn:()=>fd});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>uf,nonMaxSuppressionV4Impl:()=>cf,nonMaxSuppressionV5Impl:()=>hf,whereImpl:()=>Ih});var b={};n.r(b),n.d(b,{maxNorm:()=>Im,minMaxNorm:()=>Tm,nonNeg:()=>Dm,unitNorm:()=>Am});var v={};n.r(v),n.d(v,{constant:()=>Pg,glorotNormal:()=>Hg,glorotUniform:()=>jg,heNormal:()=>Gg,heUniform:()=>Xg,identity:()=>Ug,leCunNormal:()=>Kg,leCunUniform:()=>qg,ones:()=>$g,orthogonal:()=>Yg,randomNormal:()=>zg,randomUniform:()=>Lg,truncatedNormal:()=>Wg,varianceScaling:()=>Vg,zeros:()=>Bg});var w={};n.r(w),n.d(w,{Layer:()=>py,RNN:()=>Bv,RNNCell:()=>$v,activation:()=>r_,add:()=>f_,alphaDropout:()=>nx,average:()=>d_,averagePooling1d:()=>x_,averagePooling2d:()=>C_,averagePooling3d:()=>I_,avgPool1d:()=>k_,avgPool2d:()=>S_,avgPool3d:()=>A_,avgPooling1d:()=>E_,avgPooling2d:()=>N_,avgPooling3d:()=>D_,batchNormalization:()=>v_,bidirectional:()=>K_,concatenate:()=>p_,conv1d:()=>Kw,conv2d:()=>qw,conv2dTranspose:()=>Yw,conv3d:()=>Jw,conv3dTranspose:()=>Zw,convLstm2d:()=>j_,convLstm2dCell:()=>H_,cropping2D:()=>e_,dense:()=>a_,depthwiseConv2d:()=>n_,dot:()=>b_,dropout:()=>s_,elu:()=>Uw,embedding:()=>h_,flatten:()=>o_,gaussianDropout:()=>tx,gaussianNoise:()=>ex,globalAveragePooling1d:()=>T_,globalAveragePooling2d:()=>F_,globalMaxPool1d:()=>Y_,globalMaxPool2d:()=>J_,globalMaxPooling1d:()=>R_,globalMaxPooling2d:()=>O_,gru:()=>P_,gruCell:()=>L_,input:()=>$b,inputLayer:()=>Ww,layerNormalization:()=>w_,leakyReLU:()=>jw,lstm:()=>z_,lstmCell:()=>W_,masking:()=>rx,maxPool1d:()=>Z_,maxPool2d:()=>Q_,maxPooling1d:()=>M_,maxPooling2d:()=>B_,maxPooling3d:()=>$_,maximum:()=>m_,minimum:()=>g_,multiply:()=>y_,permute:()=>c_,prelu:()=>Hw,reLU:()=>Vw,repeatVector:()=>l_,reshape:()=>u_,rnn:()=>G_,separableConv2d:()=>Qw,simpleRNN:()=>U_,simpleRNNCell:()=>V_,softmax:()=>Gw,spatialDropout1d:()=>i_,stackedRNNCells:()=>X_,thresholdedReLU:()=>Xw,timeDistributed:()=>q_,upSampling2d:()=>t_,zeroPadding2d:()=>__});var _={};n.r(_),n.d(_,{MAPE:()=>px,MSE:()=>yx,binaryAccuracy:()=>ax,binaryCrossentropy:()=>sx,categoricalAccuracy:()=>ox,categoricalCrossentropy:()=>lx,cosineProximity:()=>hx,mape:()=>mx,meanAbsoluteError:()=>fx,meanAbsolutePercentageError:()=>dx,meanSquaredError:()=>gx,mse:()=>bx,precision:()=>ux,recall:()=>cx,sparseCategoricalAccuracy:()=>ix});var x={};n.r(x),n.d(x,{modelFromJSON:()=>Fb});var k={};n.r(k),n.d(k,{l1:()=>wx,l1l2:()=>vx,l2:()=>_x});var E={};n.r(E),n.d(E,{json:()=>zx});var C={};n.r(C),n.d(C,{json:()=>Wx});var S={};n.r(S),n.d(S,{json:()=>Ux});var N={};n.r(N),n.d(N,{json:()=>Vx});var I={};n.r(I),n.d(I,{json:()=>jx});var A={};n.r(A),n.d(A,{json:()=>Hx});var D={};n.r(D),n.d(D,{json:()=>Gx});var T={};n.r(T),n.d(T,{json:()=>Xx});var F={};n.r(F),n.d(F,{json:()=>Kx});var R={};n.r(R),n.d(R,{json:()=>qx});var O={};n.r(O),n.d(O,{json:()=>Yx});var M={};n.r(M),n.d(M,{json:()=>Jx});var B={};n.r(B),n.d(B,{json:()=>Zx});var $={};n.r($),n.d($,{json:()=>Qx});var P={};n.r(P),n.d(P,{json:()=>ek});var L={};n.r(L),n.d(L,{json:()=>tk});var z={};n.r(z),n.d(z,{json:()=>nk});var W={};n.r(W),n.d(W,{CSVDataset:()=>AE,Dataset:()=>yE,FileDataSource:()=>WE,TextLineDataset:()=>xE,URLDataSource:()=>UE,array:()=>vE,csv:()=>VE,func:()=>jE,generator:()=>HE,microphone:()=>XE,version_data:()=>KE,webcam:()=>GE,zip:()=>wE});var U={};n.r(U),n.d(U,{addImpl:()=>SC,bincountImpl:()=>bS,bincountReduceImpl:()=>vS,ceilImpl:()=>xS,concatImpl:()=>IS,expImpl:()=>_N,expm1Impl:()=>SN,floorImpl:()=>VN,gatherV2Impl:()=>ZN,greaterImpl:()=>eI,lessImpl:()=>dI,linSpaceImpl:()=>vI,logImpl:()=>_I,maxImpl:()=>BI,maximumImpl:()=>LI,minimumImpl:()=>qI,multiplyImpl:()=>nN,negImpl:()=>sA,notEqualImpl:()=>dA,prodImpl:()=>SA,rangeImpl:()=>IA,rsqrtImpl:()=>zA,simpleAbsImpl:()=>MC,sliceImpl:()=>pS,sparseFillEmptyRowsImpl:()=>iD,sparseReshapeImpl:()=>lD,squaredDifferenceImpl:()=>mD,stridedSliceImpl:()=>wD,subImpl:()=>FN,tileImpl:()=>CD,topKImpl:()=>SD,transposeImpl:()=>UC,uniqueImpl:()=>TD});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 K(e,t,n){return Math.max(e,Math.min(t,n))}function q(e){return e%2==0?e:e+1}function Y(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,r=!1){const a=new Array;if(1===t.length){const s=t[0]*(r?2:1);for(let t=0;te*t))*(r?2:1);for(let t=0;te*t))*(n?2:1);if(0===r)return[];if(r!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return De(0,e,t,n)}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 Me(e){e.forEach((t=>{Q(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{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(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...n)=>(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}function We(){return Ve}let Ue,Ve=null;function je(){if(null==Ue){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}Ue=e}return Ue}function He(e,t){const n=function(){const e=je();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 Ge="Abs",Xe="Acos",Ke="Acosh",qe="Add",Ye="AddN",Je="All",Ze="Any",Qe="ArgMax",et="ArgMin",tt="Asin",nt="Asinh",rt="Atan",at="Atanh",st="Atan2",it="AvgPool",ot="AvgPoolGrad",lt="AvgPool3D",ut="AvgPool3DGrad",ct="BatchMatMul",ht="BatchToSpaceND",ft="Bincount",dt="BroadcastTo",pt="Cast",mt="Ceil",gt="ClipByValue",yt="Complex",bt="ComplexAbs",vt="Concat",wt="Conv2D",_t="Conv2DBackpropFilter",xt="Conv2DBackpropInput",kt="Conv3D",Et="Conv3DBackpropFilterV2",Ct="Conv3DBackpropInputV2",St="Cos",Nt="Cosh",It="Cumsum",At="CropAndResize",Dt="DenseBincount",Tt="DepthToSpace",Ft="DepthwiseConv2dNative",Rt="DepthwiseConv2dNativeBackpropFilter",Ot="DepthwiseConv2dNativeBackpropInput",Mt="Diag",Bt="Dilation2D",$t="Dilation2DBackpropInput",Pt="Dilation2DBackpropFilter",Lt="RealDiv",zt="Einsum",Wt="Elu",Ut="EluGrad",Vt="Erf",jt="Equal",Ht="Exp",Gt="ExpandDims",Xt="Expm1",Kt="FFT",qt="Fill",Yt="FlipLeftRight",Jt="Floor",Zt="FloorDiv",Qt="FusedBatchNorm",en="GatherV2",tn="GatherNd",nn="Greater",rn="GreaterEqual",an="Identity",sn="IFFT",on="Imag",ln="IsFinite",un="IsInf",cn="IsNan",hn="LeakyRelu",fn="Less",dn="LessEqual",pn="LinSpace",mn="Log",gn="Log1p",yn="LogicalAnd",bn="LogicalNot",vn="LogicalOr",wn="LogSoftmax",_n="LRN",xn="LRNGrad",kn="Max",En="Maximum",Cn="MaxPool",Sn="MaxPoolGrad",Nn="MaxPool3D",In="MaxPool3DGrad",An="MaxPoolWithArgmax",Dn="Mean",Tn="Min",Fn="Minimum",Rn="MirrorPad",On="Mod",Mn="Multinomial",Bn="Multiply",$n="Neg",Pn="NotEqual",Ln="NonMaxSuppressionV3",zn="NonMaxSuppressionV4",Wn="NonMaxSuppressionV5",Un="OnesLike",Vn="OneHot",jn="Pack",Hn="PadV2",Gn="Pool",Xn="Pow",Kn="Prelu",qn="Prod",Yn="Range",Jn="Real",Zn="Reciprocal",Qn="Relu",er="Reshape",tr="ResizeNearestNeighbor",nr="ResizeNearestNeighborGrad",rr="ResizeBilinear",ar="ResizeBilinearGrad",sr="Relu6",ir="Reverse",or="Round",lr="Rsqrt",ur="ScatterNd",cr="Select",hr="Selu",fr="Slice",dr="Sin",pr="Sinh",mr="Sign",gr="Sigmoid",yr="Softplus",br="Sqrt",vr="Sum",wr="SpaceToBatchND",_r="SplitV",xr="Softmax",kr="SparseFillEmptyRows",Er="SparseReshape",Cr="SparseToDense",Sr="SquaredDifference",Nr="Square",Ir="StridedSlice",Ar="Sub",Dr="Tan",Tr="Tanh",Fr="Tile",Rr="TopK",Or="Transform",Mr="Transpose",Br="Unique",$r="Unpack",Pr="UnsortedSegmentSum",Lr="ZerosLike",zr="Step",Wr="FromPixels",Ur="RotateWithOffset",Vr="_FusedMatMul",jr="FusedConv2D",Hr="FusedDepthwiseConv2D",Gr=He("kernelRegistry",(()=>new Map)),Xr=He("gradRegistry",(()=>new Map));function Kr(e,t){const n=na(e,t);return Gr.get(n)}function qr(e){return Xr.get(e)}function Yr(e){const t=Gr.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 Jr(e){const{kernelName:t,backendName:n}=e,r=na(t,n);Gr.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Gr.set(r,e)}function Zr(e){const{kernelName:t}=e;Xr.has(t)&&We().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Xr.set(t,e)}function Qr(e,t){const n=na(e,t);if(!Gr.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Gr.delete(n)}function ea(e){if(!Xr.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xr.delete(e)}function ta(e,t){Yr(e).forEach((e=>{Jr(Object.assign({},e,{backendName:t}))}))}function na(e,t){return`${t}_${e}`}function ra(e,t){return"string"===t?oa(e):aa([e],t)}function aa(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ne(e)),We().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=sa();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(a);else{a();for(const e of r)e.dataSync();s=Promise.resolve({kernelMs:sa()-i})}if(We().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{ca(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 ca(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 fa(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?ga(e):e;if(o>1)for(let e=0;e
" "+e)).join("\n")),l.join("\n")}function da(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?pa(e):parseFloat(e.toFixed(7)).toString(),ce(r,t)}function pa(e){return 0===e?"false":"true"}function ma(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?[da(ga(e)[0],0,n)]:"bool"===n?[pa(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=ga(r),s=ga(s)),["["+r.map(((e,t)=>da(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>da(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?ga(e):Array.from(e)).map(((e,t)=>da(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(...ma(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;tla(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=ba().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>la(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 ba().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(ba().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return va.print(this,e)}clone(){return this.throwIfDisposed(),va.clone(this)}toString(e=!1){return fa(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),va.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),ba().makeVariable(this,e,t,n)}}function xa(){return He("Tensor",(()=>_a))}Object.defineProperty(_a,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),xa();class ka extends _a{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`);ba().disposeTensor(this),this.dataId=e.dataId,ba().incRef(this,null)}dispose(){ba().disposeVariable(this),this.isDisposedInternal=!0}}var Ea,Ca,Sa,Na,Ia;Object.defineProperty(ka,Symbol.hasInstance,{value:e=>e instanceof _a&&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"}(Ea||(Ea={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(Ca||(Ca={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(Sa||(Sa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(Na||(Na={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Ia||(Ia={}));const Aa={float32:Na,int32:Ca,bool:Sa,complex64:Ia};function Da(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Aa[e][t]}function Ta(e){return Da(e,"int32")}function Fa(e,t){if(e.dtype===t.dtype)return[e,t];const n=Da(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Ra(e,t){Q(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Oa(e,t){return t.some((t=>t.id===e.id))}function Ma(e){const t=[];return Ba(e,t,new Set),t}function Ba(e,t,n){if(null==e)return;if(e instanceof _a)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),Ba(r,t,n))}}function $a(e){return null!=e.kernelName}class Pa{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 La{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Pa}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){Yr(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 La.nextTensorId++}nextVariableId(){return La.nextVariableId++}clone(e){const t=Wa.runKernel(an,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e};return Wa.runKernel(pt,t,{dtype:"float32"})}})),[],{}),t}runKernel(e,t,n){if(null==Kr(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=$a(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if($a(e)){const{kernelName:t,inputs:a,attrs:s}=e;null==this.backendName&&this.backend;const l=Kr(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=$a(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=qr(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=>oa(e))));const s=r.write(a,t,n),i=new _a(t,n,s,this.nextTensorId());if(this.trackTensor(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=xe(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new _a(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 ka(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*_e(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 ka||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*_e(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=qr(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=Ma(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 _a,(()=>"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 Wa.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)),Ua);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 _a)),(()=>"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 _a,(()=>"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 _a)),(()=>"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=sa(),n=await this.backend.time(e);return n.wallMs=sa()-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 Pa;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 za(){const e=je();if(null==e._tfengine){const t=new Le(e);e._tfengine=new La(t)}var t;return t=e._tfengine.ENV,Ve=t,ba=()=>e._tfengine,e._tfengine}La.nextTensorId=0,La.nextVariableId=0;const Wa=za();function Ua(e,t){const n={a:e,b:t};return Wa.runKernel(qe,n)}function Va(e){if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.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(t)||/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(t.substr(0,4))}return!1}function ja(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const Ha=We();function Ga(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)&&We().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Xa(e,r,[]),r}function Xa(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),Ka(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=Ga(e,a);we(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?aa(e,a):ne(e,[],!0);return Wa.makeTensor(i,s,a)}function Ya(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)=>qa(e,`${t}[${a}]`,n,r)))}Ha.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.")})),Ha.registerFlag("IS_BROWSER",(()=>ja())),Ha.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),Ha.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),Ha.registerFlag("PROD",(()=>!1)),Ha.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>Ha.getBool("DEBUG"))),Ha.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),Ha.registerFlag("IS_TEST",(()=>!1)),Ha.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0)),Ha.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1));const Ja="__op";function Za(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+=Ja;const a=(...e)=>{Wa.startScope(n);try{const t=r(...e);return Pe(t)&&console.error("Cannot return a Promise inside of tidy."),Wa.endScope(t),t}catch(e){throw Wa.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const Qa=Za({complex_:function(e,t){const n=qa(e,"real","complex"),r=qa(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 Wa.runKernel(yt,a)}});function es(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){Me(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?aa(e,r):ne(e,[],!0),Wa.makeTensor(e,t,r)}function ts(e,t,n){return es(e,t,Ga(e,n),n)}const ns={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function rs(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 is="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function os(e){return is?Buffer.byteLength(e):new Blob([e]).size}function ls(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 us(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function cs(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:os(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:os(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function hs(){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 fs{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==fs.instance&&(fs.instance=new fs),fs.instance}static registerSaveRouter(e){fs.getInstance().saveRouters.push(e)}static registerLoadRouter(e){fs.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return fs.getHandlers(e,"save")}static getLoadHandlers(e,t){return fs.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?fs.getInstance().loadRouters:fs.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const ds=e=>fs.registerSaveRouter(e),ps=e=>fs.registerLoadRouter(e),ms=e=>fs.getSaveHandlers(e),gs=(e,t)=>fs.getLoadHandlers(e,t),ys="tensorflowjs",bs="models_store",vs="model_info_store";function ws(){if(!We().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 _s(e){const t=e.result;t.createObjectStore(bs,{keyPath:"modelPath"}),t.createObjectStore(vs,{keyPath:"modelPath"})}class xs{constructor(e){if(this.indexedDB=ws(),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(ys,1);r.onupgradeneeded=()=>_s(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(bs,"readonly"),r=t.objectStore(bs).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=cs(t),s=a.transaction(vs,"readwrite");let i=s.objectStore(vs);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(bs,"readwrite");const o=l.objectStore(bs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(vs);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)}))}}xs.URL_SCHEME="indexeddb://";const ks=e=>{return We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(xs.URL_SCHEME)?(t=e.slice(xs.URL_SCHEME.length),new xs(t)):null;var t};fs.registerSaveRouter(ks),fs.registerLoadRouter(ks);class Es{constructor(){this.indexedDB=ws()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(ys,1);n.onupgradeneeded=()=>_s(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(vs,"readonly"),s=a.objectStore(vs).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(xs.URL_SCHEME)?t.slice(xs.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(ys,1);r.onupgradeneeded=()=>_s(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(vs,"readwrite"),i=s.objectStore(vs),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(bs,"readwrite");const r=l.objectStore(bs).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 Cs="/",Ss="tensorflowjs_models",Ns="info",Is="model_topology",As="weight_specs",Ds="weight_data",Ts="model_metadata";function Fs(e){return{info:[Ss,e,Ns].join(Cs),topology:[Ss,e,Is].join(Cs),weightSpecs:[Ss,e,As].join(Cs),weightData:[Ss,e,Ds].join(Cs),modelMetadata:[Ss,e,Ts].join(Cs)}}function Rs(e){const t=e.split(Cs);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Cs)}class Os{constructor(e){if(!We().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=Fs(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=cs(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(is)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Os.URL_SCHEME)?(t=e.slice(Os.URL_SCHEME.length),new Os(t)):null;var t};fs.registerSaveRouter(Ms),fs.registerLoadRouter(Ms);class Bs{constructor(){Q(We().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=Ss+Cs,n=Cs+Ns;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith($s)&&(e=e.slice(0,e.indexOf($s))),Q(e.length>0,(()=>"scheme must not be an empty string."));const n=Ps.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 Ls(e){if(-1===e.indexOf($s))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ps.getSchemes().join(",")}`);return{scheme:e.split($s)[0],path:e.split($s)[1]}}async function zs(e,t,n=!1){Q(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=fs.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=fs.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=Ls(e).scheme,l=Ls(e).path,u=o===Ls(e).scheme,c=await a.load();n&&u&&await Ps.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await Ps.getManager(o).removeModel(l),h.modelArtifactsInfo}async function Ws(){const e=Ps.getSchemes(),t={};for(const n of e){const e=await Ps.getManager(n).listModels();for(const r in e)t[n+$s+r]=e[r]}return t}async function Us(e){const t=Ls(e);return Ps.getManager(t.scheme).removeModel(t.path)}async function Vs(e,t){return zs(e,t,!1)}async function js(e,t){return zs(e,t,!0)}class Hs{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(We().get("IS_BROWSER")){We().setPlatform("browser",new Hs);try{Ps.registerManager(Os.URL_SCHEME,new Bs)}catch(e){}try{Ps.registerManager(xs.URL_SCHEME,new Es)}catch(e){}}let Gs;function Xs(e,t="float32",n){return t=t||"float32",Me(e),new ya(e,t,n)}We().get("IS_NODE")&&We().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=We().global.fetch?We().global.fetch(e,t):(null==Gs&&(Gs=n(8352)),Gs(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 Ks=Za({cast_:function(e,t){const n=qa(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 Wa.runKernel(pt,r,a)}}),qs=Za({clone_:function(e){const t={x:qa(e,"x","clone","string_or_numeric")};return Wa.runKernel(an,t)}});function Ys(e,t=!1){console.log(e.toString(t))}function Js(e){return new Promise((e=>setTimeout(e))).then(e)}za(),va={buffer:Xs,cast:Ks,clone:qs,print:Ys};class Zs{constructor(e){if(!We().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Zs.URL_SCHEME)&&(e=e.slice(Zs.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 Js((()=>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 Js((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:cs(e)}}}}Zs.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:ls(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=>us(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=us(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 ei(e){return new Qs(e)}function ti(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 ni(e,t){null==t&&(t={});const n=null==t.fetchFunc?We().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await ti(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await ti(a,t.onProgress,.5,1)}async function ri(e,t="",n,r){return ai((e=>ni(e,{requestInit:r})))(e,t,n)}function ai(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=ns[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=as(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}fs.registerSaveRouter((e=>We().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Zs.URL_SCHEME)?function(e="model"){return new Zs(e)}(e.slice(Zs.URL_SCHEME.length)):null));class si{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=We().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:cs(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,ls(await ni(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function ii(e){return null!=e.match(si.URL_SCHEME_REGEX)}si.URL_SCHEME_REGEX=/^https?:\/\//;const oi=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>ii(e))):ii(e),n)return li(e,t)}return null};function li(e,t){return new si(e,t)}function ui(e,t){return li(e,t)}fs.registerSaveRouter(oi),fs.registerLoadRouter(oi);class ci{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class hi{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function fi(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new ci(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 ci({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 ci({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function di(e){return new hi(e)}const pi=Za({matMul_:function(e,t,n=!1,r=!1){let a=qa(e,"a","matMul"),s=qa(t,"b","matMul");[a,s]=Fa(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return Wa.runKernel(ct,i,o)}}),mi=Za({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:qa(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return Wa.runKernel(Vn,a,s)}}),gi=Za({transpose_:function(e,t){const n=qa(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 Wa.runKernel(Mr,r,a)}}),yi=Za({confusionMatrix_:function(e,t,n){const r=qa(e,"labels","confusionMatrix"),a=qa(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=mi(Ks(r,"int32"),n),i=mi(Ks(a,"int32"),n),o=gi(s),l=pi(o,i);return Ks(l,"int32")}});function bi(e,t,n){if(te(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Ga(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 es(e,t,r,n)}let vi;function wi(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!=Kr(Wr,Wa.backendName)){const n={pixels:e},r={numChannels:t};return Wa.runKernel(Wr,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==vi&&(vi=document.createElement("canvas").getContext("2d")),vi.canvas.width=l,vi.canvas.height=u,vi.drawImage(e,0,0,l,u),c=vi.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;n4||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 ki=Za({fromPixels_:wi});function Ei(e,t){const n=e.shape.length,r=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(r<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${r}.`);if("int32"!==t.dtype)throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[r-1]>n)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 Ci(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 Ai(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Di(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Mi(i,l,u,r,e),h=Bi(o,l,u,a,e),f=Ti(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=Fi(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=Fi(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=K(0,i,l-1),i}function Li(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?K(0,i,l):K(-1,i,l-1),i}function zi(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 Wi(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 Vi(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=Ai(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=Ai(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}=Oi(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=Ai(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=Di(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 ji{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Hi{constructor(){this.classNameMap={}}static getMap(){return null==Hi.instance&&(Hi.instance=new Hi),Hi.instance}static register(e){Hi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Gi(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.")),Hi.register(e)}const Xi=.1;function Ki(e,t,n){return null==n&&(n=qi()),Yi(e,t,((e,t)=>eo(e,t,n)))}function qi(){return 32===Wa.backend.floatPrecision()?.001:Xi}function Yi(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=Ga(e),r=Ga(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 Zi(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])?Yi(e,n,((e,t)=>e==t)):Yi(e,t,((e,t)=>eo(e,t,0)))}function Qi(e,t,n){if(null==n&&(n=qi()),!eo(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function eo(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function to(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function no(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function ro(e){for(let t=0;te.dispose()))}function go(e){return Wa.keep(e)}function yo(e){return Wa.time(e)}function bo(e){return Wa.setBackend(e)}function vo(){return Wa.ready()}function wo(){return Wa.backendName}function _o(e){Wa.removeBackend(e)}function xo(e){return Wa.findBackend(e)}function ko(e){return Wa.findBackendFactory(e)}function Eo(e,t,n=1){return Wa.registerBackend(e,t,n)}function Co(){return Wa.backend}function So(e,t){We().setPlatform(e,t)}wa=lo;const No=Za({add_:function(e,t){let n=qa(e,"a","add"),r=qa(t,"b","add");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(qe,a)}}),Io=Za({floorDiv_:function(e,t){let n=qa(e,"a","floorDiv"),r=qa(t,"b","floorDiv");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Zt,a)}}),Ao=Za({div_:function(e,t){let n=qa(e,"a","div"),r=qa(t,"b","div");if([n,r]=Fa(n,r),"int32"===n.dtype&&"int32"===r.dtype)return Io(n,r);const a={a:n,b:r};return Wa.runKernel(Lt,a,{})}}),Do=Za({mul_:function(e,t){let n=qa(e,"a","mul"),r=qa(t,"b","mul");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Bn,a)}}),To=Za({sqrt_:function(e){const t={x:qa(e,"x","sqrt")};return Wa.runKernel(br,t)}}),Fo=Za({square_:function(e){const t=qa(e,"x","square");return Wa.runKernel("Square",{x:t},{})}}),Ro=Za({zerosLike_:function(e){const t={x:qa(e,"x","zerosLike")};return Wa.runKernel(Lr,t)}});function Oo(e){return Q(Ne(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=qa(t,"x","tf.grad","string_or_numeric"),a=null!=n?qa(n,"dy","tf.grad"):null;return Wa.tidy((()=>{const{value:t,grads:n}=Wa.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)"),zo(n),n[0]}))}}function Mo(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=Ya(t,"args","tf.grads","string_or_numeric"),a=null!=n?qa(n,"dy","tf.grads"):null;return Wa.tidy((()=>{const{value:t,grads:n}=Wa.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,...])"),zo(n),n}))}}function Bo(e){return Q(Ne(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Q(t instanceof _a,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Q(null==n||n instanceof _a,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=Wa.gradients((()=>e(t)),[t],n);return zo(r),{grad:r[0],value:a}}}function $o(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 _a)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Q(null==n||n instanceof _a,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=Wa.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,...])"),zo(r.grads),r}}function Po(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 ka)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in Wa.registeredVariables)t.push(Wa.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}=Wa.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 Lo(e){return Wa.customGrad(e)}function zo(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 Wo(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 es(e,[],[],t)}class Uo extends ji{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 mo(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 Po(e,t)}dispose(){null!=this.iterations_&&mo(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:Wo(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(Uo,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Vo extends Uo{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Wa.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:po((()=>Ro(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:po((()=>Ro(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;po((()=>{const e=No(Do(s,this.rho),Do(Fo(a),1-this.rho)),t=Do(Ao(To(No(i,this.epsilon)),To(No(s,this.epsilon))),a),n=No(Do(i,this.rho),Do(Fo(t),1-this.rho));s.assign(e),i.assign(n);const o=No(Do(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(mo(this.accumulatedGrads.map((e=>e.variable))),mo(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 jo(e,t,n){const r={shape:e,value:t,dtype:n};return Wa.runKernel(qt,{},r)}Vo.className="Adadelta",Gi(Vo);class Ho extends Uo{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=Wa.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:po((()=>jo(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;po((()=>{const e=No(s,Fo(a));s.assign(e);const t=No(Do(Ao(a,To(No(e,Wa.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&mo(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)}}Ho.className="Adagrad",Gi(Ho);const Go=Za({pow_:function(e,t){let n=qa(e,"base","pow"),r=qa(t,"exp","pow");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Xn,a)}}),Xo=Za({sub_:function(e,t){let n=qa(e,"a","sub"),r=qa(t,"b","sub");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(Ar,a)}});class Ko extends Uo{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],po((()=>{this.accBeta1=Wo(t).variable(),this.accBeta2=Wo(n).variable()})),null==r&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);po((()=>{const n=Xo(1,this.accBeta1),r=Xo(1,this.accBeta2);t.forEach(((t,a)=>{const s=Wa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:po((()=>Ro(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:po((()=>Ro(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=No(Do(o,this.beta1),Do(i,1-this.beta1)),c=No(Do(l,this.beta2),Do(Fo(i),1-this.beta2)),h=Ao(u,n),f=Ao(c,r);o.assign(u),l.assign(c);const d=No(Do(Ao(h,No(To(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(Do(this.accBeta1,this.beta1)),this.accBeta2.assign(Do(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&mo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&mo(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),po((()=>{this.accBeta1.assign(Go(this.beta1,this.iterations_+1)),this.accBeta2.assign(Go(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)}}Ko.className="Adam",Gi(Ko);const qo=Za({abs_:function(e){const t=qa(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return Wa.runKernel(bt,e)}{const e={x:t};return Wa.runKernel(Ge,e)}}});function Yo(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 Zo(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=Wo(0).variable(),this.accBeta1=Wo(t).variable()})),null==r&&(this.epsilon=Wa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);po((()=>{const n=Xo(1,this.accBeta1),r=Ao(-this.learningRate,No(Do(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=Wa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:Ro(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:Ro(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=No(Do(o,this.beta1),Do(i,1-this.beta1)),c=Do(l,this.beta2),h=qo(i),f=Qo(c,h);o.assign(u),l.assign(f);const d=No(Do(Ao(r,n),Ao(u,No(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(No(this.iteration,1)),this.accBeta1.assign(Do(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&mo(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&mo(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)}}el.className="Adamax",Gi(el);class tl extends Uo{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=Wa.registeredVariables[t];po((()=>{const e=No(Do(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=go(Wo(-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)}}tl.className="SGD",Gi(tl);class nl extends tl{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=Wo(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Wa.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:po((()=>Ro(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&po((()=>{let e;const t=No(Do(this.m,a),s);e=this.useNesterov?No(Do(this.c,No(s,Do(t,this.m))),r):No(Do(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&mo(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)}}nl.className="Momentum",Gi(nl);class rl extends Uo{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=Wa.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=Wa.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:po((()=>Ro(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:po((()=>Ro(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:po((()=>Ro(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;po((()=>{const e=No(Do(i,this.decay),Do(Fo(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=No(Do(t,this.decay),Do(s,1-this.decay)),l=Ao(Do(s,this.learningRate),To(Xo(e,No(Fo(a),this.epsilon)))),u=No(Do(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=Xo(r,u);r.assign(c)}else{const e=No(Do(i,this.decay),Do(Fo(s),1-this.decay)),t=No(Do(o,this.momentum),Ao(Do(s,this.learningRate),To(No(e,this.epsilon))));i.assign(e),o.assign(t);const n=Xo(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&mo(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&mo(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&mo(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)}}rl.className="RMSProp",Gi(rl);const al=Za({acos_:function(e){const t={x:qa(e,"x","acos")};return Wa.runKernel(Xe,t)}}),sl=Za({acosh_:function(e){const t={x:qa(e,"x","acosh")};return Wa.runKernel(Ke,t)}}),il=Za({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)=>qa(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 Wa.runKernel(Ye,r)}}),ol=Za({all_:function(e,t=null,n=!1){const r={x:qa(e,"x","all","bool")},a={axis:t,keepDims:n};return Wa.runKernel(Je,r,a)}}),ll=Za({any_:function(e,t=null,n=!1){const r={x:qa(e,"x","any","bool")},a={axis:t,keepDims:n};return Wa.runKernel(Ze,r,a)}}),ul=Za({argMax_:function(e,t=0){const n={x:qa(e,"x","argMax")},r={axis:t};return Wa.runKernel(Qe,n,r)}}),cl=Za({argMin_:function(e,t=0){const n={x:qa(e,"x","argMin")},r={axis:t};return Wa.runKernel(et,n,r)}}),hl=Za({asin_:function(e){const t={x:qa(e,"x","asin")};return Wa.runKernel(tt,t)}}),fl=Za({asinh_:function(e){const t={x:qa(e,"x","asinh")};return Wa.runKernel(nt,t)}}),dl=Za({atan_:function(e){const t={x:qa(e,"x","atan")};return Wa.runKernel(rt,t)}}),pl=Za({atan2_:function(e,t){let n=qa(e,"a","atan2"),r=qa(t,"b","atan2");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(st,a)}}),ml=Za({atanh_:function(e){const t={x:qa(e,"x","atanh")};return Wa.runKernel(at,t)}});function gl(e,t,n,r,a="NHWC",s){return vl(e,[...t,e[3]],n,s,r,null,null,Il(a))}function yl(e,t,n,r,a,s,i="channelsLast"){const[o,l]=xl(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 vl(e,u,n,r,a,s,!1,i)}function bl(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=kl(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 wl(e,c,n,r,a,!1,h,s)}function vl(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]=xl(n),[y,b]=xl(r),v=El(f,y),w=El(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=_l(e,t,n));const s=e[1];return[Cl((e[0]-t+2*r)/n+1,a),Cl((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=Cl((t-s+f+d)/r+1,o),h=Cl((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 wl(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]=kl(n),[w,_,x]=kl(r),k=El(d,w),E=El(p,_),C=El(m,x),{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=_l(e,t,r));const i=e[1],o=e[2];return[Cl((e[0]-t+2*a)/r+1,s),Cl((i-t+2*a)/r+1,s),Cl((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:_,dilationWidth:x,inShape:e,outShape:T,filterShape:t}}function _l(e,t,n,r=1){const a=El(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function xl(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function kl(e){return"number"==typeof e?[e,e,e]:e}function El(e,t){return t<=1?e:e+(e-1)*(t-1)}function Cl(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 Sl(e){const[t,n,r]=xl(e);return 1===t&&1===n&&1===r}function Nl(e,t){return Sl(e)||Sl(t)}function Il(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const Al=Za({reshape_:function(e,t){const n={x:qa(e,"x","reshape","string_or_numeric")},r={shape:t};return Wa.runKernel(er,n,r)}}),Dl=Za({avgPool_:function(e,t,n,r,a){const s=qa(e,"x","avgPool","float32");Q(Nl(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=Al(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=Wa.runKernel(it,l,u);return c=Ks(c,s.dtype),o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Tl=Za({avgPool3d_:function(e,t,n,r,a,s="NDHWC"){const i=qa(e,"x","avgPool3d","float32");let o=i,l=!1;4===i.rank&&(l=!0,o=Al(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=Wa.runKernel(lt,u,c);return h=Ks(h,o.dtype),l?Al(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),Fl=Za({concat_:function(e,t=0){Q(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ya(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 qs(n[0]);const r=n,a={axis:t};return Wa.runKernel(vt,r,a)}}),Rl=Za({sigmoid_:function(e){const t={x:qa(e,"x","sigmoid")};return Wa.runKernel(gr,t)}}),Ol=Za({slice_:function(e,t,n){const r=qa(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 Wa.runKernel(fr,a,s)}}),Ml=Za({tanh_:function(e){const t={x:qa(e,"x","tanh")};return Wa.runKernel(Tr,t)}}),Bl=Za({basicLSTMCell_:function(e,t,n,r,a,s){const i=qa(e,"forgetBias","basicLSTMCell"),o=qa(t,"lstmKernel","basicLSTMCell"),l=qa(n,"lstmBias","basicLSTMCell"),u=qa(r,"data","basicLSTMCell"),c=qa(a,"c","basicLSTMCell"),h=qa(s,"h","basicLSTMCell"),f=Fl([u,h],1),d=pi(f,o),p=No(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=Ol(p,[0,0],y),v=Ol(p,[0,g],y),w=Ol(p,[0,2*g],y),_=Ol(p,[0,3*g],y),x=No(Do(Rl(b),Ml(v)),Do(c,Rl(No(i,w))));return[x,Do(Ml(x),Rl(_))]}}),$l=Za({batchToSpaceND_:function(e,t,n){const r=qa(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 Wa.runKernel(ht,s,i)}}),Pl=Za({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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?Al(e,[1,1,1,e.size]):2===e.rank?Al(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?Al(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=Wa.runKernel(Qt,h,f);return Al(d,i.shape)}}),Ll=Za({batchNorm2d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),zl=Za({batchNorm3d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),Wl=Za({batchNorm4d_:function(e,t,n,r,a,s){const i=qa(e,"x","batchNorm"),o=qa(t,"mean","batchNorm"),l=qa(n,"variance","batchNorm");let u,c;return null!=a&&(u=qa(a,"scale","batchNorm")),null!=r&&(c=qa(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}.`)),Pl(i,o,l,c,u,s)}}),Ul=Za({bincount_:function(e,t,n){const r=qa(e,"x","bincount"),a=qa(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 Wa.runKernel(ft,s,i)}}),Vl=Za({broadcastTo_:function(e,t){let n=qa(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 qs(n);const i={x:n},o={reps:s};return Wa.runKernel(Fr,i,o)}}),jl=Za({ceil_:function(e){const t={x:qa(e,"x","ceil")};return Wa.runKernel(mt,t)}}),Hl=Za({clipByValue_:function(e,t,n){const r=qa(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 Wa.runKernel(gt,a,s)}}),Gl=Za({concat1d_:function(e){return Fl(e,0)}}),Xl=Za({concat2d_:function(e,t){return Fl(e,t)}}),Kl=Za({concat3d_:function(e,t){return Fl(e,t)}}),ql=Za({concat4d_:function(e,t){return Fl(e,t)}}),Yl=Za({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=qa(e,"x","conv2d"),l=qa(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Al(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(Nl(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=Wa.runKernel(wt,f,d);return c?Al(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Jl=Za({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=qa(e,"x","conv1d"),l=qa(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=Al(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(Nl(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=Al(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=Al(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=Yl(f,h,[1,n],r,"NHWC",[1,s],i);return Al(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Zl=Za({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=Al(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=Wa.runKernel(xt,f,d);return u?Al(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Ql=Za({conv2dTranspose_:function(e,t,n,r,a,s){const i=qa(e,"x","conv2dTranspose"),o=qa(t,"filter","conv2dTranspose");return Zl(n,i,o,r,a,"NHWC",s)}}),eu=Za({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=qa(e,"x","conv3d"),o=qa(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=Al(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(Nl(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=Wa.runKernel(kt,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),tu=Za({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=Al(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=Wa.runKernel(Ct,c,h);return o?Al(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),nu=Za({conv3dTranspose_:function(e,t,n,r,a){const s=qa(e,"x","conv3dTranspose"),i=qa(t,"filter","conv3dTranspose");return tu(n,s,i,r,a)}}),ru=Za({cos_:function(e){const t={x:qa(e,"x","cos")};return Wa.runKernel(St,t)}}),au=Za({cosh_:function(e){const t={x:qa(e,"x","cosh")};return Wa.runKernel(Nt,t)}}),su=Za({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:qa(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return Wa.runKernel(It,a,s)}}),iu=Za({denseBincount_:function(e,t,n,r=!1){const a=qa(e,"x","denseBincount"),s=qa(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 Wa.runKernel(Dt,i,o)}}),ou=Za({depthToSpace_:function(e,t,n="NHWC"){const r=qa(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 Wa.runKernel(Tt,o,l)}}),lu=Za({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=qa(e,"x","depthwiseConv2d"),l=qa(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Al(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=Wa.runKernel(Ft,h,f);return c?Al(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),uu=Za({diag_:function(e){const t={x:qa(e,"x","diag")};return Wa.runKernel(Mt,t)}}),cu=Za({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=qa(e,"x","dilation2d"),o=qa(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=Al(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=Wa.runKernel(Bt,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),hu=Za({equal_:function(e,t){let n=qa(e,"a","equal"),r=qa(t,"b","equal");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(jt,a)}}),fu=Za({where_:function(e,t,n){const r=qa(t,"a","where"),a=qa(n,"b","where"),s=qa(e,"condition","where","bool"),i=Zo(Zo(s.shape,r.shape),a.shape),o={condition:Vl(s,i),t:Vl(r,i),e:Vl(a,i)};return Wa.runKernel(cr,o)}}),du=Za({divNoNan_:function(e,t){let n=qa(e,"a","div"),r=qa(t,"b","div");[n,r]=Fa(n,r);const a=Ao(n,r),s=Ro(a),i=hu(r,s);return fu(i,s,a)}}),pu=Za({dot_:function(e,t){const n=qa(e,"t1","dot"),r=qa(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=Al(n,[1,-1]),t=Al(r,[-1,1]),a=pi(e,t);return Al(a,[])}if(1===n.rank&&2===r.rank){const e=Al(n,[1,-1]),t=Al(r,[r.shape[0],r.shape[1]]),a=pi(e,t);return Al(a,[a.size])}if(2===n.rank&&1===r.rank){const e=Al(r,[-1,1]),t=pi(n,e);return Al(t,[t.size])}{const e=Al(r,[r.shape[0],r.shape[1]]);return pi(n,e)}}}),mu=Za({einsum_:function(e,...t){const n=t.map(((e,t)=>qa(e,`tensors${t}`,"einsum"))),r={equation:e};return Wa.runKernel(zt,n,r)}}),gu=Za({elu_:function(e){const t={x:qa(e,"x","elu")};return Wa.runKernel(Wt,t)}}),yu=Za({erf_:function(e){let t=qa(e,"x","erf");Q("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=Ks(t,"float32"));const n={x:t};return Wa.runKernel(Vt,n)}}),bu=Za({exp_:function(e){const t={x:qa(e,"x","exp")};return Wa.runKernel(Ht,t)}}),vu=Za({expandDims_:function(e,t=0){const n=qa(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 Wa.runKernel(Gt,r,a)}}),wu=Za({expm1_:function(e){const t={x:qa(e,"x","expm1")};return Wa.runKernel(Xt,t)}}),_u=Za({tile_:function(e,t){const n=qa(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 Wa.runKernel(Fr,r,a)}}),xu=Za({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Xs([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=Al(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=Wa.runKernel(_n,l,u);return o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Bu=Za({log_:function(e){const t={x:qa(e,"x","log")};return Wa.runKernel(mn,t)}}),$u=Za({log1p_:function(e){const t={x:qa(e,"x","log1p")};return Wa.runKernel(gn,t)}}),Pu=Za({neg_:function(e){const t={x:qa(e,"x","neg")};return Wa.runKernel($n,t)}}),Lu=Za({softplus_:function(e){const t={x:qa(e,"x","softplus")};return Wa.runKernel(yr,t)}}),zu=Za({logSigmoid_:function(e){const t=qa(e,"x","logSigmoid");return Lo((e=>({value:Pu(Lu(Pu(e))),gradFunc:t=>Do(t,Rl(Pu(e)))})))(t)}}),Wu=Za({max_:function(e,t=null,n=!1){const r={x:qa(e,"x","max")},a={reductionIndices:t,keepDims:n};return Wa.runKernel(kn,r,a)}}),Uu=Za({sum_:function(e,t=null,n=!1){let r=qa(e,"x","sum");"bool"===r.dtype&&(r=Ks(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Wa.runKernel(vr,a,s)}}),Vu=Za({logSoftmax_:function(e,t=-1){const n=qa(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 Lo(((e,n)=>{const r=Wu(e,t,!0),a=Xo(e,r),s=Xo(Ks(a,"float32"),Bu(Uu(bu(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=bu(r);return Xo(e,Do(Uu(e,t,!0),a))}}}))(n)}});function ju(e,t){for(let n=0;ne[t]))]}function Xu(e,t){return Hu(e,t.map((e=>1)),t)}function Ku(e,t,n){Q(ju(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function qu(e,t){if(ju(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Yu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Ju(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Q(Nl(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=Wa.runKernel(Cn,l,u);return o?Al(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),ac=Za({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC"){const i=qa(e,"x","maxPool3d");let o=i,l=!1;4===i.rank&&(l=!0,o=Al(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=Wa.runKernel(Nn,u,c);return l?Al(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),sc=Za({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:qa(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=Wa.runKernel(An,s,i);return{result:o[0],indexes:o[1]}}}),ic=Za({mean_:function(e,t=null,n=!1){const r={x:qa(e,"x","mean")},a={axis:t,keepDims:n};return Wa.runKernel(Dn,r,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 Wa.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 Wa.makeTensor(n,e,t)}function uc(e,t,{indexing:n="xy"}={}){if("xy"!==n&&"ij"!==n)throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(void 0===e)return[];let r=qa(e,"x","meshgrid",e instanceof _a?e.dtype:"float32");if(void 0===t)return[r];let a=qa(t,"y","meshgrid",t instanceof _a?t.dtype:"float32");const s=re(r.shape),i=re(a.shape);return"xy"===n?(r=Al(r,[1,-1]),a=Al(a,[-1,1]),[pi(lc([i,1],r.dtype),r),pi(a,lc([1,s],a.dtype))]):(r=Al(r,[-1,1]),a=Al(a,[1,-1]),[pi(r,lc([1,i],r.dtype)),pi(lc([s,1],a.dtype),a)])}const cc=Za({min_:function(e,t=null,n=!1){const r={x:qa(e,"x","min")},a={axis:t,keepDims:n};return Wa.runKernel(Tn,r,a)}}),hc=Za({minimum_:function(e,t){let n=qa(e,"a","minimum"),r=qa(t,"b","minimum");[n,r]=Fa(n,r),"bool"===n.dtype&&(n=Ks(n,"int32"),r=Ks(r,"int32")),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Fn,a)}}),fc=Za({mirrorPad_:function(e,t,n){Q("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=qa(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 Wa.runKernel(Rn,i,s)}}),dc=Za({mod_:function(e,t){let n=qa(e,"a","mod"),r=qa(t,"b","mod");[n,r]=Fa(n,r);const a={a:n,b:r};return Wa.runKernel(On,a)}}),pc=Za({moments_:function(e,t=null,n=!1){const r=de(t,(e=qa(e,"x","moments")).shape),a=ic(e,r,n);let s=a.shape;n||(s=Xu(a.shape,r));const i=Fo(Xo(Ks(e,"float32"),Al(a,s)));return{mean:a,variance:ic(i,r,n)}}}),mc=Za({multiRNNCell_:function(e,t,n,r){const a=qa(t,"data","multiRNNCell"),s=Ya(n,"c","multiRNNCell"),i=Ya(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?Al(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=Wa.runKernel(Mn,o,l);return 1===i?Al(u,[u.size]):u}}),yc=Za({notEqual_:function(e,t){let n=qa(e,"a","notEqual"),r=qa(t,"b","notEqual");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Pn,a)}}),bc=Za({onesLike_:function(e){const t={x:qa(e,"x","onesLike")};return Wa.runKernel(Un,t)}}),vc=Za({outerProduct_:function(e,t){const n=qa(e,"v1","outerProduct"),r=qa(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=Al(n,[-1,1]),s=Al(r,[1,-1]);return pi(a,s)}}),wc=Za({pad_:function(e,t,n=0){const r=qa(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 Wa.runKernel(Hn,s,a)}}),_c=Za({pad1d_:function(e,t,n=0){return Q(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),wc(e,[t],n)}}),xc=Za({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.")),wc(e,t,n)}}),kc=Za({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.")),wc(e,t,n)}}),Ec=Za({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.")),wc(e,t,n)}}),Cc=Za({spaceToBatchND_:function(e,t,n){const r=qa(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 Wa.runKernel(wr,a,s)}}),Sc=Za({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=qa(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=Al(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Q(Nl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=yl(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:Cc(o,c,d),y=("avg"===n?()=>Dl(g,t,s,m):()=>rc(g,t,s,m))(),b=f?y:$l(y,c,p);return l?Al(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),Nc=Za({prelu_:function(e,t){const n={x:qa(e,"x","prelu"),alpha:qa(t,"alpha","prelu")};return Wa.runKernel(Kn,n)}}),Ic=Za({prod_:function(e,t=null,n=!1){let r=qa(e,"x","prod");"bool"===r.dtype&&(r=Ks(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Wa.runKernel(qn,a,s)}}),Ac=Za({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 Fc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=Dc.alea(a.toString()),this.randn=new Tc(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=Dc.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Oc=Za({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 Fc(t,n,r,a),i=Xs(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Uc(t,0)}}),jc=Za({reverse2d_:function(e,t){const n=qa(e,"x","reverse");return Q(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Uc(n,t)}}),Hc=Za({reverse3d_:function(e,t){const n=qa(e,"x","reverse");return Q(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Uc(n,t)}}),Gc=Za({reverse4d_:function(e,t){const n=qa(e,"x","reverse");return Q(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Uc(n,t)}}),Xc=Za({round_:function(e){const t={x:qa(e,"x","round")};return Wa.runKernel(or,t)}}),Kc=Za({rsqrt_:function(e){const t={x:qa(e,"x","rsqrt")};return Wa.runKernel(lr,t)}}),qc=Za({selu_:function(e){const t={x:qa(e,"x","selu")};return Wa.runKernel(hr,t)}}),Yc=Za({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=qa(e,"x","separableConv2d"),l=qa(t,"depthwiseFilter","separableConv2d"),u=qa(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=Al(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=lu(c,l,r,a,i,s),m=Yl(p,u,1,"valid",i);return h?Al(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Jc=async function(e,t){const n=qa(e,"x","setdiff1d"),r=qa(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`)),Ol(r,[t],[n])}}),nh=Za({slice2d_:function(e,t,n){const r=qa(e,"x","slice2d");return Q(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),rh=Za({slice3d_:function(e,t,n){const r=qa(e,"x","slice3d");return Q(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),ah=Za({slice4d_:function(e,t,n){const r=qa(e,"x","slice4d");return Q(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),Ol(r,t,n)}}),sh=Za({softmax_:function(e,t=-1){const n=qa(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 Wa.runKernel(xr,r,a)}}),ih=Za({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 Wa.runKernel(Kt,t)}}),oh=Za({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 Wa.runKernel(sn,t)}}),lh=Za({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=Al(e,[n,t]);r=oh(a)}else{const a=[n,2*(t-1)],s=Al(Pc(e),[n,t]),i=Al(Nu(e),[n,t]),o=Uc(Ol(s,[0,1],[n,t-2]),1),l=Do(Uc(Ol(i,[0,1],[n,t-2]),1),Wo(-1)),u=Fl([s,o],1),c=Fl([i,l],1),h=Al(Qa(u,c),[a[0],a[1]]);r=oh(h)}if(r=Pc(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=Al(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),uh=Za({split_:function(e,t,n=0){const r={x:qa(e,"x","split")},a={numOrSizeSplits:t,axis:n};return Wa.runKernel(_r,r,a)}}),ch=Za({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=Ol(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=Fl([e,oc(r)],e.shape.length-1),n=t}else a=e;const s=Ro(a),i=Al(Qa(a,s),[r,n]),o=ih(i),l=Math.floor(n/2)+1,u=Pc(o),c=Nu(o),h=uh(u,[l,n-l],u.shape.length-1),f=uh(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,Al(Qa(h[0],f[0]),d)}}),hh=Za({squaredDifference_:function(e,t){let n=qa(e,"a","squaredDifference"),r=qa(t,"b","squaredDifference");[n,r]=Fa(n,r),Zo(n.shape,r.shape);const a={a:n,b:r};return Wa.runKernel(Sr,a,{})}}),fh=Za({squeeze_:function(e,t){const n=qa(e,"x","squeeze");return Al(n,pe(n.shape,t).newShape)}}),dh=Za({stack_:function(e,t=0){const n=Ya(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 Wa.runKernel(jn,r,a)}}),ph=Za({step_:function(e,t=0){const n={x:qa(e,"x","step")},r={alpha:t};return Wa.runKernel(zr,n,r)}}),mh=Za({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:qa(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return Wa.runKernel(Ir,u,c)}}),gh=Za({tan_:function(e){const t={x:qa(e,"x","tan")};return Wa.runKernel(Dr,t)}});function yh(e,t){te(e);const n=Ga(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return es(e,null,n,t)}function bh(e,t,n){if(te(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Ga(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 es(e,t,r,n)}function vh(e,t,n){if(te(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Ga(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 es(e,t,r,n)}function wh(e,t,n){if(te(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Ga(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 es(e,t,r,n)}function _h(e,t,n){if(te(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Ga(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 es(e,t=t||r,r,n)}const xh=Za({topk_:function(e,t=1,n=!0){const r=qa(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]=Wa.runKernel(Rr,s,i);return{values:o,indices:l}}}),kh=Za({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new Tc(t,n,r,!0,a),i=Xs(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=Wa.runKernel(Br,r,a);return{values:s,indices:i}}}),Ch=Za({unsortedSegmentSum_:function(e,t,n){const r=qa(e,"x","unsortedSegmentSum"),a=qa(t,"segmentIds","unsortedSegmentSum","int32");Q(ie(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return Wa.runKernel(Pr,s,i)}}),Sh=Za({unstack_:function(e,t=0){const n=qa(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 Wa.runKernel($r,r,a)}});function Nh(e,t=!0,n,r){return Wa.makeVariable(e,t,n,r)}function Ih(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=Wo(1),u=Xo(l,o);let c=Do(Xo(i,s),u);if(a){Q(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=qa(r,"step","movingAverage");c=Ao(c,Xo(l,Go(o,e)))}return No(s,c)}}),Oh=Za({scatterND_:function(e,t,n){const r=qa(e,"indices","scatterND","int32"),a=qa(t,"updates","scatterND");Si(a,r,n);const s={indices:r,updates:a},i={shape:n};return Wa.runKernel(ur,s,i)}}),Mh=Za({sparseToDense_:function(e,t,n,r=0){const a=qa(e,"sparseIndices","sparseToDense","int32"),s=qa(t,"sparseValues","sparseToDense"),i=qa(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 Wa.runKernel(Cr,o,l)}}),Bh=Za({gatherND_:function(e,t){const n=qa(t,"indices","gatherND","int32"),r={params:qa(e,"x","gatherND"),indices:n};return Wa.runKernel(tn,r)}}),$h=Za({dropout_:function(e,t,n,r){const a=qa(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 _a?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 Wa.runKernel(_t,h,f)}});function Uh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return Do(e,ph(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Vh(e,t){let n=t;const r=Jo(e.shape,t.shape);return r.length>0&&(n=Uu(n,r)),Al(n,e.shape)}function jh(e,t,n,r){if("linear"===t)return e;if("relu"===t)return zc(e);if("elu"===t)return gu(e);if("relu6"===t)return Wc(e);if("prelu"===t)return Nc(e,n);if("leakyrelu"===t)return Tu(e,r);if("sigmoid"===t)return Rl(e);throw new Error(`Unknown fused activation ${t}.`)}const Hh=(e,t)=>!(e>0)||"linear"===t,Gh=Za({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===Hh(Wa.state.gradientDepth,l)){let h=Yl(e,t,n,r,a,s,i);return null!=o&&(h=No(h,o)),jh(h,l,u,c)}const h=qa(e,"x","conv2d"),f=qa(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Al(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(Nl(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=vl(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=qa(o,"bias","fused conv2d"),[g]=Fa(g,h),Zo(m.outShape,g.shape)),null!=u&&(y=qa(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Uh(e,o,l);Q(Sl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Zl(i.shape,c,a,n,r),Wh(i,c,a.shape,n,r)];if(null!=u){const e=Vh(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?Lo(((e,t,n)=>{let r=Wa.runKernel(jr,v,w);return n([t,e,r]),p&&(r=Al(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Lo(((e,t,n,r)=>{let a=Wa.runKernel(jr,v,w);return r([t,e,a,n]),p&&(a=Al(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Xh=Za({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=Al(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=Al(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 Wa.runKernel(Rt,u,c)}}),Kh=Za({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=Al(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=Wa.runKernel(Ot,u,c);return l?Al(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),qh=Za({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===Hh(Wa.state.gradientDepth,l)){let h=lu(e,t,n,r,a,s,i);return null!=o&&(h=No(h,o)),jh(h,l,u,c)}const h=qa(e,"x","depthwiseConv2d"),f=qa(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Al(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(Nl(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=vl(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=qa(o,"bias","fused conv2d"),[g]=Fa(g,h),Zo(m.outShape,g.shape)),null!=u&&(y=qa(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Q(Sl(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=Uh(e,u,l),f=Kh(o.shape,h,a,n,r,s,i),d=Xh(o,h,a.shape,n,r,s,i);return null!=c?[f,d,Vh(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?Lo(((e,t,n)=>{let r=Wa.runKernel(Hr,v,w);return n([t,e,r]),p&&(r=Al(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Lo(((e,t,n,r)=>{let a=Wa.runKernel(Hr,v,w);return r([t,e,a,n]),p&&(a=Al(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Yh=Za({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Hh(Wa.state.gradientDepth,s)){let l=pi(e,t,n,r);return null!=a&&(l=No(l,a)),jh(l,s,i,o)}let l=qa(e,"a","fused matMul"),u=qa(t,"b","fused matMul");[l,u]=Fa(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=Al(l,n?[g,c,f]:[g,f,c]),w=Al(u,r?[y,d,h]:[y,h,d]);let _,x;null!=a&&(_=qa(a,"bias","fused matMul"),[_]=Fa(_,l),Zo(b,_.shape)),null!=i&&(x=qa(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Uh(Al(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=pi(c,o,!1,!1),f=pi(c,i,!0,!1)):n&&!r?(h=pi(o,c,!1,!0),f=pi(i,c,!1,!1)):(h=pi(o,c,!0,!0),f=pi(c,i,!0,!0)):(h=pi(c,o,!1,!0),f=pi(i,c,!0,!1)),null!=a?[h,f,Vh(u,c)]:[h,f]},E={a:v,b:w,bias:_,preluActivationWeights:x},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Lo(((e,t,n)=>{const r=Wa.runKernel(Vr,E,C);return n([e,t,r]),{value:Al(r,b),gradFunc:k}}))(v,w):Lo(((e,t,n,r)=>{const a=Wa.runKernel(Vr,E,C);return r([e,t,a,n]),{value:Al(a,b),gradFunc:k}}))(v,w,_)}}),Jh=Za({hammingWindow_:function(e){return Lh(e,.54,.46)}}),Zh=Za({hannWindow_:function(e){return Lh(e,.5,.5)}}),Qh=Za({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(Ol(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 Wa.runKernel(At,c,h)}}),nf=Za({flipLeftRight_:function(e){const t=qa(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 Wa.runKernel(Yt,n,{})}}),rf=Za({rotateWithOffset_:function(e,t,n=0,r=.5){const a=qa(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 Wa.runKernel(Ur,s,i)}});function af(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 sf=Za({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=qa(e,"boxes","nonMaxSuppression"),i=qa(t,"scores","nonMaxSuppression"),o=af(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return Wa.runKernel(Ln,{boxes:s,scores:i},l)}});function of(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||lf)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function lf(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(mf);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=df(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*pf(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&&of(u,t,mf))}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 df(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 pf(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function mf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const gf=Za({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=qa(e,"boxes","nonMaxSuppression"),o=qa(t,"scores","nonMaxSuppression"),l=af(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=Wa.runKernel(Wn,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),yf=Za({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=qa(e,"boxes","nonMaxSuppression"),o=qa(t,"scores","nonMaxSuppression"),l=af(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=Wa.runKernel(zn,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),bf=Za({resizeBilinear_:function(e,t,n=!1,r=!1){const a=qa(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=Al(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Wa.runKernel(rr,o,l);return i?Al(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),vf=Za({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=qa(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=Al(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Wa.runKernel(tr,o,l);return i?Al(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),wf=Za({threshold_:function(e,t="binary",n=!1,r=.5){const a=qa(e,"image","threshold"),s=a.shape[0]*a.shape[1];let i,o,l,u,c=Do(yh([r]),255);if(Q(3===a.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${a.rank}.`)),Q(3===a.shape[2]||1===a.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${a.shape[2]}.`)),Q("int32"===a.dtype||"float32"===a.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${a.dtype}.`)),Q("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===a.shape[2]){[i,o,l]=uh(a,[1,1,1],-1);const e=Do(i,.2989),t=Do(o,.587),n=Do(l,.114);u=No(No(e,t),n)}else u=e;"otsu"===t&&(c=function(e,t){let n,r,a,s,i,o,l=yh([-1]),u=yh([0]),c=yh([0]);for(let h=0;h`Error in transform: image must be rank 4,but got rank ${i.rank}.`)),Q(2===o.rank&&(o.shape[0]===i.shape[0]||1===o.shape[0])&&8===o.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),Q(null==s||2===s.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`));const l={image:i,transforms:o},u={interpolation:n,fillMode:r,fillValue:a,outputShape:s};return Wa.runKernel(Or,l,u)}}),xf=Za({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=qa(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=Al($c(0,s,1,"int32"),[-1,1]),l=$c(0,i,1,"int32"),u=Xo(o,l),c=Qu(Ru(u,Wo(+t,"int32")),Su(u,Wo(-n,"int32"))),h=oc([s,i],r.dtype);return Al(dh(Sh(Al(r,[-1,s,i])).map((e=>fu(c,e,h)))),a)}}),kf=Za({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=uh(e,e.shape[0],0).map((e=>fh(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=xu(n),s=qs(e);const i=bh([[1]],[1,1]);let o=qs(i);const l=n>=r?r:n;for(let e=0;e{const t=Ol(s,[e,e],[n-e,1]),l=Fh(t),u=Ol(s,[e,e],[1,1]),c=fu(Cu(u,0),bh([[-1]]),bh([[1]])),h=Xo(u,Do(c,l)),f=Ao(t,h);o=1===f.shape[0]?qs(i):Fl([i,Ol(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Pu(Ao(pi(c,h),l)),p=Ol(s,[e,0],[n-e,r]),m=Do(d,o),g=gi(o);if(0===e)s=Xo(p,pi(m,pi(g,p)));else{const t=Xo(p,pi(m,pi(g,p)));s=Fl([Ol(s,[0,0],[e,r]),t],0)}const y=gi(m),b=Ol(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=Xo(b,pi(pi(b,o),y));else{const t=Xo(b,pi(pi(b,o),y));a=Fl([Ol(a,[0,0],[n,e]),t],1)}return[o,s,a]})),mo([t,l,u])}return!t&&n>r&&(a=Ol(a,[0,0],[n,r]),s=Ol(s,[0,0],[r,r])),[a,s]}))}const Cf=Za({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 Ef(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=Sh(Al(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=Ef(e,t);a.push(n),s.push(r)})),[Al(dh(a,0),e.shape),Al(dh(s,0),e.shape)]}}});var Sf;!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"}(Sf||(Sf={}));const Nf=Za({computeWeightedLoss_:function(e,t,n=Sf.SUM_BY_NONZERO_WEIGHTS){const r=qa(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=qa(t,"weights","computeWeightedLoss"));const s=null==a?r:Do(r,a);if(n===Sf.NONE)return s;if(n===Sf.SUM)return Uu(s);if(n===Sf.MEAN){if(null==a)return ic(s);{const e=r.size/a.size,t=Ao(Uu(s),Uu(a));return e>1?Ao(t,Wo(e)):t}}if(n===Sf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return Ao(Uu(s),Wo(r.size));{const e=Do(a,lc(r.shape)),t=Ks(Uu(yc(e,Wo(0))),"float32");return Ao(Uu(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),If=Za({absoluteDifference_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){const a=qa(e,"labels","absoluteDifference"),s=qa(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=qa(n,"weights","absoluteDifference")),ee(a.shape,s.shape,"Error in absoluteDifference: ");const o=qo(Xo(a,s));return Nf(o,i,r)}}),Af=Za({cosineDistance_:function(e,t,n,r,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","cosineDistance"),i=qa(t,"predictions","cosineDistance");let o=null;null!=r&&(o=qa(r,"weights","cosineDistance")),ee(s.shape,i.shape,"Error in cosineDistance: ");const l=Wo(1),u=Xo(l,Uu(Do(s,i),n,!0));return Nf(u,o,a)}}),Df=Za({hingeLoss_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){let a=qa(e,"labels","hingeLoss");const s=qa(t,"predictions","hingeLoss");let i=null;null!=n&&(i=qa(n,"weights","hingeLoss")),ee(a.shape,s.shape,"Error in hingeLoss: ");const o=Wo(1);a=Xo(Do(Wo(2),a),o);const l=zc(Xo(o,Do(a,s)));return Nf(l,i,r)}}),Tf=Za({huberLoss_:function(e,t,n,r=1,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","huberLoss"),i=qa(t,"predictions","huberLoss");let o=null;null!=n&&(o=qa(n,"weights","huberLoss")),ee(s.shape,i.shape,"Error in huberLoss: ");const l=Wo(r),u=qo(Xo(i,s)),c=hc(u,l),h=Xo(u,c),f=No(Do(Wo(.5),Fo(c)),Do(l,h));return Nf(f,o,a)}}),Ff=Za({logLoss_:function(e,t,n,r=1e-7,a=Sf.SUM_BY_NONZERO_WEIGHTS){const s=qa(e,"labels","logLoss"),i=qa(t,"predictions","logLoss");let o=null;null!=n&&(o=qa(n,"weights","logLoss")),ee(s.shape,i.shape,"Error in logLoss: ");const l=Wo(1),u=Wo(r),c=Pu(Do(s,Bu(No(i,u)))),h=Do(Xo(l,s),Bu(No(Xo(l,i),u))),f=Xo(c,h);return Nf(f,o,a)}}),Rf=Za({meanSquaredError_:function(e,t,n,r=Sf.SUM_BY_NONZERO_WEIGHTS){const a=qa(e,"labels","meanSquaredError"),s=qa(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=qa(n,"weights","meanSquaredError")),ee(a.shape,s.shape,"Error in meanSquaredError: ");const o=hh(a,s);return Nf(o,i,r)}}),Of=Za({sigmoidCrossEntropy_:function(e,t,n,r=0,a=Sf.SUM_BY_NONZERO_WEIGHTS){let s=qa(e,"multiClassLabels","sigmoidCrossEntropy");const i=qa(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=qa(n,"weights","sigmoidCrossEntropy")),ee(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=Wo(r),t=Wo(1),n=Wo(.5);s=No(Do(s,Xo(t,e)),Do(n,e))}const l=function(e,t){const n=qa(e,"labels","sigmoidCrossEntropyWithLogits"),r=qa(t,"logits","sigmoidCrossEntropyWithLogits");ee(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=zc(r),s=Do(r,n),i=$u(bu(Pu(qo(r))));return No(Xo(a,s),i)}(s,i);return Nf(l,o,a)}}),Mf=Za({softmaxCrossEntropy_:function(e,t,n,r=0,a=Sf.SUM_BY_NONZERO_WEIGHTS){let s=qa(e,"onehotLabels","softmaxCrossEntropy");const i=qa(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=qa(n,"weights","softmaxCrossEntropy")),ee(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=Wo(r),t=Wo(1),n=Wo(s.shape[1]);s=No(Do(s,Xo(t,e)),Ao(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 Lo(((e,t,r)=>{const a=Zu(t,[n],!0),s=Xo(Ks(t,"float32"),a);r([e,s]);const i=Pu(Do(s,e));return{value:Uu(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Xu(e.shape,[n]);return[Do(Al(e,s),Xo(Ks(r,"float32"),bu(a))),Do(Al(e,s),Xo(bu(a),Ks(r,"float32")))]}}}))(e,t)}(s,i);return Nf(l,o,a)}}),Bf=Za({sparseFillEmptyRows_:function(e,t,n,r){const a=qa(e,"indices","sparseFillEmptyRows"),s=qa(t,"values","sparseFillEmptyRows"),i=qa(n,"denseShape","sparseFillEmptyRows"),o=qa(r,"defaultValue","sparseFillEmptyRows",s.dtype);if(2!==a.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${a.shape}`);if(1!==s.rank)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(0!==o.rank)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);const l={indices:a,values:s,denseShape:i,defaultValue:o},u=Wa.runKernel(kr,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}}),$f=Za({sparseReshape_:function(e,t,n){const r=qa(e,"inputIndices","sparseReshape"),a=qa(t,"inputShape","sparseReshape"),s=qa(n,"newShape","sparseReshape");if(2!==r.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==a.rank)throw new Error(`Input shape should be Tensor1D but received shape ${a.shape}`);if(1!==s.rank)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);const i={inputIndices:r,inputShape:a,newShape:s},o=Wa.runKernel(Er,i);return{outputIndices:o[0],outputShape:o[1]}}}),Pf={fft:ih,ifft:oh,rfft:ch,irfft:lh},Lf={hammingWindow:Jh,hannWindow:Zh,frame:Qh,stft:ef},zf={flipLeftRight:nf,resizeNearestNeighbor:vf,resizeBilinear:bf,rotateWithOffset:rf,cropAndResize:tf,nonMaxSuppression:sf,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=qa(e,"boxes","nonMaxSuppressionAsync"),i=qa(t,"scores","nonMaxSuppressionAsync"),o=af(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}=uf(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),yh(h,"int32")},nonMaxSuppressionWithScore:gf,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=qa(e,"boxes","nonMaxSuppressionAsync"),o=qa(t,"scores","nonMaxSuppressionAsync"),l=af(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}=hf(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:yh(f,"int32"),selectedScores:yh(d)}},nonMaxSuppressionPadded:yf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=qa(e,"boxes","nonMaxSuppressionAsync"),o=qa(t,"scores","nonMaxSuppressionAsync"),l=af(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}=cf(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:yh(p,"int32"),validOutputs:Wo(m,"int32")}},threshold:wf,transform:_f},Wf={bandPart:xf,gramSchmidt:kf,qr:Cf},Uf={absoluteDifference:If,computeWeightedLoss:Nf,cosineDistance:Af,hingeLoss:Df,huberLoss:Tf,logLoss:Ff,meanSquaredError:Rf,sigmoidCrossEntropy:Of,softmaxCrossEntropy:Mf},Vf={sparseFillEmptyRows:Bf,sparseReshape:$f};class jf{static sgd(e){return new tl(e)}static momentum(e,t,n=!1){return new nl(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new rl(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new Ko(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Vo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new el(e,t,n,r,a)}static adagrad(e,t=.1){return new Ho(e,t)}}const Hf={sgd:jf.sgd,momentum:jf.momentum,adadelta:jf.adadelta,adagrad:jf.adagrad,rmsprop:jf.rmsprop,adamax:jf.adamax,adam:jf.adam},Gf="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Xf(){return new Promise((e=>Gf((()=>e()))))}function Kf(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 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 td(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n/g;function kd(e,t){const n=((e=e.replace(/\s/g,"")).length-e.replace(xd,"").length)/"->".length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error('Equation must contain exactly one arrow ("->").');const[r,a]=e.split("->");Q(-1===r.indexOf("..."),(()=>'The ellipsis notation ("...") is not supported yet.'));const s=r.split(","),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const o=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===o.indexOf(t)&&o.push(t)}for(let e=0;e-1!==e)),{permutationIndices:n,expandDims:r}}function Cd(e,t,n){const r=new Array(e);for(let e=0;e`Expected dimension ${r[t[e][n]]} at axis ${n} of input shaped ${JSON.stringify(a)}, but got dimension ${a[n]}`))}}function Sd(e,t){const n=e,r=[];let a=0;0===e.length&&n.push(-1),a=e.length+1;for(let e=0;ee===t))}function Id(e,t){const n=[];for(let r=0;r"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 Dd(e,t){let n,r=!1;for(e<=Yf?(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 Td(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(nla(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Od(e){return e.map((e=>oa(e)))}const Md={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,ph(Ks(n,"float32"),-1))}}},Bd={kernelName:Xe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Fo(Ks(n,"float32")),r=To(Xo(Wo(1),t));return Pu(Ao(e,r))}}}},$d={kernelName:Ke,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=To(Xo(Fo(Ks(n,"float32")),1));return Ao(e,t)}}}},Pd={kernelName:qe,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{let t=e;const r=Jo(n.shape,a);return r.length>0&&(t=Uu(t,r)),Al(t,n.shape)},b:()=>{let t=e;const n=Jo(r.shape,a);return n.length>0&&(t=Uu(t,n)),Al(t,r.shape)}}}},Ld={kernelName:Ye,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},zd={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ro(n)}}},Wd={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ro(n)}}},Ud={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,To(Xo(Wo(1),Fo(Ks(n,"float32")))))}}},Vd={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=To(No(Wo(1),Fo(Ks(n,"float32"))));return Ao(e,t)}}}},jd={kernelName:st,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=No(Fo(n),Fo(r));let s=Do(e,Ao(r,t));const i=Jo(n.shape,a);return i.length>0&&(s=Uu(s,i)),Al(s,n.shape)},b:()=>{const t=No(Fo(n),Fo(r));let s=Pu(Do(e,Ao(n,t)));const i=Jo(r.shape,a);return i.length>0&&(s=Uu(s,i)),Al(s,r.shape)}}}},Hd={kernelName:rt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,No(Fo(Ks(n,"float32")),1))}}},Gd={kernelName:at,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Xo(Wo(1),Fo(Ks(n,"float32"))))}}},Xd=Za({avgPool3dGrad_:function(e,t,n,r,a,s){const i=qa(e,"dy","avgPool3dGrad"),o=qa(t,"input","avgPool3dGrad");let l=i,u=o,c=!1;4===o.rank&&(c=!0,l=Al(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=Al(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=Wa.runKernel(ut,h,f);return c?Al(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}}),Kd={kernelName:lt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>Xd(e,r,a,s,i,o)}}},qd=Za({avgPoolGrad_:function(e,t,n,r,a){const s=qa(e,"dy","avgPoolGrad"),i=qa(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=Al(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=Al(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=Wa.runKernel(ot,c,h);return u?Al(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Yd={kernelName:it,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>qd(e,r,a,s,i)}}},Jd={kernelName:ct,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>pi(e,a,!1,!1),b:()=>pi(e,r,!0,!1)}:s&&!i?{a:()=>pi(a,e,!1,!0),b:()=>pi(r,e,!1,!1)}:{a:()=>pi(a,e,!0,!0),b:()=>pi(e,r,!0,!0)}:{a:()=>pi(e,a,!1,!0),b:()=>pi(r,e,!0,!1)}}},Zd={kernelName:ht,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>Cc(e,r,a)}}},Qd={kernelName:dt,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:()=>Uu(e,o,!0)}}},ep={kernelName:pt,gradFunc:e=>({x:()=>e.clone()})},tp={kernelName:mt,gradFunc:e=>({x:()=>Ro(e)})},np={kernelName:gt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>fu(Qu(Su(r,a),Ru(r,s)),e,Ro(e))}}},rp={kernelName:bt,inputsToSave:["x"],gradFunc:Md.gradFunc},ap={kernelName:vt,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 uh(e,i,s).map((e=>()=>e))}},sp={kernelName:wt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Q(Sl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Zl(r.shape,e,a,i,o,l),filter:()=>Wh(r,e,a.shape,i,o,l)}}},ip={kernelName:xt,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Yl(e,a,s,i,o,1,l),filter:()=>Wh(e,r,a.shape,s,i,o,l)}}},op=Za({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=Al(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=Al(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 Wa.runKernel(Et,o,l)}}),lp={kernelName:kt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Q(Sl(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:()=>tu(i.shape,e,o,a,s),filter:()=>op(i,e,o.shape,a,s)}}},up={kernelName:St,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(Pu(Qc(Ks(n,"float32"))),e)}}},cp={kernelName:Nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(eh(Ks(n,"float32")),e)}}},hp={kernelName:It,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=qu([a],r.rank);let n=su(e,a,s,!i);return null!=t&&(n=gi(n,t)),n}}}},fp={kernelName:Ft,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Q(Sl(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(Nl(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:()=>Kh(l.shape,e,u,a,s,r,i),filter:()=>Xh(l,e,u.shape,a,s,r,i)}}},dp={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:()=>Wa.runKernel($t,s,n),filter:()=>Wa.runKernel(Pt,i,n)}}},pp={kernelName:Wt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>Wa.runKernel(Ut,r)}}},mp={kernelName:Vt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=Do(bu(Pu(Fo(n))),2/Math.sqrt(Math.PI));return{x:()=>Do(e,r)}}},gp={kernelName:Ht,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,n)}}},yp={kernelName:Gt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>Al(e,n.shape)}}},bp={kernelName:Xt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,bu(n))}}},vp={kernelName:Jt,gradFunc:e=>({x:()=>Ro(e)})},wp={kernelName:Zt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Ao(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{let t=Do(e,Ks(n,"float32"));const s=Jo(r.shape,a);s.length>0&&(t=Al(Uu(t,s),r.shape));const i=Fo(r);return Pu(Ao(t,Ks(i,"float32")))}}}},_p={kernelName:Qt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?Wo(1):o,u=Jo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?Al(Do(Do(e,_u(Al(d,[1,1,1,s.shape[0]]),c)),l),a.shape):Al(Do(Do(e,d),l),a.shape),mean:()=>{let e=Do(Do(d,Wo(-1)),f);return 1===s.rank&&(e=Uu(e,u)),Al(e,s.shape)},variance:()=>{let e=Do(Do(p,h),f);return 1===s.rank&&(e=Uu(e,u)),Al(e,s.shape)},scale:()=>{const t=Do(h,d);let n=Do(e,t);return 1===s.rank&&(n=Uu(n,u)),Al(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=Uu(t,u)),Al(t,s.shape)}}}},xp={kernelName:en,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=kp(0,l),f=kp(l+1,l+1+c),d=Ep([o,[n],u]),p=Al(e,d),m=Al(a,[n]),g=Ep([[l],h,f]),y=gi(p,g);let b=Ch(y,m,r.shape[i]);const v=Yu(g);return b=gi(b,v),b},indices:()=>a}}};function kp(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>Ro(n),b:()=>Ro(r)}}},Sp={kernelName:an,gradFunc:e=>({x:()=>Ks(e,"float32")})},Np={kernelName:ln,gradFunc:e=>({x:()=>Ro(e)})},Ip={kernelName:un,gradFunc:e=>({x:()=>Ro(e)})},Ap={kernelName:cn,gradFunc:e=>({x:()=>Ro(e)})},Dp={kernelName:hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=Cu(r,0);return{x:()=>fu(s,e,Do(e,a))}}},Tp={kernelName:gn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,No(n,1))}}},Fp={kernelName:mn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Ks(n,"float32"))}}},Rp={kernelName:wn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=bu(r);return Xo(e,Do(Uu(e,a,!0),t))}}}},Op=Za({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 Wa.runKernel(xn,o,l)}}),Mp={kernelName:_n,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>Op(r,a,e,s,i,o,l)}}};function Bp(e,t,n,r){return t.rankDo(e,Ks(hu(n,t),e.dtype))}}const $p={kernelName:kn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=Bp(e,t[1],s,de(a,s.shape));return{x:()=>i.x()}}},Pp={kernelName:En,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>Do(e,Ks(Su(n,r),"float32")),b:()=>Do(e,Ks(Fu(n,r),"float32"))}}},Lp=Za({maxPool3dGrad_:function(e,t,n,r,a,s,i){const o=qa(e,"dy","maxPool3dGrad"),l=qa(t,"input","maxPool3dGrad"),u=qa(n,"output","maxPool3dGrad");let c=o,h=l,f=u,d=!1;4===l.rank&&(d=!0,c=Al(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=Al(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=Al(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=Wa.runKernel(In,p,m);return d?Al(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),zp={kernelName:Nn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>Lp(e,r,a,s,i,o,l)}}},Wp=Za({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=qa(e,"dy","maxPoolGrad"),l=qa(t,"input","maxPoolGrad"),u=qa(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 Wa.runKernel(Sn,c,h)}}),Up={kernelName:Hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Ol(e,s,r.shape)}}},Vp={kernelName:wr,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>$l(e,r,a)}}},jp={kernelName:_r,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Fl(e,r)}}},Hp=[Md,Bd,$d,Pd,Ld,zd,Wd,Ud,Vd,jd,Hd,Gd,Kd,Yd,Jd,Zd,Qd,ep,tp,np,rp,ap,ip,sp,lp,up,cp,hp,fp,dp,{kernelName:Lt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Ao(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{let t=Do(e,Ks(n,"float32"));const s=Jo(r.shape,a);s.length>0&&(t=Al(Uu(t,s),r.shape));const i=Fo(r);return Pu(Ao(t,Ks(i,"float32")))}}}},pp,mp,gp,yp,bp,wp,vp,_p,xp,Cp,Sp,Np,Ip,Ap,Dp,Tp,Fp,Rp,Mp,$p,$p,Pp,zp,{kernelName:Cn,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:Dn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=de(a,r.shape),i=re(Gu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=Al(e,t);return Ao(Do(n,lc(r.shape,"float32")),i)}}}},{kernelName:Tn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=Bp(e,i,s,de(a,s.shape));return{x:()=>o.x()}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>Do(e,Ks(Ru(n,r),"float32")),b:()=>Do(e,Ks(Cu(n,r),"float32"))}}},{kernelName:Rn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Ol(e,s,r.shape)}}},{kernelName:On,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Jo(n.shape,a);return t.length>0?Al(Uu(e,t),n.shape):e},b:()=>{const t=Do(e,Pu(ku(Ao(n,r)))),s=Jo(r.shape,a);return s.length>0?Al(Uu(t,s),r.shape):t}}}},{kernelName:Bn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{const t=Do(e,Ks(r,"float32")),s=Jo(n.shape,a);return s.length>0?Al(Uu(t,s),n.shape):t},b:()=>{const t=Do(e,Ks(n,"float32")),s=Jo(r.shape,a);return s.length>0?Al(Uu(t,s),r.shape):t}}}},{kernelName:$n,gradFunc:e=>({x:()=>Pu(e)})},{kernelName:Vn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>oc(n.shape,"float32")}}},{kernelName:Un,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:jn,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return Sh(e,r).map((e=>()=>e))}},Up,Up,{kernelName:Xn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Zo(s.shape,i.shape);return{a:()=>{const t=Ks(i,"float32");let n=Do(e,Do(t,Go(s,Xo(t,Wo(1)))));const r=Jo(s.shape,o);return r.length>0&&(n=Uu(n,r)),Al(n,s.shape)},b:()=>{const t=Cu(s,0),n=fu(t,Bu(s),Ro(s));let r=Do(e,Do(a,n));const l=Jo(i.shape,o);return l.length>0&&(r=Uu(r,l)),Al(r,i.shape)}}}},{kernelName:Kn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=Cu(n,0);return{x:()=>fu(a,e,Do(e,r)),alpha:()=>{let t=fu(a,Ro(e),Do(e,n));const s=Jo(r.shape,e.shape);return s.length>0&&(t=Uu(t,s)),Al(t,r.shape)}}}},{kernelName:Zn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Pu(Fo(n)))}}},{kernelName:sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=Do(Ru(n,6),ph(n));return{x:()=>Do(e,Ks(r,"float32"))}}},{kernelName:Qn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Ks(ph(n),"float32"))}}},{kernelName:er,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Al(e,n.shape)}}},{kernelName:rr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Wa.runKernel(ar,a,n)}}},{kernelName:tr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Wa.runKernel(nr,a,n)}}},{kernelName:ir,gradFunc:(e,t,n)=>{const{dims:r}=n,a=de(r,e.shape);return{x:()=>Uc(e,a)}}},{kernelName:or,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pu(Ao(e,Do(Go(n,1.5),2)))}}},{kernelName:cr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>Ks(Ro(n),"float32"),t:()=>Do(e,Ks(n,e.dtype)),e:()=>Do(e,Ks(ec(n),e.dtype))}}},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Cu(n,Wo(0)),r=Wo(ad),a=Wo(sd),s=Do(e,a),i=Do(Do(e,r),bu(Ks(n,"float32")));return fu(t,s,i)}}}},{kernelName:gr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Do(n,Xo(Wo(1),n)))}}},{kernelName:mr,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(ru(Ks(n,"float32")),e)}}},{kernelName:pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(au(Ks(n,"float32")),e)}}},{kernelName:fr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Ui(r,a,s),u=[];for(let t=0;twc(e,u)}}},{kernelName:xr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=Do(e,r);return{logits:()=>Xo(s,Do(Uu(s,[a],!0),r))}}},{kernelName:yr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Rl(n))}}},Vp,Vp,jp,jp,{kernelName:br,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Do(To(Ks(n,"float32")),2))}}},{kernelName:Sr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Wo(2);return{a:()=>Do(e,Do(a,Xo(n,r))),b:()=>Do(e,Do(a,Xo(r,n)))}}},{kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(e,Do(Ks(n,"float32"),2))}}},{kernelName:zr,gradFunc:e=>({x:()=>Ro(e)})},{kernelName:Ar,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Zo(n.shape,r.shape);return{a:()=>{let t=e;const r=Jo(n.shape,a);return r.length>0&&(t=Uu(t,r)),Al(t,n.shape)},b:()=>{let t=e;const n=Jo(r.shape,a);return n.length>0&&(t=Uu(t,n)),Al(Pu(t),r.shape)}}}},{kernelName:vr,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=Al(e,a),o=Do(i,lc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(e,Fo(ru(n)))}}},{kernelName:Tr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Do(Xo(Wo(1),Fo(n)),e)}}},{kernelName:Fr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=Ro(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Yu(a);return{x:()=>gi(e,s)}}},{kernelName:$r,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>dh(e,a)}}},{kernelName:Pr,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=Qo(t,Ro(t)),r=Eu(e,n);let a=Su(t,Wo(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>Ro(e)})}];for(const e of Hp)Zr(e);let Gp;function Xp(){return null==Gp&&(Gp=Co().epsilon()),Gp}xa().prototype.abs=function(){return this.throwIfDisposed(),qo(this)},xa().prototype.acos=function(){return this.throwIfDisposed(),al(this)},xa().prototype.acosh=function(){return this.throwIfDisposed(),sl(this)},xa().prototype.add=function(e){return this.throwIfDisposed(),No(this,e)},xa().prototype.all=function(e,t){return this.throwIfDisposed(),ol(this,e,t)},xa().prototype.any=function(e,t){return this.throwIfDisposed(),ll(this,e,t)},xa().prototype.argMax=function(e){return this.throwIfDisposed(),ul(this,e)},xa().prototype.argMin=function(e){return this.throwIfDisposed(),cl(this,e)},xa().prototype.asScalar=function(){return this.throwIfDisposed(),Q(1===this.size,(()=>"The array must have only 1 element.")),Al(this,[])},xa().prototype.asType=function(e){return this.throwIfDisposed(),Ks(this,e)},xa().prototype.as1D=function(){return this.throwIfDisposed(),Al(this,[this.size])},xa().prototype.as2D=function(e,t){return this.throwIfDisposed(),Al(this,[e,t])},xa().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),Al(this,[e,t,n])},xa().prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),Al(this,[e,t,n,r])},xa().prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),Al(this,[e,t,n,r,a])},xa().prototype.asin=function(){return this.throwIfDisposed(),hl(this)},xa().prototype.asinh=function(){return this.throwIfDisposed(),fl(this)},xa().prototype.atan=function(){return this.throwIfDisposed(),dl(this)},xa().prototype.atan2=function(e){return this.throwIfDisposed(),pl(this,e)},xa().prototype.atanh=function(){return this.throwIfDisposed(),ml(this)},xa().prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),Dl(this,e,t,n,r)},xa().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$l(this,e,t)},xa().prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Pl(this,e,t,n,r,a)},xa().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Vl(this,e)},xa().prototype.cast=function(e){return this.throwIfDisposed(),Ks(this,e)},xa().prototype.ceil=function(){return this.throwIfDisposed(),jl(this)},xa().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Hl(this,e,t)},xa().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof _a&&(e=[e]),Fl([this,...e],t)},xa().prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Jl(this,e,t,n,r,a,s)},xa().prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),Ql(this,e,t,n,r,a)},xa().prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Yl(this,e,t,n,r,a,s)},xa().prototype.cos=function(){return this.throwIfDisposed(),ru(this)},xa().prototype.cosh=function(){return this.throwIfDisposed(),au(this)},xa().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),su(this,e,t,n)},xa().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),ou(this,e,t)},xa().prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),lu(this,e,t,n,r,a,s)},xa().prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),cu(this,e,t,n,r,a)},xa().prototype.divNoNan=function(e){return this.throwIfDisposed(),du(this,e)},xa().prototype.div=function(e){return this.throwIfDisposed(),Ao(this,e)},xa().prototype.dot=function(e){return this.throwIfDisposed(),pu(this,e)},xa().prototype.elu=function(){return this.throwIfDisposed(),gu(this)},xa().prototype.equal=function(e){return this.throwIfDisposed(),hu(this,e)},xa().prototype.erf=function(){return this.throwIfDisposed(),yu(this)},xa().prototype.exp=function(){return this.throwIfDisposed(),bu(this)},xa().prototype.expandDims=function(e){return this.throwIfDisposed(),vu(this,e)},xa().prototype.expm1=function(){return this.throwIfDisposed(),wu(this)},xa().prototype.fft=function(){return this.throwIfDisposed(),ih(this)},xa().prototype.flatten=function(){return this.throwIfDisposed(),Al(this,[this.size])},xa().prototype.floor=function(){return this.throwIfDisposed(),ku(this)},xa().prototype.floorDiv=function(e){return this.throwIfDisposed(),Io(this,e)},xa().prototype.gather=function(e,t){return this.throwIfDisposed(),Eu(this,e,t)},xa().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Su(this,e)},xa().prototype.greater=function(e){return this.throwIfDisposed(),Cu(this,e)},xa().prototype.ifft=function(){return this.throwIfDisposed(),oh(this)},xa().prototype.irfft=function(){return this.throwIfDisposed(),lh(this)},xa().prototype.isFinite=function(){return this.throwIfDisposed(),Iu(this)},xa().prototype.isInf=function(){return this.throwIfDisposed(),Au(this)},xa().prototype.isNaN=function(){return this.throwIfDisposed(),Du(this)},xa().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Tu(this,e)},xa().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ru(this,e)},xa().prototype.less=function(e){return this.throwIfDisposed(),Fu(this,e)},xa().prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Mu(this,e,t,n,r)},xa().prototype.logSigmoid=function(){return this.throwIfDisposed(),zu(this)},xa().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Vu(this,e)},xa().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Zu(this,e,t)},xa().prototype.log=function(){return this.throwIfDisposed(),Bu(this)},xa().prototype.log1p=function(){return this.throwIfDisposed(),$u(this)},xa().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Qu(this,e)},xa().prototype.logicalNot=function(){return this.throwIfDisposed(),ec(this)},xa().prototype.logicalOr=function(e){return this.throwIfDisposed(),tc(this,e)},xa().prototype.logicalXor=function(e){return this.throwIfDisposed(),nc(this,e)},xa().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),pi(this,e,t,n)},xa().prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),rc(this,e,t,n,r)},xa().prototype.max=function(e,t){return this.throwIfDisposed(),Wu(this,e,t)},xa().prototype.maximum=function(e){return this.throwIfDisposed(),Qo(this,e)},xa().prototype.mean=function(e,t){return this.throwIfDisposed(),ic(this,e,t)},xa().prototype.min=function(e,t){return this.throwIfDisposed(),cc(this,e,t)},xa().prototype.minimum=function(e){return this.throwIfDisposed(),hc(this,e)},xa().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),fc(this,e,t)},xa().prototype.mod=function(e){return this.throwIfDisposed(),dc(this,e)},xa().prototype.mul=function(e){return this.throwIfDisposed(),Do(this,e)},xa().prototype.neg=function(){return this.throwIfDisposed(),Pu(this)},xa().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Fh(this,e,t,n)},xa().prototype.notEqual=function(e){return this.throwIfDisposed(),yc(this,e)},xa().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),mi(this,e,t,n)},xa().prototype.onesLike=function(){return this.throwIfDisposed(),bc(this)},xa().prototype.pad=function(e,t){return this.throwIfDisposed(),wc(this,e,t)},xa().prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),Sc(this,e,t,n,r,a)},xa().prototype.pow=function(e){return this.throwIfDisposed(),Go(this,e)},xa().prototype.prelu=function(e){return this.throwIfDisposed(),Nc(this,e)},xa().prototype.prod=function(e,t){return this.throwIfDisposed(),Ic(this,e,t)},xa().prototype.reciprocal=function(){return this.throwIfDisposed(),Lc(this)},xa().prototype.relu=function(){return this.throwIfDisposed(),zc(this)},xa().prototype.relu6=function(){return this.throwIfDisposed(),Wc(this)},xa().prototype.reshapeAs=function(e){return this.throwIfDisposed(),Al(this,e.shape)},xa().prototype.reshape=function(e){return this.throwIfDisposed(),Al(this,e)},xa().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),bf(this,e,t,n)},xa().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),vf(this,e,t,n)},xa().prototype.reverse=function(e){return this.throwIfDisposed(),Uc(this,e)},xa().prototype.rfft=function(){return this.throwIfDisposed(),ch(this)},xa().prototype.round=function(){return this.throwIfDisposed(),Xc(this)},xa().prototype.rsqrt=function(){return this.throwIfDisposed(),Kc(this)},xa().prototype.selu=function(){return this.throwIfDisposed(),qc(this)},xa().prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Yc(this,e,t,n,r,a,s)},xa().prototype.sigmoid=function(){return this.throwIfDisposed(),Rl(this)},xa().prototype.sign=function(){return this.throwIfDisposed(),Zc(this)},xa().prototype.sin=function(){return this.throwIfDisposed(),Qc(this)},xa().prototype.sinh=function(){return this.throwIfDisposed(),eh(this)},xa().prototype.slice=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)},xa().prototype.softmax=function(e){return this.throwIfDisposed(),sh(this,e)},xa().prototype.softplus=function(){return this.throwIfDisposed(),Lu(this)},xa().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Cc(this,e,t)},xa().prototype.split=function(e,t){return this.throwIfDisposed(),uh(this,e,t)},xa().prototype.sqrt=function(){return this.throwIfDisposed(),To(this)},xa().prototype.square=function(){return this.throwIfDisposed(),Fo(this)},xa().prototype.squaredDifference=function(e){return this.throwIfDisposed(),hh(this,e)},xa().prototype.squeeze=function(e){return this.throwIfDisposed(),fh(this,e)},xa().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof _a?[this,e]:[this,...e];return dh(n,t)},xa().prototype.step=function(e){return this.throwIfDisposed(),ph(this,e)},xa().prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),mh(this,e,t,n,r,a,s,i,o)},xa().prototype.sub=function(e){return this.throwIfDisposed(),Xo(this,e)},xa().prototype.sum=function(e,t){return this.throwIfDisposed(),Uu(this,e,t)},xa().prototype.tan=function(){return this.throwIfDisposed(),gh(this)},xa().prototype.tanh=function(){return this.throwIfDisposed(),Ml(this)},xa().prototype.tile=function(e){return this.throwIfDisposed(),_u(this,e)},xa().prototype.toBool=function(){return this.throwIfDisposed(),Ks(this,"bool")},xa().prototype.toFloat=function(){return this.throwIfDisposed(),Ks(this,"float32")},xa().prototype.toInt=function(){return this.throwIfDisposed(),Ks(this,"int32")},xa().prototype.topk=function(e,t){return this.throwIfDisposed(),xh(this,e,t)},xa().prototype.transpose=function(e){return this.throwIfDisposed(),gi(this,e)},xa().prototype.unique=function(e){return this.throwIfDisposed(),Eh(this,e)},xa().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Ch(this,e,t)},xa().prototype.unstack=function(e){return this.throwIfDisposed(),Sh(this,e)},xa().prototype.where=function(e,t){return this.throwIfDisposed(),fu(e,this,t)},xa().prototype.zerosLike=function(){return this.throwIfDisposed(),Ro(this)};class Kp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Kp.prototype)}}class qp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,qp.prototype)}}class Yp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Yp.prototype)}}class Jp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Jp.prototype)}}class Zp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Zp.prototype)}}function Qp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let im={};function om(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function lm(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>lm(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?lm(t):e[n]=t.value)}}}function um(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 im)s=im[a];else if(s=t[a],null==s)throw new Yp(`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 Yp(`${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 im?[o,l]=im.className:i in t&&([o,l]=t[i]),null==o)throw new Yp(`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(im))e[t]=im[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},im);for(const e of Object.keys(n))im[e]=n[e];lm(s.config);const r=l(o,s.config,n,a);return im=Object.assign({},t),r}{const e=Object.assign({},im);for(const e of Object.keys(n))im[e]=n[e];const t=new o(s.config);return im=Object.assign({},e),t}}}function cm(e,t){return-1*function(e,t){return et?1:0}(e,t)}function hm(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function fm(e){if(null==e)throw new Yp(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function dm(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Yp(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function pm(e,t,n=0,r=1/0){return em(n>=0),em(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function mm(e,t){Array.isArray(e)?(Q(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>mm(e,`element ${n+1} of ${t}`)))):Q(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${gm(e)}.`))}function gm(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>gm(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function ym(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function bm(e,t){return po((()=>To(Uu(Do(e,e),t,!0))))}class vm extends ji{getConfig(){return{}}}class wm extends vm{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 po((()=>{const t=bm(e,this.axis),n=Hl(t,0,this.maxValue);return Do(e,Ao(n,No(Xp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}wm.className="MaxNorm",Gi(wm);class _m extends vm{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return po((()=>Ao(e,No(Xp(),bm(e,this.axis)))))}getConfig(){return{axis:this.axis}}}_m.className="UnitNorm",Gi(_m);class xm extends vm{apply(e){return zc(e)}}xm.className="NonNeg",Gi(xm);class km extends vm{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 po((()=>{const t=bm(e,this.axis),n=No(Do(this.rate,Hl(t,this.minValue,this.maxValue)),Do(1-this.rate,t));return Do(e,Ao(n,No(Xp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}km.className="MinMaxNorm",Gi(km);const Em={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Cm(e){return om(e)}function Sm(e,t={}){return um(e,Hi.getMap().classNameMap,t,"constraint")}function Nm(e){return null==e?null:"string"==typeof e?Sm({className:e in Em?Em[e]:e,config:{}}):e instanceof vm?e:Sm(e)}function Im(e){return new wm(e)}function Am(e){return new _m(e)}function Dm(){return new xm}function Tm(e){return new km(e)}const Fm=["channelsFirst","channelsLast"],Rm=["nearest","bilinear"],Om=["valid","same","causal"],Mm=["max","avg"],Bm=["sum","mul","concat","ave"],$m=new Map;function Pm(e){dm(Fm,"DataFormat",e)}function Lm(e){dm(Om,"PaddingMode",e)}function zm(e){dm(Mm,"PoolMode",e)}const Wm=[];function Um(e,t){Wm.push(e);try{const e=t();return Wm.pop(),e}catch(e){throw Wm.pop(),e}}function Vm(e){if(!Gm(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Wm.length?"":Wm.join("/")+"/")+e}function jm(e){if(!Gm(e))throw new Error("Not a valid tensor name: '"+e+"'");$m.has(e)||$m.set(e,0);const t=$m.get(e);if($m.set(e,$m.get(e)+1),t>0){const n=`${e}_${t}`;return $m.set(n,1),n}return e}const Hm=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Gm(e){return!!e.match(Hm)}function Xm(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 th(e,t,n);case 2:return nh(e,[t,0],[n,e.shape[1]]);case 3:return rh(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return ah(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ol(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ol(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 Yp(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function tg(e,t,n){return po((()=>{switch(e.rank){case 1:return th(e,t,n);case 2:return nh(e,[0,t],[e.shape[0],n]);case 3:return rh(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return ah(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Yp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function ng(e,t,n,r){return po((()=>{switch(e.rank){case 1:return th(e,t,n);case 2:switch(r){case 1:return eg(e,t,n);case 2:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return eg(e,t,n);case 2:return rh(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return eg(e,t,n);case 2:return ah(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return ah(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return tg(e,t,n);default:throw new Yp(`The axis is not within the rank of the tensor ${r}`)}default:throw new Yp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function rg(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Fl(e,t)}function ag(e,t){switch(e.rank){case 1:return Gl([e,t]);case 2:return Xl([e,t],0);case 3:return Kl([e,t],0);case 4:return ql([e,t],0);default:throw new Yp(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function sg(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Yp(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return _u(e,t)}function ig(e,t=0,n=1,r,a){return Mc(e,t,n,r,a)}function og(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 Yh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?cg(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 Yh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?cg(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function lg(e,t,n){return po((()=>(t=Array.isArray(t)?yh(t,"int32"):t.toInt(),Eu(e,t,n))))}function ug(e){return Do(e,e)}function cg(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Yp(`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 Yp(`Unsupported input rank by biasAdd: ${t.rank}`)}function hg(e,t,n){return po((()=>(null==n&&(n="channelsLast"),Pm(n),e.add(cg(e.rank,t,n)))))}function fg(e,t,n,r){return po((()=>$h(e,t,n,r)))}function dg(e,t,n=!1){return n?e():t()}const pg=["fanIn","fanOut","fanAvg"],mg=["normal","uniform","truncatedNormal"];class gg extends ji{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class yg extends gg{apply(e,t){return oc(e,t)}}yg.className="Zeros",Gi(yg);class bg extends gg{apply(e,t){return lc(e,t)}}bg.className="Ones",Gi(bg);class vg extends gg{constructor(e){if(super(),"object"!=typeof e)throw new Yp(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Yp(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return po((()=>Do(Wo(this.value),lc(e,t))))}getConfig(){return{value:this.value}}}vg.className="Constant",Gi(vg);class wg extends gg{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 Bc(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}wg.className="RandomUniform",Gi(wg);class _g extends gg{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 ig(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}_g.className="RandomNormal",Gi(_g);class xg extends gg{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 kh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}xg.className="TruncatedNormal",Gi(xg);class kg extends gg{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return po((()=>{if(2!==e.length||e[0]!==e[1])throw new Yp("Identity matrix initializer can only be used for 2D square matrices.");return Do(this.gain,xu(e[0]))}))}getConfig(){return{gain:this.gain}}}kg.className="Identity",Gi(kg);class Eg extends gg{constructor(e){if(super(),e.scale<0)throw new Yp(`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,dm(pg,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){dm(mg,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(Pm(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Xm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=Xm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=Xm(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 kh(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Bc(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}Eg.className="VarianceScaling",Gi(Eg);class Cg extends Eg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Cg.className="GlorotUniform",Gi(Cg);class Sg extends Eg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Sg.className="GlorotNormal",Gi(Sg);class Ng extends Eg{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ng.className="HeNormal",Gi(Ng);class Ig extends Eg{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ig.className="HeUniform",Gi(Ig);class Ag extends Eg{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Ag.className="LeCunNormal",Gi(Ag);class Dg extends Eg{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return Eg.className}}Dg.className="LeCunNormal",Gi(Dg);class Tg extends gg{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 po((()=>{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=ig(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=Wf.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),Do(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}Tg.className="Orthogonal",Gi(Tg);const Fg={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 Rg(e,t={}){return um(e,Hi.getMap().classNameMap,t,"initializer")}function Og(e){return om(e)}function Mg(e){if("string"==typeof e){const t=e in Fg?Fg[e]:e;if("GlorotNormal"===t)return new Sg;if("GlorotUniform"===t)return new Cg;if("HeNormal"===t)return new Ng;if("HeUniform"===t)return new Ig;if("LeCunNormal"===t)return new Ag;if("LeCunUniform"===t)return new Dg;{const e={};return e.className=t,e.config={},Rg(e)}}return e instanceof gg?e:Rg(e)}function Bg(){return new yg}function $g(){return new bg}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)}function jg(e){return new Cg(e)}function Hg(e){return new Sg(e)}function Gg(e){return new Ng(e)}function Xg(e){return new Ig(e)}function Kg(e){return new Ag(e)}function qg(e){return new Dg(e)}function Yg(e){return new Tg(e)}let Jg=0;function Zg(){return Jg++}const Qg={};function ey(e=""){return e in Qg||(Qg[e]=0),Qg[e]+=1,e+Qg[e].toString()}function ty(e){return Array.isArray(e)&&Array.isArray(e[0])}function ny(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function ry(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Yp(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ay(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Yp(`Expected exactly 1 Shape; got ${e.length}`)}return e}function sy(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 iy{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Zg(),n=null==n?"Variable":n,this.originalName=Vm(n),this.name=jm(this.originalName),this.trainable_=r,this.constraint=a,this.val=Nh(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 oy(e){return e.map((e=>e.read()))}function ly(e){e.forEach((e=>{e[0].write(e[1])}))}class uy{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 cy{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=Zg(),null!=s&&(this.originalName=Vm(s),this.name=jm(this.originalName)),this.rank=t.length}}let hy=0;class fy{constructor(e,t){this.callArgs=t,this.id=hy++,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 dy=0;class py extends ji{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=dy++,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=am(e)+"_"+ey(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 qp(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Yp(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return nm(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return nm(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Kp(`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 Kp(`Layer ${this.name} is not connected, no input to return.`);return nm(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Kp(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Kp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return nm(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=rm(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=rm(this.inputSpec);if(e.length!==t.length)throw new Yp(`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 Yp(`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 Yp(`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 rm(e))t.push(n.shape);this.build(nm(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=rm(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=nm(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=rm(e);const t=[];for(const n of e)t.push(n.shape);return nm(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 cy(s,n,this,rm(e),t,this.name,r))):new cy(s,r,this,rm(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 Kp(`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 Kp(`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 qp(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return sy(this.weights)}build(e){this.built=!0}getWeights(e=!1){return oy(e?this.trainableWeights:this.weights)}setWeights(e){po((()=>{const t=this.weights;if(t.length!==e.length)throw new Yp(`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=oy(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=rm(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=rm(e);t=rm(t),n=rm(n),r=rm(r),a=ny(a),s=ny(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new fy({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 my(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;tNo(this.totals[e],Do(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:po((()=>{const n=Do(Ao(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),go(t[e])})))}}class Ey extends _y{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=sa();return s-rnew Cy(e,t)))}class Ny{constructor(){}static registerCallbackConstructor(e,t){Q(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),Ny.checkForDuplicate(t),null==Ny.constructors[e]&&(Ny.constructors[e]=[]),Ny.constructors[e].push(t)}static checkForDuplicate(e){for(const t in Ny.constructors)Ny.constructors[+t].forEach((t=>{if(t===e)throw new Yp("Duplicate callback constructor.")}))}static clear(){Ny.constructors={}}static createCallbacks(e){const t=[];for(const n in Ny.constructors){const r=+n;e>=r&&t.push(...Ny.constructors[r])}return t.map((e=>new e))}}function Iy(e,t,n,r,a,s,i,o,l){const u=new Ey,c=[new ky,...Ny.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new xy(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 Ay(e,t={},n=!1){return um(e,Hi.getMap().classNameMap,t,"layer",n)}function Dy(e,t){return po((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=Uu(ug(e),t,!0),r=jo(n.shape,Xp()),a=To(Qo(n,r));return Ao(e,a)}))}function Ty(e,t){return po((()=>ic(ug(Xo(t,e)),-1)))}function Fy(e,t){return po((()=>ic(qo(Xo(t,e)),-1)))}function Ry(e,t){return po((()=>{const n=Xo(e,t),r=Hl(qo(e),Xp(),Number.MAX_VALUE),a=qo(Ao(n,r));return Do(100,ic(a,-1))}))}function Oy(e,t,n=!1){return po((()=>{if(n)t=sh(t);else{const e=Uu(t,t.shape.length-1,!0);t=Ao(t,e)}return t=Hl(t,Xp(),1-Xp()),Pu(Uu(Do(e.toFloat(),Bu(t)),t.shape.length-1))}))}function My(e,t,n=!1){return po((()=>{const r=ku(function(e){const t=[Xm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Hl(t,Xp(),1-Xp())).shape;return Oy(mi(r,a[a.length-1]).reshape(a),t,n)}))}function By(e,t){return po((()=>{let n;return n=Hl(t,Xp(),1-Xp()),n=Bu(Ao(n,Xo(1,n))),ic(function(e,t){if(!se(e.shape,t.shape))throw new Yp(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return po((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function $y(e,t){return po((()=>{const n=Dy(e,-1),r=Dy(t,-1),a=Do(n,r);return Pu(Uu(a,-1))}))}Ny.constructors={};const Py={meanSquaredError:Ty,meanAbsoluteError:Fy,meanAbsolutePercentageError:Ry,meanSquaredLogarithmicError:function(e,t){return po((()=>{const n=Hl(t,Xp(),Number.MAX_VALUE),r=Bu(No(1,n)),a=Hl(e,Xp(),Number.MAX_VALUE),s=Bu(No(1,a));return ic(ug(Xo(r,s)),-1)}))},squaredHinge:function(e,t){return po((()=>{const n=Qo(0,Xo(1,Do(e,t)));return ic(ug(n),-1)}))},hinge:function(e,t){return po((()=>{const n=Qo(0,Xo(1,Do(e,t)));return ic(n,-1)}))},categoricalHinge:function(e,t){return po((()=>{const n=Uu(Do(e,t),-1),r=Wu(Do(Xo(1,e),t),-1);return Qo(0,No(1,Xo(r,n)))}))},logcosh:function(e,t){return po((()=>{const n=Math.log(2),r=Xo(t,e),a=Xo(No(r,Lu(Do(-2,r))),n);return ic(a,-1)}))},categoricalCrossentropy:Oy,sparseCategoricalCrossentropy:My,binaryCrossentropy:By,kullbackLeiblerDivergence:function(e,t){return po((()=>{const n=Hl(e,Xp(),1),r=Hl(t,Xp(),1);return Uu(Do(e,Bu(Ao(n,r))),-1)}))},poisson:function(e,t){return po((()=>{const n=Bu(No(Xp(),t));return ic(Xo(t,Do(e,n)),-1)}))},cosineProximity:$y};function Ly(e){if("string"==typeof e){if(e in Py)return Py[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 Yp(t)}return e}function zy(e,t){return po((()=>{const n=Do(.5,bc(t)),r=Zm(Cu(t,n),e.dtype);return ic(hu(e,r),-1)}))}function Wy(e,t){return po((()=>Zm(hu(ul(e,-1),ul(t,-1)),"float32")))}function Uy(e,t){return po((()=>Qu(e.equal(1),t.equal(1)).sum().cast("float32")))}function Vy(e,t){return po((()=>{const n=Uy(e,t),r=function(e,t){return po((()=>Qu(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return fu(Cu(a,0),n.div(a),0).cast("float32")}))}function jy(e,t){return By(e,t)}function Hy(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)),hu(e,t).asType("float32")}const Gy=Oy,Xy=My,Ky={binaryAccuracy:zy,categoricalAccuracy:Wy,precision:Vy,categoricalCrossentropy:Gy,sparseCategoricalCrossentropy:Xy,mse:Ty,MSE:Ty,mae:Fy,MAE:Fy,mape:Ry,MAPE:Ry,cosine:$y};function qy(e){if("string"==typeof e&&e in Ky)return Ky[e];if("string"!=typeof e&&null!=e)return e;throw new Yp(`Unknown metric ${e}`)}function Yy(e){if(em(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Py))if(Py[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Ky))if(Ky[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||!Zy(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 Zy(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(!Zy(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Zy(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Qy(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 eb(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}Qy([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function tb(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==ob[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=hb(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=hb(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:cb(r)}}(i,t);h=e.sorted,f=e.recipientCounts,ob[c]=h,lb[c]=f}h=ob[c],f={},a||Object.assign(f,lb[c]);const d=new ib(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 fb(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);hm(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;em(0===n,"input layer has >1 nodes"),em(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 qp(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(db.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(cm);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 db&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(cm);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 qp(`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 qp(`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 fy({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 Yp("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 Yp(`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 Yp(`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 Yp(`${e.length} of ${r} weights are not set: ${e}`)}ly(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${sb}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=ab(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return po((()=>{e=rm(e);const n=new ib;for(let t=0;t{let n;return e=rm(e),n=null==t?Qp(null,e.length):rm(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=ny(e);if(t.length!==this.inputLayers.length)throw new Yp(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(cm);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(cm);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=rm(t.call(e,u)),l=rm(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=rm(t.call(r,u)),l=rm(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(nm(n),r)}function l(e){const n=e.name,s=Ay(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Yp(`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(;!fm(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];em(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];em(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 Yp("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(){po((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function pb(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 mb(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=po((()=>{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());mo(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])})),yh(a,"float32")}return null}function gb(e,t){return Do(e,t)}function yb(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=bb("input",e.inputNames,n),i=bb("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 bb(e,t,n){if(n instanceof _a)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 Yp(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function vb(e){return"function"==typeof e.iterator}function wb(e){Q(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function _b(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>eg(e,t,n-t))):eg(e,t,n-t)}function xb(e,t){return po((()=>null==e?null:Array.isArray(e)?e.map((e=>xb(e,t))):lg(e,"int32"===t.dtype?t:t.toInt())))}function kb(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function Eb(e){const t=[];e instanceof _a&&(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 _a)-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 Nb(e){return!function(e){return e instanceof _a}(e)&&!Sb(e)}function Ib(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(Nb(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Yp(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(Nb(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Yp(`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 Yp(`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 Yp(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=Eb(s),null!=n)for(let e=0;e=0&&o!==l)throw new Yp(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function Ab(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Yp(`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 Yp(`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)),Qy(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eHf.adagrad(.01),Adadelta:()=>Hf.adadelta(1,.95,Xp()),Adam:()=>Hf.adam(.001,.9,.999,Xp()),Adamax:()=>Hf.adamax(.002,.9,.999,Xp(),0),RMSProp:()=>Hf.rmsprop(.001,.9,0,Xp()),SGD:()=>Hf.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 Yp(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Uo))throw new Yp("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 Yp(`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=>Ly(e)))}else{const n=Ly(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 Yp(`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(Ly(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])};Um("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]===By?-1!==["accuracy","acc"].indexOf(i)?r=zy:-1!==["crossentropy","ce"].indexOf(i)&&(r=jy):this.lossFunctions[e]===My?-1!==["accuracy","acc"].indexOf(i)?r=Hy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Xy):-1!==["accuracy","acc"].indexOf(i)?r=Wy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Gy),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=qy(i);s=e,n=""+Yy(i)}let t;Um(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;wb(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return nm(this.testLoop(i,s,r,n.verbose,n.steps))}finally{Cb(a[0],e),Cb(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.");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}=yb(e,t.value),i=n.concat(r),u=po((()=>a(i)));if(mo(i),0===l)for(let e=0;eNo(s[e],Do(c,t)))),l>0&&mo(n)}mo(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 Yp(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return po((()=>{const r=this.checkNumSamples(e);if(n)throw new Jp("Verbose predictLoop() is not implemented yet.");const a=kb(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=_b(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return nm(s.map((e=>Fl(e,0))))}))}predict(e,t={}){const n=Eb(e);Ab(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return wb(r),this.predictLoop(n,r)}finally{Cb(n,e)}}predictOnBatch(e){Ab(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 qp("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=hm(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Yp(`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 Yp(`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 Yp(`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=Ib(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=Ib(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[Ty,By,Oy];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Yp(`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=pb(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=kb(s,n),a=yh(Jm(0,s));for(let n=0;n1&&(a+=`_${tm(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=No(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>po((()=>{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 Yp(`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=_b(a,e,t),a=_b(a,0,e),u=_b(s,e,t),s=_b(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 _=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=Jm(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=Iy(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=eg(i,f,d-f);h.batch=c,h.size=d-f;const g=xb(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(vb(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 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=Sy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=Iy(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=vb(n.validationData)?rm(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):rm(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;nam(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]=am(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[am(Yy(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>am(Yy(e))));{const e={};for(const t in this.metrics)e[t]=am(Yy(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=Ay(rb(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=sm(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>sm(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=sm(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>sm(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=sm(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=ms(e);if(0===t.length)throw new Yp(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Yp(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Yp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await rs(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${sb}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await rs(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=ls([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}}Db.className="Model",Gi(Db);class Tb extends Db{}async function Fb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=Ay(rb(n),t);if(null!=e.weightsManifest){const t=await ri(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),mo(t)}return r}Tb.className="Functional",Gi(Tb);class Rb extends Db{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:ey("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 Yp(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Rb||e instanceof Db;let n;if(t){if(n=e,1!==n.outputs.length)throw new Yp("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 Yp("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 Yp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=yy({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 Yp(`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 Yp("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=my(this.outputs[0])}this.inboundNodes=[],new fy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Qp(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(ay(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 Db({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 qp("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 qp("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 qp("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 qp("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 Yp("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 Rb))throw new Jp(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=Ay(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Yp("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 Yp("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 Ob(e){return new Db(e)}function Mb(e){return new Rb(e)}function Bb(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=gs(e,t);if(0===n.length)n.push(ui(e,t));else if(n.length>1)throw new Yp(`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 Yp("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=Ay(rb(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 Yp("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=as(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),mo(e),mo(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function $b(e){return yy(e)}function Pb(e,t){Ny.registerCallbackConstructor(e,t)}Rb.className="Sequential",Gi(Rb);class Lb extends ji{getConfig(){return{}}}class zb extends Lb{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 gu(e)}(e,t)}}zb.className="elu",Gi(zb);class Wb extends Lb{apply(e){return qc(e)}}Wb.className="selu",Gi(Wb);class Ub extends Lb{apply(e){return zc(e)}}Ub.className="relu",Gi(Ub);class Vb extends Lb{apply(e){return po((()=>hc(6,zc(e))))}}Vb.className="relu6",Gi(Vb);class jb extends Lb{apply(e){return e}}jb.className="linear",Gi(jb);class Hb extends Lb{apply(e){return Rl(e)}}Hb.className="sigmoid",Gi(Hb);class Gb extends Lb{apply(e){return function(e){return po((()=>{const t=No(.5,Do(.2,e));return Hl(t,0,1)}))}(e)}}Gb.className="hardSigmoid",Gi(Gb);class Xb extends Lb{apply(e){return Lu(e)}}Xb.className="softplus",Gi(Xb);class Kb extends Lb{apply(e){return function(e){return po((()=>Ao(e,qo(e).add(1))))}(e)}}Kb.className="softsign",Gi(Kb);class qb extends Lb{apply(e){return Ml(e)}}qb.className="tanh",Gi(qb);class Yb extends Lb{apply(e,t=-1){return sh(e,t)}}Yb.className="softmax",Gi(Yb);class Jb extends Lb{apply(e,t=-1){return Vu(e,t)}}Jb.className="logSoftmax",Gi(Jb);class Zb extends Lb{apply(e,t=1){return po((()=>Rl(e.mul(t)).mul(e)))}}Zb.className="swish",Gi(Zb);class Qb extends Lb{apply(e){return po((()=>Do(e,Ml(Lu(e)))))}}function ev(e){return e.getClassName()}function tv(e,t={}){return um(e,Hi.getMap().classNameMap,t,"activation")}function nv(e){if(null==e){return tv({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},tv(t)}return e instanceof Lb?e:tv(e)}function rv(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}`)}Qb.className="mish",Gi(Qb);class av extends ji{}class sv extends av{constructor(e){super(),rv(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 po((()=>{let t=oc([1]);return this.hasL1&&(t=No(t,Uu(Do(this.l1,qo(e))))),this.hasL2&&(t=No(t,Uu(Do(this.l2,ug(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}sv.className="L1L2",Gi(sv);const iv={l1l2:"L1L2"};function ov(e){return om(e)}function lv(e,t={}){return um(e,Hi.getMap().classNameMap,t,"regularizer")}function uv(e){return null==e?null:"string"==typeof e?lv({className:e in iv?iv[e]:e,config:{}}):e instanceof av?e:lv(e)}class cv extends py{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=ry(e);let n=zc(e);return null!=this.maxValue&&(n=Hl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}cv.className="ReLU",Gi(cv);class hv extends py{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=ry(e);return Tu(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}hv.className="LeakyReLU",Gi(hv);class fv extends py{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Mg(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=uv(e.alphaRegularizer),this.alphaConstraint=Nm(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 Yp(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=ay(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(Pm(t),"channelsFirst"===t?gi(e,[0,2,3,1]):e)))}function wv(e,t){return po((()=>(Pm(t),"channelsFirst"===t?gi(e,[0,2,3,4,1]):e)))}function _v(e,t,n,r=[1,1],a="valid",s,i,o=null){return po((()=>{if(null==s&&(s="channelsLast"),Pm(s),3!==e.rank&&4!==e.rank)throw new Yp(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Yp(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=vv(e,s);if("causal"===a)throw new Jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Gh({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=gi(l,[0,3,1,2])),l}))}mv.className="Softmax",Gi(mv);class xv extends py{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",xv.verifyArgs(t),this.rank=e,mm(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=gv(t.kernelSize,e,"kernelSize"),this.strides=gv(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Lm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Pm(this.dataFormat),this.activation=nv(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Mg(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Nm(t.biasConstraint),this.biasRegularizer=uv(t.biasRegularizer),this.activityRegularizer=uv(t.activityRegularizer),this.dilationRate=gv(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Yp(`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 Yp(`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 Yp(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(em("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!pm(e.kernelSize,"number",1,3))throw new Yp(`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:ev(this.activation),useBias:this.useBias,biasInitializer:Og(this.biasInitializer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),biasConstraint:Cm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class kv extends xv{constructor(e,t){super(e,t),this.kernel=null,kv.verifyArgs(t),this.filters=t.filters,mm(this.filters,"filters"),this.kernelInitializer=Mg(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Nm(t.kernelConstraint),this.kernelRegularizer=uv(t.kernelRegularizer)}build(e){e=ay(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Yp(`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 po((()=>{let t;e=ry(e);const n=null==this.bias?null:this.bias.read(),r=ym(this.activation.getClassName());if(null!=r&&2===this.rank)t=_v(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 po((()=>{if(null==s&&(s="channelsLast"),Pm(s),3!==e.shape.length)throw new Yp(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Yp(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Yp(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=gi(e,[0,2,1])),"causal"===a)throw new Jp("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=hg(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=_v(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 po((()=>{if(null==s&&(s="channelsLast"),Pm(s),4!==e.rank&&5!==e.rank)throw new Yp(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Yp(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=wv(e,s);if("causal"===a)throw new Jp("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=eu(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=hg(o,n)),"channelsFirst"===s&&(o=gi(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=ay(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 Ev extends kv{constructor(e){super(2,e),Ev.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!pm(e.kernelSize,"number",1,2))throw new Yp(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}Ev.className="Conv2D",Gi(Ev);class Cv extends kv{constructor(e){super(3,e),Cv.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 Yp(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}Cv.className="Conv3D",Gi(Cv);class Sv extends Ev{constructor(e){if(super(e),this.inputSpec=[new uy({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Yp(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=ay(e)).length)throw new Yp("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 Yp("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 uy({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return po((()=>{let t=ry(e);if(4!==t.shape.length)throw new Yp(`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,bv(i,c,l,this.padding),bv(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=gi(t,[0,2,3,1]));let d=Ql(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=gi(d,[0,3,1,2])),null!=this.bias&&(d=hg(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=ay(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]=bv(t[r],o,s,this.padding),t[a]=bv(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Sv.className="Conv2DTranspose",Gi(Sv);class Nv extends Cv{constructor(e){if(super(e),this.inputSpec=[new uy({ndim:5})],"same"!==this.padding&&"valid"!==this.padding)throw new Yp(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(5!==(e=ay(e)).length)throw new Yp("Input should have rank 5; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Yp("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 uy({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return po((()=>{let t=ry(e);if(5!==t.shape.length)throw new Yp(`Conv3DTranspose.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,i;"channelsFirst"===this.dataFormat?(i=2,a=3,s=4):(i=1,a=2,s=3);const o=n[i],l=n[a],u=n[s],c=this.kernelSize[0],h=this.kernelSize[1],f=this.kernelSize[2],d=this.strides[0],p=this.strides[1],m=this.strides[2],g=[r,bv(o,d,c,this.padding),bv(l,p,h,this.padding),bv(u,m,f,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=gi(t,[0,2,3,4,1]));let y=nu(t,this.kernel.read(),g,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(y=gi(y,[0,4,1,2,3])),null!==this.bias&&(y=hg(y,this.bias.read(),this.dataFormat)),null!==this.activation&&(y=this.activation.apply(y)),y}))}computeOutputShape(e){const t=(e=ay(e)).slice();let n,r,a,s;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3,s=4):(n=4,r=1,a=2,s=3);const i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],c=this.strides[1],h=this.strides[2];return t[n]=this.filters,t[r]=bv(t[r],u,i,this.padding),t[a]=bv(t[a],c,o,this.padding),t[s]=bv(t[s],h,l,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Nv.className="Conv3DTranspose",Gi(Nv);class Iv extends kv{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 Yp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Yp("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 Yp(`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=Mg(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=uv(t.depthwiseRegularizer),this.depthwiseConstraint=Nm(t.depthwiseConstraint),this.pointwiseInitializer=Mg(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=uv(t.pointwiseRegularizer),this.pointwiseConstraint=Nm(t.pointwiseConstraint)}build(e){if((e=ay(e)).length{let t;if(e=ry(e),1===this.rank)throw new Jp("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=gi(e,[0,2,3,1])),t=Yc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=hg(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=gi(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=Og(this.depthwiseInitializer),e.pointwiseInitializer=Og(this.pointwiseInitializer),e.depthwiseRegularizer=ov(this.depthwiseRegularizer),e.pointwiseRegularizer=ov(this.pointwiseRegularizer),e.depthwiseConstraint=Cm(this.depthwiseConstraint),e.pointwiseConstraint=Cm(this.pointwiseConstraint),e}}Iv.className="SeparableConv";class Av extends Iv{constructor(e){super(2,e)}}Av.className="SeparableConv2D",Gi(Av);class Dv extends kv{constructor(e){super(1,e),Dv.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&&!pm(e.kernelSize,"number",1,1))throw new Yp(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}Dv.className="Conv1D",Gi(Dv);class Tv extends py{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 po((()=>{if(e=ry(e),"channelsLast"===this.dataFormat){const t=ng(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return ng(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=ng(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return ng(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}}Tv.className="Cropping2D",Gi(Tv);class Fv extends py{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,Pm(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,dm(Rm,"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 po((()=>{let t=ry(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=gi(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 gi(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}}Fv.className="UpSampling2D",Gi(Fv);class Rv extends xv{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Mg(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Nm(e.depthwiseConstraint),this.depthwiseRegularizer=uv(e.depthwiseRegularizer)}build(e){if((e=ay(e)).length<4)throw new Yp(`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 Yp(`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 po((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return po((()=>{null==a&&(a="channelsLast"),Pm(a);let i=vv(e,a);if(4!==e.rank)throw new Yp(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Yp(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=lu(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=gi(i,[0,3,1,2])),i}))}(e=ry(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=hg(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=ay(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=yv(t,this.kernelSize[0],this.padding,this.strides[0]),s=yv(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=Og(this.depthwiseInitializer),e.depthwiseRegularizer=ov(this.depthwiseRegularizer),e.depthwiseConstraint=Cm(this.depthwiseRegularizer),e}}function Ov(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Yp("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 Mv(e,t,n,r=!1,a,s,i=!1,o=!1){return po((()=>{const l=t.shape.length;if(l<3)throw new Yp(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(Jm(2,l));if(t=gi(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=vu(a,-1)),a=gi(a,u)),r&&(t=Uc(t,0),null!=a&&(a=Uc(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=Sh(t);let m,g;null!=a&&(m=Sh(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=po((()=>{const e=m[t],n=bc(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=dh(c,1)),[h,g,f]}))}Rv.className="DepthwiseConv2D",Gi(Rv);class Bv extends py{constructor(e){let t;if(super(e),null==e.cell)throw new Yp("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new jv({cells:e.cell}):e.cell,null==t.stateSize)throw new Yp("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 uy({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){ty(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 po((()=>{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 Yp(`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 uy({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){po((()=>{if(!this.stateful)throw new Kp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Yp("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)mo(this.states_),null!=this.keptStates&&(mo(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 Yp(`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()):mo(this.states_);for(let t=0;tgo(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Ov(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 uy({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 cy){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 po((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=ry(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 Yp(`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=Mv(((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 po((()=>{let t=oc(e.shape);return t=Uu(t,[1,2]),t=Qm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?sg(t,[1,e]):t)):this.cell.stateSize>1?[sg(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()===Bv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=Ay(t.cell,n);return new e(Object.assign(t,{cell:r}))}}Bv.className="RNN",Gi(Bv);class $v extends py{}class Pv extends $v{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,mm(this.units,"units"),this.activation=nv(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ay(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 po((()=>{if(2!==(e=e).length)throw new Yp(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0bc(e),rate:this.dropout,training:r})),0bc(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=og(null!=s?Do(e,s):e,this.kernel.read()),null!=this.bias&&(a=hg(a,this.bias.read())),null!=i&&(n=Do(n,i));let o=No(a,og(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:ev(this.activation),useBias:this.useBias,kernelInitializer:Og(this.kernelInitializer),recurrentInitializer:Og(this.recurrentInitializer),biasInitializer:Og(this.biasInitializer),kernelRegularizer:ov(this.kernelRegularizer),recurrentRegularizer:ov(this.recurrentRegularizer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),kernelConstraint:Cm(this.kernelConstraint),recurrentConstraint:Cm(this.recurrentConstraint),biasConstraint:Cm(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Pv.className="SimpleRNNCell",Gi(Pv);class Lv extends Bv{constructor(e){e.cell=new Pv(e),super(e)}call(e,t){return po((()=>{null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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)}}Lv.className="SimpleRNN",Gi(Lv);class zv extends $v{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 Yp("GRUCell does not support reset_after parameter set to true.");this.units=e.units,mm(this.units,"units"),this.activation=nv(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=nv(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([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=ay(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 po((()=>{if(2!==(e=e).length)throw new Yp(`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],0bc(e),rate:this.dropout,training:n,count:3})),0bc(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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="GRU",Gi(Wv);class Uv extends $v{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,mm(this.units,"units"),this.activation=nv(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=nv(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Mg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=uv(e.kernelRegularizer),this.recurrentRegularizer=uv(e.recurrentRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.kernelConstraint=Nm(e.kernelConstraint),this.recurrentConstraint=Nm(e.recurrentConstraint),this.biasConstraint=Nm(e.biasConstraint),this.dropout=qm([1,Ym([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=qm([1,Ym([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=ay(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 gg{apply(t,r){const a=e.apply([n]),s=(new bg).apply([n]),i=e.apply([2*n]);return ag(ag(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 po((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Yp(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0bc(e),rate:this.dropout,training:n,count:4})),0bc(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&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(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)}}Vv.className="LSTM",Gi(Vv);class jv extends $v{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 po((()=>{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{Um(`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(Ay(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 oy(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;efg(t(),n),i=()=>dg(s,t,r);return!a||a<=1?go(i().clone()):Array(a).fill(void 0).map(i).map((e=>go(e.clone())))}jv.className="StackedRNNCells",Gi(jv);class Gv extends Bv{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 uy({ndim:5})]}call(e,t){return po((()=>{if(null!=this.cell.dropoutMask&&(mo(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(mo(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Yp("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 po((()=>{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){po((()=>{if(!this.stateful)throw new Kp("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 Yp("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)mo(this.states_),null!=this.keptStates&&(mo(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 Yp(`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()):mo(this.states_);for(let t=0;tgo(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=yv(l,r[0],a,s[0],i[0]),h=yv(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}Gv.className="ConvRNN2D";class Xv extends Uv{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,mm(this.filters,"filters"),this.kernelSize=gv(n,2,"kernelSize"),this.kernelSize.forEach((e=>mm(e,"kernelSize"))),this.strides=gv(r||1,2,"strides"),this.strides.forEach((e=>mm(e,"strides"))),this.padding=a||"valid",Lm(this.padding),this.dataFormat=s||"channelsLast",Pm(this.dataFormat),this.dilationRate=gv(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>mm(e,"dilationRate")))}build(e){var t;e=ay(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Yp(`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 gg{apply(e,t){return rg([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 po((()=>{if(3!==e.length)throw new Yp(`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];0bc(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?Do(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);0bc(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]=uh(this.kernel.read(),4,3),[_,x,k,E]=this.useBias?uh(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]=uh(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(No(l,d)),D=this.recurrentActivation.apply(No(u,p)),T=No(Do(D,s),Do(A,this.activation.apply(No(c,m)))),F=Do(this.recurrentActivation.apply(No(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=ry(e);if(0fg(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()}}qv.className="Dropout",Gi(qv);class Yv extends qv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Yv.className="SpatialDropout1D",Gi(Yv);class Jv extends py{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,mm(this.units,"units"),this.activation=nv(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Mg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Mg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Nm(e.kernelConstraint),this.biasConstraint=Nm(e.biasConstraint),this.kernelRegularizer=uv(e.kernelRegularizer),this.biasRegularizer=uv(e.biasRegularizer),this.activityRegularizer=uv(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=ay(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=ay(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return po((()=>{this.invokeCallHook(e,t);const n=ry(e),r=ym(this.activation.getClassName());let a;return null!=r?a=og(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=og(n,this.kernel.read()),null!=this.bias&&(a=hg(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:ev(this.activation),useBias:this.useBias,kernelInitializer:Og(this.kernelInitializer),biasInitializer:Og(this.biasInitializer),kernelRegularizer:ov(this.kernelRegularizer),biasRegularizer:ov(this.biasRegularizer),activityRegularizer:ov(this.activityRegularizer),kernelConstraint:Cm(this.kernelConstraint),biasConstraint:Cm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Jv.className="Dense",Gi(Jv);class Zv extends py{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ay(e);for(const t of e.slice(1))if(null==t)throw new Yp(`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],Xm(e,1)]}call(e,t){return po((()=>{this.invokeCallHook(e,t);let n=ry(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=ry(e);return this.activation.apply(n)}))}getConfig(){const e={activation:ev(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}Qv.className="Activation",Gi(Qv);class ew extends py{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 po((()=>{return e=ry(e),t=e,n=this.n,po((()=>{if(2!==t.shape.length)throw new Yp(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return sg(Qm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}ew.className="RepeatVector",Gi(ew);class tw extends py{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=ry(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}}tw.className="Reshape",Gi(tw);class nw extends py{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(!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 uy({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=ay(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return gi(ry(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}nw.className="Permute",Gi(nw);class rw extends py{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=ry(e);return ll(yc(n,this.maskValue),-1)}call(e,t){return po((()=>{this.invokeCallHook(e,t);const n=ry(e),r=ll(yc(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}rw.className="Masking",Gi(rw);class aw extends py{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(rm(e.inputLength))}this.inputDim=e.inputDim,mm(this.inputDim,"inputDim"),this.outputDim=e.outputDim,mm(this.outputDim,"outputDim"),this.embeddingsInitializer=Mg(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=uv(e.embeddingsRegularizer),this.activityRegularizer=uv(e.activityRegularizer),this.embeddingsConstraint=Nm(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 po((()=>this.maskZero?(e=ry(e),yc(e,Ro(e))):null))}computeOutputShape(e){if(e=ay(e),null==this.inputLength)return[...e,this.outputDim];const t=rm(this.inputLength);if(t.length!==e.length-1)throw new Yp(`"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=ry(e);return"int32"!==n.dtype&&(n=Zm(n,"int32")),lg(this.embeddings.read(),n.as1D()).reshape(ay(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Og(this.embeddingsInitializer),embeddingsRegularizer:ov(this.embeddingsRegularizer),activityRegularizer:ov(this.activityRegularizer),embeddingsConstraint:Cm(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}aw.className="Embedding",Gi(aw);class sw extends py{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 Yp(`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===hm(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return po((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Ym(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=Jm(1,e).concat([0]);t.push(gi(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=gi(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(Jm(0,a-1));r=gi(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 Yp("`mask` should be an Array");if(!Array.isArray(e))throw new Yp("`inputs` should be an Array");if(t.length!==e.length)throw new Yp(`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:vu(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 Yp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return po((()=>rg(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Yp("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 Yp("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Yp("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Yp(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return po((()=>{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 Yp(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Yp(`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)=>fw(t,e[n].shape.length))):[fw(this.axes,n.shape.length),fw(this.axes,r.shape.length)],this.normalize&&(n=Dy(n,t[0]),r=Dy(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(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 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 po((()=>{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}}dw.className="Dot",Gi(dw);class pw extends py{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 po((()=>{this.invokeCallHook(e,t);const n=ry(e);return dg((()=>ig(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}pw.className="GaussianNoise",Gi(pw);class mw extends py{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 po((()=>{this.invokeCallHook(e,t);const n=ry(e);return this.rate>0&&this.rate<1?dg((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(ig(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}mw.className="GaussianDropout",Gi(mw);class gw extends py{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||ry(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 po((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return dg((()=>{const t=ry(e),r=-1.7580993408473766;let a=Su(Bc(n),this.rate);a=Zm(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)}),(()=>ry(e)),t.training||!1)}return e}))}}function yw(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Ll(e,t,n,r,a,s);else if(3===e.rank)i=zl(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=Wl(e,t,n,r,a,s)}return i}gw.className="AlphaDropout",Gi(gw);class bw extends py{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=Mg(e.betaInitializer||"zeros"),this.gammaInitializer=Mg(e.gammaInitializer||"ones"),this.movingMeanInitializer=Mg(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Mg(e.movingVarianceInitializer||"ones"),this.betaConstraint=Nm(e.betaConstraint),this.gammaConstraint=Nm(e.gammaConstraint),this.betaRegularizer=uv(e.betaRegularizer),this.gammaRegularizer=uv(e.gammaRegularizer)}build(e){e=ay(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Yp(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new uy({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 po((()=>{const n=null!=t.training&&t.training,r=ry(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=Qp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!se(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 yw(r,e,t,n,a,this.epsilon)}return yw(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(),Jm(0,e.rank-1))?function(e,t,n,r,a=.001){return po((()=>{const s=pc(e,r),i=s.mean,o=s.variance;return[yw(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return po((()=>{const s=pc(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[yw(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)=>{po((()=>{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:Og(this.betaInitializer),gammaInitializer:Og(this.gammaInitializer),movingMeanInitializer:Og(this.movingMeanInitializer),movingVarianceInitializer:Og(this.movingVarianceInitializer),betaRegularizer:ov(this.betaRegularizer),gammaRegularizer:ov(this.gammaRegularizer),betaConstraint:Cm(this.betaConstraint),gammaConstraint:Cm(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}bw.className="BatchNormalization",Gi(bw);class vw extends py{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=Mg(e.betaInitializer||"zeros"),this.gammaInitializer=Mg(e.gammaInitializer||"ones"),this.betaRegularizer=uv(e.betaRegularizer),this.gammaRegularizer=uv(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=ay(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!==hm(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=ry(e),r=n.shape,a=r.length;return po((()=>{let{mean:e,variance:t}=pc(n,this.axis,!0);const s=Qp(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 po((()=>{return t=ry(e),n=this.padding,r=this.dataFormat,po((()=>{if(4!==t.rank)throw new Yp(`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 Yp("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 Yp(`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]],wc(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 _w(e,t,n,r,a,s){return po((()=>{let i;Pm(a),zm(s),Lm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=vv(e,a);const o="same"===r?"same":"valid";return i="max"===s?rc(e,t,n,o):Dl(e,t,n,o),"channelsFirst"===a&&(i=gi(i,[0,3,1,2])),i}))}function xw(e,t,n,r,a,s){return po((()=>{let i;Pm(a),zm(s),Lm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=wv(e,a);const o="same"===r?"same":"valid";return i="max"===s?ac(e,t,n,o):Tl(e,t,n,o),"channelsFirst"===a&&(i=gi(i,[0,4,1,2,3])),i}))}ww.className="ZeroPadding2D",Gi(ww);class kw extends py{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 Yp(`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(mm(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 Yp(`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}mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Lm(this.padding),this.inputSpec=[new uy({ndim:3})]}computeOutputShape(e){const t=yv((e=ay(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return po((()=>{this.invokeCallHook(e,t),e=Qm(ry(e),2);const n=this.poolingFunction(ry(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return fh(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class Ew extends kw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"max")}}Ew.className="MaxPooling1D",Gi(Ew);class Cw extends kw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"avg")}}Cw.className="AveragePooling1D",Gi(Cw);class Sw extends py{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 Yp(`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];mm(this.poolSize,"poolSize"),mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),Lm(this.padding),this.inputSpec=[new uy({ndim:4})]}computeOutputShape(e){e=ay(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=yv(t,this.poolSize[0],this.padding,this.strides[0]),n=yv(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 po((()=>(this.invokeCallHook(e,t),this.poolingFunction(ry(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 Nw extends Sw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"max")}}Nw.className="MaxPooling2D",Gi(Nw);class Iw extends Sw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),_w(e,t,n,r,a,"avg")}}Iw.className="AveragePooling2D",Gi(Iw);class Aw extends py{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 Yp(`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];mm(this.poolSize,"poolSize"),mm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),Lm(this.padding),this.inputSpec=[new uy({ndim:5})]}computeOutputShape(e){e=ay(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=yv(t,this.poolSize[0],this.padding,this.strides[0]),n=yv(n,this.poolSize[1],this.padding,this.strides[1]),r=yv(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 po((()=>(this.invokeCallHook(e,t),this.poolingFunction(ry(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 Dw extends Aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),xw(e,t,n,r,a,"max")}}Dw.className="MaxPooling3D",Gi(Dw);class Tw extends Aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Pm(a),Lm(r),xw(e,t,n,r,a,"avg")}}Tw.className="AveragePooling3D",Gi(Tw);class Fw extends py{constructor(e){super(e),this.inputSpec=[new uy({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Jp}}class Rw extends Fw{constructor(e){super(e||{})}call(e,t){return po((()=>{const t=ry(e);return ic(t,1)}))}}Rw.className="GlobalAveragePooling1D",Gi(Rw);class Ow extends Fw{constructor(e){super(e||{})}call(e,t){return po((()=>{const t=ry(e);return Wu(t,1)}))}}Ow.className="GlobalMaxPooling1D",Gi(Ow);class Mw extends py{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Pm(this.dataFormat),this.inputSpec=[new uy({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 Bw extends Mw{call(e,t){return po((()=>{const t=ry(e);return"channelsLast"===this.dataFormat?ic(t,[1,2]):ic(t,[2,3])}))}}Bw.className="GlobalAveragePooling2D",Gi(Bw);class $w extends Mw{call(e,t){return po((()=>{const t=ry(e);return"channelsLast"===this.dataFormat?Wu(t,[1,2]):Wu(t,[2,3])}))}}$w.className="GlobalMaxPooling2D",Gi($w);class Pw extends py{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=Ay(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class Lw extends Pw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=ay(e)).length<3)throw new Yp(`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=ay(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 po((()=>Mv(((e,n)=>[ry(this.layer.call(e,t)),[]]),e=ry(e),[],!1,null,null,!1,!0)[1]))}}Lw.className="TimeDistributed",Gi(Lw);class zw extends Pw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ay(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=Ay(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,dm(Bm,"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()):nm(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Ov(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 Yp("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 uy({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 cy;for(const e of s)if(e instanceof cy!==o)throw new Yp("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 po((()=>{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=Uc(a,1)),"concat"===this.mergeMode?i=rg([r,a]):"sum"===this.mergeMode?i=No(r,a):"ave"===this.mergeMode?i=Do(.5,No(r,a)):"mul"===this.mergeMode?i=Do(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){Um(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Um(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=Ay(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 Ww(e){return new gy(e)}function Uw(e){return new dv(e)}function Vw(e){return new cv(e)}function jw(e){return new hv(e)}function Hw(e){return new fv(e)}function Gw(e){return new mv(e)}function Xw(e){return new pv(e)}function Kw(e){return new Dv(e)}function qw(e){return new Ev(e)}function Yw(e){return new Sv(e)}function Jw(e){return new Cv(e)}function Zw(e){return new Nv(e)}function Qw(e){return new Av(e)}function e_(e){return new Tv(e)}function t_(e){return new Fv(e)}function n_(e){return new Rv(e)}function r_(e){return new Qv(e)}function a_(e){return new Jv(e)}function s_(e){return new qv(e)}function i_(e){return new Yv(e)}function o_(e){return new Zv(e)}function l_(e){return new ew(e)}function u_(e){return new tw(e)}function c_(e){return new nw(e)}function h_(e){return new aw(e)}function f_(e){return new iw(e)}function d_(e){return new lw(e)}function p_(e){return new hw(e)}function m_(e){return new uw(e)}function g_(e){return new cw(e)}function y_(e){return new ow(e)}function b_(e){return new dw(e)}function v_(e){return new bw(e)}function w_(e){return new vw(e)}function __(e){return new ww(e)}function x_(e){return new Cw(e)}function k_(e){return x_(e)}function E_(e){return x_(e)}function C_(e){return new Iw(e)}function S_(e){return C_(e)}function N_(e){return C_(e)}function I_(e){return new Tw(e)}function A_(e){return I_(e)}function D_(e){return I_(e)}function T_(e){return new Rw(e)}function F_(e){return new Bw(e)}function R_(e){return new Ow(e)}function O_(e){return new $w(e)}function M_(e){return new Ew(e)}function B_(e){return new Nw(e)}function $_(e){return new Dw(e)}function P_(e){return new Wv(e)}function L_(e){return new zv(e)}function z_(e){return new Vv(e)}function W_(e){return new Uv(e)}function U_(e){return new Lv(e)}function V_(e){return new Pv(e)}function j_(e){return new Kv(e)}function H_(e){return new Xv(e)}function G_(e){return new Bv(e)}function X_(e){return new jv(e)}function K_(e){return new zw(e)}function q_(e){return new Lw(e)}zw.className="Bidirectional",Gi(zw);const Y_=R_,J_=O_,Z_=M_,Q_=B_;function ex(e){return new pw(e)}function tx(e){return new mw(e)}function nx(e){return new gw(e)}function rx(e){return new rw(e)}function ax(e,t){return zy(e,t)}function sx(e,t){return jy(e,t)}function ix(e,t){return Hy(e,t)}function ox(e,t){return Wy(e,t)}function lx(e,t){return Gy(e,t)}function ux(e,t){return Vy(e,t)}function cx(e,t){return function(e,t){return po((()=>{const n=Uy(e,t),r=function(e,t){return po((()=>Qu(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return fu(Cu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function hx(e,t){return $y(e,t)}function fx(e,t){return Fy(e,t)}function dx(e,t){return Ry(e,t)}function px(e,t){return Ry(e,t)}function mx(e,t){return Ry(e,t)}function gx(e,t){return Ty(e,t)}function yx(e,t){return Ty(e,t)}function bx(e,t){return Ty(e,t)}function vx(e){return new sv(e)}function wx(e){return rv(t=e),new sv({l1:null!=t?t.l1:null,l2:0});var t}function _x(e){return rv(t=e),new sv({l2:null!=t?t.l2:null,l1:0});var t}class xx extends _y{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Db))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function kx(e,t){return et}class Cx extends xx{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=kx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=Ex:this.monitorFunc=kx,this.monitorFunc===kx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===kx?1/0:-1/0}async onEpochEnd(e,t){await by(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 Sx={earlyStopping:function(e){return new Cx(e)}};var Nx,Ix;!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"}(Nx||(Nx={})),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={}))}(Ix||(Ix={}));const Ax={};function Dx(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Ax[e]=n}function Tx(e){return Ax[e]}function Fx(e){delete Ax[e]}function Rx(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 Ox(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>Ox(e,n,r,a)));const o=Ox(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 Ox(e,t,n,r){const[a,s]=$x(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[Bx(a,e)]));return void 0!==i?t[Bx(a,i)][s]:void 0}function Mx(e,t){const[n,r]=$x(e);return[Bx(n,t&&t.currentContextId),r]}function Bx(e,t){return t?`${e}-${t}`:e}function $x(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function Px(e,t,n){let r=Rx("pad",e,t,n);if("explicit"===r){r=Rx("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 Lx(e){return e.kept?e:qs(e)}const zx=[{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}]}],Wx=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Ux=[{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"}]}],Vx=[{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"}]}],jx=[{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"}]}],Hx=[{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}]}],Gx=[{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"}]}],Xx=[{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"}]}],Kx=[{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}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],qx=[{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"}]}],Yx=[{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}]}],Jx=[{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],Zx=[{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}]}],Qx=[{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"}]}],ek=[{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}]}],tk=[{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}]}],nk=[{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 rk{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,A,D,O,R,T,M,B,$,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]=Mx(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]=Mx(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]=Mx(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=Tx(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=sk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=mk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=mk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=ok(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=pk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=pk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=ik(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ik(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=yk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=yk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=dk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=dk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=gk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=gk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=ck(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ck(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=hk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=hk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=uk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=uk(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]=Mx(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:lk(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]=Mx(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=Mx(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 ak(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=We().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 sk(e,t,n,r=!1){const a=e[t];return null!=a?ak(a.s,r):n}function ik(e,t,n){const r=e[t];return r?r.b:n}function ok(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 lk(e){switch("string"==typeof e&&(e=Nx[e]),e){case Nx.DT_FLOAT:return"float32";case Nx.DT_INT32:case Nx.DT_INT64:case Nx.DT_INT8:case Nx.DT_UINT8:return"int32";case Nx.DT_BOOL:return"bool";case Nx.DT_DOUBLE:return"float32";case Nx.DT_STRING:return"string";default:return null}}function uk(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function ck(e,t,n){const r=e[t];return r&&r.type?lk(r.type):n}function hk(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>lk(e))):n}function fk(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function dk(e,t,n){const r=e[t];return r&&r.shape?fk(r.shape):n}function pk(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 mk(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>ak(e,r))):n}function gk(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>fk(e))):n}function yk(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class bk{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 Ox(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return Ox(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return ok(this.node.rawAttrs,e,t);if(null!=n.s)return sk(this.node.rawAttrs,e,t);if(null!=n.b)return ik(this.node.rawAttrs,e,t);if(null!=n.shape)return dk(this.node.rawAttrs,e,t);if(null!=n.type)return ck(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return pk(this.node.rawAttrs,e,t);if(null!=n.list.s)return mk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return gk(this.node.rawAttrs,e,t);if(null!=n.list.b)return yk(this.node.rawAttrs,e,t);if(null!=n.list.type)return hk(this.node.rawAttrs,e,t)}return t}}function vk(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 wk(e){return"number"!=typeof e&&!e.some((e=>e<0))}function _k(e,t,n){let r=xk(e,n);const a=!wk(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=xk(e.shape,r)})),!wk(r))throw new Error(`Non-fully-defined elementShape: ${r}`);return r}function xk(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 kk{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=Wo(0),go(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),vk(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,go(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,Sh(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=[];po((()=>{t=Al(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}`);vk(t,e.shape,"TensorList shape mismatch: "),go(e)})),this.idTensor=Wo(0),this.maxNumElements=r,go(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.`);vk(e,this.elementShape,"TensorList shape mismatch: ");const r=_k(this.elementShape,this.tensors,e);return po((()=>{const e=this.tensors.map((e=>Al(e,r)));return dh(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=_k(this.elementShape,this.tensors,e),r=this.tensors.pop();return vk(r.shape,e,"TensorList shape mismatch: "),Al(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(vk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");go(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.`);vk(this.tensors[e].shape,t,"TensorList shape mismatch: ");const r=_k(this.elementShape,this.tensors,t);return Al(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.`);vk(this.elementShape,t.shape,"TensorList shape mismatch: "),go(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}`);vk(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const r=_k(this.elementShape,this.tensors,n);return 0===e.length?ts([],[0].concat(r)):po((()=>{const t=e.map((e=>Al(this.tensors[e],r)));return dh(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);vk(this.elementShape,t,"TensorList shape mismatch: ");const n=_k(this.elementShape,this.tensors,t);return 0===this.size()?ts([],[0].concat(n)):po((()=>{const e=this.tensors.map((e=>Al(e,n)));return Fl(e,0)}))}}function Ck(e,t,n){const[r,a]=Rx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=Rx("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=Rx("strides",e,t,n),c=Px(e,t,n),h=Rx("dataFormat",e,t,n).toUpperCase(),f=Rx("dilations",e,t,n),[d,p]=Rx("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:Rx("leakyreluAlpha",e,t,n)}}function Sk(e,t,n){return{boxes:Rx("boxes",e,t,n),scores:Rx("scores",e,t,n),maxOutputSize:Rx("maxOutputSize",e,t,n),iouThreshold:Rx("iouThreshold",e,t,n),scoreThreshold:Rx("scoreThreshold",e,t,n),softNmsSigma:Rx("softNmsSigma",e,t,n)}}class Nk{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=Wo(0),this.tensorMap=new Map,go(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}tensorSize(){return Wo(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),po((()=>{const e=Sh(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 po((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[No(Rx("a",e,t,n),Rx("b",e,t,n))];case"AddN":return[il(Rx("tensors",e,t,n))];case"FloorMod":case"Mod":return[dc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Mul":return[Do(Rx("a",e,t,n),Rx("b",e,t,n))];case"RealDiv":case"Div":return[Ao(Rx("a",e,t,n),Rx("b",e,t,n))];case"DivNoNan":return[du(Rx("a",e,t,n),Rx("b",e,t,n))];case"FloorDiv":return[Io(Rx("a",e,t,n),Rx("b",e,t,n))];case"Sub":return[Xo(Rx("a",e,t,n),Rx("b",e,t,n))];case"Minimum":return[hc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Maximum":return[Qo(Rx("a",e,t,n),Rx("b",e,t,n))];case"Pow":return[Go(Rx("a",e,t,n),Rx("b",e,t,n))];case"SquaredDifference":return[hh(Rx("a",e,t,n),Rx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return po((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[qo(Rx("x",e,t,n))];case"Acos":return[al(Rx("x",e,t,n))];case"Acosh":return[sl(Rx("x",e,t,n))];case"Asin":return[hl(Rx("x",e,t,n))];case"Asinh":return[fl(Rx("x",e,t,n))];case"Atan":return[dl(Rx("x",e,t,n))];case"Atan2":return[pl(Rx("x",e,t,n),Rx("y",e,t,n))];case"Atanh":return[ml(Rx("x",e,t,n))];case"Ceil":return[jl(Rx("x",e,t,n))];case"Complex":return[Qa(Rx("real",e,t,n),Rx("imag",e,t,n))];case"Cos":return[ru(Rx("x",e,t,n))];case"Cosh":return[au(Rx("x",e,t,n))];case"Elu":return[gu(Rx("x",e,t,n))];case"Erf":return[yu(Rx("x",e,t,n))];case"Exp":return[bu(Rx("x",e,t,n))];case"Expm1":return[wu(Rx("x",e,t,n))];case"Floor":return[ku(Rx("x",e,t,n))];case"Log":return[Bu(Rx("x",e,t,n))];case"Log1p":return[$u(Rx("x",e,t,n))];case"Imag":return[Nu(Rx("x",e,t,n))];case"Neg":return[Pu(Rx("x",e,t,n))];case"Reciprocal":return[Lc(Rx("x",e,t,n))];case"Real":return[Pc(Rx("x",e,t,n))];case"Relu":return[zc(Rx("x",e,t,n))];case"Round":return[Xc(Rx("x",e,t,n))];case"Selu":return[qc(Rx("x",e,t,n))];case"Sigmoid":return[Rl(Rx("x",e,t,n))];case"Sin":return[Qc(Rx("x",e,t,n))];case"Sign":return[Zc(Rx("x",e,t,n))];case"Sinh":return[eh(Rx("x",e,t,n))];case"Softplus":return[Lu(Rx("x",e,t,n))];case"Sqrt":return[To(Rx("x",e,t,n))];case"Square":return[Fo(Rx("x",e,t,n))];case"Tanh":return[Ml(Rx("x",e,t,n))];case"Tan":return[gh(Rx("x",e,t,n))];case"ClipByValue":return[Hl(Rx("x",e,t,n),Rx("clipValueMin",e,t,n),Rx("clipValueMax",e,t,n))];case"Relu6":return[Wc(Rx("x",e,t,n))];case"Rsqrt":return[Kc(Ox(e.inputNames[0],t,n))];case"Prod":return[Ic(Rx("x",e,t,n),Rx("axes",e,t,n))];case"LeakyRelu":return[Tu(Rx("x",e,t,n),Rx("alpha",e,t,n))];case"Prelu":return[Nc(Rx("x",e,t,n),Rx("alpha",e,t,n))];case"IsNan":return[Du(Ox(e.inputNames[0],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=Rx("thenBranch",e,t,n),a=Rx("elseBranch",e,t,n),s=Rx("cond",e,t,n),i=Rx("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=Rx("body",e,t,n),a=Rx("cond",e,t,n),s=Rx("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[Lx(Rx("pred",e,t,n))];case"Switch":{const r=Rx("pred",e,t,n);let a=Rx("data",e,t,n);return a.kept||(a=Lx(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==Ox(e,t,n)));return r?[Lx(Ox(r,t,n))]:void 0}case"Enter":{const r=Rx("frameName",e,t,n),a=Rx("tensor",e,t,n);return n.enterFrame(r),[Lx(a)]}case"Exit":{const r=Rx("tensor",e,t,n);return n.exitFrame(),[Lx(r)]}case"NextIteration":{const r=Rx("tensor",e,t,n);return n.nextIteration(),[Lx(r)]}case"TensorArrayV3":{const r=Rx("size",e,t,n),a=Rx("dtype",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("dynamicSize",e,t,n),o=Rx("clearAfterRead",e,t,n),l=Rx("identicalElementShapes",e,t,n),u=Rx("name",e,t,n),c=new kk(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,Wo(1)]}case"TensorArrayWriteV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("index",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("indices",e,t,n),s=Rx("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("indices",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=Rx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=Rx("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=Rx("tensorArrayId",e,t,n),a=Rx("tensor",e,t,n),s=Rx("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=Rx("tensorArrayId",e,t,n);return[Wo(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=Rx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=Rx("tensorListId",e,t,n),a=Rx("index",e,t,n),s=Rx("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=Rx("tensorListId",e,t,n),a=Rx("index",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=Rx("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=Sh(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(Rx("tensor",e,t,n),r,Rx("elementShape",e,t,n),Rx("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=Rx("elementShape",e,t,n),a=Rx("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,Rx(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=Rx("tensorListId",e,t,n),a=Rx("indices",e,t,n),s=Rx("elementShape",e,t,n),i=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=Rx("tensorListId",e,t,n),a=Rx("elementShape",e,t,n),s=Rx("elementDType",e,t,n),i=Rx("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}`);vk(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=Sh(e);return new Ek(a,t,r)}(Rx("tensor",e,t,n),Rx("elementShape",e,t,n),Rx("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=Rx("tensorListId",e,t,n),a=n.getTensorList(r.id),s=Rx("dtype",e,t,n),i=Rx("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=Rx("tensorListId",e,t,n),a=Rx("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=Rx("tensorListId",e,t,n),a=Rx("elementShape",e,t,n),s=Rx("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=Rx("tensor",e,t,n),a=Rx("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=xk(e.shape.slice(1),n),i=0===r?0:e.size/r,o=po((()=>{const n=[];e=Al(e,[1,r,i]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=Rx("stride",e,t,n),a=Rx("pad",e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilation",e,t,n);return[Jl(Rx("x",e,t,n),Rx("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=Rx("strides",e,t,n),a=Px(e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilations",e,t,n);return[Yl(Rx("x",e,t,n),Rx("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}=Ck(e,t,n);return[Gh({x:Rx("x",e,t,n),filter:Rx("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}=Ck(e,t,n);return[qh({x:Rx("x",e,t,n),filter:Rx("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=Rx("outputShape",e,t,n),a=Rx("strides",e,t,n),s=Px(e,t,n);return[Ql(Rx("x",e,t,n),Rx("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=Rx("strides",e,t,n),a=Px(e,t,n),s=Rx("dilations",e,t,n),i=Rx("dataFormat",e,t,n).toUpperCase();return[lu(Rx("input",e,t,n),Rx("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("dataFormat",e,t,n).toUpperCase(),i=Rx("dilations",e,t,n);return[eu(Rx("x",e,t,n),Rx("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[Dl(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[rc(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n),i=Rx("includeBatchInIndex",e,t,n),{result:o,indexes:l}=sc(Rx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[Tl(Rx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("kernelSize",e,t,n);return[ac(Rx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=Rx("strides",e,t,n),a=Rx("pad",e,t,n),s=Rx("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[cu(Rx("x",e,t,n),Rx("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 po((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=Rx("shape",e,t,n),a=Rx("dtype",e,t,n);return[jo(r,Rx("value",e,t,n),a)]}case"LinSpace":return[Ou(Rx("start",e,t,n),Rx("stop",e,t,n),Rx("num",e,t,n))];case"Multinomial":{const r=Rx("logits",e,t,n),a=Rx("numSamples",e,t,n),s=Rx("seed",e,t,n);return[gc(r,a,s)]}case"OneHot":{const r=Rx("indices",e,t,n),a=Rx("depth",e,t,n),s=Rx("onValue",e,t,n),i=Rx("offValue",e,t,n);return[mi(r,a,s,i)]}case"Ones":return[lc(Rx("shape",e,t,n),Rx("dtype",e,t,n))];case"OnesLike":return[bc(Rx("x",e,t,n))];case"RandomUniform":return[Bc(Rx("shape",e,t,n),Rx("minval",e,t,n),Rx("maxval",e,t,n),Rx("dtype",e,t,n))];case"Range":return[$c(Rx("start",e,t,n),Rx("stop",e,t,n),Rx("step",e,t,n),Rx("dtype",e,t,n))];case"TruncatedNormal":{const r=Rx("shape",e,t,n),a=Rx("mean",e,t,n),s=Rx("stdDev",e,t,n),i=Rx("seed",e,t,n);return[kh(r,a,s,Rx("dtype",e,t,n),i)]}case"Zeros":return[oc(Rx("shape",e,t,n),Rx("dtype",e,t,n))];case"ZerosLike":return[Ro(Rx("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}=Sk(e,t,n),u=await zf.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}=Sk(e,t,n),l=Rx("padToMaxOutputSize",e,t,n),u=await zf.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}=Sk(e,t,n);return[await zf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=Ks(Rx("condition",e,t,n),"bool"),a=[await Ah(r)];return r.dispose(),a}case"ListDiff":return Jc(Rx("x",e,t,n),Rx("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return po((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=Rx("x",e,t,n),a=Rx("k",e,t,n),s=Rx("sorted",e,t,n),i=xh(r,a,s);return[i.values,i.indices]}case"Unique":{const r=Rx("x",e,t,n),a=Eh(r);return[a.values,a.indices]}case"UniqueV2":{const r=Rx("x",e,t,n),a=Rx("axis",e,t,n),s=Eh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return po((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=Rx("images",e,t,n),a=Rx("size",e,t,n),s=Rx("alignCorners",e,t,n),i=Rx("halfPixelCenters",e,t,n);return[zf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=Rx("images",e,t,n),a=Rx("size",e,t,n),s=Rx("alignCorners",e,t,n),i=Rx("halfPixelCenters",e,t,n);return[zf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=Rx("image",e,t,n),a=Rx("boxes",e,t,n),s=Rx("boxInd",e,t,n),i=Rx("cropSize",e,t,n),o=Rx("method",e,t,n),l=Rx("extrapolationValue",e,t,n);return[zf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return po((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=Rx("default",e,t,n);return[Ox(e.name,t,n)||r];case"Placeholder":return[Ox(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[Lx(Rx("x",e,t,n))];case"IdentityN":return Rx("x",e,t,n).map((e=>Lx(e)));case"Snapshot":return[Lx(Rx("x",e,t,n))];case"Shape":return[yh(Rx("x",e,t,n).shape,"int32")];case"ShapeN":return Rx("x",e,t,n).map((e=>yh(e.shape)));case"Size":return[Wo(Rx("x",e,t,n).size,"int32")];case"Rank":return[Wo(Rx("x",e,t,n).rank,"int32")];case"NoOp":return[Wo(1)];case"Print":const a=Rx("x",e,t,n),s=Rx("data",e,t,n),i=Rx("message",e,t,n),o=Rx("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[hu(Rx("a",e,t,n),Rx("b",e,t,n))];case"NotEqual":return[yc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Greater":return[Cu(Rx("a",e,t,n),Rx("b",e,t,n))];case"GreaterEqual":return[Su(Rx("a",e,t,n),Rx("b",e,t,n))];case"Less":return[Fu(Rx("a",e,t,n),Rx("b",e,t,n))];case"LessEqual":return[Ru(Rx("a",e,t,n),Rx("b",e,t,n))];case"LogicalAnd":return[Qu(Rx("a",e,t,n),Rx("b",e,t,n))];case"LogicalNot":return[ec(Rx("a",e,t,n))];case"LogicalOr":return[tc(Rx("a",e,t,n),Rx("b",e,t,n))];case"Select":case"SelectV2":return[fu(Rx("condition",e,t,n),Rx("a",e,t,n),Rx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return po((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[pi(Rx("a",e,t,n),Rx("b",e,t,n),Rx("transposeA",e,t,n),Rx("transposeB",e,t,n))];case"Einsum":return[mu(Rx("equation",e,t,n),...Rx("tensors",e,t,n))];case"Transpose":return[gi(Rx("x",e,t,n),Rx("perm",e,t,n))];case"_FusedMatMul":const[r,a]=Rx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=Rx("numArgs",e,t,n),l=Rx("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]=Rx("args",e,t,n);return[Yh({a:Rx("a",e,t,n),b:Rx("b",e,t,n),transposeA:Rx("transposeA",e,t,n),transposeB:Rx("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 po((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Pl(Rx("x",e,t,n),Rx("mean",e,t,n),Rx("variance",e,t,n),Rx("offset",e,t,n),Rx("scale",e,t,n),Rx("epsilon",e,t,n))];case"LRN":return[Mu(Rx("x",e,t,n),Rx("radius",e,t,n),Rx("bias",e,t,n),Rx("alpha",e,t,n),Rx("beta",e,t,n))];case"Softmax":return[sh(Rx("x",e,t,n))];case"LogSoftmax":return[Vu(Rx("x",e,t,n))];case"SparseToDense":return[Mh(Rx("sparseIndices",e,t,n),Rx("outputShape",e,t,n),Rx("sparseValues",e,t,n),Rx("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return po((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Wu(Rx("x",e,t,n),r,a)]}case"Mean":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ic(Rx("x",e,t,n),r,a)]}case"Min":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[cc(Rx("x",e,t,n),r,a)]}case"Sum":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Uu(Rx("x",e,t,n),r,a)]}case"All":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ol(Rx("x",e,t,n),r,a)]}case"Any":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[ll(Rx("x",e,t,n),r,a)]}case"ArgMax":{const r=Rx("axis",e,t,n);return[ul(Rx("x",e,t,n),r)]}case"ArgMin":{const r=Rx("axis",e,t,n);return[cl(Rx("x",e,t,n),r)]}case"Prod":{const r=Rx("axis",e,t,n),a=Rx("keepDims",e,t,n);return[Ic(Rx("x",e,t,n),r,a)]}case"Cumsum":{const r=Rx("axis",e,t,n),a=Rx("exclusive",e,t,n),s=Rx("reverse",e,t,n);return[su(Rx("x",e,t,n),r,a,s)]}case"Bincount":const r=Rx("x",e,t,n),a=Rx("weights",e,t,n),s=Rx("size",e,t,n);return[Ul(r,a,s)];case"DenseBincount":{const r=Rx("x",e,t,n),a=Rx("weights",e,t,n),s=Rx("size",e,t,n),i=Rx("binaryOutput",e,t,n);return[iu(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return po((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=Rx("n",e,t,n),a=Rx("axis",e,t,n);let s=Rx("tensors",e,t,n);return s=s.slice(0,r),[Fl(s,a)]}case"Gather":{const r=Rx("x",e,t,n),a=Rx("indices",e,t,n);return[Eu(r,Ks(a,"int32"),0)]}case"GatherV2":{const r=Rx("axis",e,t,n),a=Rx("batchDims",e,t,n),s=Rx("x",e,t,n),i=Rx("indices",e,t,n);return[Eu(s,Ks(i,"int32"),r,a)]}case"Reverse":{const r=Rx("dims",e,t,n),a=[];for(let e=0;e{const r=Rx("axis",e,t,n),a=Rx("tensors",e,t,n),s=a[0].shape,i=fh(a[0]).shape,o=a.map((e=>{const t=se(e.shape,s);if(!t&&!se(fh(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:Al(e,s)}));return[dh(o,r)]}));case"Unpack":{const r=Rx("axis",e,t,n),a=Rx("tensor",e,t,n);return Sh(a,r)}case"Tile":{const r=Rx("reps",e,t,n);return[_u(Rx("x",e,t,n),r)]}case"Split":case"SplitV":{const r=Rx("axis",e,t,n),a=Rx("numOrSizeSplits",e,t,n),s=Rx("x",e,t,n);return uh(s,a,r)}case"ScatterNd":{const r=Rx("indices",e,t,n),a=Rx("values",e,t,n),s=Rx("shape",e,t,n);return[Oh(r,a,s)]}case"GatherNd":{const r=Rx("x",e,t,n),a=Rx("indices",e,t,n);return[Bh(r,a)]}case"SparseToDense":{const r=Rx("sparseIndices",e,t,n),a=Rx("outputShape",e,t,n),s=Rx("sparseValues",e,t,n),i=Rx("defaultValue",e,t,n);return[Mh(r,s,a,s.dtype===i.dtype?i:Ks(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"sparse":return po((()=>((e,t,n)=>{switch(e.op){case"SparseReshape":{const{outputIndices:r,outputShape:a}=Vf.sparseReshape(Rx("inputIndices",e,t,n),Rx("inputShape",e,t,n),Rx("newShape",e,t,n));return[r,a]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return po((()=>((e,t,n)=>{switch(e.op){case"FFT":return[ih(Rx("x",e,t,n))];case"IFFT":return[oh(Rx("x",e,t,n))];case"RFFT":return[ch(Rx("x",e,t,n))];case"IRFFT":return[lh(Rx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return po((()=>((e,t,n)=>{switch(e.op){case"Cast":return[Ks(Rx("x",e,t,n),Rx("dtype",e,t,n))];case"ExpandDims":{const r=Rx("axis",e,t,n);return[vu(Rx("x",e,t,n),r)]}case"Squeeze":{const r=Rx("axis",e,t,n);return[fh(Rx("x",e,t,n),r)]}case"Reshape":return[Al(Rx("x",e,t,n),Rx("shape",e,t,n))];case"MirrorPad":return[fc(Rx("x",e,t,n),Rx("padding",e,t,n),Rx("mode",e,t,n))];case"PadV2":case"Pad":return[wc(Rx("x",e,t,n),Rx("padding",e,t,n),Rx("constantValue",e,t,n))];case"SpaceToBatchND":{const r=Rx("blockShape",e,t,n),a=Rx("paddings",e,t,n);return[Cc(Rx("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=Rx("blockShape",e,t,n),a=Rx("crops",e,t,n);return[$l(Rx("x",e,t,n),r,a)]}case"DepthToSpace":{const r=Rx("blockSize",e,t,n),a=Rx("dataFormat",e,t,n).toUpperCase();return[ou(Rx("x",e,t,n),r,a)]}case"BroadcastTo":return[Vl(Rx("x",e,t,n),Rx("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=Rx("keyDType",e,t,n),s=Rx("valueDType",e,t,n),i=new Nk(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=Rx("tableHandle",e,t,n,r),s=Rx("keys",e,t,n),i=Rx("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=Rx("tableHandle",e,t,n,r),s=Rx("keys",e,t,n),i=Rx("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{const a=Rx("tableHandle",e,t,n,r);return[r.getHashTableById(a.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=Tx(e.op);if(a&&a.customExecutor)return a.customExecutor(new bk(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 Ak{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 Dk(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>$x(e)[0]));let c=[];null!=r&&(c=r.map((e=>$x(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(Ok(e)||Mk(e)||Bk(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 Tk=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],Fk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],Rk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function Ok(e){return Tk.indexOf(e.op)>=0}function Mk(e){return Fk.indexOf(e.op)>=0}function Bk(e){return Rk.indexOf(e.op)>=0}class $k{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 $k(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=Dk(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=>$x(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[$x(e)[0]])),a=t.map((e=>$x(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 po((()=>{const n=new Ak(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=$x(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;eOx(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[Bx(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!e.kept&&!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 Ak(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>Ox(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.kept||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[$x(e)[0]])),i=n.map((e=>$x(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}=Dk(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]=$x(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=>!Ok(e)&&!Ox(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&&Rx("isConstant",e.node,r,n)&&([c]=Mx(e.node.name,n)),null==r[e.node.name]){const h=Ik(e.node,r,n,this._resourceManager);c||([c]=Mx(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]=Mx(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!Ox(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!Ox(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]=$x(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]=$x(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]=$x(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 Lk{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=ui(e,this.loadOptions);else{const t=gs(e,this.loadOptions);if(0===t.length)t.push(ui(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=as(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new $k(rk.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=rk.Instance.transformGraph(e.modelInitializer);this.initializer=new $k(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=ms(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 _a||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 zk(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 Lk(e,t);return await n.load(),n}const Wk="3.6.0";function Uk(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(Xk(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=Uk(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=Hk){return jk(e,t)}function jk(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(Xk(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=jk(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 Hk(e){return null===e?null:Xk(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Gk(e,t){const n=new Map;Uk(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 Uk(e,t,n)}function Xk(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof _a))}function Kk(e){return e instanceof _a?{value:e.clone(),recurse:!1}:Xk(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class qk{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 Yk extends qk{constructor(){super(Yk.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 sE(this,e,t)}columnMajorBatch(e,t=!0,n=Hk){return this.rowMajorBatch(e,t).map((e=>Vk(e,n)))}concatenate(e,t){return new fE(Jk([this,e]),t)}take(e){return e<0||null==e?this:new aE(this,e)}skip(e){return e<0||null==e?this:new rE(this,e)}prefetch(e){return new mE(this,e)}shuffle(e,t){return new gE(this,e,t)}serial(){return new nE(this)}}class eE extends Qk{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 Uk(e,t)}(t,Kk)),done:!1};var t}}class tE extends Qk{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 nE extends Qk{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 rE extends Qk{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 sE extends Qk{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 iE extends Qk{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;mo(e.value)}}}class oE extends Qk{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=Ma(e.value),n=this.transform(e.value),r=Ma(n);for(const e of t)Oa(e,r)||e.dispose();return{value:n,done:!1}}}class lE extends Qk{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 uE extends Qk{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=Ma(e.value),n=await this.transform(e.value),r=Ma(n);for(const e of t)Oa(e,r)||e.dispose();return{value:n,done:!1}}}class cE extends Qk{constructor(){super(),this.outputQueue=new Yk,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 hE extends cE{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=Ma(e.value),n=this.transform(e.value),r=Ma(n);this.outputQueue.pushAll(n);for(const e of t)Oa(e,r)||e.dispose();return!0}}class fE extends Qk{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 dE;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(dE||(dE={}));class pE extends Qk{constructor(e,t=dE.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 Gk(this.iterators,(function(e){return e instanceof Qk?{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 dE.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case dE.SHORTEST:return{value:null,done:!0};case dE.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class mE extends Qk{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new qk(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 gE extends mE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=Dc.alea(n||sa().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 yE{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),bE((async()=>(await n.iterator()).columnMajorBatch(e,t,_E)),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,bE((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,bE((async()=>(await t.iterator()).filter((t=>po((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return bE((async()=>(await t.iterator()).map((t=>po((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return bE((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 bE((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,bE((async()=>{return n=Zk((async()=>({value:await t.iterator(),done:!1}))).take(e),new fE(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=Dc.alea(t||sa().toString());return bE((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,bE((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 bE(e,t=null){return new class extends yE{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function vE(e){return bE((async()=>Jk(e)),e.length)}function wE(e){if(!Xk(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=dE.FAIL){return new pE(e,t)}(await Gk(e,(e=>{if(e instanceof yE)return{value:e.iterator(),recurse:!1};if(Xk(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),dE.SHORTEST)),t)}function _E(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 _a||we(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof _a?dh(e):ts(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}yE.MAX_BUFFER_SIZE=1e4;class xE extends yE{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 kE='"',EE=Symbol("out"),CE=Symbol("field"),SE=Symbol("quote"),NE=Symbol("quoteafterquote"),IE=Symbol("quoteinquote");class AE extends yE{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 xE(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(We().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new DE(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),ts(n,t)}}class TE extends Qk{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=yh([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=bh([r,n,s,a],[1,4])}else this.cropBox=bh([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(We().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 TE(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=ki(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 po((()=>{const t=vu(Ks(e,"float32"),0);let n;n=zf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return Al(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 FE{}class RE extends Qk{split(e){return new OE(this,e)}}class OE extends RE{constructor(e,t){super(),this.upstream=e,this.impl=new ME(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class ME extends cE{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 BE extends Qk{decodeUTF8(){return new $E(this)}}class $E extends RE{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 cE{constructor(e){if(super(),this.upstream=e,We().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=We().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class LE extends BE{constructor(e,t={}){super(),this.file=e,this.options=t,Q(e instanceof Uint8Array||!!We().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 zE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class WE extends FE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(zE(this.input)&&We().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new LE(this.input,this.options)}}class UE extends FE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return zE(this.url)?new WE(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 ia(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new LE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function VE(e,t={}){return new AE(new UE(e),t)}function jE(e){const t=Zk(e);return bE((async()=>t))}function HE(e){return bE((async()=>{const t=await e();return Zk((()=>t.next()))}))}async function GE(e,t){return TE.create(e,t)}async function XE(e){return DE.create(e)}const KE="3.6.0";function qE(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 YE=Ih;class JE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,co())}nextDataId(){return JE.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,We().get("IS_NODE")&&fd("\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=>oa(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?pd(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=>la(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Xs(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return co().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=sa();return e(),{kernelMs:sa()-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){qE([e],"where");const t=this.readSync(e.dataId);return YE(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function ZE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(qE(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(qE(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)}}JE.nextDataId=0,Eo("cpu",(()=>new JE),1);const eC=ZE(Wt,(e=>e>=0?e:Math.exp(e)-1)),tC={kernelName:Wt,backendName:"cpu",kernelFunc:eC};function nC(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 rC={kernelName:an,backendName:"cpu",kernelFunc:nC};function aC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;qE([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=Zo(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=Yo(t,i),m=Yo(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 oC=iC(((e,t)=>e<0?t*e:e));function lC(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;qE([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=oC(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const uC={kernelName:Kn,backendName:"cpu",kernelFunc:lC},cC=ZE(Qn,(e=>Math.max(0,e))),hC={kernelName:Qn,backendName:"cpu",kernelFunc:cC},fC=ZE(sr,(e=>Math.min(Math.max(0,e),6))),dC={kernelName:sr,backendName:"cpu",kernelFunc:fC},pC=ZE(gr,(e=>1/(1+Math.exp(-e)))),mC={kernelName:gr,backendName:"cpu",kernelFunc:pC};function gC(e,t,n,r,a){if("linear"===n)return nC({inputs:{x:t},backend:e});if("relu"===n)return cC({inputs:{x:t},backend:e});if("elu"===n)return eC({inputs:{x:t},backend:e});if("relu6"===n)return fC({inputs:{x:t},backend:e});if("prelu"===n)return lC({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return aC({inputs:{x:t},backend:e,attrs:{alpha:a}});if("sigmoid"===n)return pC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function yC(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 bC={kernelName:yt,backendName:"cpu",kernelFunc:yC};function vC(e,t,n="float32"){if("complex64"===n)return yC({inputs:{real:vC(e,t,"float32"),imag:vC(e,t,"float32")},backend:e});const r=Re(re(t),n);return e.makeTensorInfo(t,n,r)}function wC(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 _C={kernelName:Jn,backendName:"cpu",kernelFunc:wC};function xC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return nC({inputs:{x:a},backend:n});const e=vC(n,a.shape,a.dtype),t=xC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=yC({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=wC({inputs:{input:a},backend:n}),t=xC({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!ve(a.dtype,s)){const e=nC({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=aa([0],a.dtype),[r,s]=iC(((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 kC={kernelName:pt,backendName:"cpu",kernelFunc:xC};function EC(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;qE([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=xC({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=xC({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),_=yC({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=Zo(t,n),l=re(o),u=o.length,c=Ae(o),h=me("float32",l),f=me("float32",l),d=Yo(t,o),p=Yo(n,o),m=pd(r,a),g=pd(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=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 SC=iC(((e,t)=>e+t)),NC=CC(((e,t,n,r)=>({real:e+n,imag:t+r}))),IC=EC(qe,SC,NC),AC={kernelName:qe,backendName:"cpu",kernelFunc:IC};function DC(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 TC={kernelName:er,backendName:"cpu",kernelFunc:DC};function FC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;qE([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=DC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),_=DC({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=Ae(w.shape),A=Ae(_.shape),[D,T,F]=i?[I[0],1,I[1]]:[I[0],I[1],1],[R,O,M]=o?[1,A[1],A[0]]:[A[1],1,A[0]],B=k*E,$=Xs([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;qE(t,"abs");let r=new Float32Array(re(t.shape));return r=MC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},$C=ZE(Xe,(e=>Math.acos(e))),PC={kernelName:Xe,backendName:"cpu",kernelFunc:$C},LC=ZE(Ke,(e=>Math.acosh(e))),zC={kernelName:Ke,backendName:"cpu",kernelFunc:LC},WC={kernelName:Ye,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;qE(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Xs(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)}},KC={kernelName:et,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;qE(a,"argMin");let i=de(s,a.shape);const o=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=VC({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),i=[i[0]],Ku("argMin",i,l.shape.length);const[c,h]=Gu(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)}},qC=ZE(tt,(e=>Math.asin(e))),YC={kernelName:tt,backendName:"cpu",kernelFunc:qC},JC=ZE(nt,(e=>Math.asinh(e))),ZC={kernelName:nt,backendName:"cpu",kernelFunc:JC},QC=ZE(rt,(e=>Math.atan(e))),eS={kernelName:rt,backendName:"cpu",kernelFunc:QC},tS=iC(((e,t)=>Math.atan2(e,t))),nS=EC(st,tS),rS={kernelName:st,backendName:"cpu",kernelFunc:nS},aS=ZE(at,(e=>Math.atanh(e))),sS={kernelName:at,backendName:"cpu",kernelFunc:aS};function iS(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=Xs(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 oS(e,t,n,r,a=!1,s=!1){const i=Xs(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=Xs(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 lS(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=Xs(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 uS={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;qE(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=nC({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=iS(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},cS={kernelName:lt,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;qE(a,"avgPool3d");const c=bl(a.shape,s,i,1,o,l,u),h=lS(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}},hS={kernelName:ut,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;qE([a,s],"avgPool3DGrad");const c=bl(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,_=c.effectiveFilterHeight,x=c.effectiveFilterWidth,k=w-1-c.padInfo.front,E=x-1-c.padInfo.left,C=_-1-c.padInfo.top,S=Xs(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<_;n+=b){const a=(i+n)/f;if(!(a<0||a>=c.outHeight||Math.floor(a)!==a))for(let n=0;n=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)}},fS={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;qE([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=yl(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,_=Xs(i.shape,"float32"),x=1/(d*p),k=n.data.get(a.dataId).values,E=Xs(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)}},dS={kernelName:Qt,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.")),qE([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 pS(e,t,n,r,a){const s=zi(r,t,n),i=re(n),o=Ae(r);if(s){const n=Wi(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Xs(r,a,"string"===a?Rd(e):e),u=Xs(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?Od(u.values):u.values}function mS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;qE(a,"slice");const[o,l]=Ui(a,s,i);Ii(a,o,l);const u=pS(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const gS={kernelName:fr,backendName:"cpu",kernelFunc:mS},yS={kernelName:ht,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;qE([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Qf(a.shape,s,o),u=ed(l.length,s.length),c=td(a.shape,s,o),h=nd(i,s.length),f=rd(c,i,s.length),d=DC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=VC({inputs:{x:d},backend:n,attrs:{perm:u}}),m=DC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=mS({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function bS(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 vS(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Xs([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 wS={kernelName:ft,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=bS(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 _S(e){return(t,n,r)=>{const a=me(n,t.length);for(let n=0;nMath.ceil(e))),kS=QE(mt,xS),ES={kernelName:mt,backendName:"cpu",kernelFunc:kS},CS=ZE(gt,((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?Rd(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 nC({inputs:{x:o[0]},backend:n});if(Kf(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>wC({inputs:{input:e},backend:n}))),t=o.map((e=>AS({inputs:{input:e},backend:n}))),r=TS({inputs:e,backend:n,attrs:{axis:s}}),a=TS({inputs:t,backend:n,attrs:{axis:s}}),i=yC({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 DC({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=IS(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 FS={kernelName:vt,backendName:"cpu",kernelFunc:TS};function RS(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;qE([a,s],"conv2d");const h=Il(l),f=vl(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 ya(f.outShape,a.dtype),_=Ae(a.shape),x=Ae(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],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*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))),WS={kernelName:St,backendName:"cpu",kernelFunc:zS},US=ZE(Nt,(e=>Math.cosh(e))),VS={kernelName:Nt,backendName:"cpu",kernelFunc:US},jS={kernelName:At,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=Xs([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,_=Ae(a.shape),x=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=vl(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 ya(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}=gl(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[Be([e,t,s,o],I,Ae(S))]=l}}}return{dataId:l.write(aa(A,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},eN={kernelName:Pt,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:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=gl(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${Pt}, 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(aa(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},tN={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:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=gl(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(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(aa(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},nN=iC(((e,t)=>e*t)),rN=CC(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),aN=EC(Bn,nN,rN),sN={kernelName:Bn,backendName:"cpu",kernelFunc:aN};function iN(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;qE(a,"sum"),o="bool"===a.dtype?xC({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):nC({inputs:{x:a},backend:n});const l=o.shape.length,u=de(s,o.shape),c=qu(u,l);let h=u,f=o;null!=c&&(f=VC({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Ju(h.length,l)),Ku("sum",h,f.shape.length);const[d,p]=Gu(f.shape,h);let m=vC(n,d,Da(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;e=0&&(f=iN({inputs:{x:f},backend:n,attrs:{axis:u[e]-(i.length-d),keepDims:!1}}),p.push(f)),d--)}for(const e of p)e!==f&&n.disposeIntermediateTensorInfo(e);return f}},uN={kernelName:Ut,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;qE([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)}},cN=iC(((e,t)=>e===t?1:0)),hN=EC(jt,cN,null,"bool"),fN={kernelName:jt,backendName:"cpu",kernelFunc:hN},dN=id,pN=od,mN=ld,gN=ud,yN=cd,bN=hd,vN=ZE(Vt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+dN*n);return t*(1-((((bN*r+yN)*r+gN)*r+mN)*r+pN)*r*Math.exp(-n*n))})),wN={kernelName:Vt,backendName:"cpu",kernelFunc:vN},_N=_S((e=>Math.exp(e))),xN=QE(Ht,_N),kN={kernelName:Ht,backendName:"cpu",kernelFunc:xN};function EN(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),DC({inputs:{x:a},backend:n,attrs:{shape:o}})}const CN={kernelName:Gt,backendName:"cpu",kernelFunc:EN},SN=_S((e=>Math.expm1(e))),NN=QE(Xt,SN),IN={kernelName:Xt,backendName:"cpu",kernelFunc:NN},AN=iC(((e,t)=>e/t)),DN=EC(Lt,AN),TN={kernelName:Lt,backendName:"cpu",kernelFunc:DN},FN=iC(((e,t)=>e-t)),RN=CC(((e,t,n,r)=>({real:e-n,imag:t-r}))),ON=EC(Ar,FN,RN),MN={kernelName:Ar,backendName:"cpu",kernelFunc:ON};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=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))),jN=QE(Jt,VN),HN={kernelName:Jt,backendName:"cpu",kernelFunc:jN},GN=iC(((e,t)=>Math.floor(e/t))),XN=EC(Zt,GN,null,"int32"),KN={kernelName:Zt,backendName:"cpu",kernelFunc:XN},qN={kernelName:jr,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=RS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=IC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=gC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},YN={kernelName:Hr,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=KS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=IC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=gC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},JN={kernelName:tn,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]=Ei(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Xs([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)),tI=EC(nn,eI,null,"bool"),nI={kernelName:nn,backendName:"cpu",kernelFunc:tI},rI=iC(((e,t)=>e>=t?1:0)),aI=EC(rn,rI,null,"bool"),sI={kernelName:rn,backendName:"cpu",kernelFunc:aI},iI={kernelName:sn,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=DC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=BN(i,!0,n),l=DC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},oI=ZE(ln,(e=>Number.isFinite(e)?1:0),"bool"),lI={kernelName:ln,backendName:"cpu",kernelFunc:oI},uI=ZE(un,(e=>Math.abs(e)===1/0?1:0),"bool"),cI={kernelName:un,backendName:"cpu",kernelFunc:uI},hI=ZE(cn,(e=>Number.isNaN(e)?1:0),"bool"),fI={kernelName:cn,backendName:"cpu",kernelFunc:hI},dI=iC(((e,t)=>ee<=t?1:0)),yI=EC(dn,gI,null,"bool"),bI={kernelName:dn,backendName:"cpu",kernelFunc:yI};function vI(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),xI=QE(mn,_I),kI={kernelName:mn,backendName:"cpu",kernelFunc:xI},EI=ZE(gn,(e=>Math.log1p(e))),CI={kernelName:gn,backendName:"cpu",kernelFunc:EI},SI=iC(((e,t)=>e&&t)),NI=EC(yn,SI,null,"bool"),II={kernelName:yn,backendName:"cpu",kernelFunc:NI},AI=ZE(bn,(e=>e?0:1),"bool"),DI={kernelName:bn,backendName:"cpu",kernelFunc:AI},TI=iC(((e,t)=>e||t)),FI=EC(vn,TI,null,"bool"),RI={kernelName:vn,backendName:"cpu",kernelFunc:FI},OI={kernelName:_n,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;qE(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 $I(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=qu(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))),zI=EC(En,LI),WI={kernelName:En,backendName:"cpu",kernelFunc:zI},UI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;qE(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=nC({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=iS(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},VI={kernelName:Nn,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;qE(a,"maxPool3d");const c=bl(a.shape,s,i,1,o,l,u),h=lS(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}},jI={kernelName:In,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;qE([a,s],"maxPool3DGrad");const c=bl(s.shape,i,o,1,l,u),h=function(e,t){const n=Xs(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,_=b-1-c.padInfo.front,x=w-1-c.padInfo.left,k=v-1-c.padInfo.top,E=Xs(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)}},HI={kernelName:Sn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;qE([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=yl(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Xs(f.outShape,o.dtype,oS(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=Xs(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Xs(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)}},GI={kernelName:An,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;qE(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=yl(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=iS(e,0,n,Ae(t),a,"max"),i=oS(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"}]}},XI={kernelName:Dn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=de(s,a.shape),l=re(Gu(a.shape,o)[1]),u=[],c=n.makeTensorInfo([],"float32",new Float32Array([l]));u.push(c);const h=xC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}});u.push(h);const f=DN({inputs:{a:h,b:c},backend:n});u.push(f);const d=iN({inputs:{x:f},backend:n,attrs:{axis:s,keepDims:i}});return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}},KI={kernelName:Tn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;qE(a,"min");const o=de(s,a.shape);let l=o;const u=qu(l,a.shape.length);let c=a;null!=u&&(c=VC({inputs:{x:a},backend:n,attrs:{perm:u}}),l=Ju(l.length,a.shape.length)),Ku("min",l,c.shape.length);const[h,f]=Gu(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))),YI=EC(Fn,qI),JI={kernelName:Fn,backendName:"cpu",kernelFunc:YI},ZI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;qE(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=Be(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},QI=iC(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),eA=EC(On,QI),tA={kernelName:On,backendName:"cpu",kernelFunc:eA};function nA(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=$I({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Xu(u.shape,l),h=DC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=ON({inputs:{a,b:h},backend:n}),d=xN({inputs:{x:f},backend:n}),p=iN({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=DC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=DN({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 rA={kernelName:xr,backendName:"cpu",kernelFunc:nA},aA={kernelName:Mn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;qE(a,"multinomial");const l=o?a:nA({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)),pA=EC(Pn,dA,null,"bool"),mA={kernelName:Pn,backendName:"cpu",kernelFunc:pA},gA={kernelName:Vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;qE(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=TS({inputs:t.map((e=>{const t=EN({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 _A={kernelName:jn,backendName:"cpu",kernelFunc:wA},xA={kernelName:Hn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;qE(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}}},kA=iC(((e,t)=>Math.pow(e,t))),EA=EC(Xn,kA),CA={kernelName:Xn,backendName:"cpu",kernelFunc:EA};function SA(e,t,n,r){const[a,s]=Gu(e,r),i=Da(t,"int32"),o=Re(re(a),i),l=re(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function IA(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)),TA={kernelName:Zn,backendName:"cpu",kernelFunc:DA},FA={kernelName:rr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;qE(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],_=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)}},BA={kernelName:ir,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;qE(a,"reverse");const i=a.shape.length,o=de(s,a.shape);if(0===i)return nC({inputs:{x:a},backend:n});const l=new ya(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)}},$A={kernelName:Ur,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]=Zf(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})),LA={kernelName:or,backendName:"cpu",kernelFunc:PA},zA=_S((e=>1/Math.sqrt(e))),WA=QE(lr,zA),UA={kernelName:lr,backendName:"cpu",kernelFunc:WA};function VA(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 Xs(n,t.dtype);const d=Xs(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?XA*e:GA*(Math.exp(e)-1))),qA={kernelName:hr,backendName:"cpu",kernelFunc:KA},YA=ZE(mr,(e=>e<0?-1:e>0?1:0)),JA={kernelName:mr,backendName:"cpu",kernelFunc:YA},ZA=ZE(dr,(e=>Math.sin(e))),QA={kernelName:dr,backendName:"cpu",kernelFunc:ZA},eD=ZE(pr,(e=>Math.sinh(e))),tD={kernelName:pr,backendName:"cpu",kernelFunc:eD},nD=Math.log(1.1920928955078125e-7)+2,rD=ZE(yr,(e=>{const t=e>-nD,n=e=l)throw new Error(`indices(${t}, 0) is invalid: ${n} >= ${l}`);++p[n],f=f&&n>=d,d=n}let m=!0;for(let e=0;e0&&(p[e]+=p[e-1])}if(m&&f){const t=e,n=r;for(let e=0;eNumber(e))))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}};function lD(e,t,n,r,a){const s=re(r),i=t[0],o=a.length,l=[];let u=1,c=-1;for(let e=0;e0){d[f-1]=1;for(let e=f-2;e>=0;--e)d[e]=d[e+1]*r[e+1]}const p=[];if(o>0){p[o-1]=1;for(let e=o-2;e>=0;--e)p[e]=p[e+1]*l[e+1]}const m=ge(n,i*o);for(let t=0;t{const t=[...c];t[o]=e;const r=mS({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},fD=ZE(br,(e=>Math.sqrt(e))),dD={kernelName:br,backendName:"cpu",kernelFunc:fD},pD={kernelName:Nr,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;qE(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})),gD=EC(Sr,mD),yD={kernelName:Sr,backendName:"cpu",kernelFunc:gD},bD=ZE(zr,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),vD={kernelName:zr,backendName:"cpu",kernelFunc:bD};function wD(e,t,n,r){const a=Xs(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=wD(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const _=DC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},xD=ZE(Dr,(e=>Math.tan(e))),kD={kernelName:Dr,backendName:"cpu",kernelFunc:xD},ED=ZE(Tr,(e=>Math.tanh(e)));function CD(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;et-1)if(t<=1)n=0;else{const e=2*t;n-=e*Math.trunc(n/e),n>=t&&(n=e-n-1)}return K(0,n,t-1)}(e,t);case"wrap":return function(e,t){let n=e;if(n<0)if(t<=1)n=0;else{const e=t-1;n+=t*(Math.trunc(-n/e)+1)}else if(n>t-1)if(t<=1)n=0;else{const e=t-1;n-=t*Math.trunc(n/e)}return K(0,n,t-1)}(e,t);case"nearest":return function(e,t){return K(0,e,t-1)}(e,t);case"constant":default:return function(e,t){return e}(e)}}function ID(e,t,n,r,a,s,i,o,l,u,c){return 0<=o&&o{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},bA];for(const e of FD)Jr(e);const RD={},OD={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function MD(e){if(!(e in RD)){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 RD[e]}),!1),1===e?t.getContext("webgl",OD)||t.getContext("experimental-webgl",OD):t.getContext("webgl2",OD)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;RD[e]=t}const t=RD[e];return t.isContextLost()?(delete RD[e],MD(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),RD[e])}var BD,$D,PD;function LD(e,t){return[t,e]}function zD(e){const t=re(e);return le(Math.ceil(t/4))}function WD(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===We().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 VD(e,t){const n=t();return We().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 jD(e){return!!(We().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"}(BD||(BD={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}($D||($D={})),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"}(PD||(PD={}));const GD=/ERROR: [0-9]+:([0-9]+):/g;function XD(e,t){if(VD(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function KD(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),VD(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),VD(e,(()=>e.enableVertexAttribArray(o))),!0)}function qD(e,t,n,r){VD(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),VD(e,(()=>e.activeTexture(e.TEXTURE0+n))),VD(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),VD(e,(()=>e.uniform1i(n,r)))}function YD(e,t,n){VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),VD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function JD(e,t){VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),VD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function ZD(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 QD(e,t,n){const r=VD(e,(()=>t()));if(null==r)throw new Error(n);return r}function eT(e,t=2){return re(e.slice(0,e.length-t))}function tT(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 nT(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[eT(e),...tT(e)]),t}function rT(e){return e%2==0}function aT(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(rT(n)&&rT(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&rT(e[0])&&rT(t[0])}let sT,iT;function oT(e,t){return null!=e.getExtension(t)}function lT(e){try{if(null!=MD(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function uT(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 cT(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 hT=We();function fT(){let e,t,n,r,a,s,i,o,l,u;return 2===We().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 dT(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 pT(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`}hT.registerFlag("HAS_WEBGL",(()=>hT.getNumber("WEBGL_VERSION")>0)),hT.registerFlag("WEBGL_VERSION",(()=>lT(2)?2:lT(1)?1:0)),hT.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),hT.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===hT.get("WEBGL_VERSION"))),hT.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),hT.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),hT.registerFlag("WEBGL_PACK",(()=>hT.getBool("HAS_WEBGL"))),hT.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_CLIP",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_PACK_REDUCE",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_LAZILY_UNPACK",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_CONV_IM2COL",(()=>hT.getBool("WEBGL_PACK"))),hT.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==sT){const t=MD(e);sT=t.getParameter(t.MAX_TEXTURE_SIZE)}return sT}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==iT){const t=MD(e);iT=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,iT)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=hT.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=MD(e);return t=oT(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:oT(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),hT.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>hT.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Va())),hT.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=MD(e);if(1===e){if(!oT(t,"OES_texture_float"))return!1}else if(!oT(t,"EXT_color_buffer_float"))return!1;return uT(t)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!hT.getBool("WEBGL_FORCE_F16_TEXTURES")&&hT.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),hT.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=MD(e);if(1!==e){if(oT(t,"EXT_color_buffer_float"))return uT(t);const e="EXT_color_buffer_half_float";if(oT(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!!oT(t,"OES_texture_float")&&!!oT(t,"WEBGL_color_buffer_float")&&uT(t)}(hT.getNumber("WEBGL_VERSION")))),hT.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=hT.getNumber("WEBGL_VERSION"))&&null!=MD(e).fenceSync;var e})),hT.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>hT.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),hT.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}.`)})),hT.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>Va()&&hT.getBool("IS_CHROME")?1:-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 mT="\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 gT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=BD.DENSE;const t=zD(e),n=fT();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${dT(["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 yT{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=BD.DENSE;const t=zD(e),n=fT();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${dT(["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 bT{constructor(e){this.variableNames=["A"],this.outTexUsage=$D.DOWNLOAD;const t=fT();this.outputShape=e,this.userCode=`\n ${mT}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class vT{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=$D.DOWNLOAD;const t=fT();this.outputShape=e,this.userCode=`\n ${mT}\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 wT{constructor(e,t,n=!1){this.variableNames=["A"];const r=fT(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${pT(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 _T{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=fT(),[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 ${pT(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 xT(e,t,n,r,a,s){!function(e,t){const n=We().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 QD(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return VD(e,(()=>e.bindTexture(o,i))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),VD(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),VD(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),VD(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function kT(e){return e.internalFormatFloat}function ET(e){return e.internalFormatHalfFloat}function CT(e){return e.downloadTextureFormat}function ST(e){return e.internalFormatPackedFloat}function NT(e){return e.internalFormatPackedHalfFloat}class IT{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=We().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){RD[e]=t}(t,e)):this.gl=MD(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===We().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=HD(this.gl,e),oT(this.gl,t))this.textureHalfFloatExtension=HD(this.gl,t);else if(We().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),oT(this.gl,r))this.colorBufferHalfFloatExtension=HD(this.gl,r);else if(We().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",oT(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!oT(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=QD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),VD(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=QD(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return VD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),VD(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 QD(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=UD(this.gl,this.textureHalfFloatExtension)}get debug(){return We().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;VD(e,(()=>e.finish())),VD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),VD(e,(()=>e.deleteFramebuffer(this.framebuffer))),VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),VD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),VD(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=LD(t,n);return xT(e,a,s,kT(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]=LD(t,n);return xT(e,a,s,ET(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]=LD(t,n);return xT(e,a,s,CT(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){VD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),VD(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;VD(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),VD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),VD(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]=WD(t,n);return xT(e,a,s,NT(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]=WD(t,n);return xT(e,a,s,ST(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(JD(this.gl,this.framebuffer),this.outputTexture=null),VD(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=LD(t,n),i=new Uint8Array(t*n*4);return VD(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]=WD(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();VD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return VD(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),VD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),VD(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(We().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 We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,We().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 VD(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=QD(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(VD(e,(()=>e.shaderSource(n,t))),VD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=GD.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(VD(e,(()=>e.shaderSource(n,t))),VD(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));const r=function(e){return QD(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return VD(t,(()=>t.attachShader(r,this.vertexShader))),VD(t,(()=>t.attachShader(r,n))),function(e,t){if(VD(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,r),this.debug&&XD(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=function(e,t,n){return VD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),KD(e,t,"clipSpacePos",n,3,20,0)&&KD(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&VD(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&XD(this.gl,this.program),VD(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return QD(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(),VD(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(),qD(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=WD(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&&XD(this.gl,this.program),ZD(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),VD(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),VD(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=HD(this.gl,2===We().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===We().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===We().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,We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,We().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&&ZD(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(YD(this.gl,this.outputTexture,this.framebuffer),this.debug&&ZD(this.gl)):JD(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&&ZD(r),this.outputTexture=e,VD(r,(()=>r.viewport(0,0,t,n))),VD(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),VD(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:AT}=g;function DT(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?FT(e):TT(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=AT(e.shapeInfo.logicalShape,t.logicalShape),l=LT(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=LT(l),c=AT(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=fT(),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 ${RT}\n ${OT}\n ${MT}\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:VT,bincountImpl:jT,bincountReduceImpl:HT,ceilImpl:GT,concatImpl:XT,expImpl:KT,expm1Impl:qT,floorImpl:YT,gatherV2Impl:JT,greaterImpl:ZT,lessImpl:QT,linSpaceImpl:eF,logImpl:tF,maxImpl:nF,maximumImpl:rF,minimumImpl:aF,multiplyImpl:sF,negImpl:iF,prodImpl:oF,rangeImpl:lF,rsqrtImpl:uF,simpleAbsImpl:cF,sliceImpl:hF,sparseFillEmptyRowsImpl:fF,sparseReshapeImpl:dF,stridedSliceImpl:pF,subImpl:mF,tileImpl:gF,topKImpl:yF,transposeImpl:bF,uniqueImpl:vF}=U;function wF(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function _F(e,t){return 1===t?[e]:wF(e,t)}class xF{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=_F("rc",t),r=LT(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 kF{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 ${dT(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${pT(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 EF{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=SF(t,n),a=NF(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=CF(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===PD.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===PD.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===PD.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===PD.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===PD.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=SF(n,r),s=NF(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=CF(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=We().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 CF(e,t,n,r,a){const s=function(e,t){switch(e){case PD.PACKED_2X2_FLOAT32:return ST(t);case PD.PACKED_2X2_FLOAT16:return NT(t);case PD.UNPACKED_FLOAT32:return kT(t);case PD.UNPACKED_FLOAT16:return ET(t);case PD.PACKED_4X1_UNSIGNED_BYTE:return CT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=WD(e[0],e[1]);i=t*n}else{const[t,n]=LD(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 SF(e,t){if(e===$D.UPLOAD)return PD.PACKED_2X2_FLOAT32;if(e===$D.RENDER||null==e)return function(e){return We().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?PD.PACKED_2X2_FLOAT32:PD.UNPACKED_FLOAT32:e?PD.PACKED_2X2_FLOAT16:PD.UNPACKED_FLOAT16}(t);if(e===$D.DOWNLOAD||e===$D.PIXELS)return PD.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function NF(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class IF{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 AF="return abs(x);",DF="return x;";class TF{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 FF{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=_F("rc",t),r=LT(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 TF(r,DF):new IF(r,DF);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(!We().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===We().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&&We().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...zD(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=pd(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)&&co().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=>la(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Xs(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(We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=Y(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 We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:sa(),endMs:null}}endTimer(e){return We().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=sa(),e)}async getQueryTime(e){if(We().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)}shouldExecuteOnCPU(e,t=128){return We().getBool("WEBGL_CPU_FORWARD")&&e.every((e=>null==this.texData.get(e.dataId).texture&&re(e.shape)0&&ke(n[0])){const a=n.map((e=>oa(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 co().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new FF(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new xF(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[eT(e.shape),...tT(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[eT(t),...tT(t)],s=new kF(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=nT(r);let i;return i=n?new yT(s):new gT(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===BD.DENSE){const t=zD(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)<=We().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&&!aT(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=DT(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===We().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=We().get("WEBGL_FLUSH_THRESHOLD");if(p>0){const e=sa();e-this.lastGlFlushTime>p&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!We().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||(We().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=po((()=>{if(!We().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=We().getBool("DEBUG");We().set("DEBUG",!1);const t=this.abs(Wo(1e-8)).dataSync()[0];if(We().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=sa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=We().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?q(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=eT(e);let n=2,a=2;return e.length&&([n,a]=tT(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=nT(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=WD(c[0],c[1]),s=new _T(e,[h,i],f)):s=new wT(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?$D.PIXELS:$D.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+=sa()-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]*_e(t)}}MF.nextDataId=0,ja()&&Eo("webgl",(()=>new MF),2);class BF{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Zo(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 $F{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Zo(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 ${LT(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=_F("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 PF(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 LF={kernelName:an,backendName:"webgl",kernelFunc:PF};function zF(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=PF({inputs:{x:r},backend:n}),l=PF({inputs:{x:a},backend:n});return i.complexTensorInfos={real:o,imag:l},s}const WF={kernelName:yt,backendName:"webgl",kernelFunc:zF},UF="return (a < 0.) ? b * a : a;",VF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",jF={kernelName:hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",ra(s,"float32")),o=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F(VF,a.shape,i.shape):new BF(UF,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},HF="return (a < 0.) ? b * a : a;",GF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",XF={kernelName:Kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F(GF,r.shape,a.shape):new BF(HF,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function KF({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=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new TF(i.shape,t):new IF(i.shape,e),o.runWebGLProgram(u,[i],l)}}function qF({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 BF(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],Da(n.dtype,r.dtype))})),s=zF({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||Da(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=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new $F(t,l.shape,u.shape,n):new BF(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function YF(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?GF:HF;if("leakyrelu"===e)return t?VF:UF;if("sigmoid"===e)return"return 1.0 / (1.0 + exp(-1.0 * x));";throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class JF{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||aT(a.shape,l)||null!==c.texture&&aT(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[eT(e.shape),...tT(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[eT(t),...tT(t)],i=new kF(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const rR={kernelName:er,backendName:"webgl",kernelFunc:nR};class aR{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 sR{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 iR(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=Jf(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=LT(this.rank),a=wF("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],_=r?[b,p,f]:[b,f,p],x=nR({inputs:{x:e},backend:a,attrs:{shape:w}}),k=nR({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,A="leakyrelu"===l,D=null!=l?YF(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||A||null!=D)){let e=x,t=k;n&&(e=fR({inputs:{x},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=fR({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=nR({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=nR({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=eR({inputs:{a:i,b:l},backend:a});T=cR({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=Da(e.dtype,t.dtype),u=new JF(w,_,[C,d,p],n,r,N,D,I,A),c=[x,k];if(null!=s&&c.push(s),I&&c.push(i),A){const e=a.makeTensorInfo([],"float32",ra(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const F=nR({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return F}const mR={kernelName:Vr,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 pR({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},gR="return abs(x);",yR={kernelName:Ge,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=cF(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new TF(r.shape,gR):new IF(r.shape,gR),n.runWebGLProgram(a,[r],r.dtype)}},bR=KF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),vR={kernelName:Xe,backendName:"webgl",kernelFunc:bR},wR=KF({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),_R={kernelName:Ke,backendName:"webgl",kernelFunc:wR},xR="return a + b;",kR=qF({opSnippet:xR,packedOpSnippet:xR,supportsComplex:!0,cpuKernelImpl:VT}),ER={kernelName:qe,backendName:"webgl",kernelFunc:kR};class CR{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 SR{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 NR={kernelName:Ye,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return PF({inputs:{x:a[0]},backend:r});if(a.length>We().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)=>Da(e,t))),i=a.map((e=>e.shape)),o=We().getBool("WEBGL_PACK")?new SR(a[0].shape,i):new CR(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},IR={kernelName:Je,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=qu(u,o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Ju(u.length,o)),Ku("all",u,o);const[f,d]=Gu(h.shape,u),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=iR(p,p.dtype,"all",n);let g;return g=nR(i?{inputs:{x:m},backend:n,attrs:{shape:Xu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},AR={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=qu(u,o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Ju(u.length,o)),Ku("any",u,o);const[f,d]=Gu(h.shape,u),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=iR(p,p.dtype,"any",n);let g;return g=nR(i?{inputs:{x:m},backend:n,attrs:{shape:Xu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class DR{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 TR{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=LT(o),u=_F("coords",o);let c,h;if(1===s){h=o+1;const e=LT(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=_F("sourceLocR",h-1).concat("inIdx.r"),g=_F("sourceLocG",h-1).concat("inIdx.g"),y=_F("sourceLocB",h-1).concat("inIdx.b"),b=_F("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 FR(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=Jf(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new DR(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=FR(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function RR(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=Jf(a[a.length-1]),i=new TR(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=RR(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function OR(e,t,n,r){const a=[n];if(Ku("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!We().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Gu(t.shape,a),o=re(i),l=nR({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=FR(e,l,r);n.push(u);const c=nR({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return RR(e,t,r)}const MR={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=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=fR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),Ku("argMax",[i[0]],l.shape.length);const c=OR(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},BR={kernelName:et,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=qu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=fR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Ju(i.length,l.shape.length)),Ku("argMin",[i[0]],l.shape.length);const c=OR(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},$R=KF({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),PR={kernelName:tt,backendName:"webgl",kernelFunc:$R},LR=KF({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),zR={kernelName:nt,backendName:"webgl",kernelFunc:LR},WR=KF({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),UR={kernelName:rt,backendName:"webgl",kernelFunc:WR},VR=qF({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"}),jR={kernelName:st,backendName:"webgl",kernelFunc:VR},HR=KF({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;"}),GR={kernelName:at,backendName:"webgl",kernelFunc:HR};class XR{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 KR{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 qR={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;cT(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return PF({inputs:{x:a},backend:n});const c=new XR(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},YR={kernelName:lt,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=bl(a.shape,s,i,[1,1,1],o,l,u),h=new KR(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class JR{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 ZR{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 QR={kernelName:ut,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=bl(i.shape,o,l,[1,1,1],u,c),f=new ZR(h);return n.runWebGLProgram(f,[a],i.dtype)}},eO={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;cT([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=yl(i.shape,o,l,1,u),h=new JR(c);return n.runWebGLProgram(h,[a],i.dtype)}},tO={kernelName:ct,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return pR({a,b:s,transposeA:i,transposeB:o,backend:n})}};class nO{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Zo(e,t),Zo(e,n);let i="0.0";null!=r&&(Zo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Zo(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 rO{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Zo(e,t),Zo(e,n);let i="vec4(0.0)";null!=r&&(Zo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Zo(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 aO={kernelName:Qt,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=We().getBool("WEBGL_PACK_NORMALIZATION")?new rO(r.shape,a.shape,s.shape,c,h,l):new nO(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class sO{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=LT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return iO.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.${iO[t]} = start[${t}] + coords.${iO[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 iO=["x","y","z","w","u","v"];class oO{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=LT(this.rank),n=_F("coords",this.rank),r=_F("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 lO(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Ui(a,s,i);if(Ii(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=hF(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=zi(a.shape,o,l);if(u||!c){const e=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new oO(l):new sO(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=Wi(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 uO={kernelName:fr,backendName:"webgl",kernelFunc:lO},cO={kernelName:ht,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=Qf(a.shape,s,o),u=ed(l.length,s.length),c=td(a.shape,s,o),h=nd(i,s.length),f=rd(c,i,s.length),d=[],p=nR({inputs:{x:a},backend:n,attrs:{shape:l}}),m=fR({inputs:{x:p},backend:n,attrs:{perm:u}}),g=nR({inputs:{x:m},backend:n,attrs:{shape:c}}),y=lO({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}},hO={kernelName:ft,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=jT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},fO=qF({opSnippet:"return float(a != b);",dtype:"bool"}),dO={kernelName:Pn,backendName:"webgl",kernelFunc:fO};function pO(e){const{inputs:t,backend:n}=e,{input:r}=t;return PF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const mO={kernelName:Jn,backendName:"webgl",kernelFunc:pO},gO={kernelName:pt,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 PF({inputs:{x:s},backend:r});const t=oc(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=zF({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=pO({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=PF({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new IF(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=fO({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}`)}},yO="return ceil(x);",bO=KF({opSnippet:yO,packedOpSnippet:yO,cpuKernelImpl:GT}),vO={kernelName:mt,backendName:"webgl",kernelFunc:bO};class wO{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 _O{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 xO={kernelName:gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=We().getBool("WEBGL_PACK_CLIP")?new _O(a.shape):new wO(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class kO{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 CO={kernelName:bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new kO(r.shape),i=[EO(r,a.complexTensorInfos.real),EO(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class SO{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}(${IO(i,l,t)}),\n vec2(${IO(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${IO(i,l,d)}),\n vec2(${IO(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 IO(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function AO(e){const{inputs:t,backend:n}=e,{input:r}=t;return PF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const DO={kernelName:on,backendName:"webgl",kernelFunc:AO};function TO(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>pO({inputs:{input:e},backend:n}))),a=e.map((e=>AO({inputs:{input:e},backend:n}))),s=TO(r,t,n),i=TO(a,t,n),o=zF({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}let a=n.shouldExecuteOnCPU(e);if("string"===r&&(a=!0),a){const a=e.map((e=>{const r=re(e.shape.slice(t));return nR({inputs:{x:e},backend:n,attrs:{shape:[-1,r]}})})),s=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),i=qf(a.map((e=>e.shape)),1),o=1===a[0].shape[0],l=XT(s,i,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>We().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=TO(e.slice(0,r),t,n),s=TO(e.slice(r),t,n),i=TO([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new NO(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:s,outShape:i}=function(e,t,n){const r=qf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>nR({inputs:{x:e},attrs:{shape:[-1,re(e.shape.slice(t))]},backend:n}))),outShape:r}}(e,t,n),o=new SO(s.map((e=>e.shape))),l=n.runWebGLProgram(o,s,r);s.forEach((e=>n.disposeIntermediateTensorInfo(e)));const u=nR({inputs:{x:l},attrs:{shape:i},backend:n});return n.disposeIntermediateTensorInfo(l),u}function FO(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=de(a,t[0].shape)[0],i=qf(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?PF({inputs:{x:o[0]},backend:n}):(Kf(o.map((e=>e.shape)),s),TO(o,s,n))}const RO={kernelName:vt,backendName:"webgl",kernelFunc:FO};class OO{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 MO{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 BO{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=fT(),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 $O({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&&We().getBool("WEBGL_LAZILY_UNPACK")&&We().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(aT(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=nR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=pR({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=PF({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=nR({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=nR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=pR({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=nR({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 PO({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=nR({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=nR({inputs:{x:t},backend:r,attrs:{shape:[1,m,re(t.shape)/m]}});b.push(v),b.push(w);const _=new BO(y,v.shape,n),x=r.runWebGLProgram(_,[v],"float32"),k=nR({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?YF(o,!0):null,I=new JF(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",ra(i,"float32"));A.push(e),b.push(e)}const D=r.runWebGLProgram(I,A,"float32"),T=nR({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 LO={kernelName:wt,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=Il(l),f=vl(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(We().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=PO({x:a,filter:s,convInfo:f,backend:n});else{const e=new OO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=$O({x:a,filter:s,convInfo:f,backend:n});const p=nR({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class zO{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 WO{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 UO{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 VO{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 jO={kernelName:_t,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=Il(l),f=vl(a.shape,c,i,1,o,u,!1,h),d=new zO(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=Il(u),f=vl(i,s.shape,o,1,l,c,!1,h),d=new WO(f);return n.runWebGLProgram(d,[a,s],"float32")}},GO={kernelName:kt,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=wl(a.shape,s.shape,i,l,o),c=new MO(u);return n.runWebGLProgram(c,[a,s],"float32")}},XO={kernelName:Et,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=wl(a.shape,l,i,1,o),c=new UO(u);return n.runWebGLProgram(c,[a,s],"float32")}},KO={kernelName:Ct,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=wl(l,s.shape,o,1,i),c=new VO(u);return n.runWebGLProgram(c,[a,s],"float32")}},qO=KF({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),YO={kernelName:St,backendName:"webgl",kernelFunc:qO},JO=KF({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),ZO={kernelName:Nt,backendName:"webgl",kernelFunc:JO};class QO{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 eM={kernelName:At,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 QO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class tM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${nM(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 ${LT(r)} coords = getOutputCoords();\n int end = ${rM(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${rM(r,"coords")} = idx;\n val += getX(${nM(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 nM(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 rM(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 aM={kernelName:It,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=qu([s],l);let c=a;null!=u&&(c=fR({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=Ju(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=PF({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new tM(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 tM(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=fR({inputs:{x:d},backend:n,attrs:{perm:Yu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},sM={kernelName:Dt,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=jT(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=HT(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 iM{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 oM={kernelName:Tt,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 iM("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class lM{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 uM{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.outChannels/e.inChannels,i=e.inHeight,o=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,h=e.strideWidth,f=e.dilationHeight,d=e.dilationWidth,p=e.filterHeight,m=e.filterWidth,g=m;let y="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < ${i}) {\n `;for(let t=0;t<(g+1)/2;t++){const n=2*t,r=n*d;if(y+=`\n xC = xCCorner + ${r};\n `,1===h){if(n= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = 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 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n `,y+=1===d&&r>0?`\n xC${n} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < ${o}) {\n 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 >= ${o}) {\n previous.zw = vec2(0.0);\n }\n\n xC${n} = vec4(previous.zw, xTexelC${r}.xy);\n } else {\n xC${n} = vec4(0.0, 0.0, xTexelC${r}.xy);\n }\n `):y+=`\n if (xC >= 0 && xC < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xC, d1);\n if (xC + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n xC${n} = xTexelC${r};\n `,r+1= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = 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 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n `,d>1&&(y+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xCOffset, d1);\n xTexelC${r}Ready = 1;\n }\n `),y+=`\n xC${n+1} = vec4(xTexelC${r}.zw, xTexelC${r+2}.xy);\n `):y+=1===e?`\n xC${n+1} = xTexelC${r};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n+1} = xTexelC${r+2};\n `}}else r= 0 && xCOffset < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.0);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n} = vec4(xTexelC${r}.zw, xTexelC${r+2}.zw);\n `,r+1= 0 && xCOffset < ${o}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${n+1} = vec4(xTexelC${r+2}.xy, final.xy);\n `)):(y+=`\n if(xC >= 0 && xC < ${o} && xTexelC${r}Ready == 0) {\n xTexelC${r} = getX(batch, xR, xC, d1);\n if (xC + 1 >= ${o}) {\n xTexelC${r}.zw = vec2(0.0);\n }\n xTexelC${r}Ready = 1;\n }\n\n xCOffset = xC + ${h};\n if(xCOffset >= 0 && xCOffset < ${o} && xTexelC${r+2}Ready == 0) {\n xTexelC${r+2} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= ${o}) {\n xTexelC${r+2}.zw = vec2(0.);\n }\n xTexelC${r+2}Ready = 1;\n }\n\n xC${n} = vec4(\n xTexelC${r}.xy, xTexelC${r+2}.xy);\n `,r+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=vl(a.shape,s.shape,i,c,o,u,!0);let f;return f=We().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new uM(h):new lM(h),n.runWebGLProgram(f,[a,s],"float32")}};class hM{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 fM{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 dM={kernelName:Rt,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=vl(a.shape,c,i,o,l,u,!0),f=new hM(h);return n.runWebGLProgram(f,[a,s],"float32")}},pM={kernelName:Ot,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=vl(c,s.shape,i,o,l,u,!0),f=new fM(h);return n.runWebGLProgram(f,[a,s],"float32")}};class mM{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 gM={kernelName:Mt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=re(r.shape),i=nR({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new mM(s),l=n.runWebGLProgram(o,[i],i.dtype),u=nR({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class yM{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 bM={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=gl(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new yM(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=nR({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},vM={kernelName:zt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{equation:a}=r,s=t,{allDims:i,summedDims:o,idDims:l}=kd(a,s.length);Cd(i.length,l,s);const{path:u,steps:c}=Sd(o,l),h=c.length;let f=null,d=i.length;const p=[];for(let e=0;e=0&&(f=cR({inputs:{x:f},backend:n,attrs:{axis:u[e]-(i.length-d),keepDims:!1}}),p.push(f)),d--)}for(const e of p)e!==f&&n.disposeIntermediateTensorInfo(e);return f}},wM=KF({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"}),_M={kernelName:Wt,backendName:"webgl",kernelFunc:wM},xM={kernelName:Ut,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=We().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new $F("\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 BF("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},kM=qF({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),EM={kernelName:jt,backendName:"webgl",kernelFunc:kM},CM=KF({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 = ${id};\n float a1 = ${od};\n float a2 = ${ld};\n float a3 = ${ud};\n float a4 = ${cd};\n float a5 = ${hd};\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`}),SM={kernelName:Vt,backendName:"webgl",kernelFunc:CM},NM="return exp(x);",IM=KF({opSnippet:NM,packedOpSnippet:NM,cpuKernelImpl:KT}),AM={kernelName:Ht,backendName:"webgl",kernelFunc:IM};function DM(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),nR({inputs:{x:s},backend:r,attrs:{shape:o}})}const TM={kernelName:Gt,backendName:"webgl",kernelFunc:DM},FM="return exp(x) - 1.0;",RM=KF({opSnippet:FM,packedOpSnippet:FM,cpuKernelImpl:qT}),OM={kernelName:Xt,backendName:"webgl",kernelFunc:RM};class MM{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 BM(e,t,n){const r=n.texData.get(e.dataId),a=re(e.shape),s=e.shape[e.shape.length-1],i=nR({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new MM("real",o,t),u=new MM("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=zF({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=nR({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const $M={kernelName:Kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return BM(r,!1,n)}};class PM{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 LM(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 PM(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const zM={kernelName:qt,backendName:"webgl",kernelFunc:LM};class WM{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 UM={kernelName:Yt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new WM(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},VM="return floor(x);",jM=KF({opSnippet:VM,packedOpSnippet:VM,cpuKernelImpl:YT}),HM={kernelName:Jt,backendName:"webgl",kernelFunc:jM},GM=qF({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"}),XM={kernelName:Zt,backendName:"webgl",kernelFunc:GM};class KM{constructor(e){this.variableNames=["A"];const t=fT(),[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 qM{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=fT(),[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 YM={kernelName:Wr,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,u]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],c=[u,l],h=[u,l,s];(o||i)&&(null==JM&&(JM=document.createElement("canvas").getContext("2d")),JM.canvas.width=l,JM.canvas.height=u,JM.drawImage(a,0,0,l,u),a=JM.canvas);const f=n.makeTensorInfo(c,"int32");n.texData.get(f.dataId).usage=$D.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(f.dataId),a);const d=We().getBool("WEBGL_PACK")?new qM(h):new KM(h),p=n.runWebGLProgram(d,[f],"int32");return n.disposeData(f.dataId),p}};let JM;const ZM={kernelName:jr,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=Il(c),g=vl(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(We().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=PO({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?YF(d,!1):null,u=new OO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",ra(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=$O({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=nR({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},QM={kernelName:Hr,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(Nl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=vl(a.shape,s.shape,l,m,u,h,!0),y=We().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?YF(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",ra(d,"float32"));v.push(e),p.push(e)}let k;k=y?new uM(g,w,b,_,x):new lM(g,w,b,_,x);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class eB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=LT(t.length),a=LT(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:tn,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]=Ei(r,a),h=nR({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=nR({inputs:{x:r},backend:n,attrs:{shape:[re(r.shape)/u,u]}}),d=new eB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=nR({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class nB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=LT(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 nB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=nR({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},aB=qF({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:ZT,dtype:"bool"}),sB={kernelName:nn,backendName:"webgl",kernelFunc:aB},iB=qF({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),oB={kernelName:rn,backendName:"webgl",kernelFunc:iB},lB={kernelName:sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return BM(r,!0,n)}},uB=KF({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),cB={kernelName:ln,backendName:"webgl",kernelFunc:uB},hB=KF({opSnippet:"return float(isinf(x));",dtype:"bool"}),fB={kernelName:un,backendName:"webgl",kernelFunc:hB},dB=KF({opSnippet:"return float(isnan(x));",dtype:"bool"}),pB={kernelName:cn,backendName:"webgl",kernelFunc:dB},mB=qF({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:QT,dtype:"bool"}),gB={kernelName:fn,backendName:"webgl",kernelFunc:mB},yB=qF({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),bB={kernelName:dn,backendName:"webgl",kernelFunc:yB},vB={kernelName:pn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=eF(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},wB=KF({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:tF}),_B={kernelName:mn,backendName:"webgl",kernelFunc:wB},xB=KF({opSnippet:"return log(1.0 + x);"}),kB={kernelName:gn,backendName:"webgl",kernelFunc:xB},EB=qF({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"}),CB={kernelName:yn,backendName:"webgl",kernelFunc:EB},SB=KF({opSnippet:"return float(!(x >= 1.0));"}),NB={kernelName:bn,backendName:"webgl",kernelFunc:SB},IB=qF({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"}),AB={kernelName:vn,backendName:"webgl",kernelFunc:IB};class DB{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 TB{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 FB={kernelName:_n,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=We().getBool("WEBGL_PACK_NORMALIZATION")?new TB(a.shape,s,i,o,l):new DB(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class RB{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 OB={kernelName:xn,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 RB(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function MB(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=qu(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:rF}),PB={kernelName:En,backendName:"webgl",kernelFunc:$B},LB={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;cT(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(Nl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=yl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return PF({inputs:{x:a},backend:n});const c=new XR(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},zB={kernelName:Nn,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=bl(a.shape,s,i,[1,1,1],o,u,l),h=new KR(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class WB{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 UB{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 VB={kernelName:In,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=bl(i.shape,o,l,[1,1,1],u,c),f=new KR(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new UB(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},jB={kernelName:Sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;cT([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=yl(o.shape,l,u,1,c,h),d=new XR(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new WB(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},HB={kernelName:An,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(Nl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=yl(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new XR(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new XR(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},GB={kernelName:Dn,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=qu(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:aF}),qB={kernelName:Fn,backendName:"webgl",kernelFunc:KB};class YB{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=LT(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 JB{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=LT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=_F("rc",r),l=_F("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 ZB={kernelName:Rn,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new JB(r.shape,a,s):new YB(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},QB=qF({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"}),e$={kernelName:On,backendName:"webgl",kernelFunc:QB};class t${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 n$=qF({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}),r$={kernelName:Lt,backendName:"webgl",kernelFunc:n$},a$="return a - b;",s$=qF({opSnippet:a$,packedOpSnippet:a$,supportsComplex:!0,cpuKernelImpl:mF}),i$={kernelName:Ar,backendName:"webgl",kernelFunc:s$};function o$(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=de([s],a.shape),o=MB({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Xu(o.shape,i),u=nR({inputs:{x:o},backend:n,attrs:{shape:l}}),c=s$({inputs:{a,b:u},backend:n}),h=IM({inputs:{x:c},backend:n}),f=cR({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=nR({inputs:{x:f},backend:n,attrs:{shape:l}}),p=n$({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 l$={kernelName:xr,backendName:"webgl",kernelFunc:o$},u$={kernelName:Mn,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:o$({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new t$(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},c$="return -x;",h$={kernelName:$n,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]=iF(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=We().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new TF(r.shape,c$):new IF(r.shape,c$),n.runWebGLProgram(a,[r],r.dtype)}},f$=uf,d$={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){fd("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}=f$(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},p$=cf,m$={kernelName:zn,backendName:"webgl",kernelFunc:function(e){fd("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}=p$(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},g$=hf,y$={kernelName:Wn,backendName:"webgl",kernelFunc:function(e){fd("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}=g$(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class b${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 v$={kernelName:Vn,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 b$(l,s,i,o),c=nR({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=nR({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function w$(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=pO({inputs:{input:r},backend:n}),t=w$({inputs:{x:e},backend:n}),a=AO({inputs:{input:r},backend:n}),s=w$({inputs:{x:a},backend:n}),i=zF({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return LM({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const _$={kernelName:Lr,backendName:"webgl",kernelFunc:w$},x$={kernelName:Un,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=pO({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=AO({inputs:{input:a},backend:r}),i=w$({inputs:{x:s},backend:r}),o=zF({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return LM({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},k$={kernelName:jn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return DM({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=FO({inputs:t.map((e=>{const t=DM({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=LT(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 uniform float value;\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n uniform float value;\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class C${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=LT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=_F("rc",r),l=_F("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{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}const S$=e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new C$(a.shape,s,i):new E$(a.shape,s,i),l=o.getCustomSetupFunc(i);return n.runWebGLProgram(o,[a],a.dtype,l)},N$={kernelName:Hn,backendName:"webgl",kernelFunc:S$},I$=qF({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"}),A$={kernelName:Xn,backendName:"webgl",kernelFunc:I$},D$={kernelName:qn,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=qu(c,o);let f,d=a;if(null!=h&&(d=fR({inputs:{x:a},backend:n,attrs:{perm:h}}),c=Ju(c.length,o),l.push(d)),Ku("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=oF(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Gu(d.shape,c),r=re(t),s=nR({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=iR(s,Ta(a.dtype),"prod",n);f=nR({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Xu(f.shape,u);f=nR({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},T$=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=lF(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},F$={kernelName:Yn,backendName:"webgl",kernelFunc:T$},R$=KF({opSnippet:"return 1.0 / x;"}),O$={kernelName:Zn,backendName:"webgl",kernelFunc:R$},M$=KF({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"}),B$={kernelName:Qn,backendName:"webgl",kernelFunc:M$},$$=KF({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:sr,backendName:"webgl",kernelFunc:$$};class L${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 z${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 W$={kernelName:rr,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=We().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new z$(a.shape,l,u,s,i):new L$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class U${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:ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new U$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class j${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 `}}class H${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],h=r?"0.5":"0.0";let f;f=a?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"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 = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\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 vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}}const G$={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=We().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new H$(a.shape,l,u,s,i):new j$(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:nr,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 q${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=LT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class Y${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=_F("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=LT(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 J$={kernelName:ir,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 PF({inputs:{x:a},backend:n});const l=We().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Y$(a.shape,o):new q$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class Z${constructor(e,t){this.variableNames=["Image"],this.outputShape=[];const n=e[1],r=e[2];this.outputShape=e;let a="";a="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:`\n vec3 fill = vec3(${t.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n uniform vec4 params;\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${a}\n if(coordX >= 0 && coordX < ${r} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}getCustomSetupFunc(e,t,n,r){return(a,s)=>{null==this.paramsLoc&&(this.paramsLoc=a.getUniformLocationNoThrow(s,"params")),a.gl.uniform4f(this.paramsLoc,e,t,n,r)}}}const Q$={kernelName:Ur,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new Z$(r.shape,s),[u,c]=Zf(i,r.shape[1],r.shape[2]),h=l.getCustomSetupFunc(u,c,Math.sin(a),Math.cos(a));return o.runWebGLProgram(l,[r],r.dtype,h)}},eP=KF({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"}),tP={kernelName:or,backendName:"webgl",kernelFunc:eP},nP=KF({opSnippet:"return inversesqrt(x);",cpuKernelImpl:uF}),rP={kernelName:lr,backendName:"webgl",kernelFunc:nP};class aP{constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=LT(a.length),l=LT(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 sP={kernelName:ur,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}=Ni(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=nR({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=nR({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new aP(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=nR({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class iP{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 oP={kernelName:cr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new iP(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],Da(a.dtype,s.dtype))}},lP=KF({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${ad};\n float scale = ${sd};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),uP={kernelName:hr,backendName:"webgl",kernelFunc:lP},cP=KF({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),hP={kernelName:gr,backendName:"webgl",kernelFunc:cP},fP=KF({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),dP={kernelName:mr,backendName:"webgl",kernelFunc:fP},pP=KF({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),mP={kernelName:dr,backendName:"webgl",kernelFunc:pP},gP=KF({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),yP={kernelName:pr,backendName:"webgl",kernelFunc:gP},bP=KF({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"}),vP={kernelName:yr,backendName:"webgl",kernelFunc:bP},wP={kernelName:wr,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}},_P={kernelName:kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{indices:r,values:a,denseShape:s,defaultValue:i}=t;if(1!==s.shape.length)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(2!==r.shape.length)throw new Error(`Indices must be a matrix, saw:\n ${r.shape}`);if(1!==a.shape.length)throw new Error(`Values must be a vector, saw:\n ${a.shape}`);if(0!==i.shape.length)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);const o=n.readSync(r.dataId),l=n.readSync(a.dataId),u=n.readSync(s.dataId),c=n.readSync(i.dataId)[0],[h,f,d,p,m]=fF(o,r.shape,r.dtype,l,a.dtype,u,c);return[n.makeTensorInfo(f,r.dtype,h),n.makeTensorInfo([f[0]],a.dtype,d),n.makeTensorInfo([p.length],"bool",new Uint8Array(p.map((e=>Number(e))))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}},xP={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{inputIndices:r,inputShape:a,newShape:s}=t;if(2!==r.shape.length)throw new Error(`Input indices should be a matrix but received shape ${r.shape}`);if(1!==a.shape.length)throw new Error(`Input shape should be a vector but received shape ${a.shape}`);if(1!==s.shape.length)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);const i=Array.from(n.readSync(a.dataId)),o=n.readSync(r.dataId),l=Array.from(n.readSync(s.dataId)),[u,c,h]=dF(o,r.shape,r.dtype,i,l);return[n.makeTensorInfo(c,r.dtype,u),n.makeTensorInfo([h.length],s.dtype,new Int32Array(h))]}},kP={kernelName:Cr,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}=Ni(0,a,o),f=new aP(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=nR({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},EP={kernelName:_r,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=Ad(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=lO({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},CP=KF({opSnippet:"return sqrt(x);"}),SP={kernelName:br,backendName:"webgl",kernelFunc:CP},NP=KF({opSnippet:"return x * x;"}),IP={kernelName:Nr,backendName:"webgl",kernelFunc:NP},AP="return (a - b) * (a - b);",DP=qF({opSnippet:AP,packedOpSnippet:AP}),TP={kernelName:Sr,backendName:"webgl",kernelFunc:DP},FP={kernelName:zr,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 IF(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class RP{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=LT(n.length),s=LT(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:Ir,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}=Vi(a.shape,s,i,o,l,u,c,h,f),v=nR({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=lO({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=nR({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=Xs(v.shape,v.dtype,e),r=pF(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new RP(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const _=nR({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},MP=KF({opSnippet:"return tan(x);"}),BP={kernelName:Dr,backendName:"webgl",kernelFunc:MP},$P=KF({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),PP={kernelName:Tr,backendName:"webgl",kernelFunc:$P};class LP{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;t5){const e=n.readSync(a.dataId),t="string"===a.dtype?e.map((e=>la(e))):e,r=Xs(a.shape,a.dtype,t),i=gF(r,s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}const i=new LP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const WP={kernelName:Fr,backendName:"webgl",kernelFunc:zP},UP={kernelName:Rr,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]=yF(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}};class VP{constructor(e,t,n,r,a,s){this.variableNames=["Image","Transforms"],this.outputShape=s;const i="nearest"===n?1:2;let o;switch(r){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${o} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${a});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${a});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${t}));\n float mapY = mapCoord(inY, float(${e}));\n\n if (${i} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}}const jP={kernelName:Or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=r,[c,h,f,d]=a.shape,[p,m]=null!=u?u:[h,f],g=new VP(h,f,i,o,l,[c,p,m,d]);return n.runWebGLProgram(g,[a,s],"float32")}},HP={kernelName:Br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;cT(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}=vF(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},GP={kernelName:$r,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 XP{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 KP=[FB,OB,mR,yR,vR,_R,ER,NR,IR,AR,MR,BR,PR,zR,jR,UR,GR,YR,qR,QR,eO,tO,aO,cO,hO,gO,vO,xO,CO,WF,RO,jO,HO,LO,XO,KO,GO,YO,ZO,eM,aM,sM,oM,dM,pM,cM,gM,bM,vM,_M,xM,EM,SM,AM,TM,OM,$M,zM,UM,HM,XM,YM,ZM,QM,tB,rB,sB,oB,LF,lB,DO,cB,fB,pB,jF,gB,bB,vB,kB,_B,CB,NB,AB,BB,zB,LB,VB,jB,HB,PB,GB,XB,qB,ZB,e$,u$,tR,h$,d$,m$,y$,dO,v$,x$,k$,N$,A$,XF,D$,F$,mO,r$,O$,P$,B$,rR,W$,V$,G$,K$,J$,Q$,tP,rP,sP,oP,uP,hP,dP,mP,yP,uO,l$,vP,wP,_P,xP,kP,EP,SP,IP,TP,FP,OP,i$,hR,BP,PP,WP,UP,jP,dR,HP,GP,{kernelName:Pr,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=qu([u],o);let h=a;null!=c&&(h=fR({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=Ju(1,o)[0]);const f=Td(h.shape,u,i),d=re([h.shape[u]]),p=nR({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Ta(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=Dd(o,s),c=new XP({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=T$({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=zP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=nR({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Yu(c);b=fR({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},_$];for(const e of KP)Jr(e);const qP={"tfjs-core":ao,"tfjs-backend-cpu":"3.6.0","tfjs-backend-webgl":"3.6.0","tfjs-data":KE,"tfjs-layers":sb,"tfjs-converter":Wk,tfjs:"3.6.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:()=>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:()=>p});var r=n(8),a=n.n(r),s=n(319),i=n.n(s),o=n(4575),l=n.n(o),u=n(3676),c=n(697),h=n(3938),f=new c.c,d=function e(t){l()(this,e),f.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),f.__in_object(t,"axis","axis not found: specify the axis");var n,r,s=null;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 o=Object.assign({},n);if(1==r){var c=[],d={},p=0,m=Object.keys(o)[0];for(var g in s=o[m].index,o){var y=o[g].columns,b=o[g].values.length;for(var v in b>p&&(p=b),y){var w=y[v];if(w in d){var _=d[w],x="".concat(w,"_").concat(_+1);c.push(x),d[w]=_+1}else c.push(w),d[w]=1}}var k=new Array(p);for(var E in n){for(var C=n[E].values,S=0;S0)for(var w=0;w{"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__(7091),_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,n=[];(1==e?this.col_data:this.values).map((function(e){var t=utils._remove_nans(e),r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(t).mean().arraySync();n.push(Number(r.toFixed(5)))})),t=1==e?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:"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=utils._remove_nans(e),r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(t).sum().arraySync();n.push(Number(r.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(7091),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_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_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__),_frame__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(697),_series__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(3938);function _createForOfIteratorHelper(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){o=!0,s=e},f:function(){try{i||null==n.return||n.return()}finally{if(o)throw s}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(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)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()})),r=this.col(t),a=r.arithemetic(n),s=this.to_DataFrame(r.key_col,r.group_col_name,a,n);return s}},{key:"to_DataFrame",value:function(e,t,n,r){var a=[];!function e(t,n,r){if(Array.isArray(n))if(Array.isArray(n[0])){var s,i=_createForOfIteratorHelper(n[0].map((function(e,t){return n.map((function(e){return e[t]}))})));try{for(i.s();!(s=i.n()).done;){var o=s.value;a.push(t.concat(o))}}catch(e){i.e(e)}finally{i.f()}}else a.push(t.concat(n));else for(var l=0,u=Object.entries(n);l{"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?(d=""==m[0]?0:parseInt(m[0])||0,p=""==m[1]?parseInt(e.columns.length-1):parseInt(m[1])-1==0?0:parseInt(m[1])-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:()=>R});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(7091),x=n(3346),k=n(697),E=n(1745),C=n(2847),S=n(107),N=n(7737),I=n(9187),A=n(4564),D=n(9365);var T=new k.c,F=new N.z,R=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=T._remove_nans(this.values),t=_.tensor(e).sum().arraySync();return Number(t)}var n=T._remove_nans(this.values),r=_.tensor(n).sum().arraySync();return Number(r.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=F.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(){if("string"==this.dtypes[0])return new E.W(this);throw new Error("Cannot call accessor str on non-string type")}},{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){isNaN(t)&&"string"!=typeof t?e.push(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){isNaN(t)&&"string"!=typeof t?e.push(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){if(isNaN(t)&&"string"!=typeof t)e.push(t);else{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){isNaN(n)&&"string"!=typeof n?t.push(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.forEach((function(n){isNaN(n)&&"string"!=typeof n?t.push(!1):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){isNaN(n)&&"string"!=typeof n?t.push(!1):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){isNaN(n)&&"string"!=typeof n?t.push(!1):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){isNaN(n)&&"string"!=typeof n?t.push(-1):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){isNaN(n)&&"string"!=typeof n?t.push(-1):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){isNaN(r)&&"string"!=typeof r?n.push(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){isNaN(n)&&"string"!=typeof n?t.push(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){isNaN(n)&&"string"!=typeof n?t.push(-1):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){isNaN(r)&&"string"!=typeof r?n.push(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){isNaN(n)&&"string"!=typeof n?t.push(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){isNaN(r)&&"string"!=typeof r?n.push(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){isNaN(r)&&"string"!=typeof r?n.push(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){isNaN(t)&&"string"!=typeof t?e.push(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){if(isNaN(r)&&"string"!=typeof r)n.push(r);else{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){isNaN(t)&&"string"!=typeof t?e.push(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(7091),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"===e.constructor.name}},{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:"_replace_nan_with_null",value:function(e){return e.map((function(e){return isNaN(e)?null: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:()=>U.z,DataFrame:()=>o.N,LabelEncoder:()=>D,MinMaxScaler:()=>R,NDframe:()=>a.Z,OneHotEncoder:()=>T,Series:()=>i.F,StandardScaler:()=>O,Str:()=>V.W,Utils:()=>E.c,_version:()=>j,concat:()=>I.z,date_range:()=>B,get_dummies:()=>W,merge:()=>N,read:()=>r.read,read_csv:()=>m,read_excel:()=>y,read_json:()=>g,tf:()=>s,to_datetime:()=>l.J});var r={};n.r(r),n.d(r,{Ol:()=>m,PU:()=>y,Ac:()=>g});var a=n(2847),s=n(7091),i=n(3938),o=n(3676),l=n(9187),u=n(7757),c=n.n(u),h=n(8926),f=n.n(h),d=n(7869),p=n.n(d),m=function(){var e=f()(c().mark((function e(t){var n,r,a,i,l,u=arguments;return c().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")||t.startsWith("blob")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,s.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return l=new o.N(i),e.abrupt("return",l);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=f()(c().mark((function e(t){var n,r,a;return c().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 o.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){var e=f()(c().mark((function e(t){var n,r,a,s,i,l,u,h,f,d,m,g,y,b,v,w=arguments;return c().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,s=n.data_index,a||(a=1),s||(s=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return l=e.sent,e.next=10,l.arrayBuffer();case 10:for(l=e.sent,l=new Uint8Array(l),i=p().read(l,{type:"array"}),u=i.Sheets[r||i.SheetNames[0]],h=p().utils.decode_range(u["!ref"]),f=[],d=[],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=p().utils.encode_cell({c:y,r:a-1}),u[b]&&f.push(u[b].v)),m>=s-1&&(b=p().utils.encode_cell({c:y,r:m}),u[b]&&g.push(u[b].v));m>=s-1&&d.push(g)}return v=new o.N(d,{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)}}(),b=n(319),v=n.n(b),w=n(4575),_=n.n(w),x=n(3913),k=n.n(x),E=n(697),C=new E.c,S=function(){function e(t){var n=this;if(_()(this,e),C.__in_object(t,"left"),C.__in_object(t,"right"),C.__in_object(t,"on"),C.__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 o.N&&t.right instanceof o.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=M.__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=M.__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=M.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};L.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,s=null;if(Array.isArray(e.data)?s=e.data:e.data instanceof o.N?(s=e.data,a=!0):s=e.data.values,a){var i=[];if(r?r.forEach((function(e){var t=r.indexOf(e);i.push(t)})):(r=[],s.col_types.map((function(e,t){if("string"==e){var n=s.columns[t];r.push(n),i.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=s.values,u=s.columns,c=s.col_data,h=[];i.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=z(e,t[r],n),s=P()(a,2),i=s[0],o=s[1];f.push.apply(f,v()(o)),0==d.length?d.push.apply(d,v()(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,v()(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=L.__remove_arr(n,i);return r.push.apply(r,v()(d[t])),r})),m=L.__remove_arr(u,i);return m.push.apply(m,f),new o.N(p,{columns:m})}var g=z(s,t,n),y=P()(g,2),b=y[0],w=y[1];return new o.N(b,{columns:w})},U=n(7737),V=n(1745),j="0.2.6"},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.x].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 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/Y(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=q(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=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/Y(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=q(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=q(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=q(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,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=B(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 q(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=q(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=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=B(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:(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=M(r,!0):(D(e,0,u),void 0===t?t=a.rounding:D(t,0,8),n=M(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=M(a):(D(e,0,u),void 0===t?t=s.rounding:D(t,0,8),n=M(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 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: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 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,+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=M(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(D(e,1,u),void 0===t?t=a.rounding:D(t,0,8),n=M(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=M(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=M(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,M=r.d,B=a.d;if(!(M&&M[0]&&B&&B[0]))return new F(r.s&&a.s&&(M?!B||M[0]!=B[0]:B)?M&&0==M[0]||!B?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=B.length,I=M.length,w=(b=new F(R)).d=[],f=0;B[f]==(M[f]||0);f++);if(B[f]>(M[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,B=B[0],E++;(f1&&(B=e(B,d,u),M=e(M,d,u),D=B.length,I=M.length),N=D,x=(_=M.slice(0,D)).length;x=u/2&&++A;do{d=0,(c=t(B,_,D,x))<0?(k=_[0],D!=x&&(k=k*u+(_[1]||0)),(d=k/A|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(B,d,u),_,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 B(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=B(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 q(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 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?(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=M(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=F(M(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 Me(e){return new this(e).tan()}function Be(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,A,D,T,F){var R,O=1&n,M=2&n,B=4&n;if(A&&(R=T?A(t,D,T,F):A(t)),void 0!==R)return R;if(!_(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=M||L?{}:y(t),!O)return M?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),x(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:(B?M?d:f:M?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),_=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}},7561:(e,t,n)=>{var r=n(7990),a=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(a,""):e}},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""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},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(7561),a=n(3218),s=n(3448),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(s(e))return NaN;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);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=n(7990);e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.slice(0,l(e)+1);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 M(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new M(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 B(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||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 B(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",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)}})})),Me="mode",Be=f(Me,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Me,{"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?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;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 M(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=qe({typed:t,DenseMatrix:a}),o=Ke({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)}: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 M(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,_[1],b,v,w),d._swapRows(n,F,C[1],x,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?(x.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 _=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(Bt,{"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:()=>A,tS:()=>D,nu:()=>T,l7:()=>F,VO:()=>R,Cl:()=>O,UG:()=>M,Lr:()=>B,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 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 M(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function B(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":M(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 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,_=w&&w(w(A([])));_&&_!==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 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=B(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,_=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,D=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,R=i?g(s[0].params[1]):t,B=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+D++]))))&&(C=(15&N)<<4|I>>2,_.push(C),-1!==(A=E.indexOf(String.fromCharCode(a[p+D++]))));)S=(3&I)<<6|A,A<64&&_.push(S);for(x=n(1201,_),D=0;D255?(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,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(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 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 _=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,A,D,T,F,R,O,M,B=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,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&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(M=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(M=S+3;v>>=S)),b>>>=3,v-=3}else{for(M=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,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=(B=n.lencode[b&(1<>>16&255,I=65535&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&B,!(A+(S=B>>>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(M=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(B=n.distcode[b&(1<>>16&255,I=65535&B,!((S=B>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&B,!(A+(S=B>>>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(M=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===M[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(B[1]=0,k=1;k<15;k++)B[k+1]=B[k]+M[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-A,h[E]b?(w=$[P+h[E]],_=R[O+h[E]]):(w=96,_=0),d=1<>A)+(p-=d)]=v<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(F&=d-1,F+=d):F=0,E++,0==--M[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 _(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--)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?M(e,t,n,r):4===e.strategy||s===a?(x(e,2+(r?1:0),3),D(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 A="";if(x=b.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return k=Math.min(x[4].length,7),E=g(N,Math.pow(10,k)-1,!1),_=""+I," "==(A=S("n",x[1],E[1])).charAt(A.length-1)&&(A=A.substr(0,A.length-1)+"0"),_+=A+x[2]+"/"+x[3],(A=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 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(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 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==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 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)&&(_>=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",F=c);_>=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)_>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(D=N.charAt(_--)+D);o[c].v=D,o[c].t="t",F=c}for(_>=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=_(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 M(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=M,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]&&M(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 M,B=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){Mt(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);Mt(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&&Mt(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);_[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&&Mt(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=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(!B.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|M>>8|M));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 K(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 q(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+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+=K(e,n,h),n+=h),u=K(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+=K(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;Mt(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 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 Me=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},Be=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☃🍣";Me(Pe)==$e(Pe)&&(Me=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Me(Pe)==Le(Pe)&&(Me=Le),Be=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 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(qe)?' 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]},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 Mt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Rt}function Bt(e,t){e.l+=t}function $t(e){var t=w(e);return Mt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Mt(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?"":"$")+Kt(e.s.c)+":"+(e.e.cRel?"":"$")+Kt(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 Kt(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 qt(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:qt(e),e:qt(e)}:{s:qt(e.slice(0,t)),e:qt(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=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?qt(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 _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,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"),Mn=W(Tn,"n"),Bn={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=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 Xn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Kn(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=Me(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=Ae(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=Ke(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===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 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=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 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=Kr(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(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=qt(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=qt(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=Kr,Ca=Br,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}Mt(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,Mt(_,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=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,_=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}}}(),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=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=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=qt(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||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[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=Me(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:Me(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")}}}(),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){Mt(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=q(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:Bt}},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:Bt}};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}}}(),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("")}}(),Ma=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ba=/<(?:\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(Me(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Me(e),n&&(r.h=Fe(r.t))):e.match(Ba)&&(r.r=Me(e),r.t=Se(Me((e.replace($a,"").match(Ma)||[]).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]=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 Ka(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 qa(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:qa(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(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(_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:Ae(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 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=Bt;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 Ms=Bt;function Bs(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 Bt(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 Bt(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 Ks=1024;function qs(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})];Ks<1e3*e;)Ks+=1e3;return t.forEach((function(e){var t=qt(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);++Ks,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=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(Ye("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 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:qt(e[0]),e:qt(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?"":"$")+Kt(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=Jt(t).s,a=qt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:Kt(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?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"],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:Bt},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:qi)[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:Bt},40:{n:"PtgMemNoMem",f:Bt},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: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:{}},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 Bt(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(Bt(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)]):Bt(e,t);return i}function Mi(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+Bi[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 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[Yt(o)]){var F=r.sharedf[Yt(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("{"+Mi(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[[],Bt(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?[[],Bt(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=Kr(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[[],Bt(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,Ki=ji,qi={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]){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(Me(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=A._table[14]);break;default:a=e.v}var o=Ye("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=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",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]),Ze("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,_=0,x=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 M=(f=F[R].trim()).length;if(0!==M){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(Do))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Me(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(Me(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=qt(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=Ze("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=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=Be(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||"")+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]=Kt(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,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]=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 Mo(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 Bo=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||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([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),Mo(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]=Kt(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 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 Ko(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 qo(e){Ko(e.WBProps,Vo),Ko(e.CalcPr,Go),Xo(e.WBView,jo),Xo(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: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]=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",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=[],_=!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 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=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},R||(R=!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 "+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"]=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),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"]=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&&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 _=c.match(fo);_&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Me(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=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 Me(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)):Me(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={},R=0,O=[],M=[],B={},$=[],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]?B: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(M.length>0&&(g.c=M),(!n.sheetRows||n.sheetRows>_)&&void 0!==g.v&&(n.dense?(p[_]||(p[_]=[]),p[_][w]=g):p[Kt(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 X=w;X<=U;++X)for(var K=_;K<=V;++K)(X>w||K>_)&&(n.dense?(p[K]||(p[K]=[]),p[K][X]={t:"z"}):p[Kt(X)+Gt(K)]={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,M=[];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"),F[E.nf]&&(E.nf=F[E.nf]);for(var q=0;392!=q&&A._table[q]!=E.nf;++q);if(392==q)for(q=57;392!=q;++q)if(null==A._table[q]){A.load(E.nf,q);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(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(B),M.push(B)}else u.push([a[3],!1]),B={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 ql(r,n);if(0==u.length&&"uof"==a[3])return ql(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 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"]="="+Ae(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=qt(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=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=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(Ze("NumberFormat",null,{"ss:Format":Ae(A._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]},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=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)!==X)throw new Error("rt mismatch: "+Y+"!="+X);12==q.r&&(e.l+=10,K-=10)}var J={};J="EOF"===q.n?q.f(e,K,T):Cl(q,e,K,T);var Z=q.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++}F.length>0&&(d["!merges"]=F),R.length>0&&(d["!objects"]=R),O.length>0&&(d["!cols"]=O),M.length>0&&(d["!rows"]=M),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}[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-K,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"),F=[],R=[],T.arrayf=x=[],O=[],M=[],B=!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),D({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),D({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),D({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),D({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),D(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),D(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),D({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),D({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),D({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),D({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&&A.load(J[1],U+163)}else A.load(J[1],J[0]);break;case"BIFF2FORMAT":V[U++]=J;for(var fe=0;fe=163&&A.load(J,U+163);break;case"MergeCells":F=F.concat(J);break;case"Obj":R[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=R[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(q.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},B||(B=!0,ps(J.w/256)),ms(O[J.e+1]);break;case"Row":var pe={};null!=J.level&&(M[J.r]=pe,pe.level=J.level),J.hidden&&(M[J.r]=pe,pe.hidden=!0),J.hpt&&(M[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(q.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(q.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 "+q.n}}}}}else e.l+=K}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=B.find(e,"PerfectOffice_MAIN"))&&s.content)a=Fa.to_workbook(s.content,(t.type=i,t));else{if(!(s=B.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&&B.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=B.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*/,"");B.utils.cfb_add(t,a,e.FileIndex[r].content)}})),B.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=B.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=B.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:Ms},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:Bt,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:Bo,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=Ki(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:""}},Fl=W(Tl,"n"),Rl={3:{n:"BIFF2NUM",f:function(e){var t=Kr(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=Kr(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=qa(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: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]||Bt)(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]=Bn[t]||t,t=e.read_shift(2),n[1]=Bn[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(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: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=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=Kr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=Kr(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(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=Kr(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=Kr(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 Ml(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 Bl(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?Ml(e,2,(s=n,i=r,o=a,l=$t(9),Bl(l,s,i),l.write_shift(2,o),l)):Ml(e,3,function(e,t,n){var r=$t(15);return Bl(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Ml(e,5,function(e,t,n,r){var a=$t(9);return Bl(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 Ml(e,4,function(e,t,n){var r=$t(8+2*n.length);return Bl(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)}Ml(a,2057,ia(0,16,t)),Ml(a,"CalcMode",Mr(1)),Ml(a,"CalcCount",Mr(100)),Ml(a,"CalcRefMode",Rr(!0)),Ml(a,"CalcIter",Rr(!1)),Ml(a,"CalcDelta",Cn(.001)),Ml(a,"CalcSaveRecalc",Rr(!0)),Ml(a,"PrintRowCol",Rr(!1)),Ml(a,"PrintGrid",Rr(!1)),Ml(a,"GridSet",Mr(1)),Ml(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])),Ml(a,"HCenter",Rr(!1)),Ml(a,"VCenter",Rr(!1)),Ml(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]=Kt(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&&Ml(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&&Ml(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]=Kt(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),Ml(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?qt(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||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[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,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={},M=["",""],B=[],$={},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),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),x=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]){x+=D,D=1;break}if((s=we(i[0],!1))["行号"]?x=s["行号"]-1:-1==x&&(x=0),(D=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(A[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=D?x+D-1:x;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),B=[],$={},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),F.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=F[U][0].s.r&&x<=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: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),B.length>0&&(o.c=B,B=[]),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,B.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":M=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:M[0]+"!"+M[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[(M=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:M[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&&(M=eo(O.Target.slice(1)),O.Target="#"+M[0]+"!"+M[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 K={Sheets:m,SheetNames:g,Workbook:R};return u.bookSheets&&delete K.Sheets,K});function Kl(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:Me(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function ql(e,t){return Xl(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"]=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=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=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=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: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]=Kn(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),Kn(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=Kt(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,Kn(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=qt(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=qt(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 Kn(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),qo(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=Me(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(Me(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: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=B.find(e,r);try{if(r="/!DataSpaces/Version",!(a=B.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=B.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(Ka(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=B.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=B.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=B.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,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=B.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(Ks=1024,"ods"==t.bookType)return Zl(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),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""+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),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",Ae(e));return n.replace(/"/g,"_x0022_");case"number":return Ze((0|e)==e?"vt:i4":"vt:r8",Ae(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:Ae(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",qs(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,Xn(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)?Bs: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 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=Me(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,B.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 B.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Be(r));case"binary":return Be(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&&B.utils.cfb_add(t,"/SummaryInformation",Dr(a,Il,Mn,Tn)),(r.length||o.length)&&B.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)&&B.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,B.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?B.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?Me(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]=Kt(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]=Kt(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]=Kt(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 Mu(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?qt(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||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(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&&(Bu=n(791).Readable,t.stream={to_json:function(e,t){var n=Bu({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]=Kt(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=Bu(),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=Bu(),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]=Kt(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=_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),M.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=A,void 0!==B&&(t.CFB=B)}(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.map b/danfojs-browser/lib/bundle.js.map index 0cf81eaa..1fee5915 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/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/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/einsum.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/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/meshgrid.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/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/image/threshold.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/transform.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/sparse/sparse_fill_empty_rows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_reshape.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/backends/einsum_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/sparse_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/kernels/Sigmoid.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/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Einsum.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/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/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/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/SparseFillEmptyRows_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseFillEmptyRows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape.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/Transform.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/Einsum.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/resize_nearest_neighbor_packed_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/SparseFillEmptyRows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseReshape.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/transform_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transform.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/_baseTrim.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/_trimmedEndIndex.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","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","isComplex","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","getQueryParams","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","split","keyValue","toLowerCase","parseValue","queryString","params","replace","t","decodeURIComponent","decodeParam","join","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","Einsum","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","SparseFillEmptyRows","SparseReshape","SparseToDense","SquaredDifference","Square","StridedSlice","Sub","Tan","Tanh","Tile","TopK","Transform","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","nav","navigator","product","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","tensor3d","fromPixels2DContext","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","ImageData","HTMLVideoElement","HTMLImageElement","getContext","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","height","videoWidth","videoHeight","getImageData","canvas","drawImage","numPixels","channel","fromPixelsAsync","isNonEmptyPixels","canWrapPixelsToImageBitmap","imageBitmap","createImageBitmap","premultiplyAlpha","toPixels","img","$img","originalImgTensor","multiplier","Uint8ClampedArray","rgba","ctx","imageData","putImageData","fromPixels","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","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","einsum","einsum_","equation","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_","meshgrid","indexing","$y","w","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","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_","threshold","threshold_","inverted","threshValue","totalPixelsInImage","grayscale","$threshold","$r","$g","histogram","total","classFirst","classSecond","meanFirst","meanSec","weightForeground","weightBack","bestThresh","bestInBetVar","cInBetVar","meanFirstDivA","meanSecFill","meanSecAdd","meanSecMul","cInBetVarSubA","cInBetVarSubB","cInBetVarMul","otsu","invCondition","transform","transform_","transforms","interpolation","fillMode","$transforms","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","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_","sparseFillEmptyRows","sparseFillEmptyRows_","denseShape","$values","$denseShape","outputIndices","outputValues","emptyRowIndicator","reverseIndexMap","sparseReshape","sparseReshape_","inputIndices","$inputIndices","$inputShape","$newShape","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","sparse","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","ARROW_REGEX","decodeEinsumEquation","numArrows","inputString","outputString","inputTerms","numInputs","allDims","dimName","inputTerm","idDims","summedDims","getEinsumPermutation","nDims","permutationIndices","checkEinsumDimSizes","dimSizes","getEinsumComputePath","steps","nSteps","computedTermIndices","termIndices","findTermsWithDim","termIndex","isIdentityPermutation","prepareSplitSize","splitSizes","count","negIndex","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","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","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","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","Mish","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","Conv3DTranspose","dAxis","kernelD","strideD","depthAxis","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","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","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","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","tensorSize","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","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","sigmoidConfig","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","multiplyImpl","multiplyComplexImpl","multiplyConfig","permutedX","oldResult","sumConfig","einsumConfig","numDimsRemaining","idTerm","dimsToExpand","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","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","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","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","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseFillEmptyRowsImpl","indicesDType","valuesDType","indicesCount","denseRows","rowsAreOrdered","lastIndicesRow","csrOffset","allRowsFull","rowEmpty","fullIndicesCount","filledCount","outputI","startingIndex","sparseFillEmptyRowsConfig","outputIndicesShape","sparseReshapeImpl","inputIndicesShape","denseSize","nnz","outputRank","unknownIndex","missing","inputStrides","outputStrides","sparseReshapeConfig","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","mapCoord","outCoord","inCoord","sz2","mapCoordReflect","sz","mapCoordWrap","mapCoordNearest","mapCoordConstant","readWithFillValue","batchStride","rowStride","colStride","nearestInterpolation","bilinearInterpolation","yFloor","xFloor","yCeil","xCeil","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","kernelConfigs","transformVals","outY","outX","projection","inX","inY","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","sparseFillEmptyRowsImplCPU","sparseReshapeImplCPU","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","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","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","runOnCpu","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","widthRatio","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","colIndex","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","ResizeNearestNeighborPackedProgram","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","fillSnippet","paramsLoc","uniform4f","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","TransformProgram","interpolationModeId","fillModeId","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","a_key","column","col_name","column_length","null_array","DataFrame","row_indexes","col_i","r_index","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","val_mean","_remove_nans","temp_mean","arraySync","sf","tensor_vals","col_data_tensor","median","__median","operands","__get_tensor_and_idx","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_dtype","col_dict","getRecursiveDict","uniq_columns","first_uniq_columns","remaining_columns","c_dict","col_value","column_data","__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","sub_col_dict","dfs","sub_data_tensors","selected_column","group_col","sub_group_col","gp","group_col_name","ops_name","ops_map","is_array_operation","count_group","local","sub_count_group","arithemetic","to_DataFrame","col_gp","operations","last_key","toLocaleLowerCase","concatPathAndNode","n_array","sanitized_k","recursiveCount","sub_df_data","callable_value","callable_rslt","ndframe","isColumnSplit","column_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","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_values","left_key_comb","left_value_filter","comb_values","right_value","right_key_comb_values","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","left_row","key_array","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","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","trimmedEndIndex","reTrimStart","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","reWhitespace","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","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","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","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","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","data1","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","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","data2","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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vK,EACbH,EAActqK,KAAKzE,IAM3B,MAAMmvK,EAAiB7jK,EAAS3F,QAChCwpK,EAAe,GAAK7sK,OAAO8lB,KAAKymJ,GAAgB9uK,OAChD,MAAMqvK,EAAe,IAAIhtJ,GAAa+sJ,EAAgBpoK,GACtDgoK,EAAczhK,SAAQ,CAAC+hK,EAAoBrvK,KACvC,IAAK,IAAIy3B,EAAI,EAAGA,EAAInsB,EAAS,GAAImsB,IAC7B,IAAK,IAAIhyB,EAAI,EAAGA,EAAI6F,EAAS,GAAI7F,IAC7B2pK,EAAa7oK,IAAIuoK,EAAY9rK,IAAIy0B,EAAG43I,EAAoB5pK,GAAIgyB,EAAGz3B,EAAGyF,MAM9E,MAAM8iD,EAAczhD,EAAMnB,QAE1B,OADA4iD,EAAYo2B,GAASwwF,EAAe,GAC7B,CACHr5F,aAAcs5F,EAAavoK,OAC3B0hD,cACAt2B,WClFD,MCsHDq9I,GAAgB,CAClBrtB,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,GACAxN,GACAyN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACA+B,GACAnB,GACAta,GACA,GACA2a,GACAM,GACAE,GACAE,GACAE,GACAkE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAC,GACAa,GACAK,GACAE,GACA9hB,GACA+hB,GACAjS,GACAkS,GACAC,GACAC,GACAhiB,GACAkiB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAa,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA/L,GACA0M,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACA3mB,GACA8mB,G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AAWk1G,GAC/B,MAEMgmC,EAAqD,EAA7BzzL,KAAK8H,MAAMi+H,EAAa,GAChD2tD,EAA0B3tD,EAAa,EACvC4tD,EAAgB,sDAGtB,IAAIuU,EAAwB,GACxBr3H,EAASk1D,EAAa,IACtBmiE,EAAwB,uCACAr3H,kEAK5B,IAAIs3H,EAA4B,GAC5Bt3H,EAASk1D,EAAa,IACtBoiE,EAA4B,uCACJt3H,mDAK5B/2E,KAAK85K,SAAW,2GAIds0B,2GAKAC,2PASEjwI,eAAyB6tE,+DACmB7tE,yEAI1Bu7H,2lBAgBlBE,kDAGqBF,mBACS,IAA5BC,8aAiBFC,yBACqC,IAA5BD,obAeTC,yBACqC,IAA5BD,+eAeTC,6DC9DL,MCgGD,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,GACAmD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAmC,GACA,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,GACA,GACA,GACA,GD1PoC,CACp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C,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,W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AAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,I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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 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 */\nexport function shuffleCombo(\n// tslint:disable-next-line:no-any\narray, \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, isComplex = false) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0] * (isComplex ? 2 : 1);\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) * (isComplex ? 2 : 1);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a, isComplex);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a, isComplex = false) {\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) * (isComplex ? 2 : 1);\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}${isComplex ? ' for a complex tensor' : ''}.`);\n }\n return createNestedArray(0, shape, a, isComplex);\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 // Jasmine spies on this in 'environment_test.ts'\n this.getQueryParams = getQueryParams;\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 = this.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 Einsum = 'Einsum';\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 SparseFillEmptyRows = 'SparseFillEmptyRows';\nexport const SparseReshape = 'SparseReshape';\nexport const SparseToDense = 'SparseToDense';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const StridedSlice = 'StridedSlice';\nexport const Sub = 'Sub';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transform = 'Transform';\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 * For performance reasons, functions that create tensors do not necessarily\n * perform a copy of the data passed to them (e.g. if the data is passed as a\n * `Float32Array`), and changes to the data will change the tensor. This is not\n * a feature and is not supported. To avoid this behavior, use the tensor before\n * changing the input data or create a copy with `copy = tf.add(yourTensor, 0)`.\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, this.dtype === 'complex64');\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(), this.dtype === 'complex64');\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(nav) {\n if (nav || _isNavigatorDefined()) {\n if (!nav) {\n nav = navigator;\n }\n if (nav.product === 'ReactNative') {\n return true;\n }\n // tslint:disable-next-line:no-any\n const a = nav.userAgent || nav.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/** Whether the backend needs to wrap input to imageBitmap. */\nENV.registerFlag('WRAP_TO_IMAGEBITMAP', () => false);\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 { env } from '../environment';\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' && 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/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/einsum.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/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/meshgrid.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/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/image/threshold.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/transform.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/sparse/sparse_fill_empty_rows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_reshape.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/backends/einsum_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/sparse_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/kernels/Sigmoid.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/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Einsum.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/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/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/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/SparseFillEmptyRows_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseFillEmptyRows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape.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/Transform.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/Einsum.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/resize_nearest_neighbor_packed_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/SparseFillEmptyRows.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseReshape.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/transform_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transform.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/_baseTrim.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/_trimmedEndIndex.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","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","isComplex","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","getQueryParams","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","split","keyValue","toLowerCase","parseValue","queryString","params","replace","t","decodeURIComponent","decodeParam","join","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","Einsum","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","SparseFillEmptyRows","SparseReshape","SparseToDense","SquaredDifference","Square","StridedSlice","Sub","Tan","Tanh","Tile","TopK","Transform","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","nav","navigator","product","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","tensor3d","fromPixels2DContext","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","ImageData","HTMLVideoElement","HTMLImageElement","getContext","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","height","videoWidth","videoHeight","getImageData","canvas","drawImage","numPixels","channel","fromPixelsAsync","isNonEmptyPixels","canWrapPixelsToImageBitmap","imageBitmap","createImageBitmap","premultiplyAlpha","toPixels","img","$img","originalImgTensor","multiplier","Uint8ClampedArray","rgba","ctx","imageData","putImageData","fromPixels","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","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","einsum","einsum_","equation","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_","meshgrid","indexing","$y","w","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","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_","threshold","threshold_","inverted","threshValue","totalPixelsInImage","grayscale","$threshold","$r","$g","histogram","total","classFirst","classSecond","meanFirst","meanSec","weightForeground","weightBack","bestThresh","bestInBetVar","cInBetVar","meanFirstDivA","meanSecFill","meanSecAdd","meanSecMul","cInBetVarSubA","cInBetVarSubB","cInBetVarMul","otsu","invCondition","transform","transform_","transforms","interpolation","fillMode","$transforms","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","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_","sparseFillEmptyRows","sparseFillEmptyRows_","denseShape","$values","$denseShape","outputIndices","outputValues","emptyRowIndicator","reverseIndexMap","sparseReshape","sparseReshape_","inputIndices","$inputIndices","$inputShape","$newShape","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","sparse","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","ARROW_REGEX","decodeEinsumEquation","numArrows","inputString","outputString","inputTerms","numInputs","allDims","dimName","inputTerm","idDims","summedDims","getEinsumPermutation","nDims","permutationIndices","checkEinsumDimSizes","dimSizes","getEinsumComputePath","steps","nSteps","computedTermIndices","termIndices","findTermsWithDim","termIndex","isIdentityPermutation","prepareSplitSize","splitSizes","count","negIndex","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","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","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","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","Mish","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","Conv3DTranspose","dAxis","kernelD","strideD","depthAxis","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","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","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","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","tensorSize","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","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","sigmoidConfig","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","multiplyImpl","multiplyComplexImpl","multiplyConfig","permutedX","oldResult","sumConfig","einsumConfig","numDimsRemaining","idTerm","dimsToExpand","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","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","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","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","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseFillEmptyRowsImpl","indicesDType","valuesDType","indicesCount","denseRows","rowsAreOrdered","lastIndicesRow","csrOffset","allRowsFull","rowEmpty","fullIndicesCount","filledCount","outputI","startingIndex","sparseFillEmptyRowsConfig","outputIndicesShape","sparseReshapeImpl","inputIndicesShape","denseSize","nnz","outputRank","unknownIndex","missing","inputStrides","outputStrides","sparseReshapeConfig","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","mapCoord","outCoord","inCoord","sz2","mapCoordReflect","sz","mapCoordWrap","mapCoordNearest","mapCoordConstant","readWithFillValue","batchStride","rowStride","colStride","nearestInterpolation","bilinearInterpolation","yFloor","xFloor","yCeil","xCeil","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","kernelConfigs","transformVals","outY","outX","projection","inX","inY","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","sparseFillEmptyRowsImplCPU","sparseReshapeImplCPU","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","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","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","runOnCpu","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","widthRatio","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","colIndex","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","ResizeNearestNeighborPackedProgram","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","fillSnippet","paramsLoc","uniform4f","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","TransformProgram","interpolationModeId","fillModeId","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","a_key","column","col_name","column_length","null_array","DataFrame","row_indexes","col_i","r_index","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","val_mean","_remove_nans","temp_mean","arraySync","sf","tensor_vals","col_data_tensor","median","__median","operands","__get_tensor_and_idx","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_dtype","col_dict","getRecursiveDict","uniq_columns","first_uniq_columns","remaining_columns","c_dict","col_value","column_data","__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","sub_col_dict","dfs","sub_data_tensors","selected_column","group_col","sub_group_col","gp","group_col_name","ops_name","ops_map","is_array_operation","count_group","local","sub_count_group","arithemetic","to_DataFrame","col_gp","operations","last_key","toLocaleLowerCase","concatPathAndNode","n_array","sanitized_k","recursiveCount","sub_df_data","callable_value","callable_rslt","ndframe","isColumnSplit","column_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","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_values","left_key_comb","left_value_filter","comb_values","right_value","right_key_comb_values","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","left_row","key_array","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","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","trimmedEndIndex","reTrimStart","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","reWhitespace","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","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","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","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","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","data1","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","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","data2","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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vK,EACbH,EAActqK,KAAKzE,IAM3B,MAAMmvK,EAAiB7jK,EAAS3F,QAChCwpK,EAAe,GAAK7sK,OAAO8lB,KAAKymJ,GAAgB9uK,OAChD,MAAMqvK,EAAe,IAAIhtJ,GAAa+sJ,EAAgBpoK,GACtDgoK,EAAczhK,SAAQ,CAAC+hK,EAAoBrvK,KACvC,IAAK,IAAIy3B,EAAI,EAAGA,EAAInsB,EAAS,GAAImsB,IAC7B,IAAK,IAAIhyB,EAAI,EAAGA,EAAI6F,EAAS,GAAI7F,IAC7B2pK,EAAa7oK,IAAIuoK,EAAY9rK,IAAIy0B,EAAG43I,EAAoB5pK,GAAIgyB,EAAGz3B,EAAGyF,MAM9E,MAAM8iD,EAAczhD,EAAMnB,QAE1B,OADA4iD,EAAYo2B,GAASwwF,EAAe,GAC7B,CACHr5F,aAAcs5F,EAAavoK,OAC3B0hD,cACAt2B,WClFD,MCsHDq9I,GAAgB,CAClBrtB,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,GACAxN,GACAyN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACA+B,GACAnB,GACAta,GACA,GACA2a,GACAM,GACAE,GACAE,GACAE,GACAkE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAC,GACAa,GACAK,GACAE,GACA9hB,GACA+hB,GACAjS,GACAkS,GACAC,GACAC,GACAhiB,GACAkiB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAa,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA/L,GACA0M,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACA3mB,GACA8mB,G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AAWk1G,GAC/B,MAEMgmC,EAAqD,EAA7BzzL,KAAK8H,MAAMi+H,EAAa,GAChD2tD,EAA0B3tD,EAAa,EACvC4tD,EAAgB,sDAGtB,IAAIuU,EAAwB,GACxBr3H,EAASk1D,EAAa,IACtBmiE,EAAwB,uCACAr3H,kEAK5B,IAAIs3H,EAA4B,GAC5Bt3H,EAASk1D,EAAa,IACtBoiE,EAA4B,uCACJt3H,mDAK5B/2E,KAAK85K,SAAW,2GAIds0B,2GAKAC,2PASEjwI,eAAyB6tE,+DACmB7tE,yEAI1Bu7H,2lBAgBlBE,kDAGqBF,mBACS,IAA5BC,8aAiBFC,yBACqC,IAA5BD,obAeTC,yBACqC,IAA5BD,+eAeTC,6DC9DL,MCgGD,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,GACAmD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAmC,GACA,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,GACA,GACA,GACA,GD1PoC,CACp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ACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,E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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 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 */\nexport function shuffleCombo(\n// tslint:disable-next-line:no-any\narray, \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, isComplex = false) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0] * (isComplex ? 2 : 1);\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) * (isComplex ? 2 : 1);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a, isComplex);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a, isComplex = false) {\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) * (isComplex ? 2 : 1);\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}${isComplex ? ' for a complex tensor' : ''}.`);\n }\n return createNestedArray(0, shape, a, isComplex);\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 // Jasmine spies on this in 'environment_test.ts'\n this.getQueryParams = getQueryParams;\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 = this.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 Einsum = 'Einsum';\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 SparseFillEmptyRows = 'SparseFillEmptyRows';\nexport const SparseReshape = 'SparseReshape';\nexport const SparseToDense = 'SparseToDense';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const StridedSlice = 'StridedSlice';\nexport const Sub = 'Sub';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transform = 'Transform';\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 * For performance reasons, functions that create tensors do not necessarily\n * perform a copy of the data passed to them (e.g. if the data is passed as a\n * `Float32Array`), and changes to the data will change the tensor. This is not\n * a feature and is not supported. To avoid this behavior, use the tensor before\n * changing the input data or create a copy with `copy = tf.add(yourTensor, 0)`.\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, this.dtype === 'complex64');\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(), this.dtype === 'complex64');\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(nav) {\n if (nav || _isNavigatorDefined()) {\n if (!nav) {\n nav = navigator;\n }\n if (nav.product === 'ReactNative') {\n return true;\n }\n // tslint:disable-next-line:no-any\n const a = nav.userAgent || nav.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/** Whether the backend needs to wrap input to imageBitmap. */\nENV.registerFlag('WRAP_TO_IMAGEBITMAP', () => false);\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 { env } from '../environment';\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' && 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/series.js b/danfojs-browser/src/core/series.js index 4a6a8856..25d2adc0 100644 --- a/danfojs-browser/src/core/series.js +++ b/danfojs-browser/src/core/series.js @@ -1195,20 +1195,14 @@ export class Series extends NDframe { /** - * Exposes numerous string methods to manipulate Series - */ + * Exposes numerous string methods to manipulate Series of type string + */ get str() { - let values = this.values; - if (this.dtypes[0] != "string") { - let new_vals = []; - //convert each value in array to string - values.forEach((val) => { - new_vals.push(String(val)); - }); - let sf = new Series(new_vals, { columns: this.column_names, index: this.index }); - return new Str(sf); + if (this.dtypes[0] == "string") { + return new Str(this); + } else { + throw new Error("Cannot call accessor str on non-string type"); } - return new Str(this); } diff --git a/danfojs-browser/src/core/strings.js b/danfojs-browser/src/core/strings.js index fc25e449..e767e0ee 100644 --- a/danfojs-browser/src/core/strings.js +++ b/danfojs-browser/src/core/strings.js @@ -16,7 +16,12 @@ export class Str { toLowerCase() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.toLowerCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toLowerCase()); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -29,7 +34,12 @@ export class Str { toUpperCase() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.toUpperCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toUpperCase()); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -42,10 +52,15 @@ export class Str { capitalize() { let new_arr = []; this.array.map((val) => { - let f_char = val.slice(0, 1); - let l_char = val.slice(1); - let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; - new_arr.push(new_str); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let f_char = val.slice(0, 1); + let l_char = val.slice(1); + let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; + new_arr.push(new_str); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -60,7 +75,11 @@ export class Str { charAt(index = 0) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.charAt(index)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.charAt(index)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -94,10 +113,18 @@ export class Str { this.array.map((val) => { if (position == 1) { - new_arr.push(val.concat(other)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(String(val).concat(other)); + } else { + new_arr.push(val.concat(other)); + } } else { - new_arr.push(other.concat(val)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(other.concat(String(val))); + } else { + new_arr.push(other.concat(val)); + } } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -114,8 +141,12 @@ export class Str { */ startsWith(str = "") { let new_arr = []; - this.array.map((val) => { - new_arr.push(val.startsWith(str)); + this.array.forEach((val) => { + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.startsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -129,7 +160,11 @@ export class Str { endsWith(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.endsWith(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.endsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -143,7 +178,11 @@ export class Str { includes(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.includes(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.includes(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -157,7 +196,11 @@ export class Str { indexOf(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.indexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.indexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -171,7 +214,11 @@ export class Str { lastIndexOf(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.lastIndexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.lastIndexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -187,7 +234,11 @@ export class Str { replace(searchValue = "", replaceValue = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.replace(searchValue, replaceValue)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.replace(searchValue, replaceValue)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -201,7 +252,11 @@ export class Str { repeat(num = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.repeat(num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.repeat(num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -216,7 +271,11 @@ export class Str { search(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.search(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.search(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -231,7 +290,11 @@ export class Str { slice(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.slice(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.slice(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -246,7 +309,11 @@ export class Str { split(splitVal = " ") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.split(splitVal)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.split(splitVal)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -261,7 +328,11 @@ export class Str { substr(startIndex = 0, num = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.substr(startIndex, num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substr(startIndex, num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -276,7 +347,11 @@ export class Str { substring(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.substring(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substring(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -289,7 +364,11 @@ export class Str { trim() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.trim()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.trim()); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -304,10 +383,14 @@ export class Str { join(valToJoin = "", joinChar = " ") { let new_arr = []; this.array.map((val) => { - let l_char = val; - let r_char = valToJoin; - let new_char = `${l_char}${joinChar}${r_char}`; - new_arr.push(new_char); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let l_char = val; + let r_char = valToJoin; + let new_char = `${l_char}${joinChar}${r_char}`; + new_arr.push(new_char); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -320,7 +403,11 @@ export class Str { len() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.length); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.length); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; diff --git a/danfojs-browser/tests/core/frame.js b/danfojs-browser/tests/core/frame.js index 558935ba..10eebc2d 100644 --- a/danfojs-browser/tests/core/frame.js +++ b/danfojs-browser/tests/core/frame.js @@ -2352,4 +2352,28 @@ describe("DataFrame", function () { }); }); + describe("Str", function () { + it("Str (startsWith) works for columns selected from a DF", function () { + let data = { + "Name": [ "Apples", "Bake", "Application", undefined ], + "Count": [ 2, 5, 4, 10 ], + "Price": [ 200, 300, 40, 250 ] + }; + + let df = new dfd.DataFrame(data); + let name_sf = df['Name']; + assert.deepEqual(name_sf.str.startsWith("App").values, [ true, false, true, false ]); + }); + it("Str (toLowerCase) works for columns selected from a DF", function () { + let data = { + "Name": [ "Apples", "Bake", "Application", undefined ], + "Count": [ 2, 5, 4, 10 ], + "Price": [ 200, 300, 40, 250 ] + }; + + let df = new dfd.DataFrame(data); + let name_sf = df['Name']; + assert.deepEqual(name_sf.str.toLowerCase().values, [ "apples", "bake", "application", NaN ]); + }); + }); }); diff --git a/danfojs-browser/tests/core/series.js b/danfojs-browser/tests/core/series.js index d589f76d..3d079cf9 100644 --- a/danfojs-browser/tests/core/series.js +++ b/danfojs-browser/tests/core/series.js @@ -1134,11 +1134,17 @@ describe("Series", function () { assert.deepEqual(sf.str.charAt(2).values, res); }); - it("Returns the concat of numeric series", function () { + it("Throws error on concat of numeric series", function () { let data = [ 1, 2, 3, 4, 5, 6 ]; - let res = [ "120", "220", "320", "420", "520", "620" ]; let sf = new dfd.Series(data); - assert.deepEqual(sf.str.concat("20", 1).values, res); + assert.throws( + () => { + sf.str.concat("20", 1); + }, + Error, + "Cannot call accessor str on non-string type" + ); + }); }); diff --git a/danfojs-node/dist/core/series.js b/danfojs-node/dist/core/series.js index 6caba17b..b22d8a10 100644 --- a/danfojs-node/dist/core/series.js +++ b/danfojs-node/dist/core/series.js @@ -961,21 +961,11 @@ class Series extends _generic.default { } get str() { - let values = this.values; - - if (this.dtypes[0] != "string") { - let new_vals = []; - values.forEach(val => { - new_vals.push(String(val)); - }); - let sf = new Series(new_vals, { - columns: this.column_names, - index: this.index - }); - return new _strings.Str(sf); + if (this.dtypes[0] == "string") { + return new _strings.Str(this); + } else { + throw new Error("Cannot call accessor str on non-string type"); } - - return new _strings.Str(this); } get dt() { diff --git a/danfojs-node/dist/core/strings.js b/danfojs-node/dist/core/strings.js index b12e9ad7..55680aae 100644 --- a/danfojs-node/dist/core/strings.js +++ b/danfojs-node/dist/core/strings.js @@ -16,7 +16,11 @@ class Str { toLowerCase() { let new_arr = []; this.array.map(val => { - new_arr.push(val.toLowerCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toLowerCase()); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -27,7 +31,11 @@ class Str { toUpperCase() { let new_arr = []; this.array.map(val => { - new_arr.push(val.toUpperCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toUpperCase()); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -38,10 +46,14 @@ class Str { capitalize() { let new_arr = []; this.array.map(val => { - let f_char = val.slice(0, 1); - let l_char = val.slice(1); - let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; - new_arr.push(new_str); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let f_char = val.slice(0, 1); + let l_char = val.slice(1); + let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; + new_arr.push(new_str); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -52,7 +64,11 @@ class Str { charAt(index = 0) { let new_arr = []; this.array.map(val => { - new_arr.push(val.charAt(index)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.charAt(index)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -82,9 +98,17 @@ class Str { let new_arr = []; this.array.map(val => { if (position == 1) { - new_arr.push(val.concat(other)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(String(val).concat(other)); + } else { + new_arr.push(val.concat(other)); + } } else { - new_arr.push(other.concat(val)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(other.concat(String(val))); + } else { + new_arr.push(other.concat(val)); + } } }); @@ -96,8 +120,12 @@ class Str { startsWith(str = "") { let new_arr = []; - this.array.map(val => { - new_arr.push(val.startsWith(str)); + this.array.forEach(val => { + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.startsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -108,7 +136,11 @@ class Str { endsWith(str = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.endsWith(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.endsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -119,7 +151,11 @@ class Str { includes(str = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.includes(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.includes(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -130,7 +166,11 @@ class Str { indexOf(str = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.indexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.indexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -141,7 +181,11 @@ class Str { lastIndexOf(str = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.lastIndexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.lastIndexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -152,7 +196,11 @@ class Str { replace(searchValue = "", replaceValue = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.replace(searchValue, replaceValue)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.replace(searchValue, replaceValue)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -163,7 +211,11 @@ class Str { repeat(num = 1) { let new_arr = []; this.array.map(val => { - new_arr.push(val.repeat(num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.repeat(num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -174,7 +226,11 @@ class Str { search(str = "") { let new_arr = []; this.array.map(val => { - new_arr.push(val.search(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.search(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -185,7 +241,11 @@ class Str { slice(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map(val => { - new_arr.push(val.slice(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.slice(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -196,7 +256,11 @@ class Str { split(splitVal = " ") { let new_arr = []; this.array.map(val => { - new_arr.push(val.split(splitVal)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.split(splitVal)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -207,7 +271,11 @@ class Str { substr(startIndex = 0, num = 1) { let new_arr = []; this.array.map(val => { - new_arr.push(val.substr(startIndex, num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substr(startIndex, num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -218,7 +286,11 @@ class Str { substring(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map(val => { - new_arr.push(val.substring(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substring(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -229,7 +301,11 @@ class Str { trim() { let new_arr = []; this.array.map(val => { - new_arr.push(val.trim()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.trim()); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -240,10 +316,14 @@ class Str { join(valToJoin = "", joinChar = " ") { let new_arr = []; this.array.map(val => { - let l_char = val; - let r_char = valToJoin; - let new_char = `${l_char}${joinChar}${r_char}`; - new_arr.push(new_char); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let l_char = val; + let r_char = valToJoin; + let new_char = `${l_char}${joinChar}${r_char}`; + new_arr.push(new_char); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -254,7 +334,11 @@ class Str { len() { let new_arr = []; this.array.map(val => { - new_arr.push(val.length); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.length); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); diff --git a/danfojs-node/src/core/series.js b/danfojs-node/src/core/series.js index f35e872f..0c184a61 100644 --- a/danfojs-node/src/core/series.js +++ b/danfojs-node/src/core/series.js @@ -1069,30 +1069,30 @@ export class Series extends NDframe { let bool = null; switch (b_ops) { - case "lt": - bool = l_val < r_val ? true : false; - data.push(bool); - break; - case "gt": - bool = l_val > r_val ? true : false; - data.push(bool); - break; - case "le": - bool = l_val <= r_val ? true : false; - data.push(bool); - break; - case "ge": - bool = l_val >= r_val ? true : false; - data.push(bool); - break; - case "ne": - bool = l_val != r_val ? true : false; - data.push(bool); - break; - case "eq": - bool = l_val === r_val ? true : false; - data.push(bool); - break; + case "lt": + bool = l_val < r_val ? true : false; + data.push(bool); + break; + case "gt": + bool = l_val > r_val ? true : false; + data.push(bool); + break; + case "le": + bool = l_val <= r_val ? true : false; + data.push(bool); + break; + case "ge": + bool = l_val >= r_val ? true : false; + data.push(bool); + break; + case "ne": + bool = l_val != r_val ? true : false; + data.push(bool); + break; + case "eq": + bool = l_val === r_val ? true : false; + data.push(bool); + break; } } return new Series(data); @@ -1113,30 +1113,30 @@ export class Series extends NDframe { let curr_val = s_data[i]; switch (ops) { - case "max": - if (curr_val > temp_val) { - data.push(curr_val); - temp_val = curr_val; - } else { - data.push(temp_val); - } - break; - case "min": - if (curr_val < temp_val) { - data.push(curr_val); - temp_val = curr_val; - } else { - data.push(temp_val); - } - break; - case "sum": - temp_val = temp_val + curr_val; + case "max": + if (curr_val > temp_val) { + data.push(curr_val); + temp_val = curr_val; + } else { data.push(temp_val); - break; - case "prod": - temp_val = temp_val * curr_val; + } + break; + case "min": + if (curr_val < temp_val) { + data.push(curr_val); + temp_val = curr_val; + } else { data.push(temp_val); - break; + } + break; + case "sum": + temp_val = temp_val + curr_val; + data.push(temp_val); + break; + case "prod": + temp_val = temp_val * curr_val; + data.push(temp_val); + break; } } @@ -1164,28 +1164,28 @@ export class Series extends NDframe { let new_values = []; switch (dtype) { - case "float32": - col_values.forEach((val) => { - new_values.push(Number(val)); - }); - break; - case "int32": - col_values.forEach((val) => { - new_values.push(Number(Number(val).toFixed())); - }); - break; - case "string": - col_values.forEach((val) => { - new_values.push(String(val)); - }); - break; - case "boolean": - col_values.forEach((val) => { - new_values.push(Boolean(val)); - }); - break; - default: - break; + case "float32": + col_values.forEach((val) => { + new_values.push(Number(val)); + }); + break; + case "int32": + col_values.forEach((val) => { + new_values.push(Number(Number(val).toFixed())); + }); + break; + case "string": + col_values.forEach((val) => { + new_values.push(String(val)); + }); + break; + case "boolean": + col_values.forEach((val) => { + new_values.push(Boolean(val)); + }); + break; + default: + break; } let sf = new Series(new_values, { dtypes: dtype, index: this.index }); @@ -1195,20 +1195,14 @@ export class Series extends NDframe { /** - * Exposes numerous string methods to manipulate Series + * Exposes numerous string methods to manipulate Series of type string */ get str() { - let values = this.values; - if (this.dtypes[0] != "string") { - let new_vals = []; - //convert each value in array to string - values.forEach((val) => { - new_vals.push(String(val)); - }); - let sf = new Series(new_vals, { columns: this.column_names, index: this.index }); - return new Str(sf); + if (this.dtypes[0] == "string") { + return new Str(this); + } else { + throw new Error("Cannot call accessor str on non-string type"); } - return new Str(this); } diff --git a/danfojs-node/src/core/strings.js b/danfojs-node/src/core/strings.js index fc25e449..e767e0ee 100644 --- a/danfojs-node/src/core/strings.js +++ b/danfojs-node/src/core/strings.js @@ -16,7 +16,12 @@ export class Str { toLowerCase() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.toLowerCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toLowerCase()); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -29,7 +34,12 @@ export class Str { toUpperCase() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.toUpperCase()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.toUpperCase()); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -42,10 +52,15 @@ export class Str { capitalize() { let new_arr = []; this.array.map((val) => { - let f_char = val.slice(0, 1); - let l_char = val.slice(1); - let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; - new_arr.push(new_str); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let f_char = val.slice(0, 1); + let l_char = val.slice(1); + let new_str = `${f_char.toUpperCase()}${l_char.toLowerCase()}`; + new_arr.push(new_str); + } + }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -60,7 +75,11 @@ export class Str { charAt(index = 0) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.charAt(index)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.charAt(index)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -94,10 +113,18 @@ export class Str { this.array.map((val) => { if (position == 1) { - new_arr.push(val.concat(other)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(String(val).concat(other)); + } else { + new_arr.push(val.concat(other)); + } } else { - new_arr.push(other.concat(val)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(other.concat(String(val))); + } else { + new_arr.push(other.concat(val)); + } } }); let sf = this.__create_new_sf_from(new_arr, this.series); @@ -114,8 +141,12 @@ export class Str { */ startsWith(str = "") { let new_arr = []; - this.array.map((val) => { - new_arr.push(val.startsWith(str)); + this.array.forEach((val) => { + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.startsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -129,7 +160,11 @@ export class Str { endsWith(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.endsWith(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.endsWith(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -143,7 +178,11 @@ export class Str { includes(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.includes(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(false); + } else { + new_arr.push(val.includes(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -157,7 +196,11 @@ export class Str { indexOf(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.indexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.indexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -171,7 +214,11 @@ export class Str { lastIndexOf(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.lastIndexOf(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.lastIndexOf(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -187,7 +234,11 @@ export class Str { replace(searchValue = "", replaceValue = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.replace(searchValue, replaceValue)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.replace(searchValue, replaceValue)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -201,7 +252,11 @@ export class Str { repeat(num = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.repeat(num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.repeat(num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -216,7 +271,11 @@ export class Str { search(str = "") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.search(str)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(-1); + } else { + new_arr.push(val.search(str)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -231,7 +290,11 @@ export class Str { slice(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.slice(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.slice(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -246,7 +309,11 @@ export class Str { split(splitVal = " ") { let new_arr = []; this.array.map((val) => { - new_arr.push(val.split(splitVal)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.split(splitVal)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -261,7 +328,11 @@ export class Str { substr(startIndex = 0, num = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.substr(startIndex, num)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substr(startIndex, num)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -276,7 +347,11 @@ export class Str { substring(startIndex = 0, endIndex = 1) { let new_arr = []; this.array.map((val) => { - new_arr.push(val.substring(startIndex, endIndex)); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.substring(startIndex, endIndex)); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -289,7 +364,11 @@ export class Str { trim() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.trim()); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.trim()); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -304,10 +383,14 @@ export class Str { join(valToJoin = "", joinChar = " ") { let new_arr = []; this.array.map((val) => { - let l_char = val; - let r_char = valToJoin; - let new_char = `${l_char}${joinChar}${r_char}`; - new_arr.push(new_char); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + let l_char = val; + let r_char = valToJoin; + let new_char = `${l_char}${joinChar}${r_char}`; + new_arr.push(new_char); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; @@ -320,7 +403,11 @@ export class Str { len() { let new_arr = []; this.array.map((val) => { - new_arr.push(val.length); + if (isNaN(val) && typeof val != "string") { + new_arr.push(val); + } else { + new_arr.push(val.length); + } }); let sf = this.__create_new_sf_from(new_arr, this.series); return sf; diff --git a/danfojs-node/tests/core/frame.js b/danfojs-node/tests/core/frame.js index 7248bd27..01e1250e 100644 --- a/danfojs-node/tests/core/frame.js +++ b/danfojs-node/tests/core/frame.js @@ -2355,4 +2355,30 @@ describe("DataFrame", function () { }); }); + + describe("Str", function () { + it("Str (startsWith) works for columns selected from a DF", function () { + let data = { + "Name": ["Apples", "Bake", "Application", undefined], + "Count": [2, 5, 4, 10], + "Price": [200, 300, 40, 250] + }; + + let df = new DataFrame(data); + let name_sf = df['Name']; + assert.deepEqual(name_sf.str.startsWith("App").values, [true, false, true, false]); + }); + it("Str (toLowerCase) works for columns selected from a DF", function () { + let data = { + "Name": ["Apples", "Bake", "Application", undefined], + "Count": [2, 5, 4, 10], + "Price": [200, 300, 40, 250] + }; + + let df = new DataFrame(data); + let name_sf = df['Name']; + assert.deepEqual(name_sf.str.toLowerCase().values, ["apples", "bake", "application", NaN]); + }); + }); + }); diff --git a/danfojs-node/tests/core/series.js b/danfojs-node/tests/core/series.js index 0a5df6e7..2c8cfd0c 100644 --- a/danfojs-node/tests/core/series.js +++ b/danfojs-node/tests/core/series.js @@ -1135,11 +1135,17 @@ describe("Series", function () { assert.deepEqual(sf.str.charAt(2).values, res); }); - it("Returns the concat of numeric series", function () { + it("Throws error on concat of numeric series", function () { let data = [1, 2, 3, 4, 5, 6]; - let res = ["120", "220", "320", "420", "520", "620"]; let sf = new Series(data); - assert.deepEqual(sf.str.concat("20", 1).values, res); + assert.throws( + () => { + sf.str.concat("20", 1); + }, + Error, + "Cannot call accessor str on non-string type" + ); + }); }); diff --git a/danfojs-node/tests/core/strings.js b/danfojs-node/tests/core/strings.js index 15b79634..294b7d5b 100644 --- a/danfojs-node/tests/core/strings.js +++ b/danfojs-node/tests/core/strings.js @@ -5,162 +5,162 @@ import { Series } from "../../src/core/series"; describe("Str", function () { it("Converts all characters to lowercase.", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'lower', 'capitals', 'this is a sentence', 'swapcase' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['lower', 'capitals', 'this is a sentence', 'swapcase']; let str = new Str(new Series(data)); assert.deepEqual(str.toLowerCase().values, res); }); it("Converts all characters to uppercase.", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'LOWER', 'CAPITALS', 'THIS IS A SENTENCE', 'SWAPCASE' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['LOWER', 'CAPITALS', 'THIS IS A SENTENCE', 'SWAPCASE']; let str = new Str(new Series(data)); assert.deepEqual(str.toUpperCase().values, res); }); it("Converts all characters to capital case.", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'Lower', 'Capitals', 'This is a sentence', 'Swapcase' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['Lower', 'Capitals', 'This is a sentence', 'Swapcase']; let str = new Str(new Series(data)); assert.deepEqual(str.capitalize().values, res); }); it("Returns the character at the specified index (position)", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ "w", "P", "i", "A" ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ["w", "P", "i", "A"]; let str = new Str(new Series(data)); assert.deepEqual(str.charAt(2).values, res); }); it("Joins two or more strings. 0 joins from the start", function () { - let data = [ 'lower', 'CAPITALS', 'sentence', 'SwApCaSe' ]; - let data2 = [ 'XX', 'YY', 'BB', '01' ]; + let data = ['lower', 'CAPITALS', 'sentence', 'SwApCaSe']; + let data2 = ['XX', 'YY', 'BB', '01']; - let res = [ 'XXlower', 'YYCAPITALS', 'BBsentence', '01SwApCaSe' ]; + let res = ['XXlower', 'YYCAPITALS', 'BBsentence', '01SwApCaSe']; let str = new Str(new Series(data)); assert.deepEqual(str.concat(data2, 0).values, res); }); it("Joins two or more strings. 1 joins from the end", function () { - let data = [ 'lower', 'CAPITALS', 'sentence', 'SwApCaSe' ]; - let data2 = [ 'XX', 'YY', 'BB', '01' ]; + let data = ['lower', 'CAPITALS', 'sentence', 'SwApCaSe']; + let data2 = ['XX', 'YY', 'BB', '01']; - let res = [ 'lowerXX', 'CAPITALSYY', 'sentenceBB', 'SwApCaSe01' ]; + let res = ['lowerXX', 'CAPITALSYY', 'sentenceBB', 'SwApCaSe01']; let str = new Str(new Series(data)); assert.deepEqual(str.concat(data2, 1).values, res); }); it("Joins two arrays of strings. 0 joins from the start", function () { - let data = [ 'lower', 'CAPITALS', 'sentence', 'SwApCaSe' ]; - let res = [ 'prelower', 'preCAPITALS', 'presentence', 'preSwApCaSe' ]; + let data = ['lower', 'CAPITALS', 'sentence', 'SwApCaSe']; + let res = ['prelower', 'preCAPITALS', 'presentence', 'preSwApCaSe']; let str = new Str(new Series(data)); assert.deepEqual(str.concat("pre", 0).values, res); }); it("Joins two or more strings. 1 joins from the end", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'lowerpost', 'CAPITALSpost', 'this is a sentencepost', 'SwApCaSepost' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['lowerpost', 'CAPITALSpost', 'this is a sentencepost', 'SwApCaSepost']; let str = new Str(new Series(data)); assert.deepEqual(str.concat("post", 1).values, res); }); it("Checks whether a string begins with specified characters", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ true, false, false, false ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [true, false, false, false]; let str = new Str(new Series(data)); assert.deepEqual(str.startsWith("l").values, res); }); it("Checks whether a string ends with specified characters", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ false, false, true, true ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [false, false, true, true]; let str = new Str(new Series(data)); assert.deepEqual(str.endsWith("e").values, res); }); it("Checks whether a string contains the specified string/characters", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ false, false, true, false ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [false, false, true, false]; let str = new Str(new Series(data)); assert.deepEqual(str.includes("sentence").values, res); }); it("Returns the position of the first found occurrence of a specified value in a string", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ -1, 0, -1, 4 ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [-1, 0, -1, 4]; let str = new Str(new Series(data)); assert.deepEqual(str.indexOf("C").values, res); }); it("Returns the position of the last found occurrence of a specified value in a string", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 4, -1, -1, -1 ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [4, -1, -1, -1]; let str = new Str(new Series(data)); assert.deepEqual(str.lastIndexOf("r").values, res); }); it("Returns a new string with a specified number of copies of an existing string", function () { - let data = [ 'a', 'b', 'c', 'd' ]; - let res = [ 'aaa', 'bbb', 'ccc', 'ddd' ]; + let data = ['a', 'b', 'c', 'd']; + let res = ['aaa', 'bbb', 'ccc', 'ddd']; let str = new Str(new Series(data)); assert.deepEqual(str.repeat(3).values, res); }); it("Searches a string for a specified value, or a regular expression, and returns a new string where the specified values are replaced", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'lower', 'CXXXPITALS', 'this is a sentence', 'SwXXXpCaSe' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['lower', 'CXXXPITALS', 'this is a sentence', 'SwXXXpCaSe']; let str = new Str(new Series(data)); assert.deepEqual(str.replace("A", "XXX").values, res); }); it("Searches a string for a specified value, or regular expression, and returns the position of the match", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ -1, 1, -1, 2 ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [-1, 1, -1, 2]; let str = new Str(new Series(data)); assert.deepEqual(str.search("A").values, res); }); it("Extracts a part of a string and returns a new string", function () { - let data = [ 'lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 'ow', 'AP', 'hi', 'wA' ]; + let data = ['lower', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = ['ow', 'AP', 'hi', 'wA']; let str = new Str(new Series(data)); assert.deepEqual(str.slice(1, 3).values, res); }); it("Splits a string into an array of substrings", function () { - let data = [ 'lower part', 'CAPITALS city', 'is a sentence', 'SwAp CaSe' ]; - let res = [ "lower,part", "CAPITALS,city", "is,a,sentence", "SwAp,CaSe" ]; + let data = ['lower part', 'CAPITALS city', 'is a sentence', 'SwAp CaSe']; + let res = ["lower,part", "CAPITALS,city", "is,a,sentence", "SwAp,CaSe"]; let str = new Str(new Series(data)); assert.deepEqual(str.split(" ").values, res); }); it("Extracts the characters from a string, beginning at a specified start position, and through the specified number of character", function () { - let data = [ 'lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe' ]; - let res = [ " p", "AL", "is", "Ca" ]; + let data = ['lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe']; + let res = [" p", "AL", "is", "Ca"]; let str = new Str(new Series(data)); assert.deepEqual(str.substr(5, 2).values, res); }); it("Extracts the characters from a string, between two specified indices", function () { - let data = [ 'lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe' ]; - let res = [ "w", "P", "i", "A" ]; + let data = ['lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe']; + let res = ["w", "P", "i", "A"]; let str = new Str(new Series(data)); assert.deepEqual(str.substring(2, 3).values, res); }); it("Removes whitespace from both ends of a string", function () { - let data = [ 'lower part ', ' CAPITALS city', ' this is a sentence', ' SwAp CaSe' ]; - let res = [ 'lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe' ]; + let data = ['lower part ', ' CAPITALS city', ' this is a sentence', ' SwAp CaSe']; + let res = ['lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe']; let str = new Str(new Series(data)); assert.deepEqual(str.trim().values, res); }); it("Joins strings to specified value", function () { - let data = [ 'lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe' ]; - let res = [ 'lower part,new', 'CAPITALS city,new', 'this is a sentence,new', 'SwAp CaSe,new' ]; + let data = ['lower part', 'CAPITALS city', 'this is a sentence', 'SwAp CaSe']; + let res = ['lower part,new', 'CAPITALS city,new', 'this is a sentence,new', 'SwAp CaSe,new']; let str = new Str(new Series(data)); assert.deepEqual(str.join("new", ",").values, res); }); it("Counts the number of characters in string", function () { - let data = [ 'lower part', 'CAPITALS', 'this is a sentence', 'SwApCaSe' ]; - let res = [ 10, 8, 18, 8 ]; + let data = ['lower part', 'CAPITALS', 'this is a sentence', 'SwApCaSe']; + let res = [10, 8, 18, 8]; let str = new Str(new Series(data)); assert.deepEqual(str.len().values, res); });