Welcome to mirror list, hosted at ThFree Co, Russian Federation.

pdf.js.map « build « pdfjs « js - github.com/nextcloud/files_pdfviewer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2d8eaf06dd6a8f89b37130f1b2d390043975632f (plain)
1
{"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/not-a-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-method-uses-to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/from-entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.from-entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/typed-array/slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.typed-array.slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-native.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/dom-iterables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url-search-params.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/map/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/set/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-map/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-set/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/symbol/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.concat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-method-has-species-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.description.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.has-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.replace.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.search.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.split.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.json.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.entries.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js"],"names":["pdfjsVersion","pdfjsBuild","require","PDFNodeStream","setPDFNetworkStreamFactory","params","PDFNetworkStream","PDFFetchStream","isValidFetchUrl","DEFAULT_LINK_REL","SVG_NS","constructor","unreachable","create","reset","canvasAndContext","width","height","destroy","ownerDocument","globalThis","canvas","context","baseUrl","isCompressed","url","compressionType","CMapCompressionType","reason","_fetchData","isFetchSupported","document","response","cMapData","stringToBytes","request","XMLHttpRequest","resolve","reject","assert","svg","createElement","offsetX","offsetY","dontFlip","centerX","viewBox","centerY","rotation","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","Math","offsetCanvasY","clone","scale","convertToViewportPoint","convertToViewportRectangle","topLeft","rect","bottomRight","convertToPdfPoint","LinkTarget","NONE","SELF","BLANK","PARENT","TOP","enabled","urlNullRemoved","removeNullCharacters","link","targetStr","anchor","query","end","Object","time","name","warn","Date","timeEnd","start","outBuf","longest","duration","Response","protocol","script","console","isString","pdfDateStringRegex","matches","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","module","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","value","enumerable","configurable","writable","obj","define","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","exports","type","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","ctor","genFun","__await","record","tryCatch","result","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","info","entry","tryLoc","locs","keys","key","next","iteratorMethod","iterable","isNaN","i","Context","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","get","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","base","other","absoluteUrl","_isValidProtocol","BaseException","NullCharactersRegExp","str","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","chunkEnd","chunk","arr","resultLength","arrayByteLength","pos","data","item","itemLength","buffer8","view32","IsLittleEndianCached","shadow","isLittleEndian","IsEvalSupportedCached","isEvalSupported","rgbBuf","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","sx","sy","orderedX","rect1","rect2","orderedY","PDFStringTranslateTable","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","date","buffer","capability","isSettled","createObjectURL","digits","forceDataSchema","URL","blob","ii","b1","b2","b3","d1","d2","d3","d4","hasDOM","userAgent","navigator","isIE","Buffer","Element","div","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","OriginalPushState","window","OriginalReplaceState","args","Array","Uint8Array","isReadableStreamSupported","controller","isNodeJS","process","$","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","prototype","noTargetGet","forced","undefined","sham","check","it","self","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","O","P","error","call","fails","defineProperty","exec","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","V","bitmap","IndexedObject","requireObjectCoercible","classof","split","toString","slice","TypeError","isObject","input","PREFERRED_STRING","val","valueOf","hasOwnProperty","EXISTS","definePropertyModule","object","anObject","nativeDefineProperty","Attributes","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","getterFor","TYPE","wmget","wmhas","wmset","metadata","STATE","test","shared","uid","IS_PURE","push","version","mode","copyright","id","postfix","random","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertySymbols","concat","path","aFunction","variable","namespace","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toInteger","min","argument","ceil","floor","max","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","entryUnbind","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","proto","searchString","that","search","isRegExp","wellKnownSymbol","MATCH","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","withoutSetter","METHOD_NAME","regexp","e","bind","CONSTRUCTOR","METHOD","apply","nativeEndsWith","endsWith","endPosition","len","$includes","addToUnscopables","arrayMethodUsesToLength","USES_TO_LENGTH","ACCESSORS","UNSCOPABLES","ArrayPrototype","defineProperties","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","F","NullProtoObject","domain","ActiveXObject","Properties","objectKeys","cache","thrower","argument0","argument1","from","charAt","defineIterator","STRING_ITERATOR","setInternalState","iterated","point","CONVERT_TO_STRING","S","position","size","charCodeAt","codeAt","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","checkCorrectnessOfIteration","INCORRECT_ITERATION","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","argumentsLength","mapfn","mapping","step","returnMethod","propertyKey","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","assign","nativeAssign","A","B","symbol","alphabet","forEach","chr","T","j","fromEntries","ARRAY_ITERATOR","kind","Arguments","iterate","k","Result","stopped","AS_ENTRIES","IS_ITERATOR","boundFunction","iterFn","log2","log","LN2","x","number","isInteger","isFinite","ArrayBufferViewCore","speciesConstructor","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","$slice","Int8Array","list","NATIVE_ARRAY_BUFFER","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isView","klass","isTypedArray","ARRAY","TypedArrayConstructor","property","exportTypedArrayStaticMethod","ArrayBuffer","DataView","SPECIES","defaultConstructor","Promise","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","NativePromise","redefineAll","setSpecies","anInstance","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","promise","FakePromise","then","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","fetch","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","IS_IOS","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","post","postMessage","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","versions","v8","match","allSettled","status","NON_GENERIC","real","onFinally","isFunction","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","pop","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","fragment","codePoint","encodedCodePoints","shift","URLConstructor","urlString","baseState","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","output","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","sort","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","inputLength","n","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","getIterator","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","RegExp","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","attributes","attribute","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","URLSearchParamsConstructor","init","entryIterator","entryNext","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","body","headers","factory","SymbolPolyfill","description","noop","NumberIsNaN","rethrowAssertionErrorRejection","typeIsObject","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","IsFiniteNonNegativeNumber","IsNonNegativeNumber","Infinity","Call","CreateAlgorithmFromUnderlyingMethod","underlyingObject","methodName","algoArgCount","extraArgs","PromiseCall","fullArgs","promiseResolvedWith","InvokeOrNoop","promiseRejectedWith","TransferArrayBuffer","IsDetachedBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","MakeSizeAlgorithmFromSizeFunction","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","peek","front","cursor","ReadableStreamCreateReadResult","forAuthorCode","ReadableStreamReaderGenericInitialize","reader","stream","_forAuthorCode","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","CancelSteps","PullSteps","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_resolve","_reject","_readRequests","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStream","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","ReadableStreamDefaultReaderRead","releaseLock","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorReader","return","_preventCancel","AcquireReadableStreamAsyncIterator","preventCancel","Boolean","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","AbortSteps","ErrorSteps","WritableStream","underlyingSink","strategy","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","abort","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","CreateWritableStream","startAlgorithm","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_promise","wasAlreadyErroring","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","IsWritableStreamDefaultController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_strategyHWM","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startResult","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","desiredSize","_readyPromise_resolve","_readyPromise_reject","isAbortSignal","aborted","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","message","Error","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","signal","shuttingDown","currentWrite","actions","shutdownWithAction","map","action","pipeLoop","resolveLoop","rejectLoop","pipeStep","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","enqueue","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","_cancelAlgorithm","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","_closeRequested","ReadableStreamClose","ReadableStreamDefaultControllerCallPullIfNeeded","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableStreamError","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","pullAlgorithm","cancelAlgorithm","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","reading","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","readPromise","value1","value2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","NumberIsInteger","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","_byobRequest","_pendingPullIntos","firstDescriptor","byteOffset","bytesFilled","byteLength","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_controlledReadableByteStream","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","viewE","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","elementSize","readerType","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","SetUpReadableByteStreamController","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ReadableStream","InitializeReadableStream","typeString","streamBrandCheckException$1","getReader","pipeThrough","_b","readable","_c","pipeTo","tee","branches","sourceCancelPromise","ByteLengthQueuingStrategy","CountQueuingStrategy","TransformStream","transformer","writableStrategy","readableStrategy","writableSizeFunction","writableHighWaterMark","readableSizeFunction","readableHighWaterMark","writableType","writableSizeAlgorithm","readableType","readableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException$2","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException$1","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","transformMethod","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","Map","collection","collectionStrong","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","add","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","getEntry","previous","removed","prev","callbackfn","ITERATOR_NAME","getInternalCollectionState","Set","collectionWeak","enforceIternalState","IS_IE11","InternalWeakMap","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","ArrayIterationModule","$has","findIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","filter","some","every","isArray","originalArray","WeakSet","codePointAt","fromCodePoint","nativeFromCodePoint","INCORRECT_LENGTH","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","foo","nativeObjectCreate","getOwnPropertyNamesExternal","wrappedWellKnownSymbolModule","defineWellKnownSymbol","$forEach","SYMBOL","TO_PRIMITIVE","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","stringify","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","JSON","$padStart","WEBKIT_BUG","padStart","repeat","IS_END","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","$padEnd","padEnd","$values","TO_ENTRIES","$entries","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","worker","pdfBytes","apiCompatibilityParams","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","disableAutoFetch","maxImageSize","disableFontFace","postMessageTransfers","docBaseUrl","ignoreErrors","fontExtraProperties","PDFDocumentLoadingTask","nextDocumentId","transportDestroyed","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","saveDocument","pdfBug","getViewport","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","annotationStorage","optionalContentConfigPromise","render","renderingIntent","intentState","clearTimeout","canvasFactoryInstance","webGLContext","enable","fnArray","argsArray","lastChunk","pageIndex","internalRenderTask","canvasContext","viewport","objs","commonObjs","operatorList","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","readableStream","pump","items","styles","waitOn","resetStats","cleanup","_tryCleanup","renderTasks","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","_abortOperatorList","curIntentState","cloned","transferable","transfers","cloneValue","pdfWorkerPorts","isWorkerDisabled","nextFakeWorkerId","fallbackWorkerSrc","pdfjsFilePath","deprecated","mainWorkerMessageHandler","fakeWorkerCapability","loader","getMainThreadWorkerMessageHandler","eval","getWorkerSrc","loadScript","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","page","terminated","evt","loaded","total","sink","readyReason","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","ex","msg","exception","updatePassword","exportedError","exportedData","fontRegistry","registerFont","pageProxy","MAX_IMAGE_SIZE_TO_STORE","imageData","fetched","builtInCMap","_onUnsupportedFeature","pageNumber","pageInfo","ref","numPages","filename","results","contentDispositionFilename","cleanupSuccessful","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","build","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","supported","FontLoader","requests","nextRequestId","otherRequest","offset","chunk1","s","chunk2","ctx","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","span","getLoadTestFont","atob","translatedData","bytesToString","getPathGenerator","cmds","js","current","NodeCanvasFactory","NodeCMapReaderFactory","Canvas","__non_webpack_require__","fs","getOrCreateValue","setValue","compatibilityParams","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","j0","sum","steps","outlines","coords","p0","pp","drawOutline","kk","o","l","ll","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","transferMaps","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","elemsInThisChunk","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","img","maskCanvas","putBinaryImageMask","skewX","skewY","positions","images","image","objId","w","h","widthScale","heightScale","imgToPaint","tmpCanvas","tmpCtx","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","left","top","visible","getSinglePixelWidth","inverse","getCanvasPosition","isContentVisible","ShadingIRs","region","fromIR","raw","colorStops","r1","getPattern","applyBoundingBox","grad","createMeshCanvas","colors","rowSize","tmp","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","callbackId","wrapReason","cbSourceName","cbTargetName","comObj","sourceName","targetName","on","ah","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancelCapability","_createStreamSink","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","_postMessage","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","jj","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","ch","isWhitespace","_resolveEntities","entity","_parseContent","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","childNodes","child","parseFromString","documentElement","isWhitespaceString","lastElement","isVisible","setVisibility","getGroup","begin","_onReceiveData","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","TEXT_ALIGNMENT","storage","fieldWidth","combWidth","_setTextStyle","fontFamily","fallbackName","radio","selectElement","optionElement","option","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","coordinate","polyline","getFilenameFromUrl","stringToPDFString","sortedAnnotations","popupAnnotations","downloadManager","imageResourcesPath","svgFactory","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","textDiv","textDivProperties","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","shouldScaleText","absScaleX","absScaleY","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","ts","expanded","expandBounds","divProperties","boxScale","findPositiveMin","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","_processItems","appendText","_layoutText","_render","styleCache","textItems","textStyles","expandTextDivs","expand","transformBuf","paddingBuf","divProps","renderParameters","textContentStream","enhanceTextSelection","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","crc32","deflateSyncUncompressed","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgSrc","cliprect","imgEl","_initialize","definitions","rootGroup","clipGroup","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","abortController","credentials","redirect","createHeaders","createFetchOptions","validateResponseStatus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnEA;;AAUA;;AASA;;AAlCA;;AAAA;;AAAA;;AAAA;;AAAA;;AA0DA,IAAMA,eA1DN,SA0DA;AAGA,IAAMC,aA7DN,UA6DA;AAiBqC;AAAA,iBACdC,oBADc,CACdA,CADc;AAAA,MAC7B,QAD6B,YAC7B,QAD6B;;AAEnC,gBAAc;AACZ,QAAMC,gBAAgBD,yBADV,aACZ;;AACAE,yCAA2BC,kBAAU;AACnC,aAAO,kBAD4B,MAC5B,CAAP;AAHU,KAEZD;AAFF,SAKO;AACL,QAAME,mBAAmBJ,yBADpB,gBACL;;AACA,QAFK,cAEL;;AACA,gDAAwB;AACtBK,uBAAiBL,yBADK,cACtBK;AAJG;;AAMLH,yCAA2BC,kBAAU;AACnC,UAAIE,kBAAkBC,oCAAgBH,OAAtC,GAAsBG,CAAtB,EAAmD;AACjD,eAAO,mBAD0C,MAC1C,CAAP;AAFiC;;AAInC,aAAO,qBAJ4B,MAI5B,CAAP;AAVG,KAMLJ;AAbiC;AA9ErC,C;;;;;;;;;;;;;;;;;;;;;;ACgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAMK,mBA5BN,8BA4BA;;AACA,IAAMC,SA7BN,4BA6BA;;IAEA,iB;AACEC,+BAAc;AAAA;;AACZ,QAAI,qBAAJ,mBAA4C;AAC1CC,6BAD0C,sCAC1CA;AAFU;AADQ;;;;2BAOtBC,K,EAAAA,M,EAAsB;AACpBD,6BADoB,kCACpBA;AARoB;;;0BAWtBE,gB,EAAAA,K,EAAAA,M,EAAuC;AACrC,UAAI,CAACC,iBAAL,QAA8B;AAC5B,cAAM,UADsB,yBACtB,CAAN;AAFmC;;AAIrC,UAAIC,cAAcC,UAAlB,GAA+B;AAC7B,cAAM,UADuB,qBACvB,CAAN;AALmC;;AAOrCF,sCAPqC,KAOrCA;AACAA,uCARqC,MAQrCA;AAnBoB;;;4BAsBtBG,gB,EAA0B;AACxB,UAAI,CAACH,iBAAL,QAA8B;AAC5B,cAAM,UADsB,yBACtB,CAAN;AAFsB;;AAMxBA,sCANwB,CAMxBA;AACAA,uCAPwB,CAOxBA;AACAA,gCARwB,IAQxBA;AACAA,iCATwB,IASxBA;AA/BoB;;;;;;;;IAmCxB,gB;;;;;AACEJ,8BAA0D;AAAA;;AAAA,mFAA1DA,EAA0D;AAAA,kCAA5CQ,aAA4C;AAAA,QAA5CA,aAA4C,mCAA5BC,WAAlB,QAA8C;;AAAA;;AAAA;AAExD,sBAFwD,aAExD;AAFwD;AADX;;;;2BAM/CP,K,EAAAA,M,EAAsB;AACpB,UAAIG,cAAcC,UAAlB,GAA+B;AAC7B,cAAM,UADuB,qBACvB,CAAN;AAFkB;;AAIpB,UAAMI,SAAS,6BAJK,QAIL,CAAf;;AACA,UAAMC,UAAUD,kBALI,IAKJA,CAAhB;AACAA,qBANoB,KAMpBA;AACAA,sBAPoB,MAOpBA;AACA,aAAO;AACLA,cADK,EACLA,MADK;AAELC,eAFK,EAELA;AAFK,OAAP;AAd6C;;;;EAAjD,iB;;;;IAqBA,qB;AACEX,wCAAsD;AAAA,8BAAxCY,OAAwC;AAAA,QAAxCA,OAAwC,8BAA1C,IAA0C;AAAA,mCAAxBC,YAAwB;AAAA,QAAxBA,YAAwB,mCAAtDb,KAAsD;;AAAA;;AACpD,QAAI,qBAAJ,uBAAgD;AAC9CC,6BAD8C,0CAC9CA;AAFkD;;AAIpD,mBAJoD,OAIpD;AACA,wBALoD,YAKpD;AANwB;;;;;;;;;;;;;AAS1B,oB,SAAA,I;;oBACO,KAAL,O;;;;;sBACQ,UACJ,iEAFe,6DACX,C;;;oBAKR,I;;;;;sBACQ,UADG,8BACH,C;;;AAEFa,mB,GAAM,uBAAuB,+BAVf,EAUR,C;AACNC,+B,GAAkB,oBACpBC,0BADoB,SAEpBA,0BAbgB,I;iDAeb,+CAA4CC,kBAAU;AAC3D,wBAAM,mCACc,kCAAlB,EADI,sBADqD,GACrD,EAAN;AAhBkB,iBAeb,C;;;;;;;;;;;;;;;;;;+BAUTC,G,EAAAA,e,EAAiC;AAC/BjB,6BAD+B,sCAC/BA;AAnCwB;;;;;;;;IAuC5B,oB;;;;;;;;;;;;;+BACEiB,G,EAAAA,e,EAAiC;AAAA;;AAC/B,UAEGC,sBAAsBtB,qBAAqBuB,SAF9C,OAEyBvB,CAFzB,EAGE;AACA,eAAO;AAAA,mFAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAChBwB,SAAL,EADqB;AAAA;AAAA;AAAA;;AAAA,0BAEb,UAAUA,SADA,UACV,CAFa;;AAAA;AAAA,yBAKjB,OAAJ,YALqB;AAAA;AAAA;AAAA;;AAAA,mCAMR,UANQ;AAAA;AAAA,2BAMaA,SADX,WACWA,EANb;;AAAA;AAAA;AAMnBC,4BANmB;AAAA;AAAA;;AAAA;AAAA,mCAQRC,mBARQ;AAAA;AAAA,2BAQYF,SAD1B,IAC0BA,EARZ;;AAAA;AAAA;AAQnBC,4BARmB;;AAAA;AAAA,sDAUd;AAAEA,8BAAF,EAAEA,QAAF;AAAYP,qCAAZ,EAAYA;AAAZ,qBAVc;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAhB;;AAAA;AAAA;AAAA;AAAA,YAAP;AAL6B;;AAoB/B,aAAO,YAAY,2BAAqB;AACtC,YAAMS,UAAU,IADsB,cACtB,EAAhB;AACAA,iCAFsC,IAEtCA;;AAEA,YAAI,OAAJ,cAAuB;AACrBA,iCADqB,aACrBA;AALoC;;AAOtCA,qCAA6B,YAAM;AACjC,cAAIA,uBAAuBC,eAA3B,MAAgD;AAAA;AADf;;AAIjC,cAAID,0BAA0BA,mBAA9B,GAAoD;AAClD,gBADkD,QAClD;;AACA,gBAAI,uBAAqBA,QAAzB,UAA2C;AACzCF,yBAAW,eAAeE,QADe,QAC9B,CAAXF;AADF,mBAEO,IAAI,CAAC,OAAD,gBAAsBE,QAA1B,cAAgD;AACrDF,yBAAWC,yBAAcC,QAD4B,YAC1CD,CAAXD;AALgD;;AAOlD,0BAAc;AACZI,sBAAQ;AAAEJ,wBAAF,EAAEA,QAAF;AAAYP,+BAAZ,EAAYA;AAAZ,eAARW;AADY;AAPoC;AAJnB;;AAgBjCC,iBAAO,UAAUH,QAhBgB,UAgB1B,CAAPG;AAvBoC,SAOtCH;;AAmBAA,qBA1BsC,IA0BtCA;AA9C6B,OAoBxB,CAAP;AArBqD;;;;EAAzD,qB;;;;IAoDA,a;;;;;;;2BACEtB,K,EAAAA,M,EAAsB;AACpB0B,wBAAOvB,aAAaC,SAApBsB,GADoB,wBACpBA;AAEA,UAAMC,MAAMT,iCAHQ,SAGRA,CAAZ;AACAS,kCAJoB,KAIpBA;AACAA,gCAA0BxB,QALN,IAKpBwB;AACAA,iCAA2BvB,SANP,IAMpBuB;AACAA,8CAPoB,MAOpBA;AACAA,kCAA4B,uBARR,MAQpBA;AAEA,aAVoB,GAUpB;AAXgB;;;kCAclBC,I,EAAoB;AAClBF,wBAAO,gBAAPA,UADkB,0BAClBA;AAEA,aAAOR,iCAHW,IAGXA,CAAP;AAjBgB;;;;;;;;IAoDpB,Y;AAIEpB,+BAOG;AAAA,QAPS,OAOT,SAPS,OAOT;AAAA,QAPS,KAOT,SAPS,KAOT;AAAA,QAPS,QAOT,SAPS,QAOT;AAAA,8BAHD+B,OAGC;AAAA,QAHDA,OAGC,8BAPS,CAOT;AAAA,8BAFDC,OAEC;AAAA,QAFDA,OAEC,8BAPS,CAOT;AAAA,+BADDC,QACC;AAAA,QADDA,QACC,+BAPHjC,KAOG;;AAAA;;AACD,mBADC,OACD;AACA,iBAFC,KAED;AACA,oBAHC,QAGD;AACA,mBAJC,OAID;AACA,mBALC,OAKD;AAIA,QAAMkC,UAAW,cAAaC,QAAd,CAAcA,CAAb,IAThB,CASD;AACA,QAAMC,UAAW,cAAaD,QAAd,CAAcA,CAAb,IAVhB,CAUD;AACA,mCAXC,OAWD;AACAE,eAAWA,WAZV,GAYDA;AACAA,eAAWA,eAAeA,WAAfA,MAbV,QAaDA;;AACA;AACE;AACEC,kBAAU,CADZ,CACEA;AACAC,kBAFF,CAEEA;AACAC,kBAHF,CAGEA;AACAC,kBAJF,CAIEA;AALJ;;AAOE;AACEH,kBADF,CACEA;AACAC,kBAFF,CAEEA;AACAC,kBAHF,CAGEA;AACAC,kBAJF,CAIEA;AAXJ;;AAaE;AACEH,kBADF,CACEA;AACAC,kBAAU,CAFZ,CAEEA;AACAC,kBAAU,CAHZ,CAGEA;AACAC,kBAJF,CAIEA;AAjBJ;;AAmBE;AACEH,kBADF,CACEA;AACAC,kBAFF,CAEEA;AACAC,kBAHF,CAGEA;AACAC,kBAAU,CAJZ,CAIEA;AAvBJ;;AAyBE;AACE,cAAM,UA1BV,mEA0BU,CAAN;AA1BJ;;AA+BA,kBAAc;AACZD,gBAAU,CADE,OACZA;AACAC,gBAAU,CAFE,OAEZA;AA/CD;;AAkDD,uBAlDC,aAkDD;AACA,eAnDC,MAmDD;;AACA,QAAIH,YAAJ,GAAmB;AACjBI,sBAAgBC,SAASP,UAAUD,QAAnBQ,CAAmBR,CAAnBQ,YADC,OACjBD;AACAE,sBAAgBD,SAAST,UAAUC,QAAnBQ,CAAmBR,CAAnBQ,YAFC,OAEjBC;AACAvC,cAAQsC,SAASR,aAAaA,QAAtBQ,CAAsBR,CAAtBQ,IAHS,KAGjBtC;AACAC,eAASqC,SAASR,aAAaA,QAAtBQ,CAAsBR,CAAtBQ,IAJQ,KAIjBrC;AAJF,WAKO;AACLoC,sBAAgBC,SAAST,UAAUC,QAAnBQ,CAAmBR,CAAnBQ,YADX,OACLD;AACAE,sBAAgBD,SAASP,UAAUD,QAAnBQ,CAAmBR,CAAnBQ,YAFX,OAELC;AACAvC,cAAQsC,SAASR,aAAaA,QAAtBQ,CAAsBR,CAAtBQ,IAHH,KAGLtC;AACAC,eAASqC,SAASR,aAAaA,QAAtBQ,CAAsBR,CAAtBQ,IAJJ,KAILrC;AA7DD;;AAkED,qBAAiB,CACfgC,UADe,OAEfC,UAFe,OAGfC,UAHe,OAIfC,UAJe,OAKfC,gBAAgBJ,kBAAhBI,UAA4CF,kBAL7B,SAMfI,gBAAgBL,kBAAhBK,UAA4CH,kBAN7B,QAAjB;AASA,iBA3EC,KA2ED;AACA,kBA5EC,MA4ED;AAvFe;;;;4BAqGT;AAAA,sFANRI,EAMQ;AAAA,8BALNC,KAKM;AAAA,UALNA,KAKM,4BALE,KADJ,KAME;AAAA,iCAJNT,QAIM;AAAA,UAJNA,QAIM,+BAJK,KAFP,QAME;AAAA,gCAHNN,OAGM;AAAA,UAHNA,OAGM,8BAHI,KAHN,OAME;AAAA,gCAFNC,OAEM;AAAA,UAFNA,OAEM,8BAFI,KAJN,OAME;AAAA,iCADNC,QACM;AAAA,UADNA,QACM,+BANF,KAME;;AACN,aAAO,iBAAiB;AACtBE,iBAAS,aADa,KACb,EADa;AAEtBW,aAFsB,EAEtBA,KAFsB;AAGtBT,gBAHsB,EAGtBA,QAHsB;AAItBN,eAJsB,EAItBA,OAJsB;AAKtBC,eALsB,EAKtBA,OALsB;AAMtBC,gBANsB,EAMtBA;AANsB,OAAjB,CAAP;AAtGe;;;2CA0HjBc,C,EAAAA,C,EAA6B;AAC3B,aAAO,0BAAoB,MAApB,EAA4B,KADR,SACpB,CAAP;AA3He;;;+CAqIjBC,I,EAAiC;AAC/B,UAAMC,UAAU,0BAAoB,CAACC,KAAD,CAACA,CAAD,EAAUA,KAAV,CAAUA,CAAV,CAApB,EAAwC,KADzB,SACf,CAAhB;;AACA,UAAMC,cAAc,0BAAoB,CAACD,KAAD,CAACA,CAAD,EAAUA,KAAV,CAAUA,CAAV,CAApB,EAAwC,KAF7B,SAEX,CAApB;;AACA,aAAO,CAACD,QAAD,CAACA,CAAD,EAAaA,QAAb,CAAaA,CAAb,EAAyBE,YAAzB,CAAyBA,CAAzB,EAAyCA,YAAzC,CAAyCA,CAAzC,CAAP;AAxIe;;;sCAoJjBC,C,EAAAA,C,EAAwB;AACtB,aAAO,iCAA2B,MAA3B,EAAmC,KADpB,SACf,CAAP;AArJe;;;;;;;;IAyJnB,2B;;;;;AACEpD,kDAAuB;AAAA;;AAAA;;AACrB,gCADqB,GACrB;AACA,kBAFqB,IAErB;AAFqB;AAD+B;;;EAAxD,mB;;;AAOA,IAAMqD,aAAa;AACjBC,QADiB;AAEjBC,QAFiB;AAGjBC,SAHiB;AAIjBC,UAJiB;AAKjBC,OALiB;AAAA,CAAnB;;;AAyBA,iCAA4E;AAAA,kFAA5E,EAA4E;AAAA,MAA3C,GAA2C,SAA3C,GAA2C;AAAA,MAA3C,MAA2C,SAA3C,MAA2C;AAAA,MAA3C,GAA2C,SAA3C,GAA2C;AAAA,4BAAvBC,OAAuB;AAAA,MAAvBA,OAAuB,8BAA3C,IAA2C;;AAC1E/B,oBACEd,OAAO,eADTc,UAD0E,2DAC1EA;AAKA,MAAMgC,iBAAiBC,gCANmD,GAMnDA,CAAvB;;AACA,eAAa;AACXC,gBAAYA,aADD,cACXA;AADF,SAEO;AACLA,gBADK,EACLA;AACAA,qCAFK,cAELA;;AACAA,mBAAe,YAAM;AACnB,aADmB,KACnB;AAJG,KAGLA;AAZwE;;AAiB1E,MAAIC,YAjBsE,EAiB1E;;AACA;AACE,SAAKV,WAAL;AADF;;AAGE,SAAKA,WAAL;AACEU,kBADF,OACEA;AAJJ;;AAME,SAAKV,WAAL;AACEU,kBADF,QACEA;AAPJ;;AASE,SAAKV,WAAL;AACEU,kBADF,SACEA;AAVJ;;AAYE,SAAKV,WAAL;AACEU,kBADF,MACEA;AAbJ;AAAA;;AAgBAD,gBAlC0E,SAkC1EA;AAEAA,aAAW,gCApC+D,gBAoC1EA;AAncF;;AA0cA,iCAAiC;AAC/B,MAAME,SAASlD,YADgB,GAChBA,CAAf;AACA,MAAMmD,QAAQnD,YAFiB,GAEjBA,CAAd;AACA,MAAMoD,MAAMvB,SACVqB,sBAAsBlD,IADZ6B,QAEVsB,oBAAoBnD,IALS,MAGnB6B,CAAZ;AAIA,SAAO7B,cAAcA,4BAAdA,GAPwB,GAOxBA,CAAP;AAjdF;;IAodA,S;AACEd,uBAAc;AAAA;;AACZ,mBAAemE,cADH,IACGA,CAAf;AACA,iBAFY,EAEZ;AAHY;;;;yBAMdC,I,EAAW;AACT,UAAIC,QAAQ,KAAZ,SAA0B;AACxBC,+DADwB,IACxBA;AAFO;;AAIT,2BAAqBC,KAJZ,GAIYA,EAArB;AAVY;;;4BAadC,I,EAAc;AACZ,UAAI,EAAE,QAAQ,KAAd,OAAI,CAAJ,EAA6B;AAC3BF,iEAD2B,IAC3BA;AAFU;;AAIZ,sBAAgB;AACdD,YADc,EACdA,IADc;AAEdI,eAAO,aAFO,IAEP,CAFO;AAGdP,aAAKK,KAHS,GAGTA;AAHS,OAAhB;AAMA,aAAO,aAVK,IAUL,CAAP;AAvBY;;;+BA0BH;AAET,UAAMG,SAFG,EAET;AACA,UAAIC,UAHK,CAGT;;AAHS,iDAIU,KAAnB,KAJS;AAAA;;AAAA;AAIT,4DAA+B;AAAA,cAA/B,IAA+B;AAC7B,cAAMN,OAAOD,KADgB,IAC7B;;AACA,cAAIC,cAAJ,SAA2B;AACzBM,sBAAUN,KADe,MACzBM;AAH2B;AAJtB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,kDAUU,KAAnB,KAVS;AAAA;;AAAA;AAUT,+DAA+B;AAAA,cAA/B,KAA+B;AAC7B,cAAMC,WAAWR,YAAWA,MADC,KAC7B;AACAM,gCAAeN,kBAAH,OAAGA,CAAfM,cAF6B,QAE7BA;AAZO;AAAA;AAAA;AAAA;AAAA;AAAA;;AAcT,aAAOA,YAdE,EAcFA,CAAP;AAxCY;;;;;;;;AA4ChB,4BAA4B;AAC1B,SACE,gCACA,oBADA,eAEA,UAAUG,SAFV,aAGA,0BALwB,WAC1B;AAjgBF;;AAygBA,uCAAuC;AACrC,MAAI;AAAA,gBACmBjE,UAAU,aAAVA,OAAU,CAAVA,GAAkC,QADrD,GACqD,CADrD;AAAA,QACI,QADJ,SACI,QADJ;;AAGF,WAAOkE,wBAAwBA,aAH7B,QAGF;AAHF,IAIE,WAAW;AACX,WADW,KACX;AANmC;AAzgBvC;;AAuhBA,yBAAyB;AACvB,SAAO,YAAY,2BAAqB;AACtC,QAAMC,SAAS3D,uBADuB,QACvBA,CAAf;AACA2D,iBAFsC,GAEtCA;AAEAA,oBAJsC,OAItCA;;AACAA,qBAAiB,YAAY;AAC3BpD,aAAO,2CAAoCoD,OADhB,GACpB,EAAPpD;AANoC,KAKtCoD;;AAGC,sBAAiB3D,SAAlB,eAAC,EAAD,WAAC,CARqC,MAQrC;AAToB,GAChB,CAAP;AAxhBF;;AAqiBA,6BAA6B;AAC3B4D,cAAY,2BADe,OAC3BA;AAtiBF;;AAyiBA,IAziBA,kBAyiBA;;IAEA,a;;;;;;;iCAiBE,K,EAA2B;AACzB,UAAI,UAAU,CAACC,oBAAf,KAAeA,CAAf,EAAgC;AAC9B,eAD8B,IAC9B;AAFuB;;AAMzB,UAAI,CAAJ,oBAAyB;AACvBC,6BAAqB,WACnB,6IAFqB,IACF,CAArBA;AAPuB;;AA0BzB,UAAMC,UAAUD,wBA1BS,KA0BTA,CAAhB;;AACA,UAAI,CAAJ,SAAc;AACZ,eADY,IACZ;AA5BuB;;AAiCzB,UAAME,OAAOC,SAASF,QAATE,CAASF,CAATE,EAjCY,EAiCZA,CAAb;AACA,UAAIC,QAAQD,SAASF,QAATE,CAASF,CAATE,EAlCa,EAkCbA,CAAZ;AACAC,cAAQA,cAAcA,SAAdA,KAA4BA,QAA5BA,IAnCiB,CAmCzBA;AACA,UAAIC,MAAMF,SAASF,QAATE,CAASF,CAATE,EApCe,EAoCfA,CAAV;AACAE,YAAMA,YAAYA,OAAZA,WArCmB,CAqCzBA;AACA,UAAIC,OAAOH,SAASF,QAATE,CAASF,CAATE,EAtCc,EAsCdA,CAAX;AACAG,aAAOA,aAAaA,QAAbA,YAvCkB,CAuCzBA;AACA,UAAIC,SAASJ,SAASF,QAATE,CAASF,CAATE,EAxCY,EAwCZA,CAAb;AACAI,eAASA,eAAeA,UAAfA,cAzCgB,CAyCzBA;AACA,UAAIC,SAASL,SAASF,QAATE,CAASF,CAATE,EA1CY,EA0CZA,CAAb;AACAK,eAASA,eAAeA,UAAfA,cA3CgB,CA2CzBA;AACA,UAAMC,wBAAwBR,cA5CL,GA4CzB;AACA,UAAIS,aAAaP,SAASF,QAATE,CAASF,CAATE,EA7CQ,EA6CRA,CAAjB;AACAO,mBAAaA,mBAAmBA,cAAnBA,kBA9CY,CA8CzBA;AACA,UAAIC,eAAeR,SAASF,QAATE,CAASF,CAATE,SA/CM,CA+CzB;AACAQ,qBAAeA,qBAAqBA,gBAArBA,oBAhDU,CAgDzBA;;AAMA,UAAIF,0BAAJ,KAAmC;AACjCH,gBADiC,UACjCA;AACAC,kBAFiC,YAEjCA;AAFF,aAGO,IAAIE,0BAAJ,KAAmC;AACxCH,gBADwC,UACxCA;AACAC,kBAFwC,YAExCA;AA3DuB;;AA8DzB,aAAO,SAASlB,yCA9DS,MA8DTA,CAAT,CAAP;AA/EgB;;;;;;;;;;;;;;;AC3iBpBuB,iBAAiBvG,oBAAjBuG,CAAiBvG,CAAjBuG,C;;;;;;;;;;;ACOA,IAAIC,UAAW,mBAAmB;AAAA;;AAGhC,MAAIC,KAAK7B,OAHuB,SAGhC;AACA,MAAI8B,SAASD,GAJmB,cAIhC;AACA,MALgC,SAKhC;AACA,MAAIE,UAAU,wCANkB,EAMhC;AACA,MAAIC,iBAAiBD,oBAPW,YAOhC;AACA,MAAIE,sBAAsBF,yBARM,iBAQhC;AACA,MAAIG,oBAAoBH,uBATQ,eAShC;;AAEA,mCAAiC;AAC/B/B,oCAAgC;AAC9BmC,aAD8B;AAE9BC,kBAF8B;AAG9BC,oBAH8B;AAI9BC,gBAJ8B;AAAA,KAAhCtC;AAMA,WAAOuC,IAPwB,GAOxBA,CAAP;AAlB8B;;AAoBhC,MAAI;AAEFC,eAFE,EAEFA;AAFF,IAGE,YAAY;AACZA,aAAS,iCAA0B;AACjC,aAAOD,WAD0B,KACjC;AAFU,KACZC;AAxB8B;;AA6BhC,qDAAmD;AAEjD,QAAIC,iBAAiBC,WAAWA,6BAAXA,sBAF4B,SAEjD;AACA,QAAIC,YAAY3C,cAAcyC,eAHmB,SAGjCzC,CAAhB;AACA,QAAIxD,UAAU,YAAYoG,eAJuB,EAInC,CAAd;AAIAD,wBAAoBE,gCAR6B,OAQ7BA,CAApBF;AAEA,WAViD,SAUjD;AAvC8B;;AAyChCG,iBAzCgC,IAyChCA;;AAYA,kCAAgC;AAC9B,QAAI;AACF,aAAO;AAAEC,cAAF;AAAkBC,aAAKC,aAAvB,GAAuBA;AAAvB,OAAP;AADF,MAEE,YAAY;AACZ,aAAO;AAAEF,cAAF;AAAiBC,aAAjB;AAAA,OAAP;AAJ4B;AArDA;;AA6DhC,MAAIE,yBA7D4B,gBA6DhC;AACA,MAAIC,yBA9D4B,gBA8DhC;AACA,MAAIC,oBA/D4B,WA+DhC;AACA,MAAIC,oBAhE4B,WAgEhC;AAIA,MAAIC,mBApE4B,EAoEhC;;AAMA,uBAAqB,CA1EW;;AA2EhC,+BAA6B,CA3EG;;AA4EhC,wCAAsC,CA5EN;;AAgFhC,MAAIC,oBAhF4B,EAgFhC;;AACAA,sCAAoC,YAAY;AAC9C,WAD8C,IAC9C;AAlF8B,GAiFhCA;;AAIA,MAAIC,WAAWxD,OArFiB,cAqFhC;AACA,MAAIyD,0BAA0BD,YAAYA,SAASA,SAASE,OAtF5B,EAsF4BA,CAATF,CAATA,CAA1C;;AACA,MAAIC,2BACAA,4BADAA,MAEA3B,qCAFJ,cAEIA,CAFJ,EAE0D;AAGxDyB,wBAHwD,uBAGxDA;AA5F8B;;AA+FhC,MAAII,KAAKC,uCACPC,sBAAsB7D,cAhGQ,iBAgGRA,CADxB;AAEA8D,gCAA8BH,iBAjGE,0BAiGhCG;AACAF,2CAlGgC,iBAkGhCA;AACAE,kCAAgCtB,sDAnGA,mBAmGAA,CAAhCsB;;AAQA,4CAA0C;AACxC,wCAAoC,kBAAiB;AACnDtB,gCAA0B,eAAc;AACtC,eAAO,qBAD+B,GAC/B,CAAP;AAFiD,OACnDA;AAFsC,KACxC;AA5G8B;;AAmHhCM,gCAA8B,kBAAiB;AAC7C,QAAIiB,OAAO,gCAAgCC,OADE,WAC7C;AACA,WAAOD,OACHA,8BAGC,qBAAoBA,KAArB,IAAC,MAJEA,sBAFsC,KAE7C;AArH8B,GAmHhCjB;;AAUAA,iBAAe,kBAAiB;AAC9B,QAAI9C,OAAJ,gBAA2B;AACzBA,oCADyB,0BACzBA;AADF,WAEO;AACLgE,yBADK,0BACLA;AACAxB,wCAFK,mBAELA;AAL4B;;AAO9BwB,uBAAmBhE,cAPW,EAOXA,CAAnBgE;AACA,WAR8B,MAQ9B;AArI8B,GA6HhClB;;AAeAA,kBAAgB,eAAc;AAC5B,WAAO;AAAEmB,eADmB;AACrB,KAAP;AA7I8B,GA4IhCnB;;AAIA,iDAA+C;AAC7C,kDAA8C;AAC5C,UAAIoB,SAASC,SAASxB,UAATwB,MAASxB,CAATwB,aAD+B,GAC/BA,CAAb;;AACA,UAAID,gBAAJ,SAA6B;AAC3B1G,eAAO0G,OADoB,GAC3B1G;AADF,aAEO;AACL,YAAI4G,SAASF,OADR,GACL;AACA,YAAI/B,QAAQiC,OAFP,KAEL;;AACA,YAAIjC,SACA,mBADAA,YAEAL,mBAFJ,SAEIA,CAFJ,EAEmC;AACjC,iBAAO,oBAAoBK,MAApB,cAAwC,iBAAgB;AAC7DkC,2CAD6D,MAC7DA;AADK,aAEJ,eAAc;AACfA,0CADe,MACfA;AAJ+B,WAC1B,CAAP;AANG;;AAaL,eAAO,gCAAgC,qBAAoB;AAIzDD,yBAJyD,SAIzDA;AACA7G,kBALyD,MAKzDA;AALK,WAMJ,iBAAgB;AAGjB,iBAAO8G,gCAHU,MAGVA,CAAP;AAtBG,SAaE,CAAP;AAjB0C;AADD;;AAgC7C,QAhC6C,eAgC7C;;AAEA,kCAA8B;AAC5B,4CAAsC;AACpC,eAAO,gBAAgB,2BAA0B;AAC/CA,uCAD+C,MAC/CA;AAFkC,SAC7B,CAAP;AAF0B;;AAO5B,aAAOC,kBAaLA,kBAAkBA,iDAAlBA,0BAAkBA,CAAlBA,GAKIC,0BAzBsB,EAO5B;AAzC2C;;AAgE7C,mBAhE6C,OAgE7C;AAhN8B;;AAmNhCC,wBAAsBC,cAnNU,SAmNhCD;;AACAC,iDAA+C,YAAY;AACzD,WADyD,IACzD;AArN8B,GAoNhCA;;AAGA3B,0BAvNgC,aAuNhCA;;AAKAA,kBAAgB,4DAA2D;AACzE,QAAI4B,gBAAgB,KAApB,GAA4BA,cAD6C,OAC7CA;AAE5B,QAAIC,OAAO,kBACTC,6BADS,WACTA,CADS,EAH8D,WAG9D,CAAX;AAKA,WAAO9B,8CAEH,iBAAiB,kBAAiB;AAChC,aAAOsB,cAAcA,OAAdA,QAA6BO,KADJ,IACIA,EAApC;AAXmE,KAUrE,CAFJ;AApO8B,GA4NhC7B;;AAeA,oDAAkD;AAChD,QAAI+B,QAD4C,sBAChD;AAEA,WAAO,6BAA6B;AAClC,UAAIA,UAAJ,mBAAiC;AAC/B,cAAM,UADyB,8BACzB,CAAN;AAFgC;;AAKlC,UAAIA,UAAJ,mBAAiC;AAC/B,YAAIC,WAAJ,SAAwB;AACtB,gBADsB,GACtB;AAF6B;;AAO/B,eAAOC,UAPwB,EAO/B;AAZgC;;AAelCvI,uBAfkC,MAelCA;AACAA,oBAhBkC,GAgBlCA;;AAEA,mBAAa;AACX,YAAIwI,WAAWxI,QADJ,QACX;;AACA,sBAAc;AACZ,cAAIyI,iBAAiBC,8BADT,OACSA,CAArB;;AACA,8BAAoB;AAClB,gBAAID,mBAAJ,kBADkB;AAElB,mBAFkB,cAElB;AAJU;AAFH;;AAUX,YAAIzI,mBAAJ,QAA+B;AAG7BA,yBAAeA,gBAAgBA,QAHF,GAG7BA;AAHF,eAKO,IAAIA,mBAAJ,SAAgC;AACrC,cAAIqI,UAAJ,wBAAsC;AACpCA,oBADoC,iBACpCA;AACA,kBAAMrI,QAF8B,GAEpC;AAHmC;;AAMrCA,oCAA0BA,QANW,GAMrCA;AANK,eAQA,IAAIA,mBAAJ,UAAiC;AACtCA,mCAAyBA,QADa,GACtCA;AAxBS;;AA2BXqI,gBA3BW,iBA2BXA;AAEA,YAAIX,SAASC,wBA7BF,OA6BEA,CAAb;;AACA,YAAID,gBAAJ,UAA8B;AAG5BW,kBAAQrI,mCAHoB,sBAG5BqI;;AAIA,cAAIX,eAAJ,kBAAqC;AAAA;AAPT;;AAW5B,iBAAO;AACL/B,mBAAO+B,OADF;AAELiB,kBAAM3I,QAFD;AAAA,WAAP;AAXF,eAgBO,IAAI0H,gBAAJ,SAA6B;AAClCW,kBADkC,iBAClCA;AAGArI,2BAJkC,OAIlCA;AACAA,wBAAc0H,OALoB,GAKlC1H;AAnDS;AAlBqB;AAHY,KAGhD;AA9O8B;;AA6ThC,kDAAgD;AAC9C,QAAIsI,SAASE,kBAAkBxI,QADe,MACjCwI,CAAb;;AACA,QAAIF,WAAJ,WAA0B;AAGxBtI,yBAHwB,IAGxBA;;AAEA,UAAIA,mBAAJ,SAAgC;AAE9B,YAAIwI,kBAAJ,QAAIA,CAAJ,EAAiC;AAG/BxI,2BAH+B,QAG/BA;AACAA,wBAJ+B,SAI/BA;AACA0I,wCAL+B,OAK/BA;;AAEA,cAAI1I,mBAAJ,SAAgC;AAG9B,mBAH8B,gBAG9B;AAV6B;AAFH;;AAgB9BA,yBAhB8B,OAgB9BA;AACAA,sBAAc,cAjBgB,gDAiBhB,CAAdA;AAtBsB;;AA0BxB,aA1BwB,gBA0BxB;AA5B4C;;AA+B9C,QAAI0H,SAASC,iBAAiBa,SAAjBb,UAAoC3H,QA/BH,GA+BjC2H,CAAb;;AAEA,QAAID,gBAAJ,SAA6B;AAC3B1H,uBAD2B,OAC3BA;AACAA,oBAAc0H,OAFa,GAE3B1H;AACAA,yBAH2B,IAG3BA;AACA,aAJ2B,gBAI3B;AArC4C;;AAwC9C,QAAI4I,OAAOlB,OAxCmC,GAwC9C;;AAEA,QAAI,CAAJ,MAAY;AACV1H,uBADU,OACVA;AACAA,oBAAc,cAFJ,kCAEI,CAAdA;AACAA,yBAHU,IAGVA;AACA,aAJU,gBAIV;AA9C4C;;AAiD9C,QAAI4I,KAAJ,MAAe;AAGb5I,cAAQwI,SAARxI,cAA+B4I,KAHlB,KAGb5I;AAGAA,qBAAewI,SANF,OAMbxI;;AAQA,UAAIA,mBAAJ,UAAiC;AAC/BA,yBAD+B,MAC/BA;AACAA,sBAF+B,SAE/BA;AAhBW;AAAf,WAmBO;AAEL,aAFK,IAEL;AAtE4C;;AA2E9CA,uBA3E8C,IA2E9CA;AACA,WA5E8C,gBA4E9C;AAzY8B;;AA8YhCgI,wBA9YgC,EA8YhCA;AAEAhC,gCAhZgC,WAgZhCA;;AAOAmB,uBAAqB,YAAW;AAC9B,WAD8B,IAC9B;AAxZ8B,GAuZhCA;;AAIAA,gBAAc,YAAW;AACvB,WADuB,oBACvB;AA5Z8B,GA2ZhCA;;AAIA,8BAA4B;AAC1B,QAAI0B,QAAQ;AAAEC,cAAQC,KADI,CACJA;AAAV,KAAZ;;AAEA,QAAI,KAAJ,MAAe;AACbF,uBAAiBE,KADJ,CACIA,CAAjBF;AAJwB;;AAO1B,QAAI,KAAJ,MAAe;AACbA,yBAAmBE,KADN,CACMA,CAAnBF;AACAA,uBAAiBE,KAFJ,CAEIA,CAAjBF;AATwB;;AAY1B,yBAZ0B,KAY1B;AA3a8B;;AA8ahC,gCAA8B;AAC5B,QAAInB,SAASmB,oBADe,EAC5B;AACAnB,kBAF4B,QAE5BA;AACA,WAAOA,OAHqB,GAG5B;AACAmB,uBAJ4B,MAI5BA;AAlb8B;;AAqbhC,gCAA8B;AAI5B,sBAAkB,CAAC;AAAEC,cAJO;AAIT,KAAD,CAAlB;AACA1C,sCAL4B,IAK5BA;AACA,eAN4B,IAM5B;AA3b8B;;AA8bhCE,iBAAe,kBAAiB;AAC9B,QAAI0C,OAD0B,EAC9B;;AACA,4BAAwB;AACtBA,gBADsB,GACtBA;AAH4B;;AAK9BA,SAL8B,OAK9BA;AAIA,WAAO,gBAAgB;AACrB,aAAOA,KAAP,QAAoB;AAClB,YAAIC,MAAMD,KADQ,GACRA,EAAV;;AACA,YAAIC,OAAJ,QAAmB;AACjBC,uBADiB,GACjBA;AACAA,sBAFiB,KAEjBA;AACA,iBAHiB,IAGjB;AALgB;AADC;;AAarBA,kBAbqB,IAarBA;AACA,aAdqB,IAcrB;AAvB4B,KAS9B;AAvc8B,GA8bhC5C;;AA2BA,4BAA0B;AACxB,kBAAc;AACZ,UAAI6C,iBAAiBC,SADT,cACSA,CAArB;;AACA,0BAAoB;AAClB,eAAOD,oBADW,QACXA,CAAP;AAHU;;AAMZ,UAAI,OAAOC,SAAP,SAAJ,YAAyC;AACvC,eADuC,QACvC;AAPU;;AAUZ,UAAI,CAACC,MAAMD,SAAX,MAAKC,CAAL,EAA6B;AAC3B,YAAIC,IAAI,CAAR;AAAA,YAAYJ,OAAO,gBAAgB;AACjC,iBAAO,MAAME,SAAb,QAA8B;AAC5B,gBAAI9D,sBAAJ,CAAIA,CAAJ,EAA8B;AAC5B4D,2BAAaE,SADe,CACfA,CAAbF;AACAA,0BAF4B,KAE5BA;AACA,qBAH4B,IAG5B;AAJ0B;AADG;;AASjCA,uBATiC,SASjCA;AACAA,sBAViC,IAUjCA;AAEA,iBAZiC,IAYjC;AAbyB,SAC3B;;AAeA,eAAOA,YAhBoB,IAgB3B;AA1BU;AADU;;AAgCxB,WAAO;AAAEA,YAhCe;AAgCjB,KAAP;AAzf8B;;AA2fhC5C,mBA3fgC,MA2fhCA;;AAEA,wBAAsB;AACpB,WAAO;AAAEX,aAAF;AAAoBgD,YAApB;AAAA,KAAP;AA9f8B;;AAigBhCY,sBAAoB;AAClBlK,iBADkB;AAGlBG,WAAO,8BAAwB;AAC7B,kBAD6B,CAC7B;AACA,kBAF6B,CAE7B;AAGA,kBAAY,aALiB,SAK7B;AACA,kBAN6B,KAM7B;AACA,sBAP6B,IAO7B;AAEA,oBAT6B,MAS7B;AACA,iBAV6B,SAU7B;AAEA,8BAZ6B,aAY7B;;AAEA,UAAI,CAAJ,eAAoB;AAClB,+BAAuB;AAErB,cAAIkE,0BACA4B,kBADA5B,IACA4B,CADA5B,IAEA,CAAC2F,MAAM,CAAC3F,WAFZ,CAEYA,CAAP2F,CAFL,EAE4B;AAC1B,yBAD0B,SAC1B;AALmB;AADL;AAdS;AAHb;AA6BlBG,UAAM,gBAAW;AACf,kBADe,IACf;AAEA,UAAIC,YAAY,gBAHD,CAGC,CAAhB;AACA,UAAIC,aAAaD,UAJF,UAIf;;AACA,UAAIC,oBAAJ,SAAiC;AAC/B,cAAMA,WADyB,GAC/B;AANa;;AASf,aAAO,KATQ,IASf;AAtCgB;AAyClBC,uBAAmB,sCAAoB;AACrC,UAAI,KAAJ,MAAe;AACb,cADa,SACb;AAFmC;;AAKrC,UAAI3J,UALiC,IAKrC;;AACA,mCAA6B;AAC3B0H,sBAD2B,OAC3BA;AACAA,qBAF2B,SAE3BA;AACA1H,uBAH2B,GAG3BA;;AAEA,oBAAY;AAGVA,2BAHU,MAGVA;AACAA,wBAJU,SAIVA;AATyB;;AAY3B,eAAO,CAAC,CAZmB,MAY3B;AAlBmC;;AAqBrC,WAAK,IAAIsJ,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIT,QAAQ,gBADwC,CACxC,CAAZ;AACA,YAAInB,SAASmB,MAFuC,UAEpD;;AAEA,YAAIA,iBAAJ,QAA6B;AAI3B,iBAAOe,OAJoB,KAIpBA,CAAP;AARkD;;AAWpD,YAAIf,gBAAgB,KAApB,MAA+B;AAC7B,cAAIgB,WAAWvE,mBADc,UACdA,CAAf;AACA,cAAIwE,aAAaxE,mBAFY,YAEZA,CAAjB;;AAEA,cAAIuE,YAAJ,YAA4B;AAC1B,gBAAI,YAAYhB,MAAhB,UAAgC;AAC9B,qBAAOe,OAAOf,MAAPe,UADuB,IACvBA,CAAP;AADF,mBAEO,IAAI,YAAYf,MAAhB,YAAkC;AACvC,qBAAOe,OAAOf,MADyB,UAChCe,CAAP;AAJwB;AAA5B,iBAOO,cAAc;AACnB,gBAAI,YAAYf,MAAhB,UAAgC;AAC9B,qBAAOe,OAAOf,MAAPe,UADuB,IACvBA,CAAP;AAFiB;AAAd,iBAKA,gBAAgB;AACrB,gBAAI,YAAYf,MAAhB,YAAkC;AAChC,qBAAOe,OAAOf,MADkB,UACzBe,CAAP;AAFmB;AAAhB,iBAKA;AACL,kBAAM,UADD,wCACC,CAAN;AAtB2B;AAXqB;AArBjB;AAzCrB;AAqGlBG,YAAQ,2BAAoB;AAC1B,WAAK,IAAIT,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIT,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,gBAAgB,KAAhBA,QACAvD,mBADAuD,YACAvD,CADAuD,IAEA,YAAYA,MAFhB,YAEkC;AAChC,cAAImB,eAD4B,KAChC;AADgC;AAJkB;AAD5B;;AAW1B,UAAIA,iBACC,oBACAzD,SAFDyD,eAGAA,uBAHAA,OAIAxD,OAAOwD,aAJX,YAIoC;AAGlCA,uBAHkC,IAGlCA;AAlBwB;;AAqB1B,UAAItC,SAASsC,eAAeA,aAAfA,aArBa,EAqB1B;AACAtC,oBAtB0B,IAsB1BA;AACAA,mBAvB0B,GAuB1BA;;AAEA,wBAAkB;AAChB,sBADgB,MAChB;AACA,oBAAYsC,aAFI,UAEhB;AACA,eAHgB,gBAGhB;AA5BwB;;AA+B1B,aAAO,cA/BmB,MA+BnB,CAAP;AApIgB;AAuIlBC,cAAU,oCAA2B;AACnC,UAAIvC,gBAAJ,SAA6B;AAC3B,cAAMA,OADqB,GAC3B;AAFiC;;AAKnC,UAAIA,2BACAA,gBADJ,YACgC;AAC9B,oBAAYA,OADkB,GAC9B;AAFF,aAGO,IAAIA,gBAAJ,UAA8B;AACnC,oBAAY,WAAWA,OADY,GACnC;AACA,sBAFmC,QAEnC;AACA,oBAHmC,KAGnC;AAHK,aAIA,IAAIA,4BAAJ,UAA0C;AAC/C,oBAD+C,QAC/C;AAbiC;;AAgBnC,aAhBmC,gBAgBnC;AAvJgB;AA0JlBwC,YAAQ,4BAAqB;AAC3B,WAAK,IAAIZ,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIT,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,qBAAJ,YAAqC;AACnC,wBAAcA,MAAd,YAAgCA,MADG,QACnC;AACAsB,wBAFmC,KAEnCA;AACA,iBAHmC,gBAGnC;AALkD;AAD3B;AA1JX;AAqKlB,aAAS,wBAAiB;AACxB,WAAK,IAAIb,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIT,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,iBAAJ,QAA6B;AAC3B,cAAInB,SAASmB,MADc,UAC3B;;AACA,cAAInB,gBAAJ,SAA6B;AAC3B,gBAAI0C,SAAS1C,OADc,GAC3B;AACAyC,0BAF2B,KAE3BA;AAJyB;;AAM3B,iBAN2B,MAM3B;AARkD;AAD9B;;AAexB,YAAM,UAfkB,uBAelB,CAAN;AApLgB;AAuLlBE,mBAAe,sDAAwC;AACrD,sBAAgB;AACdC,kBAAUpD,OADI,QACJA,CADI;AAEdqD,oBAFc;AAGdC,iBAHc;AAAA,OAAhB;;AAMA,UAAI,gBAAJ,QAA4B;AAG1B,mBAH0B,SAG1B;AAVmD;;AAarD,aAbqD,gBAarD;AApMgB;AAAA,GAApBjB;AA4MA,SA7sBgC,OA6sBhC;AA7sBa,EAotBb,sDAA6BpE,OAA7B,UA3tBF,EAOe,CAAf;;AAutBA,IAAI;AACFsF,uBADE,OACFA;AADF,EAEE,6BAA6B;AAU7BC,0CAV6B,OAU7BA;AAV6B,C;;;;;;;;;;AChuB/BvF,iBAAiB,kBAAiB;AACjC,MAAI,CAACA,OAAL,iBAA6B;AAC5BA,uBAAmB,YAAW,CADF,CAC5BA;;AACAA,mBAF4B,EAE5BA;AAEA,QAAI,CAACA,OAAL,UAAsBA,kBAJM,EAINA;AACtB3B,4CAAwC;AACvCoC,kBADuC;AAEvC+E,WAAK,eAAW;AACf,eAAOxF,OADQ,CACf;AAHsC;AAAA,KAAxC3B;AAMAA,wCAAoC;AACnCoC,kBADmC;AAEnC+E,WAAK,eAAW;AACf,eAAOxF,OADQ,CACf;AAHkC;AAAA,KAApC3B;AAMA2B,6BAjB4B,CAiB5BA;AAlBgC;;AAoBjC,SApBiC,MAoBjC;AApBDA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMyF,kBAAkB,kBAAxB;;AACA,IAAMC,uBAAuB,0BAA7B;;AAGA,IAAMC,iBAAiB;AACrBC,SADqB;AAErBC,mBAFqB;AAGrBC,QAHqB;AAIrBC,sBAJqB;AAKrBC,0BALqB;AAMrBC,0BANqB;AAOrBC,YAPqB;AAQrBC,sBARqB;AAAA,CAAvB;;AAWA,IAAMC,oBAAoB;AACxBC,QADwB;AAExBC,UAFwB;AAGxBC,eAHwB;AAIxBC,aAJwB;AAKxBC,oBALwB;AAMxBC,sBANwB;AAOxBC,2BAPwB;AAQxBC,eARwB;AASxBC,oBATwB;AAUxBC,oBAVwB;AAAA,CAA1B;;AAaA,IAAMC,YAAY;AAChBC,kBADgB;AAEhBC,aAFgB;AAGhBC,cAHgB;AAAA,CAAlB;;AAMA,IAAMC,iBAAiB;AACrBC,QADqB;AAErBC,QAFqB;AAGrBC,YAHqB;AAIrBC,QAJqB;AAKrBC,UALqB;AAMrBC,UANqB;AAOrBC,WAPqB;AAQrBC,YARqB;AASrBC,aATqB;AAUrBC,aAVqB;AAWrBC,YAXqB;AAYrBC,aAZqB;AAarBC,SAbqB;AAcrBC,SAdqB;AAerBC,OAfqB;AAgBrBC,SAhBqB;AAiBrBC,kBAjBqB;AAkBrBC,SAlBqB;AAmBrBC,SAnBqB;AAoBrBC,UApBqB;AAqBrBC,UArBqB;AAsBrBC,eAtBqB;AAuBrBC,WAvBqB;AAwBrBC,aAxBqB;AAyBrBC,UAzBqB;AA0BrBC,UA1BqB;AAAA,CAAvB;;AA6BA,IAAMC,2BAA2B;AAC/BC,UAD+B;AAE/BC,UAF+B;AAAA,CAAjC;;AAKA,IAAMC,wBAAwB;AAC5BF,UAD4B;AAE5BG,YAF4B;AAAA,CAA9B;;AAKA,IAAMC,wBAAwB;AAC5BC,YAD4B;AAE5BC,YAF4B;AAG5BC,aAH4B;AAI5BC,aAJ4B;AAK5B/L,QAL4B;AAAA,CAA9B;;AAQA,IAAMgM,sBAAsB;AAC1BC,SAD0B;AAE1BC,SAF0B;AAAA,CAA5B;;AAKA,IAAMC,iBAAiB;AACrBnD,aADqB;AAErBoD,UAFqB;AAGrBhE,SAHqB;AAIrBiE,UAJqB;AAKrBC,YALqB;AAMrBC,UANqB;AAOrBC,YAPqB;AAQrBC,UARqB;AASrBC,gBATqB;AAUrBC,kBAVqB;AAAA,CAAvB;;AAaA,IAAMC,sBAAsB;AAC1BJ,YAD0B;AAE1BK,YAF0B;AAG1BC,YAH0B;AAI1BC,aAJ0B;AAK1BC,YAL0B;AAM1BC,iBAN0B;AAO1BC,SAP0B;AAQ1BC,cAR0B;AAS1BC,SAT0B;AAU1BC,QAV0B;AAW1BC,QAX0B;AAY1BC,cAZ0B;AAa1BC,eAb0B;AAc1BC,mBAd0B;AAe1BC,eAf0B;AAgB1BC,QAhB0B;AAiB1BC,YAjB0B;AAkB1BC,kBAlB0B;AAmB1BC,qBAnB0B;AAAA,CAA5B;;AAsBA,IAAMC,4BAA4B;AAChCC,SADgC;AAEhCC,UAFgC;AAGhCC,WAHgC;AAIhCC,SAJgC;AAKhC9D,aALgC;AAAA,CAAlC;;AAQA,IAAM+D,aAAa;AACjBC,WADiB;AAEjBC,SAFiB;AAGjBC,OAHiB;AAIjBC,OAJiB;AAKjBC,OALiB;AAMjBC,QANiB;AAOjBC,OAPiB;AAQjBC,OARiB;AASjBC,OATiB;AAUjBC,OAViB;AAAA,CAAnB;;AAaA,IAAMC,WAAW;AACfV,WADe;AAEfW,SAFe;AAGfC,UAHe;AAIfC,gBAJe;AAKfC,iBALe;AAMfC,YANe;AAOfC,gBAPe;AAQfC,SARe;AASfC,YATe;AAUfC,SAVe;AAWfC,WAXe;AAAA,CAAjB;;AAcA,IAAMC,iBAAiB;AACrBC,UADqB;AAErBC,YAFqB;AAGrBC,SAHqB;AAAA,CAAvB;;AAMA,IAAMnS,sBAAsB;AAC1BsC,QAD0B;AAE1B8P,UAF0B;AAG1BC,UAH0B;AAAA,CAA5B;;AAOA,IAAMC,MAAM;AAGVC,cAHU;AAIVC,gBAJU;AAKVC,cALU;AAMVC,eANU;AAOVC,iBAPU;AAQVC,WARU;AASVC,sBATU;AAUVC,eAVU;AAWVC,aAXU;AAYVC,QAZU;AAaVC,WAbU;AAcVC,aAdU;AAeVC,UAfU;AAgBVC,UAhBU;AAiBVC,WAjBU;AAkBVC,YAlBU;AAmBVC,YAnBU;AAoBVC,aApBU;AAqBVC,aArBU;AAsBVC,UAtBU;AAuBVC,eAvBU;AAwBVC,QAxBU;AAyBVC,UAzBU;AA0BVC,cA1BU;AA2BVC,gBA3BU;AA4BVC,mBA5BU;AA6BVC,qBA7BU;AA8BVC,WA9BU;AA+BVC,QA/BU;AAgCVC,UAhCU;AAiCVC,aAjCU;AAkCVC,WAlCU;AAmCVC,kBAnCU;AAoCVC,kBApCU;AAqCVC,aArCU;AAsCVC,cAtCU;AAuCVC,WAvCU;AAwCVC,wBAxCU;AAyCVC,eAzCU;AA0CVC,YA1CU;AA2CVC,sBA3CU;AA4CVC,iBA5CU;AA6CVC,YA7CU;AA8CVC,YA9CU;AA+CVC,kBA/CU;AAgDVC,oBAhDU;AAiDVC,8BAjDU;AAkDVC,gBAlDU;AAmDVC,yBAnDU;AAoDVC,uBApDU;AAqDVC,qBArDU;AAsDVC,kBAtDU;AAuDVC,mBAvDU;AAwDVC,gBAxDU;AAyDVC,iBAzDU;AA0DVC,iBA1DU;AA2DVC,eA3DU;AA4DVC,qBA5DU;AA6DVC,mBA7DU;AA8DVC,sBA9DU;AA+DVC,oBA/DU;AAgEVC,eAhEU;AAiEVC,oBAjEU;AAkEVC,kBAlEU;AAmEVC,kBAnEU;AAoEVC,gBApEU;AAqEVC,aArEU;AAsEVC,kBAtEU;AAuEVC,sBAvEU;AAwEVC,2BAxEU;AAyEVC,oBAzEU;AA0EVC,eA1EU;AA2EVC,aA3EU;AA4EVC,yBA5EU;AA6EVC,uBA7EU;AA8EVC,cA9EU;AA+EVC,YA/EU;AAgFVC,oBAhFU;AAiFVC,kBAjFU;AAkFVC,mBAlFU;AAmFVC,iBAnFU;AAoFVC,oBApFU;AAqFVC,yBArFU;AAsFVC,8BAtFU;AAuFVC,qBAvFU;AAwFVC,2BAxFU;AAyFVC,gCAzFU;AA0FVC,2BA1FU;AA2FVC,+BA3FU;AA4FVC,4BA5FU;AA6FVC,iBA7FU;AAAA,CAAZ;;AAgGA,IAAMC,uBAAuB;AAE3BC,WAF2B;AAG3BC,SAH2B;AAI3BC,cAJ2B;AAK3BC,SAL2B;AAM3BC,kBAN2B;AAQ3BC,QAR2B;AAS3BC,sBAT2B;AAU3BC,kBAV2B;AAW3BC,gBAX2B;AAY3BC,sBAZ2B;AAa3BC,kBAb2B;AAc3BC,oBAd2B;AAe3BC,sBAf2B;AAgB3BC,mBAhB2B;AAiB3BC,qBAjB2B;AAkB3BC,sBAlB2B;AAmB3BC,uBAnB2B;AAoB3BC,oBApB2B;AAqB3BC,sBArB2B;AAAA,CAA7B;;AAwBA,IAAMC,oBAAoB;AACxBC,iBADwB;AAExBC,sBAFwB;AAAA,CAA1B;;AAKA,IAAIC,YAAYzH,eAxThB,QAwTA;;AAEA,kCAAkC;AAChC,MAAI0H,iBAAJ,KAAIA,CAAJ,EAA6B;AAC3BD,gBAD2B,KAC3BA;AAF8B;AA1TlC;;AAgUA,6BAA6B;AAC3B,SAD2B,SAC3B;AAjUF;;AAuUA,mBAAmB;AACjB,MAAIA,aAAazH,eAAjB,OAAuC;AACrChO,gCADqC,GACrCA;AAFe;AAvUnB;;AA8UA,mBAAmB;AACjB,MAAIyV,aAAazH,eAAjB,UAA0C;AACxChO,mCADwC,GACxCA;AAFe;AA9UnB;;AAoVA,0BAA0B;AACxB,QAAM,UADkB,GAClB,CAAN;AArVF;;AAwVA,2BAA2B;AACzB,MAAI,CAAJ,MAAW;AACT/E,gBADS,GACTA;AAFuB;AAxV3B;;AA+VA,yCAAyC;AACvC,MADuC,IACvC;;AACA,MAAI;AACF0a,WAAO,QADL,OACK,CAAPA;;AACA,QAAI,CAACA,KAAD,UAAgBA,gBAApB,QAA4C;AAC1C,aAD0C,KAC1C;AAHA;AAAJ,IAKE,UAAU;AACV,WADU,KACV;AARqC;;AAWvC,MAAMC,QAAQ,kBAXyB,IAWzB,CAAd;AACA,SAAOD,gBAAgBC,MAZgB,MAYvC;AA3WF;;AA+WA,+BAA+B;AAC7B,MAAI,CAAJ,KAAU;AACR,WADQ,KACR;AAF2B;;AAI7B,UAAQ9Z,IAAR;AACE,SADF,OACE;AACA,SAFF,QAEE;AACA,SAHF,MAGE;AACA,SAJF,SAIE;AACA;AACE,aANJ,IAMI;;AACF;AACE,aARJ,KAQI;AARJ;AAnXF;;AAsYA,8CAA8C;AAC5C,MAAI,CAAJ,KAAU;AACR,WADQ,IACR;AAF0C;;AAI5C,MAAI;AACF,QAAM+Z,cAAcja,UAAU,aAAVA,OAAU,CAAVA,GAAkC,QADpD,GACoD,CAAtD;;AACA,QAAIka,iBAAJ,WAAIA,CAAJ,EAAmC;AACjC,aADiC,WACjC;AAHA;AAAJ,IAKE,WAAW,CAT+B;;AAY5C,SAZ4C,IAY5C;AAlZF;;AAqZA,kCAAkC;AAChC3W,mCAAiC;AAC/BmC,SAD+B,EAC/BA,KAD+B;AAE/BC,gBAF+B;AAG/BC,kBAH+B;AAI/BC,cAJ+B;AAAA,GAAjCtC;AAMA,SAPgC,KAOhC;AA5ZF;;AAkaA,IAAM4W,gBAAiB,gCAAgC;AAErD,kCAAgC;AAC9B,QAAI,qBAAJ,eAAwC;AACtC9a,kBADsC,kCACtCA;AAF4B;;AAI9B,mBAJ8B,OAI9B;AACA,gBAAY,iBALkB,IAK9B;AAPmD;;AASrD8a,4BAA0B,IAT2B,KAS3B,EAA1BA;AACAA,8BAVqD,aAUrDA;AAEA,SAZqD,aAYrD;AA9aF,CAkauB,EAAvB;;;;IAeA,iB;;;;;AACE/a,wCAAuB;AAAA;;AAAA;;AACrB,8BADqB,GACrB;AACA,iBAFqB,IAErB;AAFqB;AADqB;;;EAA9C,a;;;;IAOA,qB;;;;;AACEA,+CAA0B;AAAA;;AAAA;;AACxB,gCADwB,GACxB;AACA,qBAFwB,OAExB;AAFwB;AADsB;;;EAAlD,a;;;;IAOA,mB;;;;;;;;;;;;EAAA,a;;;;IAEA,mB;;;;;;;;;;;;EAAA,a;;;;IAEA,2B;;;;;AACEA,oDAAyB;AAAA;;AAAA;;AACvB,gCADuB,GACvB;AACA,oBAFuB,MAEvB;AAFuB;AAD6B;;;EAAxD,a;;;;IAUA,W;;;;;;;;;;;;EAAA,a;;;;IAKA,c;;;;;;;;;;;;EAAA,a;;;AAEA,IAAMgb,uBApdN,OAodA;;AAKA,mCAAmC;AACjC,MAAI,eAAJ,UAA6B;AAC3B1W,SAD2B,yDAC3BA;AACA,WAF2B,GAE3B;AAH+B;;AAKjC,SAAO2W,kCAL0B,EAK1BA,CAAP;AA9dF;;AAieA,8BAA8B;AAC5BrZ,SACEsZ,kBAAkB,mBAAlBA,YAA+CA,iBADjDtZ,WAD4B,oCAC5BA;AAIA,MAAMuZ,SAASD,MALa,MAK5B;AACA,MAAME,qBANsB,IAM5B;;AACA,MAAID,SAAJ,oBAAiC;AAC/B,WAAOE,gCADwB,KACxBA,CAAP;AAR0B;;AAU5B,MAAMC,SAVsB,EAU5B;;AACA,OAAK,IAAIrR,IAAT,GAAgBA,IAAhB,QAA4BA,KAA5B,oBAAqD;AACnD,QAAMsR,WAAW5Y,SAASsH,IAATtH,oBADkC,MAClCA,CAAjB;AACA,QAAM6Y,QAAQN,kBAFqC,QAErCA,CAAd;AACAI,gBAAYD,gCAHuC,KAGvCA,CAAZC;AAd0B;;AAgB5B,SAAOA,YAhBqB,EAgBrBA,CAAP;AAjfF;;AAofA,4BAA4B;AAC1B1Z,SAAO,eAAPA,UAD0B,oCAC1BA;AACA,MAAMuZ,SAASF,IAFW,MAE1B;AACA,MAAMC,QAAQ,eAHY,MAGZ,CAAd;;AACA,OAAK,IAAIjR,IAAT,GAAgBA,IAAhB,QAA4B,EAA5B,GAAiC;AAC/BiR,eAAWD,oBADoB,IAC/BC;AALwB;;AAO1B,SAP0B,KAO1B;AA3fF;;AAmgBA,8BAA8B;AAC5B,MAAIO,eAAJ,WAA8B;AAC5B,WAAOA,IADqB,MAC5B;AAF0B;;AAI5B7Z,SAAO6Z,mBAAP7Z,WAJ4B,qCAI5BA;AACA,SAAO6Z,IALqB,UAK5B;AAxgBF;;AAihBA,4BAA4B;AAC1B,MAAMN,SAASM,IADW,MAC1B;;AAEA,MAAIN,gBAAgBM,kBAApB,YAAkD;AAChD,WAAOA,IADyC,CACzCA,CAAP;AAJwB;;AAM1B,MAAIC,eANsB,CAM1B;;AACA,OAAK,IAAIzR,IAAT,GAAgBA,IAAhB,QAA4BA,CAA5B,IAAiC;AAC/ByR,oBAAgBC,gBAAgBF,IADD,CACCA,CAAhBE,CAAhBD;AARwB;;AAU1B,MAAIE,MAVsB,CAU1B;AACA,MAAMC,OAAO,eAXa,YAWb,CAAb;;AACA,OAAK,IAAI5R,KAAT,GAAgBA,KAAhB,QAA4BA,EAA5B,IAAiC;AAC/B,QAAI6R,OAAOL,IADoB,EACpBA,CAAX;;AACA,QAAI,EAAE,gBAAN,UAAI,CAAJ,EAAmC;AACjC,UAAI,gBAAJ,UAA8B;AAC5BK,eAAOva,cADqB,IACrBA,CAAPua;AADF,aAEO;AACLA,eAAO,eADF,IACE,CAAPA;AAJ+B;AAFJ;;AAS/B,QAAMC,aAAaD,KATY,UAS/B;AACAD,mBAV+B,GAU/BA;AACAD,WAX+B,UAW/BA;AAvBwB;;AAyB1B,SAzB0B,IAyB1B;AA1iBF;;AA6iBA,yBAAyB;AACvB,SAAOP,oBACJ/U,SAAD,EAACA,GADI+U,MAEJ/U,SAAD,EAACA,GAFI+U,MAGJ/U,SAAD,CAACA,GAHI+U,MAIL/U,QALqB,IAChB+U,CAAP;AA9iBF;;AAujBA,0BAA0B;AACxB,MAAMW,UAAU,eADQ,CACR,CAAhB;AACAA,eAFwB,CAExBA;AACA,MAAMC,SAAS,gBAAgBD,QAAhB,WAHS,CAGT,CAAf;AACA,SAAOC,cAJiB,CAIxB;AA3jBF;;AA6jBA,IAAMC,uBAAuB;AAC3B,cAAY;AACV,WAAOC,sBAAsBC,cADnB,EACHD,CAAP;AAFyB;;AAAA,CAA7B;;;AAOA,2BAA2B;AACzB,MAAI;AACF,iBADE,EACF;AACA,WAFE,IAEF;AAFF,IAGE,UAAU;AACV,WADU,KACV;AALuB;AApkB3B;;AA4kBA,IAAME,wBAAwB;AAC5B,cAAY;AACV,WAAOF,sBAAsBG,eADnB,EACHH,CAAP;AAF0B;;AAAA,CAA9B;;AAMA,IAAMI,SAAS,gCAAf;;IAEA,I;;;;;;;+BAGE,C,EAAA,C,EAAA,C,EAA2B;AACzBA,kBADyB,CACzBA;AACAA,kBAFyB,CAEzBA;AACAA,kBAHyB,CAGzBA;AACA,aAAOA,YAJkB,EAIlBA,CAAP;AAPO;;;8BAWT,E,EAAA,E,EAAyB;AACvB,aAAO,CACLC,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GADnB,CACmBA,CADnB,EAELD,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GAFnB,CAEmBA,CAFnB,EAGLD,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GAHnB,CAGmBA,CAHnB,EAILD,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GAJnB,CAImBA,CAJnB,EAKLD,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GAAxBD,CAAwBC,CAAxBD,GAAgCA,GAL3B,CAK2BA,CAL3B,EAMLA,QAAQC,GAARD,CAAQC,CAARD,GAAgBA,QAAQC,GAAxBD,CAAwBC,CAAxBD,GAAgCA,GAN3B,CAM2BA,CAN3B,CAAP;AAZO;;;mCAuBT,C,EAAA,C,EAA4B;AAC1B,UAAME,KAAKC,OAAOC,EAAPD,CAAOC,CAAPD,GAAcA,OAAOC,EAArBD,CAAqBC,CAArBD,GAA4BC,EADb,CACaA,CAAvC;AACA,UAAMC,KAAKF,OAAOC,EAAPD,CAAOC,CAAPD,GAAcA,OAAOC,EAArBD,CAAqBC,CAArBD,GAA4BC,EAFb,CAEaA,CAAvC;AACA,aAAO,QAAP;AA1BO;;;0CA6BT,C,EAAA,C,EAAmC;AACjC,UAAME,IAAIF,OAAOA,EAAPA,CAAOA,CAAPA,GAAcA,OAAOA,EADE,CACFA,CAA/B;AACA,UAAMF,KAAM,QAAOE,EAAP,CAAOA,CAAP,GAAcD,OAAOC,EAArB,CAAqBA,CAArB,GAA4BA,OAAOA,EAAnC,CAAmCA,CAAnC,GAA0CA,OAAOA,EAAlD,CAAkDA,CAAjD,IAFqB,CAEjC;AACA,UAAMC,KAAM,EAACF,EAAD,CAACA,CAAD,GAAQC,EAAR,CAAQA,CAAR,GAAeD,OAAOC,EAAtB,CAAsBA,CAAtB,GAA6BA,OAAOA,EAApC,CAAoCA,CAApC,GAA2CA,OAAOA,EAAnD,CAAmDA,CAAlD,IAHqB,CAGjC;AACA,aAAO,QAAP;AAjCO;;;+CAsCT,C,EAAA,C,EAAwC;AACtC,UAAMG,KAAKC,uBAD2B,CAC3BA,CAAX;AACA,UAAMC,KAAKD,oBAAoBE,WAApBF,CAAoBE,CAApBF,EAF2B,CAE3BA,CAAX;AACA,UAAMG,KAAK,oBAAoB,CAACD,EAAD,CAACA,CAAD,EAAOA,EAAP,CAAOA,CAAP,CAApB,EAH2B,CAG3B,CAAX;AACA,UAAME,KAAK,oBAAoB,CAACF,EAAD,CAACA,CAAD,EAAOA,EAAP,CAAOA,CAAP,CAApB,EAJ2B,CAI3B,CAAX;AACA,aAAO,CACLva,SAASoa,GAATpa,CAASoa,CAATpa,EAAgBsa,GAAhBta,CAAgBsa,CAAhBta,EAAuBwa,GAAvBxa,CAAuBwa,CAAvBxa,EAA8Bya,GADzB,CACyBA,CAA9Bza,CADK,EAELA,SAASoa,GAATpa,CAASoa,CAATpa,EAAgBsa,GAAhBta,CAAgBsa,CAAhBta,EAAuBwa,GAAvBxa,CAAuBwa,CAAvBxa,EAA8Bya,GAFzB,CAEyBA,CAA9Bza,CAFK,EAGLA,SAASoa,GAATpa,CAASoa,CAATpa,EAAgBsa,GAAhBta,CAAgBsa,CAAhBta,EAAuBwa,GAAvBxa,CAAuBwa,CAAvBxa,EAA8Bya,GAHzB,CAGyBA,CAA9Bza,CAHK,EAILA,SAASoa,GAATpa,CAASoa,CAATpa,EAAgBsa,GAAhBta,CAAgBsa,CAAhBta,EAAuBwa,GAAvBxa,CAAuBwa,CAAvBxa,EAA8Bya,GAJzB,CAIyBA,CAA9Bza,CAJK,CAAP;AA3CO;;;qCAmDT,C,EAA2B;AACzB,UAAMma,IAAIF,OAAOA,EAAPA,CAAOA,CAAPA,GAAcA,OAAOA,EADN,CACMA,CAA/B;AACA,aAAO,CACLA,OADK,GAEL,CAACA,EAAD,CAACA,CAAD,GAFK,GAGL,CAACA,EAAD,CAACA,CAAD,GAHK,GAILA,OAJK,GAKJ,QAAOA,EAAP,CAAOA,CAAP,GAAcA,OAAOA,EAAtB,CAAsBA,CAArB,IALI,GAMJ,QAAOA,EAAP,CAAOA,CAAP,GAAcA,OAAOA,EAAtB,CAAsBA,CAArB,IANI,EAAP;AArDO;;;qCAqET,C,EAAA,C,EAA8B;AAC5B,aAAO,CACLA,OAAOS,EAAPT,CAAOS,CAAPT,GAAcA,OAAOS,EAArBT,CAAqBS,CAArBT,GAA4BA,OAAOS,EAD9B,CAC8BA,CAD9B,EAELT,OAAOS,EAAPT,CAAOS,CAAPT,GAAcA,OAAOS,EAArBT,CAAqBS,CAArBT,GAA4BA,OAAOS,EAF9B,CAE8BA,CAF9B,EAGLT,OAAOS,EAAPT,CAAOS,CAAPT,GAAcA,OAAOS,EAArBT,CAAqBS,CAArBT,GAA4BA,OAAOS,EAH9B,CAG8BA,CAH9B,CAAP;AAtEO;;;kDAgFT,C,EAAwC;AACtC,UAAMC,YAAY,CAACV,EAAD,CAACA,CAAD,EAAOA,EAAP,CAAOA,CAAP,EAAaA,EAAb,CAAaA,CAAb,EAAmBA,EAAnB,CAAmBA,CAAnB,CAAlB;AAGA,UAAMW,IAAIX,OAAOU,UAAPV,CAAOU,CAAPV,GAAsBA,OAAOU,UAJD,CAICA,CAAvC;AACA,UAAME,IAAIZ,OAAOU,UAAPV,CAAOU,CAAPV,GAAsBA,OAAOU,UALD,CAKCA,CAAvC;AACA,UAAMG,IAAIb,OAAOU,UAAPV,CAAOU,CAAPV,GAAsBA,OAAOU,UAND,CAMCA,CAAvC;AACA,UAAMR,IAAIF,OAAOU,UAAPV,CAAOU,CAAPV,GAAsBA,OAAOU,UAPD,CAOCA,CAAvC;AAGA,UAAMI,QAAS,KAAD,CAAC,IAVuB,CAUtC;AACA,UAAMhY,SAAS/C,UAAW,KAAD,CAAC,KAAU,IAAX,CAAC,IAAmB,KAAK,QAAQ8a,IAA3C9a,CAA8B,CAA9BA,IAXuB,CAWtC;AACA,UAAMgb,KAAKD,kBAZ2B,CAYtC;AACA,UAAME,KAAKF,kBAb2B,CAatC;AAGA,aAAO,CAAC/a,UAAD,EAACA,CAAD,EAAgBA,UAAhB,EAAgBA,CAAhB,CAAP;AAhGO;;;kCAuGT,I,EAA2B;AACzB,UAAMua,IAAIha,WADe,CACfA,CAAV;;AACA,UAAIA,UAAUA,KAAd,CAAcA,CAAd,EAAuB;AACrBga,eAAOha,KADc,CACdA,CAAPga;AACAA,eAAOha,KAFc,CAEdA,CAAPga;AAJuB;;AAMzB,UAAIha,UAAUA,KAAd,CAAcA,CAAd,EAAuB;AACrBga,eAAOha,KADc,CACdA,CAAPga;AACAA,eAAOha,KAFc,CAEdA,CAAPga;AARuB;;AAUzB,aAVyB,CAUzB;AAjHO;;;8BAuHT,K,EAAA,K,EAA+B;AAC7B,6BAAuB;AACrB,eAAOK,IADc,CACrB;AAF2B;;AAM7B,UAAMM,WAAW,CAACC,MAAD,CAACA,CAAD,EAAWA,MAAX,CAAWA,CAAX,EAAqBC,MAArB,CAAqBA,CAArB,EAA+BA,MAA/B,CAA+BA,CAA/B,OANY,OAMZ,CAAjB;AACA,UAAMC,WAAW,CAACF,MAAD,CAACA,CAAD,EAAWA,MAAX,CAAWA,CAAX,EAAqBC,MAArB,CAAqBA,CAArB,EAA+BA,MAA/B,CAA+BA,CAA/B,OAPY,OAOZ,CAAjB;AACA,UAAMxV,SARuB,EAQ7B;AAEAuV,cAAQd,mBAVqB,KAUrBA,CAARc;AACAC,cAAQf,mBAXqB,KAWrBA,CAARe;;AAGA,UACGF,gBAAgBC,MAAhBD,CAAgBC,CAAhBD,IAA4BA,gBAAgBE,MAA7C,CAA6CA,CAA5CF,IACAA,gBAAgBE,MAAhBF,CAAgBE,CAAhBF,IAA4BA,gBAAgBC,MAF/C,CAE+CA,CAF/C,EAGE;AAEAvV,oBAAYsV,SAFZ,CAEYA,CAAZtV;AACAA,oBAAYsV,SAHZ,CAGYA,CAAZtV;AANF,aAOO;AACL,eADK,IACL;AAtB2B;;AA0B7B,UACGyV,gBAAgBF,MAAhBE,CAAgBF,CAAhBE,IAA4BA,gBAAgBD,MAA7C,CAA6CA,CAA5CC,IACAA,gBAAgBD,MAAhBC,CAAgBD,CAAhBC,IAA4BA,gBAAgBF,MAF/C,CAE+CA,CAF/C,EAGE;AAEAvV,oBAAYyV,SAFZ,CAEYA,CAAZzV;AACAA,oBAAYyV,SAHZ,CAGYA,CAAZzV;AANF,aAOO;AACL,eADK,IACL;AAlC2B;;AAqC7B,aArC6B,MAqC7B;AA5JO;;;;;;;AAiKX,IAAM0V,0BAA0B,wpBAAhC;;AAYA,gCAAgC;AAC9B,MAAM9C,SAASF,IAAf;AAAA,MACEK,SAF4B,EAC9B;;AAEA,MAAIL,qBAAqBA,WAAzB,QAA4C;AAE1C,SAAK,IAAIhR,IAAT,GAAgBA,IAAhB,QAA4BA,KAA5B,GAAoC;AAClCqR,kBACED,oBAAqBJ,qBAAD,CAACA,GAA0BA,eAAehR,IAF9B,CAEegR,CAA/CI,CADFC;AAHwC;AAA5C,SAOO,IAAIL,qBAAqBA,WAAzB,QAA4C;AAEjD,SAAK,IAAIhR,MAAT,GAAgBA,MAAhB,QAA4BA,OAA5B,GAAoC;AAClCqR,kBACED,oBAAqBJ,eAAehR,MAAfgR,MAAD,CAACA,GAA8BA,eAFnB,GAEmBA,CAAnDI,CADFC;AAH+C;AAA5C,SAOA;AACL,SAAK,IAAIrR,MAAT,GAAgBA,MAAhB,QAA4B,EAA5B,KAAiC;AAC/B,UAAMiU,OAAOD,wBAAwBhD,eADN,GACMA,CAAxBgD,CAAb;AACA3C,kBAAY4C,OAAO7C,oBAAP6C,IAAO7C,CAAP6C,GAAmCjD,WAFhB,GAEgBA,CAA/CK;AAHG;AAjBuB;;AAuB9B,SAAOA,YAvBuB,EAuBvBA,CAAP;AAxxBF;;AA2xBA,2BAA2B;AAGzB,SAAOL,2BAHkB,MAGlBA,CAAP;AA9xBF;;AAiyBA,iCAAiC;AAC/B,SAAOkD,mBAAmBC,OADK,GACLA,CAAnBD,CAAP;AAlyBF;;AAqyBA,iCAAiC;AAC/B,SAAOE,SAASC,mBADe,GACfA,CAATD,CAAP;AAtyBF;;AAyyBA,mBAAmB;AACjB,SAAO,aADU,SACjB;AA1yBF;;AA6yBA,kBAAkB;AAChB,SAAO,aADS,QAChB;AA9yBF;;AAizBA,qBAAqB;AACnB,SAAO,aADY,QACnB;AAlzBF;;AAqzBA,0BAA0B;AACxB,SAAO,2BAAyBhB,MAAzB,QAAuCA,iBADtB,SACxB;AAtzBF;;AAyzBA,kCAAkC;AAChC,MAAIkB,gBAAgBC,KAApB,QAAiC;AAC/B,WAD+B,KAC/B;AAF8B;;AAIhC,SAAO,WAAW,0BAA0B;AAC1C,WAAOC,YAAYD,KADuB,KACvBA,CAAnB;AAL8B,GAIzB,CAAP;AA7zBF;;AAk0BA,+BAA0D;AAAA,MAA7BE,IAA6B,uEAAtB,SAASna,KAA7C,GAA6CA,EAAT,CAAsB;AACxD,MAAMoa,SAAS,CACbD,sBADa,QACbA,EADa,EAEZ,sBAAD,CAAC,EAAD,QAAC,GAAD,QAAC,CAAD,CAAC,EAFY,GAEZ,CAFY,EAGZ,qBAAD,CAAC,EAAD,QAAC,GAAD,QAAC,CAAD,CAAC,EAHY,GAGZ,CAHY,EAIbA,0CAJa,GAIbA,CAJa,EAKbA,4CALa,GAKbA,CALa,EAMbA,4CANa,GAMbA,CANa,CAAf;AASA,SAAOC,YAViD,EAUjDA,CAAP;AA50BF;;AA+1BA,mCAAmC;AACjC,MAAMC,aAAaza,cADc,IACdA,CAAnB;AACA,MAAI0a,YAF6B,KAEjC;AAEA1a,+CAA6C;AAC3CmH,OAD2C,iBACrC;AACJ,aADI,SACJ;AAFyC;AAAA,GAA7CnH;AAKAya,uBAAqB,YAAY,2BAA2B;AAC1DA,yBAAqB,gBAAgB;AACnCC,kBADmC,IACnCA;AACAnd,cAFmC,IAEnCA;AAHwD,KAC1Dkd;;AAIAA,wBAAoB,kBAAkB;AACpCC,kBADoC,IACpCA;AACAld,aAFoC,MAEpCA;AAPwD,KAK1Did;AAd+B,GASZ,CAArBA;AAUA,SAnBiC,UAmBjC;AAl3BF;;AAq3BA,IAAME,kBAAmB,kCAAkC;AAEzD,MAAMC,SAFmD,mEAEzD;AAIA,SAAO,4CAAqE;AAAA,QAAzBC,eAAyB,uEAArE,KAAqE;;AAC1E,QAAI,oBAAoBC,IAAxB,iBAA6C;AAC3C,UAAMC,OAAO,SAAS,CAAT,IAAS,CAAT,EAAiB;AAAEhY,cADW;AACb,OAAjB,CAAb;AACA,aAAO+X,oBAFoC,IAEpCA,CAAP;AAHwE;;AAM1E,QAAIN,wBANsE,WAMtEA,aAAJ;;AACA,SAAK,IAAI1U,IAAJ,GAAWkV,KAAKtD,KAArB,QAAkC5R,IAAlC,IAA0CA,KAA1C,GAAkD;AAChD,UAAMmV,KAAKvD,UADqC,IAChD;AACA,UAAMwD,KAAKxD,KAAK5R,IAAL4R,KAFqC,IAEhD;AACA,UAAMyD,KAAKzD,KAAK5R,IAAL4R,KAHqC,IAGhD;AACA,UAAM0D,KAAKH,MAAX;AAAA,UACEI,KAAO,MAAD,CAAC,KAAF,CAAE,GAAiBH,MALsB,CAIhD;AAEA,UAAMI,KAAKxV,aAAe,MAAD,GAAC,KAAF,CAAE,GAAmBqV,MAAlCrV,IANqC,EAMhD;AACA,UAAMyV,KAAKzV,aAAaqV,KAAbrV,OAPqC,EAOhD;AACA0U,gBAAUI,aAAaA,OAAbA,EAAaA,CAAbA,GAA0BA,OAA1BA,EAA0BA,CAA1BA,GAAuCA,OARD,EAQCA,CAAjDJ;AAfwE;;AAiB1E,WAjB0E,MAiB1E;AAvBuD,GAMzD;AA33BF,CAq3ByB,EAAzB;;;;;;;;;;;ACr3BA;;;;AAmBA,IAEG,qCAAqC,CAACle,WAFzC,4BAGE;AAGA,MAAI,qCAAqCA,oBAAzC,MAAmE;AAEjEA,iBAAalB,oBAFoD,CAEpDA,CAAbkB;AALF;;AAOAA,0CAPA,IAOAA;AAEA,MAAMkf,SAAS,gFAA8B,wEAT7C,QASA;AACA,MAAMC,YACH,oCAAoCC,UAArC,SAAC,IAXH,EAUA;AAEA,MAAMC,OAAO,eAZb,SAYa,CAAb;;AAGC,4BAAyB;AACxB,QAAIrf,mBAAmB,CAAvB,mBAAkC;AAAA;AADV;;AAIxBA,sBAAkB,iBAAiB;AAEjC,aAAOsf,sCAF0B,QAE1BA,CAAP;AANsB,KAIxBtf;AAnBF,GAeC,GAAD;;AAWC,4BAAyB;AACxB,QAAIA,mBAAmB,CAAvB,mBAAkC;AAAA;AADV;;AAIxBA,sBAAkB,iBAAiB;AAEjC,aAAOsf,sCAF0B,QAE1BA,CAAP;AANsB,KAIxBtf;AA9BF,GA0BC,GAAD;;AAYC,mCAAgC;AAC/B,QAAI,CAAJ,QAAa;AAAA;AADkB;;AAI/B,QAAI,OAAOuf,kBAAP,WAAJ,aAAqD;AAAA;AAJtB;;AAO/BA,+BAA2B,YAAY;AACrC,UAAI,KAAJ,YAAqB;AAEnB,oCAFmB,IAEnB;AAHmC;AAPR,KAO/BA;AA7CF,GAsCC,GAAD;;AAkBC,yCAAsC;AACrC,QAAI,WAAJ,mBAAyB;AAAA;AADY;;AAIrC,QAAMC,MAAM7e,uBAJyB,KAIzBA,CAAZ;AACA6e,iCALqC,SAKrCA;;AAEA,QACEA,8CACAA,sCAFF,MAGE;AAAA;AAVmC;;AAarC,QAAMC,0BAA0BC,uBAbK,GAarC;AACA,QAAMC,6BAA6BD,uBAdE,MAcrC;;AAEAA,iCAA6B,YAAqB;AAAA,wCAArB,MAAqB;AAArB,cAAqB;AAAA;;AAChD,oEAA4B;AAA5B,YAAWE,KAAX;AACEH,2CAD0B,KAC1BA;AAF8C;AAhBb,KAgBrCC;;AAKAA,oCAAgC,YAAqB;AAAA,yCAArB,MAAqB;AAArB,cAAqB;AAAA;;AACnD,yEAA4B;AAA5B,YAAWE,KAAX;AACED,8CAD0B,KAC1BA;AAFiD;AArBhB,KAqBrCD;AA7EF,GAwDC,GAAD;;AA+BC,sCAAmC;AAClC,QAAI,WAAJ,mBAAyB;AAAA;AADS;;AAIlC,QAAMF,MAAM7e,uBAJsB,KAItBA,CAAZ;;AACA,QAAI6e,oCAAJ,OAA+C;AAAA;AALb;;AASlCE,oCAAgC,iBAAiB;AAC/C,UAAMG,QACJC,uBAAuB,CAAC,CAACA,UAAzBA,CAAyBA,CAAzBA,GAAwC,CAAC,cAFI,KAEJ,CAD3C;AAEA,aAAO,KAAKD,gBAAL,kBAHwC,KAG/C;AAZgC,KASlCH;AAhGF,GAuFC,GAAD;;AAmBC,sDAAmD;AAClD,QAAI,WAAW,CAAf,MAAsB;AAAA;AAD4B;;AAIlD,QAAMK,oBAAoBC,eAJwB,SAIlD;AACA,QAAMC,uBAAuBD,eALqB,YAKlD;;AAEAA,+BAA2B,6BAA6B;AACtD,UAAME,OAAO,oBAAoB,cAApB,GAAqC,mBAAlD;AACAH,oCAFsD,IAEtDA;AATgD,KAOlDC;;AAIAA,kCAA8B,6BAA6B;AACzD,UAAME,OAAO,oBAAoB,cAApB,GAAqC,mBAAlD;AACAD,uCAFyD,IAEzDA;AAbgD,KAWlDD;AArHF,GA0GC,GAAD;;AAmBC,oCAAiC;AAChC,QAAIpF,iBAAJ,YAAiC;AAAA;AADD;;AAIhC9b,wBAJgC,EAIhCA;AAjIF,GA6HC,GAAD;;AASC,kCAA+B;AAC9B,QAAI8b,iBAAJ,UAA+B;AAAA;AADD;;AAI9B9b,wBAJ8B,EAI9BA;AA1IF,GAsIC,GAAD;;AASC,kCAA+B;AAC9B,QAAI8b,iBAAJ,UAA+B;AAAA;AADD;;AAI9B9b,wBAJ8B,EAI9BA;AAnJF,GA+IC,GAAD;;AASC,iCAA8B;AAC7B,QAAIqhB,gBAAJ,UAA8B;AAAA;AADD;;AAI7BrhB,wBAJ6B,EAI7BA;AA5JF,GAwJC,GAAD;;AASC,6BAA0B;AACzB,QAAIqhB,MAAJ,MAAgB;AAAA;AADS;;AAIzBrhB,wBAJyB,EAIzBA;AArKF,GAiKC,GAAD;;AASC,gCAA6B;AAC5B,QAAI4E,OAAJ,QAAmB;AAAA;AADS;;AAI5B5E,wBAJ4B,EAI5BA;AA9KF,GA0KC,GAAD;;AASC,qCAAkC;AACjC,QAAI4E,OAAJ,aAAwB;AAAA;AADS;;AAIjC5E,wBAJiC,GAIjCA;AAvLF,GAmLC,GAAD;;AASC,4BAAyB;AACxB,QAAIoD,KAAJ,MAAe;AAAA;AADS;;AAIxBA,gBAAYpD,oBAJY,GAIZA,CAAZoD;AAhMF,GA4LC,GAAD;;AASC,+BAA4B;AAC3B,QAAI+X,OAAJ,OAAkB;AAAA;AADS;;AAI3BA,mBAAenb,oBAJY,GAIZA,CAAfmb;AAzMF,GAqMC,GAAD;;AASC,mCAAgC;AAC/B,QAAIA,OAAJ,WAAsB;AAAA;AADS;;AAI/BA,uBAAmBnb,oBAJY,GAIZA,CAAnBmb;AAlNF,GA8MC,GAAD;;AASC,mCAAgC;AAC/B,QAAImG,qBAAJ,OAAgC;AAAA;AADD;;AAI/BthB,wBAJ+B,GAI/BA;AA3NF,GAuNC,GAAD;;AAQC,2BAAwB;AAMvB,QAAIkB,sBAAsBA,mBAA1B,YAAyD;AAAA;AANlC;;AASvBA,yBAAqBlB,oBATE,GASFA,CAArBkB;AAxOF,GA+NC,GAAD;;AAaC,uBAAoB;AAcnBA,qBAAiBlB,oBAdE,GAcFA,CAAjBkB;AA1PF,GA4OC,GAAD;;AAkBC,kCAA+B;AAM9B,QAAIqgB,4BAN0B,KAM9B;;AAEA,QAAI,0BAAJ,aAA2C;AAEzC,UAAI;AAEF,2BAAmB;AACjBrc,eADiB,iBACjBA,UADiB,EACC;AAChBsc,uBADgB,KAChBA;AAFe;AAAA,SAAnB;AAKAD,oCAPE,IAOFA;AAPF,QAQE,UAAU,CAV6B;AARb;;AAsB9B,mCAA+B;AAAA;AAtBD;;AAyB9BrgB,gCAA4BlB,yBAzBE,cAyB9BkB;AAvRF,GA8PC,GAAD;;AA+BC,8BAA2B;AAC1B,QAAIA,kBAAkBA,yBAAtB,SAAwD;AAAA;AAD9B;;AAI1BA,qBAAiBlB,oBAJS,GAITA,CAAjBkB;AAjSF,GA6RC,GAAD;;AAUC,8BAA2B;AAC1B,QAAIA,kBAAkBA,yBAAtB,SAAwD;AAAA;AAD9B;;AAI1BA,qBAAiBlB,oBAJS,GAITA,CAAjBkB;AA3SF,GAuSC,GAAD;;AAQC,2BAAwB;AACvB,QAAIA,WAAJ,SAAwB;AAAA;AADD;;AAIvBA,yBAAqBlB,oBAJE,GAIFA,CAArBkB;AAnTF,GA+SC,GAAD;;AAQC,2BAAwB;AACvB,QAAIA,WAAJ,SAAwB;AAAA;AADD;;AAIvBA,yBAAqBlB,oBAJE,GAIFA,CAArBkB;AA3TF,GAuTC,GAAD;;AASC,qCAAkC;AACjC,QAAI4a,iBAAJ,aAAkC;AAAA;AADD;;AAIjC9b,wBAJiC,GAIjCA;AApUF,GAgUC,GAAD;;AASC,uCAAoC;AACnC,QAAI8b,OAAJ,eAA0B;AAAA;AADS;;AAInCA,2BAAuB9b,oBAJY,GAIZA,CAAvB8b;AA7UF,GAyUC,GAAD;;AAQC,0BAAuB;AACtB,QAAI5a,WAAJ,QAAuB;AAAA;AADD;;AAItBlB,wBAJsB,GAItBA;AArVF,GAiVC,GAAD;;AASC,kCAA+B;AAC9B,QAAI8b,iBAAJ,UAA+B;AAAA;AADD;;AAI9B9b,wBAJ8B,GAI9BA;AA9VF,GA0VC,GAAD;;AASC,gCAA6B;AAC5B,QAAI8b,iBAAJ,QAA6B;AAAA;AADD;;AAI5B9b,wBAJ4B,GAI5BA;AAvWF,GAmWC,GAAD;;AASC,gCAA6B;AAC5B,QAAI4E,OAAJ,QAAmB;AAAA;AADS;;AAI5BA,oBAAgB5E,oBAJY,GAIZA,CAAhB4E;AAhXF,GA4WC,GAAD;;AASC,iCAA8B;AAC7B,QAAIA,OAAJ,SAAoB;AAAA;AADS;;AAI7BA,qBAAiB5E,oBAJY,GAIZA,CAAjB4E;AAzXF,GAqXC,GAAD;AArXA,C;;;;;;;;;;;;;;;;ACFF,IAAM6c,WACJ,kFACAC,iBADA,sBAEA,CAACA,iBAFD,MAGA,EAAE,6BAA6BA,QAA7B,QAA6CA,iBAxBjD,SAwBE,CAJF;;;;;;;ACpBA1hB,mBAAA,CAAQ,CAAR;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB1H,mBAAA,CAAQ,EAAR,CAAjB,C;;;;;;ACFA,IAAI2hB,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CADA;AAKA2hB,CAAA,CAAE,EAAEC,MAAA,EAAQ,IAAV,EAAF,EAAoB,EAClB1gB,UAAA,EAAY0gB,MADM,EAApB,E;;;;;;ACLA,IAAIA,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAI6hB,wBAAA,GAA2B7hB,mBAAA,CAAQ,EAAR,EAA2D8hB,CAA1F,CADA;AAEA,IAAIC,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAFA;AAGA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAIiiB,SAAA,GAAYjiB,mBAAA,CAAQ,EAAR,CAAhB,CAJA;AAKA,IAAIkiB,yBAAA,GAA4BliB,mBAAA,CAAQ,EAAR,CAAhC,CALA;AAMA,IAAImiB,QAAA,GAAWniB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAsBAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU0a,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,CAC1C,IAAIC,MAAA,GAASF,OAAA,CAAQG,MAArB,CAD0C;AAAA,CAE1C,IAAIC,MAAA,GAASJ,OAAA,CAAQR,MAArB,CAF0C;AAAA,CAG1C,IAAIa,MAAA,GAASL,OAAA,CAAQM,IAArB,CAH0C;AAAA,CAI1C,IAAIC,MAAJ,EAAYJ,MAAZ,EAAoBlY,GAApB,EAAyBuY,cAAzB,EAAyCC,cAAzC,EAAyDC,UAAzD,CAJ0C;AAAA,CAK1C,IAAIN,MAAJ,EAAY;AAAA,EACVD,MAAA,GAASX,MAAT,CADU;AAAA,EAAZ,MAEO,IAAIa,MAAJ,EAAY;AAAA,EACjBF,MAAA,GAASX,MAAA,CAAOU,MAAP,KAAkBL,SAAA,CAAUK,MAAV,EAAkB,EAAlB,CAA3B,CADiB;AAAA,EAAZ,MAEA;AAAA,EACLC,MAAA,GAAU,CAAAX,MAAA,CAAOU,MAAP,KAAkB,EAAlB,CAAD,CAAuBS,SAAhC,CADK;AAAA,EATmC;AAAA,CAY1C,IAAIR,MAAJ;AAAA,EAAY,KAAKlY,GAAL,IAAYgY,MAAZ,EAAoB;AAAA,GAC9BQ,cAAA,GAAiBR,MAAA,CAAOhY,GAAP,CAAjB,CAD8B;AAAA,GAE9B,IAAI+X,OAAA,CAAQY,WAAZ,EAAyB;AAAA,IACvBF,UAAA,GAAajB,wBAAA,CAAyBU,MAAzB,EAAiClY,GAAjC,CAAb,CADuB;AAAA,IAEvBuY,cAAA,GAAiBE,UAAA,IAAcA,UAAA,CAAW/b,KAA1C,CAFuB;AAAA,IAAzB;AAAA,IAGO6b,cAAA,GAAiBL,MAAA,CAAOlY,GAAP,CAAjB,CALuB;AAAA,GAM9BsY,MAAA,GAASR,QAAA,CAASK,MAAA,GAASnY,GAAT,GAAeiY,MAAA,GAAU,CAAAG,MAAA,GAAS,GAAT,GAAe,GAAf,CAAV,GAAgCpY,GAAxD,EAA6D+X,OAAA,CAAQa,MAArE,CAAT,CAN8B;AAAA,GAQ9B,IAAI,CAACN,MAAD,IAAWC,cAAA,KAAmBM,SAAlC,EAA6C;AAAA,IAC3C,IAAI,OAAOL,cAAP,KAA0B,OAAOD,cAArC;AAAA,KAAqD,SADV;AAAA,IAE3CV,yBAAA,CAA0BW,cAA1B,EAA0CD,cAA1C,EAF2C;AAAA,IARf;AAAA,GAa9B,IAAIR,OAAA,CAAQe,IAAR,IAAiBP,cAAA,IAAkBA,cAAA,CAAeO,IAAtD,EAA6D;AAAA,IAC3DpB,2BAAA,CAA4Bc,cAA5B,EAA4C,MAA5C,EAAoD,IAApD,EAD2D;AAAA,IAb/B;AAAA,GAiB9Bb,QAAA,CAASO,MAAT,EAAiBlY,GAAjB,EAAsBwY,cAAtB,EAAsCT,OAAtC,EAjB8B;AAAA,GAZU;AAAA,CAA5C,C;;;;;;ACtBA,IAAIgB,KAAA,GAAQ,UAAUC,EAAV,EAAc;AAAA,CACxB,OAAOA,EAAA,IAAMA,EAAA,CAAGjgB,IAAH,IAAWA,IAAjB,IAAyBigB,EAAhC,CADwB;AAAA,CAA1B;AAKA9c,MAAA,CAAOmB,OAAP,GAEE0b,KAAA,CAAM,OAAOliB,UAAP,IAAqB,QAArB,IAAiCA,UAAvC,KACAkiB,KAAA,CAAM,OAAOlC,MAAP,IAAiB,QAAjB,IAA6BA,MAAnC,CADA,IAEAkC,KAAA,CAAM,OAAOE,IAAP,IAAe,QAAf,IAA2BA,IAAjC,CAFA,IAGAF,KAAA,CAAM,OAAOxB,MAAP,IAAiB,QAAjB,IAA6BA,MAAnC,CAHA,IAKA9V,QAAA,CAAS,aAAT,GAPF,C;;;;;;ACLA,IAAIyX,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAIwjB,0BAAA,GAA6BxjB,mBAAA,CAAQ,EAAR,CAAjC,CADA;AAEA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAFA;AAGA,IAAI0jB,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB,CAHA;AAIA,IAAI2jB,WAAA,GAAc3jB,mBAAA,CAAQ,EAAR,CAAlB,CAJA;AAKA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CALA;AAMA,IAAI6jB,cAAA,GAAiB7jB,mBAAA,CAAQ,EAAR,CAArB,CANA;AAQA,IAAI8jB,8BAAA,GAAiClf,MAAA,CAAOid,wBAA5C,CARA;AAYAna,OAAA,CAAQoa,CAAR,GAAYyB,WAAA,GAAcO,8BAAd,GAA+C,SAASjC,wBAAT,CAAkCkC,CAAlC,EAAqCC,CAArC,EAAwC;AAAA,CACjGD,CAAA,GAAIL,eAAA,CAAgBK,CAAhB,CAAJ,CADiG;AAAA,CAEjGC,CAAA,GAAIL,WAAA,CAAYK,CAAZ,EAAe,IAAf,CAAJ,CAFiG;AAAA,CAGjG,IAAIH,cAAJ;AAAA,EAAoB,IAAI;AAAA,GACtB,OAAOC,8BAAA,CAA+BC,CAA/B,EAAkCC,CAAlC,CAAP,CADsB;AAAA,GAAJ,CAElB,OAAOC,KAAP,EAAc;AAAA,GALiF;AAAA,CAMjG,IAAIL,GAAA,CAAIG,CAAJ,EAAOC,CAAP,CAAJ;AAAA,EAAe,OAAOP,wBAAA,CAAyB,CAACD,0BAAA,CAA2B1B,CAA3B,CAA6BoC,IAA7B,CAAkCH,CAAlC,EAAqCC,CAArC,CAA1B,EAAmED,CAAA,CAAEC,CAAF,CAAnE,CAAP,CANkF;AAAA,CAAnG,C;;;;;;ACZA,IAAIG,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB,CAACyc,KAAA,CAAM,YAAY;AAAA,CAClC,OAAOvf,MAAA,CAAOwf,cAAP,CAAsB,EAAtB,EAA0B,CAA1B,EAA6B;AAAA,EAAErY,GAAA,EAAK,YAAY;AAAA,GAAE,OAAO,CAAP,CAAF;AAAA,GAAnB;AAAA,EAA7B,EAAiE,CAAjE,KAAuE,CAA9E,CADkC;AAAA,CAAlB,CAAlB,C;;;;;;ACHAxF,MAAA,CAAOmB,OAAP,GAAiB,UAAU2c,IAAV,EAAgB;AAAA,CAC/B,IAAI;AAAA,EACF,OAAO,CAAC,CAACA,IAAA,EAAT,CADE;AAAA,EAAJ,CAEE,OAAOJ,KAAP,EAAc;AAAA,EACd,OAAO,IAAP,CADc;AAAA,EAHe;AAAA,CAAjC,C;;;;;;;ACAa;AACb,IAAIK,0BAAA,GAA6B,GAAGC,oBAApC,CADA;AAEA,IAAI1C,wBAAA,GAA2Bjd,MAAA,CAAOid,wBAAtC,CAFA;AAKA,IAAI2C,WAAA,GAAc3C,wBAAA,IAA4B,CAACyC,0BAAA,CAA2BJ,IAA3B,CAAgC,EAAE,GAAG,CAAL,EAAhC,EAA0C,CAA1C,CAA/C,CALA;AASAxc,OAAA,CAAQoa,CAAR,GAAY0C,WAAA,GAAc,SAASD,oBAAT,CAA8BE,CAA9B,EAAiC;AAAA,CACzD,IAAI3B,UAAA,GAAajB,wBAAA,CAAyB,IAAzB,EAA+B4C,CAA/B,CAAjB,CADyD;AAAA,CAEzD,OAAO,CAAC,CAAC3B,UAAF,IAAgBA,UAAA,CAAW9b,UAAlC,CAFyD;AAAA,CAA/C,GAGRsd,0BAHJ,C;;;;;;ACTA/d,MAAA,CAAOmB,OAAP,GAAiB,UAAUgd,MAAV,EAAkB3d,KAAlB,EAAyB;AAAA,CACxC,OAAO;AAAA,EACLC,UAAA,EAAY,CAAE,CAAA0d,MAAA,GAAS,CAAT,CADT;AAAA,EAELzd,YAAA,EAAc,CAAE,CAAAyd,MAAA,GAAS,CAAT,CAFX;AAAA,EAGLxd,QAAA,EAAU,CAAE,CAAAwd,MAAA,GAAS,CAAT,CAHP;AAAA,EAIL3d,KAAA,EAAOA,KAJF;AAAA,EAAP,CADwC;AAAA,CAA1C,C;;;;;;ACCA,IAAI4d,aAAA,GAAgB3kB,mBAAA,CAAQ,EAAR,CAApB,CADA;AAEA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CAFA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,OAAOsB,aAAA,CAAcC,sBAAA,CAAuBvB,EAAvB,CAAd,CAAP,CAD6B;AAAA,CAA/B,C;;;;;;ACJA,IAAIc,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AACA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CADA;AAGA,IAAI8kB,KAAA,GAAQ,GAAGA,KAAf,CAHA;AAMAve,MAAA,CAAOmB,OAAP,GAAiByc,KAAA,CAAM,YAAY;AAAA,CAGjC,OAAO,CAACvf,MAAA,CAAO,GAAP,EAAY2f,oBAAZ,CAAiC,CAAjC,CAAR,CAHiC;AAAA,CAAlB,IAIZ,UAAUlB,EAAV,EAAc;AAAA,CACjB,OAAOwB,OAAA,CAAQxB,EAAR,KAAe,QAAf,GAA0ByB,KAAA,CAAMZ,IAAN,CAAWb,EAAX,EAAe,EAAf,CAA1B,GAA+Cze,MAAA,CAAOye,EAAP,CAAtD,CADiB;AAAA,CAJF,GAMbze,MANJ,C;;;;;;ACNA,IAAImgB,QAAA,GAAW,GAAGA,QAAlB;AAEAxe,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,OAAO0B,QAAA,CAASb,IAAT,CAAcb,EAAd,EAAkB2B,KAAlB,CAAwB,CAAxB,EAA2B,CAAC,CAA5B,CAAP,CAD6B;AAAA,CAA/B,C;;;;;;ACAAze,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAIA,EAAA,IAAMH,SAAV;AAAA,EAAqB,MAAM+B,SAAA,CAAU,0BAA0B5B,EAApC,CAAN,CADQ;AAAA,CAE7B,OAAOA,EAAP,CAF6B;AAAA,CAA/B,C;;;;;;ACFA,IAAI6B,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUyd,KAAV,EAAiBC,gBAAjB,EAAmC;AAAA,CAClD,IAAI,CAACF,QAAA,CAASC,KAAT,CAAL;AAAA,EAAsB,OAAOA,KAAP,CAD4B;AAAA,CAElD,IAAItd,EAAJ,EAAQwd,GAAR,CAFkD;AAAA,CAGlD,IAAID,gBAAA,IAAoB,OAAQ,CAAAvd,EAAA,GAAKsd,KAAA,CAAMJ,QAAX,CAAR,IAAgC,UAApD,IAAkE,CAACG,QAAA,CAASG,GAAA,GAAMxd,EAAA,CAAGqc,IAAH,CAAQiB,KAAR,CAAf,CAAvE;AAAA,EAAuG,OAAOE,GAAP,CAHrD;AAAA,CAIlD,IAAI,OAAQ,CAAAxd,EAAA,GAAKsd,KAAA,CAAMG,OAAX,CAAR,IAA+B,UAA/B,IAA6C,CAACJ,QAAA,CAASG,GAAA,GAAMxd,EAAA,CAAGqc,IAAH,CAAQiB,KAAR,CAAf,CAAlD;AAAA,EAAkF,OAAOE,GAAP,CAJhC;AAAA,CAKlD,IAAI,CAACD,gBAAD,IAAqB,OAAQ,CAAAvd,EAAA,GAAKsd,KAAA,CAAMJ,QAAX,CAAR,IAAgC,UAArD,IAAmE,CAACG,QAAA,CAASG,GAAA,GAAMxd,EAAA,CAAGqc,IAAH,CAAQiB,KAAR,CAAf,CAAxE;AAAA,EAAwG,OAAOE,GAAP,CALtD;AAAA,CAMlD,MAAMJ,SAAA,CAAU,yCAAV,CAAN,CANkD;AAAA,CAApD,C;;;;;;ACNA1e,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,OAAO,OAAOA,EAAP,KAAc,QAAd,GAAyBA,EAAA,KAAO,IAAhC,GAAuC,OAAOA,EAAP,KAAc,UAA5D,CAD6B;AAAA,CAA/B,C;;;;;;ACAA,IAAIkC,cAAA,GAAiB,GAAGA,cAAxB;AAEAhf,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAchZ,GAAd,EAAmB;AAAA,CAClC,OAAOkb,cAAA,CAAerB,IAAf,CAAoBb,EAApB,EAAwBhZ,GAAxB,CAAP,CADkC;AAAA,CAApC,C;;;;;;ACFA,IAAIkZ,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CADA;AAEA,IAAIuC,aAAA,GAAgBvC,mBAAA,CAAQ,EAAR,CAApB,CAFA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB,CAAC6b,WAAD,IAAgB,CAACY,KAAA,CAAM,YAAY;AAAA,CAClD,OAAOvf,MAAA,CAAOwf,cAAP,CAAsB7hB,aAAA,CAAc,KAAd,CAAtB,EAA4C,GAA5C,EAAiD;AAAA,EACtDwJ,GAAA,EAAK,YAAY;AAAA,GAAE,OAAO,CAAP,CAAF;AAAA,GADqC;AAAA,EAAjD,EAEJiS,CAFI,IAEC,CAFR,CADkD;AAAA,CAAlB,CAAlC,C;;;;;;ACLA,IAAI4D,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAGA,IAAI6B,QAAA,GAAW+f,MAAA,CAAO/f,QAAtB,CAHA;AAKA,IAAI2jB,MAAA,GAASN,QAAA,CAASrjB,QAAT,KAAsBqjB,QAAA,CAASrjB,QAAA,CAASU,aAAlB,CAAnC,CALA;AAOAgE,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,OAAOmC,MAAA,GAAS3jB,QAAA,CAASU,aAAT,CAAuB8gB,EAAvB,CAAT,GAAsC,EAA7C,CAD6B;AAAA,CAA/B,C;;;;;;ACPA,IAAIE,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CADA;AAEA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAFA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB6b,WAAA,GAAc,UAAUmC,MAAV,EAAkBrb,GAAlB,EAAuBtD,KAAvB,EAA8B;AAAA,CAC3D,OAAO0e,oBAAA,CAAqB3D,CAArB,CAAuB4D,MAAvB,EAA+Brb,GAA/B,EAAoCoZ,wBAAA,CAAyB,CAAzB,EAA4B1c,KAA5B,CAApC,CAAP,CAD2D;AAAA,CAA5C,GAEb,UAAU2e,MAAV,EAAkBrb,GAAlB,EAAuBtD,KAAvB,EAA8B;AAAA,CAChC2e,MAAA,CAAOrb,GAAP,IAActD,KAAd,CADgC;AAAA,CAEhC,OAAO2e,MAAP,CAFgC;AAAA,CAFlC,C;;;;;;ACJA,IAAInC,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAI6jB,cAAA,GAAiB7jB,mBAAA,CAAQ,EAAR,CAArB,CADA;AAEA,IAAI2lB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAI2jB,WAAA,GAAc3jB,mBAAA,CAAQ,EAAR,CAAlB,CAHA;AAKA,IAAI4lB,oBAAA,GAAuBhhB,MAAA,CAAOwf,cAAlC,CALA;AASA1c,OAAA,CAAQoa,CAAR,GAAYyB,WAAA,GAAcqC,oBAAd,GAAqC,SAASxB,cAAT,CAAwBL,CAAxB,EAA2BC,CAA3B,EAA8B6B,UAA9B,EAA0C;AAAA,CACzFF,QAAA,CAAS5B,CAAT,EADyF;AAAA,CAEzFC,CAAA,GAAIL,WAAA,CAAYK,CAAZ,EAAe,IAAf,CAAJ,CAFyF;AAAA,CAGzF2B,QAAA,CAASE,UAAT,EAHyF;AAAA,CAIzF,IAAIhC,cAAJ;AAAA,EAAoB,IAAI;AAAA,GACtB,OAAO+B,oBAAA,CAAqB7B,CAArB,EAAwBC,CAAxB,EAA2B6B,UAA3B,CAAP,CADsB;AAAA,GAAJ,CAElB,OAAO5B,KAAP,EAAc;AAAA,GANyE;AAAA,CAOzF,IAAI,SAAS4B,UAAT,IAAuB,SAASA,UAApC;AAAA,EAAgD,MAAMZ,SAAA,CAAU,yBAAV,CAAN,CAPyC;AAAA,CAQzF,IAAI,WAAWY,UAAf;AAAA,EAA2B9B,CAAA,CAAEC,CAAF,IAAO6B,UAAA,CAAW9e,KAAlB,CAR8D;AAAA,CASzF,OAAOgd,CAAP,CATyF;AAAA,CAA3F,C;;;;;;ACTA,IAAImB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAI,CAAC6B,QAAA,CAAS7B,EAAT,CAAL,EAAmB;AAAA,EACjB,MAAM4B,SAAA,CAAUnJ,MAAA,CAAOuH,EAAP,IAAa,mBAAvB,CAAN,CADiB;AAAA,EADU;AAAA,CAG3B,OAAOA,EAAP,CAH2B;AAAA,CAA/B,C;;;;;;ACFA,IAAIzB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CADA;AAEA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAFA;AAGA,IAAIiiB,SAAA,GAAYjiB,mBAAA,CAAQ,EAAR,CAAhB,CAHA;AAIA,IAAI8lB,aAAA,GAAgB9lB,mBAAA,CAAQ,EAAR,CAApB,CAJA;AAKA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CALA;AAOA,IAAIgmB,gBAAA,GAAmBD,mBAAA,CAAoBha,GAA3C,CAPA;AAQA,IAAIka,oBAAA,GAAuBF,mBAAA,CAAoBG,OAA/C,CARA;AASA,IAAIC,QAAA,GAAWrK,MAAA,CAAOA,MAAP,EAAegJ,KAAf,CAAqB,QAArB,CAAf,CATA;AAWC,CAAAve,MAAA,CAAOmB,OAAP,GAAiB,UAAUqc,CAAV,EAAa1Z,GAAb,EAAkBtD,KAAlB,EAAyBqb,OAAzB,EAAkC;AAAA,CAClD,IAAIgE,MAAA,GAAShE,OAAA,GAAU,CAAC,CAACA,OAAA,CAAQgE,MAApB,GAA6B,KAA1C,CADkD;AAAA,CAElD,IAAIC,MAAA,GAASjE,OAAA,GAAU,CAAC,CAACA,OAAA,CAAQpb,UAApB,GAAiC,KAA9C,CAFkD;AAAA,CAGlD,IAAIgc,WAAA,GAAcZ,OAAA,GAAU,CAAC,CAACA,OAAA,CAAQY,WAApB,GAAkC,KAApD,CAHkD;AAAA,CAIlD,IAAI,OAAOjc,KAAP,IAAgB,UAApB,EAAgC;AAAA,EAC9B,IAAI,OAAOsD,GAAP,IAAc,QAAd,IAA0B,CAACuZ,GAAA,CAAI7c,KAAJ,EAAW,MAAX,CAA/B;AAAA,GAAmDgb,2BAAA,CAA4Bhb,KAA5B,EAAmC,MAAnC,EAA2CsD,GAA3C,EADrB;AAAA,EAE9B4b,oBAAA,CAAqBlf,KAArB,EAA4Bsb,MAA5B,GAAqC8D,QAAA,CAASG,IAAT,CAAc,OAAOjc,GAAP,IAAc,QAAd,GAAyBA,GAAzB,GAA+B,EAA7C,CAArC,CAF8B;AAAA,EAJkB;AAAA,CAQlD,IAAI0Z,CAAA,KAAMnC,MAAV,EAAkB;AAAA,EAChB,IAAIyE,MAAJ;AAAA,GAAYtC,CAAA,CAAE1Z,GAAF,IAAStD,KAAT,CAAZ;AAAA;AAAA,GACKkb,SAAA,CAAU5X,GAAV,EAAetD,KAAf,EAFW;AAAA,EAGhB,OAHgB;AAAA,EAAlB,MAIO,IAAI,CAACqf,MAAL,EAAa;AAAA,EAClB,OAAOrC,CAAA,CAAE1Z,GAAF,CAAP,CADkB;AAAA,EAAb,MAEA,IAAI,CAAC2Y,WAAD,IAAgBe,CAAA,CAAE1Z,GAAF,CAApB,EAA4B;AAAA,EACjCgc,MAAA,GAAS,IAAT,CADiC;AAAA,EAde;AAAA,CAiBlD,IAAIA,MAAJ;AAAA,EAAYtC,CAAA,CAAE1Z,GAAF,IAAStD,KAAT,CAAZ;AAAA;AAAA,EACKgb,2BAAA,CAA4BgC,CAA5B,EAA+B1Z,GAA/B,EAAoCtD,KAApC,EAlB6C;AAAA,CAAnD,CAAD,CAoBG+E,QAAA,CAASiX,SApBZ,EAoBuB,UApBvB,EAoBmC,SAASgC,QAAT,GAAoB;AAAA,CACrD,OAAO,OAAO,IAAP,IAAe,UAAf,IAA6BiB,gBAAA,CAAiB,IAAjB,EAAuB3D,MAApD,IAA8DyD,aAAA,CAAc,IAAd,CAArE,CADqD;AAAA,CApBvD,E;;;;;;ACXA,IAAIlE,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2C,GAAV,EAAetD,KAAf,EAAsB;AAAA,CACrC,IAAI;AAAA,EACFgb,2BAAA,CAA4BH,MAA5B,EAAoCvX,GAApC,EAAyCtD,KAAzC,EADE;AAAA,EAAJ,CAEE,OAAOkd,KAAP,EAAc;AAAA,EACdrC,MAAA,CAAOvX,GAAP,IAActD,KAAd,CADc;AAAA,EAHqB;AAAA,CAKnC,OAAOA,KAAP,CALmC;AAAA,CAAvC,C;;;;;;ACHA,IAAIwf,KAAA,GAAQvmB,mBAAA,CAAQ,EAAR,CAAZ;AAEA,IAAIwmB,gBAAA,GAAmB1a,QAAA,CAASiZ,QAAhC,CAFA;AAKA,IAAI,OAAOwB,KAAA,CAAMT,aAAb,IAA8B,UAAlC,EAA8C;AAAA,CAC5CS,KAAA,CAAMT,aAAN,GAAsB,UAAUzC,EAAV,EAAc;AAAA,EAClC,OAAOmD,gBAAA,CAAiBtC,IAAjB,CAAsBb,EAAtB,CAAP,CADkC;AAAA,EAApC,CAD4C;AAAA,CAL9C;AAWA9c,MAAA,CAAOmB,OAAP,GAAiB6e,KAAA,CAAMT,aAAvB,C;;;;;;ACXA,IAAIlE,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIiiB,SAAA,GAAYjiB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAGA,IAAIymB,MAAA,GAAS,oBAAb,CAHA;AAIA,IAAIF,KAAA,GAAQ3E,MAAA,CAAO6E,MAAP,KAAkBxE,SAAA,CAAUwE,MAAV,EAAkB,EAAlB,CAA9B,CAJA;AAMAlgB,MAAA,CAAOmB,OAAP,GAAiB6e,KAAjB,C;;;;;;ACNA,IAAIG,eAAA,GAAkB1mB,mBAAA,CAAQ,EAAR,CAAtB;AACA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CADA;AAEA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAHA;AAIA,IAAI2mB,SAAA,GAAY3mB,mBAAA,CAAQ,EAAR,CAAhB,CAJA;AAKA,IAAI4mB,SAAA,GAAY5mB,mBAAA,CAAQ,EAAR,CAAhB,CALA;AAMA,IAAI6mB,UAAA,GAAa7mB,mBAAA,CAAQ,EAAR,CAAjB,CANA;AAQA,IAAI8mB,OAAA,GAAUlF,MAAA,CAAOkF,OAArB,CARA;AASA,IAAIC,GAAJ,EAAShb,GAAT,EAAc6X,GAAd,CATA;AAWA,IAAIsC,OAAA,GAAU,UAAU7C,EAAV,EAAc;AAAA,CAC1B,OAAOO,GAAA,CAAIP,EAAJ,IAAUtX,GAAA,CAAIsX,EAAJ,CAAV,GAAoB0D,GAAA,CAAI1D,EAAJ,EAAQ,EAAR,CAA3B,CAD0B;AAAA,CAA5B,CAXA;AAeA,IAAI2D,SAAA,GAAY,UAAUC,IAAV,EAAgB;AAAA,CAC9B,OAAO,UAAU5D,EAAV,EAAc;AAAA,EACnB,IAAI5Z,KAAJ,CADmB;AAAA,EAEnB,IAAI,CAACyb,QAAA,CAAS7B,EAAT,CAAD,IAAkB,CAAA5Z,KAAA,GAAQsC,GAAA,CAAIsX,EAAJ,CAAR,CAAD,CAAkB1b,IAAlB,KAA2Bsf,IAAhD,EAAsD;AAAA,GACpD,MAAMhC,SAAA,CAAU,4BAA4BgC,IAA5B,GAAmC,WAA7C,CAAN,CADoD;AAAA,GAFnC;AAAA,EAIjB,OAAOxd,KAAP,CAJiB;AAAA,EAArB,CAD8B;AAAA,CAAhC,CAfA;AAwBA,IAAIid,eAAJ,EAAqB;AAAA,CACnB,IAAIH,KAAA,GAAQ,IAAIO,OAAJ,EAAZ,CADmB;AAAA,CAEnB,IAAII,KAAA,GAAQX,KAAA,CAAMxa,GAAlB,CAFmB;AAAA,CAGnB,IAAIob,KAAA,GAAQZ,KAAA,CAAM3C,GAAlB,CAHmB;AAAA,CAInB,IAAIwD,KAAA,GAAQb,KAAA,CAAMQ,GAAlB,CAJmB;AAAA,CAKnBA,GAAA,GAAM,UAAU1D,EAAV,EAAcgE,QAAd,EAAwB;AAAA,EAC5BD,KAAA,CAAMlD,IAAN,CAAWqC,KAAX,EAAkBlD,EAAlB,EAAsBgE,QAAtB,EAD4B;AAAA,EAE5B,OAAOA,QAAP,CAF4B;AAAA,EAA9B,CALmB;AAAA,CASnBtb,GAAA,GAAM,UAAUsX,EAAV,EAAc;AAAA,EAClB,OAAO6D,KAAA,CAAMhD,IAAN,CAAWqC,KAAX,EAAkBlD,EAAlB,KAAyB,EAAhC,CADkB;AAAA,EAApB,CATmB;AAAA,CAYnBO,GAAA,GAAM,UAAUP,EAAV,EAAc;AAAA,EAClB,OAAO8D,KAAA,CAAMjD,IAAN,CAAWqC,KAAX,EAAkBlD,EAAlB,CAAP,CADkB;AAAA,EAApB,CAZmB;AAAA,CAArB,MAeO;AAAA,CACL,IAAIiE,KAAA,GAAQV,SAAA,CAAU,OAAV,CAAZ,CADK;AAAA,CAELC,UAAA,CAAWS,KAAX,IAAoB,IAApB,CAFK;AAAA,CAGLP,GAAA,GAAM,UAAU1D,EAAV,EAAcgE,QAAd,EAAwB;AAAA,EAC5BtF,2BAAA,CAA4BsB,EAA5B,EAAgCiE,KAAhC,EAAuCD,QAAvC,EAD4B;AAAA,EAE5B,OAAOA,QAAP,CAF4B;AAAA,EAA9B,CAHK;AAAA,CAOLtb,GAAA,GAAM,UAAUsX,EAAV,EAAc;AAAA,EAClB,OAAOsD,SAAA,CAAUtD,EAAV,EAAciE,KAAd,IAAuBjE,EAAA,CAAGiE,KAAH,CAAvB,GAAmC,EAA1C,CADkB;AAAA,EAApB,CAPK;AAAA,CAUL1D,GAAA,GAAM,UAAUP,EAAV,EAAc;AAAA,EAClB,OAAOsD,SAAA,CAAUtD,EAAV,EAAciE,KAAd,CAAP,CADkB;AAAA,EAApB,CAVK;AAAA,CAvCP;AAsDA/gB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfqf,GAAA,EAAKA,GADU;AAAA,CAEfhb,GAAA,EAAKA,GAFU;AAAA,CAGf6X,GAAA,EAAKA,GAHU;AAAA,CAIfsC,OAAA,EAASA,OAJM;AAAA,CAKfc,SAAA,EAAWA,SALI;AAAA,CAAjB,C;;;;;;ACtDA,IAAIpF,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAI8lB,aAAA,GAAgB9lB,mBAAA,CAAQ,EAAR,CAApB,CADA;AAGA,IAAI8mB,OAAA,GAAUlF,MAAA,CAAOkF,OAArB,CAHA;AAKAvgB,MAAA,CAAOmB,OAAP,GAAiB,OAAOof,OAAP,KAAmB,UAAnB,IAAiC,cAAcS,IAAd,CAAmBzB,aAAA,CAAcgB,OAAd,CAAnB,CAAlD,C;;;;;;ACLA,IAAIU,MAAA,GAASxnB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIynB,GAAA,GAAMznB,mBAAA,CAAQ,EAAR,CAAV,CADA;AAGA,IAAIoK,IAAA,GAAOod,MAAA,CAAO,MAAP,CAAX,CAHA;AAKAjhB,MAAA,CAAOmB,OAAP,GAAiB,UAAU2C,GAAV,EAAe;AAAA,CAC9B,OAAOD,IAAA,CAAKC,GAAL,KAAc,CAAAD,IAAA,CAAKC,GAAL,IAAYod,GAAA,CAAIpd,GAAJ,CAAZ,CAArB,CAD8B;AAAA,CAAhC,C;;;;;;ACLA,IAAIqd,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd;AACA,IAAIumB,KAAA,GAAQvmB,mBAAA,CAAQ,EAAR,CAAZ,CADA;AAGC,CAAAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2C,GAAV,EAAetD,KAAf,EAAsB;AAAA,CACtC,OAAOwf,KAAA,CAAMlc,GAAN,KAAe,CAAAkc,KAAA,CAAMlc,GAAN,IAAatD,KAAA,KAAUmc,SAAV,GAAsBnc,KAAtB,GAA8B,EAA3C,CAAtB,CADsC;AAAA,CAAvC,CAAD,CAEG,UAFH,EAEe,EAFf,EAEmB4gB,IAFnB,CAEwB;AAAA,CACtBC,OAAA,EAAS,OADa;AAAA,CAEtBC,IAAA,EAAMH,OAAA,GAAU,MAAV,GAAmB,QAFH;AAAA,CAGtBI,SAAA,EAAW,sCAHW;AAAA,CAFxB,E;;;;;;ACHAvhB,MAAA,CAAOmB,OAAP,GAAiB,KAAjB,C;;;;;;ACAA,IAAIqgB,EAAA,GAAK,CAAT;AACA,IAAIC,OAAA,GAAU5kB,IAAA,CAAK6kB,MAAL,EAAd,CADA;AAGA1hB,MAAA,CAAOmB,OAAP,GAAiB,UAAU2C,GAAV,EAAe;AAAA,CAC9B,OAAO,YAAYyR,MAAA,CAAOzR,GAAA,KAAQ6Y,SAAR,GAAoB,EAApB,GAAyB7Y,GAAhC,CAAZ,GAAmD,IAAnD,GAA2D,GAAE0d,EAAF,GAAOC,OAAP,CAAD,CAAiBjD,QAAjB,CAA0B,EAA1B,CAAjE,CAD8B;AAAA,CAAhC,C;;;;;;ACHAxe,MAAA,CAAOmB,OAAP,GAAiB,EAAjB,C;;;;;;ACAA,IAAIkc,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV;AACA,IAAIkoB,OAAA,GAAUloB,mBAAA,CAAQ,EAAR,CAAd,CADA;AAEA,IAAImoB,8BAAA,GAAiCnoB,mBAAA,CAAQ,EAAR,CAArC,CAFA;AAGA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU6a,MAAV,EAAkBF,MAAlB,EAA0B;AAAA,CACzC,IAAIjY,IAAA,GAAO8d,OAAA,CAAQ7F,MAAR,CAAX,CADyC;AAAA,CAEzC,IAAI+B,cAAA,GAAiBqB,oBAAA,CAAqB3D,CAA1C,CAFyC;AAAA,CAGzC,IAAID,wBAAA,GAA2BsG,8BAAA,CAA+BrG,CAA9D,CAHyC;AAAA,CAIzC,KAAK,IAAIpX,CAAA,GAAI,CAAR,CAAL,CAAgBA,CAAA,GAAIN,IAAA,CAAKwR,MAAzB,EAAiClR,CAAA,EAAjC,EAAsC;AAAA,EACpC,IAAIL,GAAA,GAAMD,IAAA,CAAKM,CAAL,CAAV,CADoC;AAAA,EAEpC,IAAI,CAACkZ,GAAA,CAAIrB,MAAJ,EAAYlY,GAAZ,CAAL;AAAA,GAAuB+Z,cAAA,CAAe7B,MAAf,EAAuBlY,GAAvB,EAA4BwX,wBAAA,CAAyBQ,MAAzB,EAAiChY,GAAjC,CAA5B,EAFa;AAAA,EAJG;AAAA,CAA3C,C;;;;;;ACLA,IAAI+d,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB;AACA,IAAIqoB,yBAAA,GAA4BroB,mBAAA,CAAQ,EAAR,CAAhC,CADA;AAEA,IAAIsoB,2BAAA,GAA8BtoB,mBAAA,CAAQ,EAAR,CAAlC,CAFA;AAGA,IAAI2lB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB0gB,UAAA,CAAW,SAAX,EAAsB,SAAtB,KAAoC,SAASF,OAAT,CAAiB7E,EAAjB,EAAqB;AAAA,CACxE,IAAIjZ,IAAA,GAAOie,yBAAA,CAA0BvG,CAA1B,CAA4B6D,QAAA,CAAStC,EAAT,CAA5B,CAAX,CADwE;AAAA,CAExE,IAAIkF,qBAAA,GAAwBD,2BAAA,CAA4BxG,CAAxD,CAFwE;AAAA,CAGxE,OAAOyG,qBAAA,GAAwBne,IAAA,CAAKoe,MAAL,CAAYD,qBAAA,CAAsBlF,EAAtB,CAAZ,CAAxB,GAAiEjZ,IAAxE,CAHwE;AAAA,CAA1E,C;;;;;;ACNA,IAAIqe,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX;AACA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CADA;AAGA,IAAI0oB,SAAA,GAAY,UAAUC,QAAV,EAAoB;AAAA,CAClC,OAAO,OAAOA,QAAP,IAAmB,UAAnB,GAAgCA,QAAhC,GAA2CzF,SAAlD,CADkC;AAAA,CAApC,CAHA;AAOA3c,MAAA,CAAOmB,OAAP,GAAiB,UAAUkhB,SAAV,EAAqBlf,MAArB,EAA6B;AAAA,CAC5C,OAAOsX,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuB8M,SAAA,CAAUD,IAAA,CAAKG,SAAL,CAAV,KAA8BF,SAAA,CAAU9G,MAAA,CAAOgH,SAAP,CAAV,CAArD,GACHH,IAAA,CAAKG,SAAL,KAAmBH,IAAA,CAAKG,SAAL,EAAgBlf,MAAhB,CAAnB,IAA8CkY,MAAA,CAAOgH,SAAP,KAAqBhH,MAAA,CAAOgH,SAAP,EAAkBlf,MAAlB,CADvE,CAD4C;AAAA,CAA9C,C;;;;;;ACPA,IAAIkY,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AAEAuG,MAAA,CAAOmB,OAAP,GAAiBka,MAAjB,C;;;;;;ACFA,IAAIiH,kBAAA,GAAqB7oB,mBAAA,CAAQ,EAAR,CAAzB;AACA,IAAI8oB,WAAA,GAAc9oB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGA,IAAI6mB,UAAA,GAAaiC,WAAA,CAAYN,MAAZ,CAAmB,QAAnB,EAA6B,WAA7B,CAAjB,CAHA;AAOA9gB,OAAA,CAAQoa,CAAR,GAAYld,MAAA,CAAOmkB,mBAAP,IAA8B,SAASA,mBAAT,CAA6BhF,CAA7B,EAAgC;AAAA,CACxE,OAAO8E,kBAAA,CAAmB9E,CAAnB,EAAsB8C,UAAtB,CAAP,CADwE;AAAA,CAA1E,C;;;;;;ACPA,IAAIjD,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV;AACA,IAAI0jB,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB,CADA;AAEA,IAAIgpB,OAAA,GAAUhpB,mBAAA,CAAQ,EAAR,EAAuCgpB,OAArD,CAFA;AAGA,IAAInC,UAAA,GAAa7mB,mBAAA,CAAQ,EAAR,CAAjB,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUge,MAAV,EAAkBuD,KAAlB,EAAyB;AAAA,CACxC,IAAIlF,CAAA,GAAIL,eAAA,CAAgBgC,MAAhB,CAAR,CADwC;AAAA,CAExC,IAAIhb,CAAA,GAAI,CAAR,CAFwC;AAAA,CAGxC,IAAI1B,MAAA,GAAS,EAAb,CAHwC;AAAA,CAIxC,IAAIqB,GAAJ,CAJwC;AAAA,CAKxC,KAAKA,GAAL,IAAY0Z,CAAZ;AAAA,EAAe,CAACH,GAAA,CAAIiD,UAAJ,EAAgBxc,GAAhB,CAAD,IAAyBuZ,GAAA,CAAIG,CAAJ,EAAO1Z,GAAP,CAAzB,IAAwCrB,MAAA,CAAO2e,IAAP,CAAYtd,GAAZ,CAAxC,CALyB;AAAA,CAOxC,OAAO4e,KAAA,CAAMrN,MAAN,GAAelR,CAAtB;AAAA,EAAyB,IAAIkZ,GAAA,CAAIG,CAAJ,EAAO1Z,GAAA,GAAM4e,KAAA,CAAMve,CAAA,EAAN,CAAb,CAAJ,EAA8B;AAAA,GACrD,CAACse,OAAA,CAAQhgB,MAAR,EAAgBqB,GAAhB,CAAD,IAAyBrB,MAAA,CAAO2e,IAAP,CAAYtd,GAAZ,CAAzB,CADqD;AAAA,GAPf;AAAA,CAUxC,OAAOrB,MAAP,CAVwC;AAAA,CAA1C,C;;;;;;ACLA,IAAI0a,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB;AACA,IAAIkpB,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAImpB,eAAA,GAAkBnpB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAKA,IAAIopB,YAAA,GAAe,UAAUC,WAAV,EAAuB;AAAA,CACxC,OAAO,UAAUC,KAAV,EAAiBC,EAAjB,EAAqBC,SAArB,EAAgC;AAAA,EACrC,IAAIzF,CAAA,GAAIL,eAAA,CAAgB4F,KAAhB,CAAR,CADqC;AAAA,EAErC,IAAI1N,MAAA,GAASsN,QAAA,CAASnF,CAAA,CAAEnI,MAAX,CAAb,CAFqC;AAAA,EAGrC,IAAI6N,KAAA,GAAQN,eAAA,CAAgBK,SAAhB,EAA2B5N,MAA3B,CAAZ,CAHqC;AAAA,EAIrC,IAAI7U,KAAJ,CAJqC;AAAA,EAOrC,IAAIsiB,WAAA,IAAeE,EAAA,IAAMA,EAAzB;AAAA,GAA6B,OAAO3N,MAAA,GAAS6N,KAAhB,EAAuB;AAAA,IAClD1iB,KAAA,GAAQgd,CAAA,CAAE0F,KAAA,EAAF,CAAR,CADkD;AAAA,IAGlD,IAAI1iB,KAAA,IAASA,KAAb;AAAA,KAAoB,OAAO,IAAP,CAH8B;AAAA,IAApD;AAAA;AAAA,GAKO,OAAM6U,MAAA,GAAS6N,KAAf,EAAsBA,KAAA,EAAtB,EAA+B;AAAA,IACpC,IAAK,CAAAJ,WAAA,IAAeI,KAAA,IAAS1F,CAAxB,CAAD,IAA+BA,CAAA,CAAE0F,KAAF,MAAaF,EAAhD;AAAA,KAAoD,OAAOF,WAAA,IAAeI,KAAf,IAAwB,CAA/B,CADhB;AAAA,IAZD;AAAA,EAcnC,OAAO,CAACJ,WAAD,IAAgB,CAAC,CAAxB,CAdmC;AAAA,EAAvC,CADwC;AAAA,CAA1C,CALA;AAwBA9iB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAGfgiB,QAAA,EAAUN,YAAA,CAAa,IAAb,CAHK;AAAA,CAMfJ,OAAA,EAASI,YAAA,CAAa,KAAb,CANM;AAAA,CAAjB,C;;;;;;ACxBA,IAAIO,SAAA,GAAY3pB,mBAAA,CAAQ,EAAR,CAAhB;AAEA,IAAI4pB,GAAA,GAAMxmB,IAAA,CAAKwmB,GAAf,CAFA;AAMArjB,MAAA,CAAOmB,OAAP,GAAiB,UAAUmiB,QAAV,EAAoB;AAAA,CACnC,OAAOA,QAAA,GAAW,CAAX,GAAeD,GAAA,CAAID,SAAA,CAAUE,QAAV,CAAJ,EAAyB,gBAAzB,CAAf,GAA4D,CAAnE,CADmC;AAAA,CAArC,C;;;;;;ACNA,IAAIC,IAAA,GAAO1mB,IAAA,CAAK0mB,IAAhB;AACA,IAAIC,KAAA,GAAQ3mB,IAAA,CAAK2mB,KAAjB,CADA;AAKAxjB,MAAA,CAAOmB,OAAP,GAAiB,UAAUmiB,QAAV,EAAoB;AAAA,CACnC,OAAOpf,KAAA,CAAMof,QAAA,GAAW,CAACA,QAAlB,IAA8B,CAA9B,GAAmC,CAAAA,QAAA,GAAW,CAAX,GAAeE,KAAf,GAAuBD,IAAvB,CAAD,CAA8BD,QAA9B,CAAzC,CADmC;AAAA,CAArC,C;;;;;;ACLA,IAAIF,SAAA,GAAY3pB,mBAAA,CAAQ,EAAR,CAAhB;AAEA,IAAIgqB,GAAA,GAAM5mB,IAAA,CAAK4mB,GAAf,CAFA;AAGA,IAAIJ,GAAA,GAAMxmB,IAAA,CAAKwmB,GAAf,CAHA;AAQArjB,MAAA,CAAOmB,OAAP,GAAiB,UAAU+hB,KAAV,EAAiB7N,MAAjB,EAAyB;AAAA,CACxC,IAAIqO,OAAA,GAAUN,SAAA,CAAUF,KAAV,CAAd,CADwC;AAAA,CAExC,OAAOQ,OAAA,GAAU,CAAV,GAAcD,GAAA,CAAIC,OAAA,GAAUrO,MAAd,EAAsB,CAAtB,CAAd,GAAyCgO,GAAA,CAAIK,OAAJ,EAAarO,MAAb,CAAhD,CAFwC;AAAA,CAA1C,C;;;;;;ACPArV,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACf,aADe;AAAA,CAEf,gBAFe;AAAA,CAGf,eAHe;AAAA,CAIf,sBAJe;AAAA,CAKf,gBALe;AAAA,CAMf,UANe;AAAA,CAOf,SAPe;AAAA,CAAjB,C;;;;;;ACDAA,OAAA,CAAQoa,CAAR,GAAYld,MAAA,CAAO2jB,qBAAnB,C;;;;;;ACAA,IAAIpE,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AAEA,IAAIkqB,WAAA,GAAc,iBAAlB,CAFA;AAIA,IAAI/H,QAAA,GAAW,UAAUgI,OAAV,EAAmBC,SAAnB,EAA8B;AAAA,CAC3C,IAAIrjB,KAAA,GAAQuV,IAAA,CAAK+N,SAAA,CAAUF,OAAV,CAAL,CAAZ,CAD2C;AAAA,CAE3C,OAAOpjB,KAAA,IAASujB,QAAT,GAAoB,IAApB,GACHvjB,KAAA,IAASwjB,MAAT,GAAkB,KAAlB,GACA,OAAOH,SAAP,IAAoB,UAApB,GAAiCjG,KAAA,CAAMiG,SAAN,CAAjC,GACA,CAAC,CAACA,SAHN,CAF2C;AAAA,CAA7C,CAJA;AAYA,IAAIC,SAAA,GAAYlI,QAAA,CAASkI,SAAT,GAAqB,UAAUG,MAAV,EAAkB;AAAA,CACrD,OAAO1O,MAAA,CAAO0O,MAAP,EAAeC,OAAf,CAAuBP,WAAvB,EAAoC,GAApC,EAAyCQ,WAAzC,EAAP,CADqD;AAAA,CAAvD,CAZA;AAgBA,IAAIpO,IAAA,GAAO6F,QAAA,CAAS7F,IAAT,GAAgB,EAA3B,CAhBA;AAiBA,IAAIiO,MAAA,GAASpI,QAAA,CAASoI,MAAT,GAAkB,GAA/B,CAjBA;AAkBA,IAAID,QAAA,GAAWnI,QAAA,CAASmI,QAAT,GAAoB,GAAnC,CAlBA;AAoBA/jB,MAAA,CAAOmB,OAAP,GAAiBya,QAAjB,C;;;;;;ACpBAniB,mBAAA,CAAQ,EAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,YAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI6hB,wBAAA,GAA2B7hB,mBAAA,CAAQ,EAAR,EAA2D8hB,CAA1F,CAFA;AAGA,IAAIoH,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAI4qB,UAAA,GAAa5qB,mBAAA,CAAQ,EAAR,CAAjB,CAJA;AAKA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CALA;AAMA,IAAI6qB,oBAAA,GAAuB7qB,mBAAA,CAAQ,EAAR,CAA3B,CANA;AAOA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAPA;AASA,IAAI8qB,gBAAA,GAAmB,GAAGC,UAA1B,CATA;AAUA,IAAInB,GAAA,GAAMxmB,IAAA,CAAKwmB,GAAf,CAVA;AAYA,IAAIoB,uBAAA,GAA0BH,oBAAA,CAAqB,YAArB,CAA9B,CAZA;AAcA,IAAII,gBAAA,GAAmB,CAACvD,OAAD,IAAY,CAACsD,uBAAb,IAAwC,CAAC,CAAC,YAAY;AAAA,CAC3E,IAAIlI,UAAA,GAAajB,wBAAA,CAAyB/F,MAAA,CAAOiH,SAAhC,EAA2C,YAA3C,CAAjB,CAD2E;AAAA,CAE3E,OAAOD,UAAA,IAAc,CAACA,UAAA,CAAW5b,QAAjC,CAF2E;AAAA,CAAZ,EAAjE,CAdA;AAqBAya,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAiCjI,MAAA,EAAQ,CAACgI,gBAAD,IAAqB,CAACD,uBAA/D;AAAA,CAAF,EAA4F;AAAA,CAC1FD,UAAA,EAAY,SAASA,UAAT,CAAoBI,YAApB,EAAuD;AAAA,EACjE,IAAIC,IAAA,GAAOtP,MAAA,CAAO8I,sBAAA,CAAuB,IAAvB,CAAP,CAAX,CADiE;AAAA,EAEjEgG,UAAA,CAAWO,YAAX,EAFiE;AAAA,EAGjE,IAAI1B,KAAA,GAAQP,QAAA,CAASU,GAAA,CAAI5I,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAA1C,EAAqDkI,IAAA,CAAKxP,MAA1D,CAAT,CAAZ,CAHiE;AAAA,EAIjE,IAAIyP,MAAA,GAASvP,MAAA,CAAOqP,YAAP,CAAb,CAJiE;AAAA,EAKjE,OAAOL,gBAAA,GACHA,gBAAA,CAAiB5G,IAAjB,CAAsBkH,IAAtB,EAA4BC,MAA5B,EAAoC5B,KAApC,CADG,GAEH2B,IAAA,CAAKpG,KAAL,CAAWyE,KAAX,EAAkBA,KAAA,GAAQ4B,MAAA,CAAOzP,MAAjC,MAA6CyP,MAFjD,CALiE;AAAA,EADuB;AAAA,CAA5F,E;;;;;;ACrBA,IAAIC,QAAA,GAAWtrB,mBAAA,CAAQ,EAAR,CAAf;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAIiI,QAAA,CAASjI,EAAT,CAAJ,EAAkB;AAAA,EAChB,MAAM4B,SAAA,CAAU,+CAAV,CAAN,CADgB;AAAA,EADW;AAAA,CAG3B,OAAO5B,EAAP,CAH2B;AAAA,CAA/B,C;;;;;;ACFA,IAAI6B,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAIwrB,KAAA,GAAQD,eAAA,CAAgB,OAAhB,CAAZ,CAJA;AAQAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAIiI,QAAJ,CAD6B;AAAA,CAE7B,OAAOpG,QAAA,CAAS7B,EAAT,KAAiB,CAAC,CAAAiI,QAAA,GAAWjI,EAAA,CAAGmI,KAAH,CAAX,CAAD,KAA2BtI,SAA3B,GAAuC,CAAC,CAACoI,QAAzC,GAAoDzG,OAAA,CAAQxB,EAAR,KAAe,QAAnE,CAAxB,CAF6B;AAAA,CAA/B,C;;;;;;ACRA,IAAIzB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIwnB,MAAA,GAASxnB,mBAAA,CAAQ,EAAR,CAAb,CADA;AAEA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAFA;AAGA,IAAIynB,GAAA,GAAMznB,mBAAA,CAAQ,EAAR,CAAV,CAHA;AAIA,IAAIyrB,aAAA,GAAgBzrB,mBAAA,CAAQ,EAAR,CAApB,CAJA;AAKA,IAAI0rB,iBAAA,GAAoB1rB,mBAAA,CAAQ,EAAR,CAAxB,CALA;AAOA,IAAI2rB,qBAAA,GAAwBnE,MAAA,CAAO,KAAP,CAA5B,CAPA;AAQA,IAAIoE,MAAA,GAAShK,MAAA,CAAOgK,MAApB,CARA;AASA,IAAIC,qBAAA,GAAwBH,iBAAA,GAAoBE,MAApB,GAA6BA,MAAA,IAAUA,MAAA,CAAOE,aAAjB,IAAkCrE,GAA3F,CATA;AAWAlhB,MAAA,CAAOmB,OAAP,GAAiB,UAAU5C,IAAV,EAAgB;AAAA,CAC/B,IAAI,CAAC8e,GAAA,CAAI+H,qBAAJ,EAA2B7mB,IAA3B,CAAL,EAAuC;AAAA,EACrC,IAAI2mB,aAAA,IAAiB7H,GAAA,CAAIgI,MAAJ,EAAY9mB,IAAZ,CAArB;AAAA,GAAwC6mB,qBAAA,CAAsB7mB,IAAtB,IAA8B8mB,MAAA,CAAO9mB,IAAP,CAA9B,CAAxC;AAAA;AAAA,GACK6mB,qBAAA,CAAsB7mB,IAAtB,IAA8B+mB,qBAAA,CAAsB,YAAY/mB,IAAlC,CAA9B,CAFgC;AAAA,EADR;AAAA,CAI7B,OAAO6mB,qBAAA,CAAsB7mB,IAAtB,CAAP,CAJ6B;AAAA,CAAjC,C;;;;;;ACXA,IAAIqf,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,CAAC,CAAC9C,MAAA,CAAO2jB,qBAAT,IAAkC,CAACpE,KAAA,CAAM,YAAY;AAAA,CAGpE,OAAO,CAACrI,MAAA,CAAO8P,MAAA,EAAP,CAAR,CAHoE;AAAA,CAAlB,CAApD,C;;;;;;ACFA,IAAIH,aAAA,GAAgBzrB,mBAAA,CAAQ,EAAR,CAApB;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB+jB,aAAA,IAEZ,CAACG,MAAA,CAAOzI,IAFI,IAIZ,OAAOyI,MAAA,CAAOlgB,QAAd,IAA0B,QAJ/B,C;;;;;;ACFA,IAAI6f,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AAEA,IAAIwrB,KAAA,GAAQD,eAAA,CAAgB,OAAhB,CAAZ,CAFA;AAIAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAUqkB,WAAV,EAAuB;AAAA,CACtC,IAAIC,MAAA,GAAS,GAAb,CADsC;AAAA,CAEtC,IAAI;AAAA,EACF,MAAMD,WAAN,EAAmBC,MAAnB,EADE;AAAA,EAAJ,CAEE,OAAOC,CAAP,EAAU;AAAA,EACV,IAAI;AAAA,GACFD,MAAA,CAAOR,KAAP,IAAgB,KAAhB,CADE;AAAA,GAEF,OAAO,MAAMO,WAAN,EAAmBC,MAAnB,CAAP,CAFE;AAAA,GAAJ,CAGE,OAAOlK,CAAP,EAAU;AAAA,GAJF;AAAA,EAJ0B;AAAA,CASpC,OAAO,KAAP,CAToC;AAAA,CAAxC,C;;;;;;ACJA,IAAIF,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIksB,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGA,IAAIkkB,IAAA,GAAOpY,QAAA,CAASoY,IAApB,CAHA;AAKA3d,MAAA,CAAOmB,OAAP,GAAiB,UAAUykB,WAAV,EAAuBC,MAAvB,EAA+BxQ,MAA/B,EAAuC;AAAA,CACtD,OAAOsQ,IAAA,CAAKhI,IAAL,EAAWtC,MAAA,CAAOuK,WAAP,EAAoBpJ,SAApB,CAA8BqJ,MAA9B,CAAX,EAAkDxQ,MAAlD,CAAP,CADsD;AAAA,CAAxD,C;;;;;;ACLA,IAAI8M,SAAA,GAAY1oB,mBAAA,CAAQ,EAAR,CAAhB;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUG,EAAV,EAAcujB,IAAd,EAAoBxP,MAApB,EAA4B;AAAA,CAC3C8M,SAAA,CAAU7gB,EAAV,EAD2C;AAAA,CAE3C,IAAIujB,IAAA,KAASlI,SAAb;AAAA,EAAwB,OAAOrb,EAAP,CAFmB;AAAA,CAG3C,QAAQ+T,MAAR;AAAA,CACE,KAAK,CAAL;AAAA,EAAQ,OAAO,YAAY;AAAA,GACzB,OAAO/T,EAAA,CAAGqc,IAAH,CAAQkH,IAAR,CAAP,CADyB;AAAA,GAAnB,CADV;AAAA,CAIE,KAAK,CAAL;AAAA,EAAQ,OAAO,UAAUpN,CAAV,EAAa;AAAA,GAC1B,OAAOnW,EAAA,CAAGqc,IAAH,CAAQkH,IAAR,EAAcpN,CAAd,CAAP,CAD0B;AAAA,GAApB,CAJV;AAAA,CAOE,KAAK,CAAL;AAAA,EAAQ,OAAO,UAAUA,CAAV,EAAaC,CAAb,EAAgB;AAAA,GAC7B,OAAOpW,EAAA,CAAGqc,IAAH,CAAQkH,IAAR,EAAcpN,CAAd,EAAiBC,CAAjB,CAAP,CAD6B;AAAA,GAAvB,CAPV;AAAA,CAUE,KAAK,CAAL;AAAA,EAAQ,OAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgBC,CAAhB,EAAmB;AAAA,GAChC,OAAOrW,EAAA,CAAGqc,IAAH,CAAQkH,IAAR,EAAcpN,CAAd,EAAiBC,CAAjB,EAAoBC,CAApB,CAAP,CADgC;AAAA,GAA1B,CAVV;AAAA,EAH2C;AAAA,CAiB3C,OAAO,YAAyB;AAAA,EAC9B,OAAOrW,EAAA,CAAGwkB,KAAH,CAASjB,IAAT,EAAepK,SAAf,CAAP,CAD8B;AAAA,EAAhC,CAjB2C;AAAA,CAA7C,C;;;;;;ACHAza,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAI,OAAOA,EAAP,IAAa,UAAjB,EAA6B;AAAA,EAC3B,MAAM4B,SAAA,CAAUnJ,MAAA,CAAOuH,EAAP,IAAa,oBAAvB,CAAN,CAD2B;AAAA,EADA;AAAA,CAG3B,OAAOA,EAAP,CAH2B;AAAA,CAA/B,C;;;;;;ACAArjB,mBAAA,CAAQ,EAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,UAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI6hB,wBAAA,GAA2B7hB,mBAAA,CAAQ,EAAR,EAA2D8hB,CAA1F,CAFA;AAGA,IAAIoH,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAI4qB,UAAA,GAAa5qB,mBAAA,CAAQ,EAAR,CAAjB,CAJA;AAKA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CALA;AAMA,IAAI6qB,oBAAA,GAAuB7qB,mBAAA,CAAQ,EAAR,CAA3B,CANA;AAOA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAPA;AASA,IAAIssB,cAAA,GAAiB,GAAGC,QAAxB,CATA;AAUA,IAAI3C,GAAA,GAAMxmB,IAAA,CAAKwmB,GAAf,CAVA;AAYA,IAAIoB,uBAAA,GAA0BH,oBAAA,CAAqB,UAArB,CAA9B,CAZA;AAcA,IAAII,gBAAA,GAAmB,CAACvD,OAAD,IAAY,CAACsD,uBAAb,IAAwC,CAAC,CAAC,YAAY;AAAA,CAC3E,IAAIlI,UAAA,GAAajB,wBAAA,CAAyB/F,MAAA,CAAOiH,SAAhC,EAA2C,UAA3C,CAAjB,CAD2E;AAAA,CAE3E,OAAOD,UAAA,IAAc,CAACA,UAAA,CAAW5b,QAAjC,CAF2E;AAAA,CAAZ,EAAjE,CAdA;AAqBAya,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAiCjI,MAAA,EAAQ,CAACgI,gBAAD,IAAqB,CAACD,uBAA/D;AAAA,CAAF,EAA4F;AAAA,CAC1FuB,QAAA,EAAU,SAASA,QAAT,CAAkBpB,YAAlB,EAA8D;AAAA,EACtE,IAAIC,IAAA,GAAOtP,MAAA,CAAO8I,sBAAA,CAAuB,IAAvB,CAAP,CAAX,CADsE;AAAA,EAEtEgG,UAAA,CAAWO,YAAX,EAFsE;AAAA,EAGtE,IAAIqB,WAAA,GAAcxL,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAAxD,CAHsE;AAAA,EAItE,IAAIuJ,GAAA,GAAMvD,QAAA,CAASkC,IAAA,CAAKxP,MAAd,CAAV,CAJsE;AAAA,EAKtE,IAAIjX,GAAA,GAAM6nB,WAAA,KAAgBtJ,SAAhB,GAA4BuJ,GAA5B,GAAkC7C,GAAA,CAAIV,QAAA,CAASsD,WAAT,CAAJ,EAA2BC,GAA3B,CAA5C,CALsE;AAAA,EAMtE,IAAIpB,MAAA,GAASvP,MAAA,CAAOqP,YAAP,CAAb,CANsE;AAAA,EAOtE,OAAOmB,cAAA,GACHA,cAAA,CAAepI,IAAf,CAAoBkH,IAApB,EAA0BC,MAA1B,EAAkC1mB,GAAlC,CADG,GAEHymB,IAAA,CAAKpG,KAAL,CAAWrgB,GAAA,GAAM0mB,MAAA,CAAOzP,MAAxB,EAAgCjX,GAAhC,MAAyC0mB,MAF7C,CAPsE;AAAA,EADkB;AAAA,CAA5F,E;;;;;;ACrBArrB,mBAAA,CAAQ,EAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,UAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI4qB,UAAA,GAAa5qB,mBAAA,CAAQ,EAAR,CAAjB,CAFA;AAGA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CAHA;AAIA,IAAI6qB,oBAAA,GAAuB7qB,mBAAA,CAAQ,EAAR,CAA3B,CAJA;AAQA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAiCjI,MAAA,EAAQ,CAAC4H,oBAAA,CAAqB,UAArB,CAA1C;AAAA,CAAF,EAAgF;AAAA,CAC9EnB,QAAA,EAAU,SAASA,QAAT,CAAkByB,YAAlB,EAAqD;AAAA,EAC7D,OAAO,CAAC,CAAC,CAACrP,MAAA,CAAO8I,sBAAA,CAAuB,IAAvB,CAAP,EACPoE,OADO,CACC4B,UAAA,CAAWO,YAAX,CADD,EAC2BnK,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SADjE,CAAV,CAD6D;AAAA,EADe;AAAA,CAAhF,E;;;;;;ACRAljB,mBAAA,CAAQ,EAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,OAAZ,EAAqB,UAArB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI0sB,SAAA,GAAY1sB,mBAAA,CAAQ,EAAR,EAAuC0pB,QAAvD,CAFA;AAGA,IAAIiD,gBAAA,GAAmB3sB,mBAAA,CAAQ,EAAR,CAAvB,CAHA;AAIA,IAAI4sB,uBAAA,GAA0B5sB,mBAAA,CAAQ,EAAR,CAA9B,CAJA;AAMA,IAAI6sB,cAAA,GAAiBD,uBAAA,CAAwB,SAAxB,EAAmC;AAAA,CAAEE,SAAA,EAAW,IAAb;AAAA,CAAmB,GAAG,CAAtB;AAAA,CAAnC,CAArB,CANA;AAUAnL,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,OAAV;AAAA,CAAmB2I,KAAA,EAAO,IAA1B;AAAA,CAAgCjI,MAAA,EAAQ,CAAC4J,cAAzC;AAAA,CAAF,EAA6D;AAAA,CAC3DnD,QAAA,EAAU,SAASA,QAAT,CAAkBH,EAAlB,EAA4C;AAAA,EACpD,OAAOmD,SAAA,CAAU,IAAV,EAAgBnD,EAAhB,EAAoBvI,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAA1D,CAAP,CADoD;AAAA,EADK;AAAA,CAA7D,EAVA;AAiBAyJ,gBAAA,CAAiB,UAAjB,E;;;;;;ACjBA,IAAIpB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AACA,IAAIW,MAAA,GAASX,mBAAA,CAAQ,EAAR,CAAb,CADA;AAEA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CAFA;AAIA,IAAI+sB,WAAA,GAAcxB,eAAA,CAAgB,aAAhB,CAAlB,CAJA;AAKA,IAAIyB,cAAA,GAAiB3L,KAAA,CAAM0B,SAA3B,CALA;AASA,IAAIiK,cAAA,CAAeD,WAAf,KAA+B7J,SAAnC,EAA8C;AAAA,CAC5CuC,oBAAA,CAAqB3D,CAArB,CAAuBkL,cAAvB,EAAuCD,WAAvC,EAAoD;AAAA,EAClD9lB,YAAA,EAAc,IADoC;AAAA,EAElDF,KAAA,EAAOpG,MAAA,CAAO,IAAP,CAF2C;AAAA,EAApD,EAD4C;AAAA,CAT9C;AAiBA4F,MAAA,CAAOmB,OAAP,GAAiB,UAAU2C,GAAV,EAAe;AAAA,CAC9B2iB,cAAA,CAAeD,WAAf,EAA4B1iB,GAA5B,IAAmC,IAAnC,CAD8B;AAAA,CAAhC,C;;;;;;ACjBA,IAAIsb,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAIitB,gBAAA,GAAmBjtB,mBAAA,CAAQ,EAAR,CAAvB,CADA;AAEA,IAAI8oB,WAAA,GAAc9oB,mBAAA,CAAQ,EAAR,CAAlB,CAFA;AAGA,IAAI6mB,UAAA,GAAa7mB,mBAAA,CAAQ,EAAR,CAAjB,CAHA;AAIA,IAAIktB,IAAA,GAAOltB,mBAAA,CAAQ,EAAR,CAAX,CAJA;AAKA,IAAImtB,qBAAA,GAAwBntB,mBAAA,CAAQ,EAAR,CAA5B,CALA;AAMA,IAAI4mB,SAAA,GAAY5mB,mBAAA,CAAQ,EAAR,CAAhB,CANA;AAQA,IAAIotB,EAAA,GAAK,GAAT,CARA;AASA,IAAIC,EAAA,GAAK,GAAT,CATA;AAUA,IAAIC,SAAA,GAAY,WAAhB,CAVA;AAWA,IAAIC,MAAA,GAAS,QAAb,CAXA;AAYA,IAAIC,QAAA,GAAW5G,SAAA,CAAU,UAAV,CAAf,CAZA;AAcA,IAAI6G,gBAAA,GAAmB,YAAY;AAAA,CAAnC,CAdA;AAgBA,IAAIC,SAAA,GAAY,UAAUC,OAAV,EAAmB;AAAA,CACjC,OAAON,EAAA,GAAKE,MAAL,GAAcH,EAAd,GAAmBO,OAAnB,GAA6BN,EAA7B,GAAkC,GAAlC,GAAwCE,MAAxC,GAAiDH,EAAxD,CADiC;AAAA,CAAnC,CAhBA;AAqBA,IAAIQ,yBAAA,GAA4B,UAAUC,eAAV,EAA2B;AAAA,CACzDA,eAAA,CAAgBC,KAAhB,CAAsBJ,SAAA,CAAU,EAAV,CAAtB,EADyD;AAAA,CAEzDG,eAAA,CAAgBE,KAAhB,GAFyD;AAAA,CAGzD,IAAIC,IAAA,GAAOH,eAAA,CAAgBI,YAAhB,CAA6BrpB,MAAxC,CAHyD;AAAA,CAIzDipB,eAAA,GAAkB,IAAlB,CAJyD;AAAA,CAKzD,OAAOG,IAAP,CALyD;AAAA,CAA3D,CArBA;AA8BA,IAAIE,wBAAA,GAA2B,YAAY;AAAA,CAEzC,IAAIC,MAAA,GAAShB,qBAAA,CAAsB,QAAtB,CAAb,CAFyC;AAAA,CAGzC,IAAIiB,EAAA,GAAK,SAASb,MAAT,GAAkB,GAA3B,CAHyC;AAAA,CAIzC,IAAIc,cAAJ,CAJyC;AAAA,CAKzCF,MAAA,CAAOG,KAAP,CAAaC,OAAb,GAAuB,MAAvB,CALyC;AAAA,CAMzCrB,IAAA,CAAKsB,WAAL,CAAiBL,MAAjB,EANyC;AAAA,CAQzCA,MAAA,CAAOM,GAAP,GAAa3S,MAAA,CAAOsS,EAAP,CAAb,CARyC;AAAA,CASzCC,cAAA,GAAiBF,MAAA,CAAOO,aAAP,CAAqB7sB,QAAtC,CATyC;AAAA,CAUzCwsB,cAAA,CAAeM,IAAf,GAVyC;AAAA,CAWzCN,cAAA,CAAeP,KAAf,CAAqBJ,SAAA,CAAU,mBAAV,CAArB,EAXyC;AAAA,CAYzCW,cAAA,CAAeN,KAAf,GAZyC;AAAA,CAazC,OAAOM,cAAA,CAAeO,CAAtB,CAbyC;AAAA,CAA3C,CA9BA;AAmDA,IAAIf,eAAJ,CAnDA;AAoDA,IAAIgB,eAAA,GAAkB,YAAY;AAAA,CAChC,IAAI;AAAA,EAEFhB,eAAA,GAAkBhsB,QAAA,CAASitB,MAAT,IAAmB,IAAIC,aAAJ,CAAkB,UAAlB,CAArC,CAFE;AAAA,EAAJ,CAGE,OAAO9K,KAAP,EAAc;AAAA,EAJgB;AAAA,CAKhC4K,eAAA,GAAkBhB,eAAA,GAAkBD,yBAAA,CAA0BC,eAA1B,CAAlB,GAA+DK,wBAAA,EAAjF,CALgC;AAAA,CAMhC,IAAItS,MAAA,GAASkN,WAAA,CAAYlN,MAAzB,CANgC;AAAA,CAOhC,OAAOA,MAAA,EAAP;AAAA,EAAiB,OAAOiT,eAAA,CAAgBvB,SAAhB,EAA2BxE,WAAA,CAAYlN,MAAZ,CAA3B,CAAP,CAPe;AAAA,CAQhC,OAAOiT,eAAA,EAAP,CARgC;AAAA,CAAlC,CApDA;AA+DAhI,UAAA,CAAW2G,QAAX,IAAuB,IAAvB,CA/DA;AAmEAjnB,MAAA,CAAOmB,OAAP,GAAiB9C,MAAA,CAAOjE,MAAP,IAAiB,SAASA,MAAT,CAAgBojB,CAAhB,EAAmBiL,UAAnB,EAA+B;AAAA,CAC/D,IAAIhmB,MAAJ,CAD+D;AAAA,CAE/D,IAAI+a,CAAA,KAAM,IAAV,EAAgB;AAAA,EACd0J,gBAAA,CAAiBH,SAAjB,IAA8B3H,QAAA,CAAS5B,CAAT,CAA9B,CADc;AAAA,EAEd/a,MAAA,GAAS,IAAIykB,gBAAJ,EAAT,CAFc;AAAA,EAGdA,gBAAA,CAAiBH,SAAjB,IAA8B,IAA9B,CAHc;AAAA,EAKdtkB,MAAA,CAAOwkB,QAAP,IAAmBzJ,CAAnB,CALc;AAAA,EAAhB;AAAA,EAMO/a,MAAA,GAAS6lB,eAAA,EAAT,CARwD;AAAA,CAS/D,OAAOG,UAAA,KAAe9L,SAAf,GAA2Bla,MAA3B,GAAoCikB,gBAAA,CAAiBjkB,MAAjB,EAAyBgmB,UAAzB,CAA3C,CAT+D;AAAA,CAAjE,C;;;;;;ACnEA,IAAIzL,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CADA;AAEA,IAAI2lB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAIivB,UAAA,GAAajvB,mBAAA,CAAQ,EAAR,CAAjB,CAHA;AAOAuG,MAAA,CAAOmB,OAAP,GAAiB6b,WAAA,GAAc3e,MAAA,CAAOqoB,gBAArB,GAAwC,SAASA,gBAAT,CAA0BlJ,CAA1B,EAA6BiL,UAA7B,EAAyC;AAAA,CAChGrJ,QAAA,CAAS5B,CAAT,EADgG;AAAA,CAEhG,IAAI3Z,IAAA,GAAO6kB,UAAA,CAAWD,UAAX,CAAX,CAFgG;AAAA,CAGhG,IAAIpT,MAAA,GAASxR,IAAA,CAAKwR,MAAlB,CAHgG;AAAA,CAIhG,IAAI6N,KAAA,GAAQ,CAAZ,CAJgG;AAAA,CAKhG,IAAIpf,GAAJ,CALgG;AAAA,CAMhG,OAAOuR,MAAA,GAAS6N,KAAhB;AAAA,EAAuBhE,oBAAA,CAAqB3D,CAArB,CAAuBiC,CAAvB,EAA0B1Z,GAAA,GAAMD,IAAA,CAAKqf,KAAA,EAAL,CAAhC,EAA+CuF,UAAA,CAAW3kB,GAAX,CAA/C,EANyE;AAAA,CAOhG,OAAO0Z,CAAP,CAPgG;AAAA,CAAlG,C;;;;;;ACPA,IAAI8E,kBAAA,GAAqB7oB,mBAAA,CAAQ,EAAR,CAAzB;AACA,IAAI8oB,WAAA,GAAc9oB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB9C,MAAA,CAAOwF,IAAP,IAAe,SAASA,IAAT,CAAc2Z,CAAd,EAAiB;AAAA,CAC/C,OAAO8E,kBAAA,CAAmB9E,CAAnB,EAAsB+E,WAAtB,CAAP,CAD+C;AAAA,CAAjD,C;;;;;;ACLA,IAAIV,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB0gB,UAAA,CAAW,UAAX,EAAuB,iBAAvB,CAAjB,C;;;;;;ACFA,IAAI7E,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CADA;AAEA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAFA;AAIA,IAAIokB,cAAA,GAAiBxf,MAAA,CAAOwf,cAA5B,CAJA;AAKA,IAAI8K,KAAA,GAAQ,EAAZ,CALA;AAOA,IAAIC,OAAA,GAAU,UAAU9L,EAAV,EAAc;AAAA,CAAE,MAAMA,EAAN,CAAF;AAAA,CAA5B,CAPA;AASA9c,MAAA,CAAOmB,OAAP,GAAiB,UAAUqkB,WAAV,EAAuB3J,OAAvB,EAAgC;AAAA,CAC/C,IAAIwB,GAAA,CAAIsL,KAAJ,EAAWnD,WAAX,CAAJ;AAAA,EAA6B,OAAOmD,KAAA,CAAMnD,WAAN,CAAP,CADkB;AAAA,CAE/C,IAAI,CAAC3J,OAAL;AAAA,EAAcA,OAAA,GAAU,EAAV,CAFiC;AAAA,CAG/C,IAAI1Y,MAAA,GAAS,GAAGqiB,WAAH,CAAb,CAH+C;AAAA,CAI/C,IAAIe,SAAA,GAAYlJ,GAAA,CAAIxB,OAAJ,EAAa,WAAb,IAA4BA,OAAA,CAAQ0K,SAApC,GAAgD,KAAhE,CAJ+C;AAAA,CAK/C,IAAIsC,SAAA,GAAYxL,GAAA,CAAIxB,OAAJ,EAAa,CAAb,IAAkBA,OAAA,CAAQ,CAAR,CAAlB,GAA+B+M,OAA/C,CAL+C;AAAA,CAM/C,IAAIE,SAAA,GAAYzL,GAAA,CAAIxB,OAAJ,EAAa,CAAb,IAAkBA,OAAA,CAAQ,CAAR,CAAlB,GAA+Bc,SAA/C,CAN+C;AAAA,CAQ/C,OAAOgM,KAAA,CAAMnD,WAAN,IAAqB,CAAC,CAACriB,MAAF,IAAY,CAACya,KAAA,CAAM,YAAY;AAAA,EACzD,IAAI2I,SAAA,IAAa,CAACvJ,WAAlB;AAAA,GAA+B,OAAO,IAAP,CAD0B;AAAA,EAEzD,IAAIQ,CAAA,GAAI,EAAEnI,MAAA,EAAQ,CAAC,CAAX,EAAR,CAFyD;AAAA,EAIzD,IAAIkR,SAAJ;AAAA,GAAe1I,cAAA,CAAeL,CAAf,EAAkB,CAAlB,EAAqB;AAAA,IAAE/c,UAAA,EAAY,IAAd;AAAA,IAAoB+E,GAAA,EAAKojB,OAAzB;AAAA,IAArB,EAAf;AAAA;AAAA,GACKpL,CAAA,CAAE,CAAF,IAAO,CAAP,CALoD;AAAA,EAOzDra,MAAA,CAAOwa,IAAP,CAAYH,CAAZ,EAAeqL,SAAf,EAA0BC,SAA1B,EAPyD;AAAA,EAAlB,CAAzC,CAR+C;AAAA,CAAjD,C;;;;;;ACTArvB,mBAAA,CAAQ,EAAR;AACAA,mBAAA,CAAQ,EAAR,EADA;AAEA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAFA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKpH,KAAL,CAAWiO,IAA5B,C;;;;;;;ACJa;AACb,IAAIC,MAAA,GAASvvB,mBAAA,CAAQ,EAAR,EAAyCuvB,MAAtD,CADA;AAEA,IAAIxJ,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAFA;AAGA,IAAIwvB,cAAA,GAAiBxvB,mBAAA,CAAQ,EAAR,CAArB,CAHA;AAKA,IAAIyvB,eAAA,GAAkB,iBAAtB,CALA;AAMA,IAAIC,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CANA;AAOA,IAAIf,gBAAA,GAAmBD,mBAAA,CAAoBiB,SAApB,CAA8ByI,eAA9B,CAAvB,CAPA;AAWAD,cAAA,CAAe1T,MAAf,EAAuB,QAAvB,EAAiC,UAAU6T,QAAV,EAAoB;AAAA,CACnDD,gBAAA,CAAiB,IAAjB,EAAuB;AAAA,EACrB/nB,IAAA,EAAM8nB,eADe;AAAA,EAErBjF,MAAA,EAAQ1O,MAAA,CAAO6T,QAAP,CAFa;AAAA,EAGrBlG,KAAA,EAAO,CAHc;AAAA,EAAvB,EADmD;AAAA,CAArD,EAQG,SAASnf,IAAT,GAAgB;AAAA,CACjB,IAAIb,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CADiB;AAAA,CAEjB,IAAIwE,MAAA,GAAS/gB,KAAA,CAAM+gB,MAAnB,CAFiB;AAAA,CAGjB,IAAIf,KAAA,GAAQhgB,KAAA,CAAMggB,KAAlB,CAHiB;AAAA,CAIjB,IAAImG,KAAJ,CAJiB;AAAA,CAKjB,IAAInG,KAAA,IAASe,MAAA,CAAO5O,MAApB;AAAA,EAA4B,OAAO;AAAA,GAAE7U,KAAA,EAAOmc,SAAT;AAAA,GAAoBnZ,IAAA,EAAM,IAA1B;AAAA,GAAP,CALX;AAAA,CAMjB6lB,KAAA,GAAQL,MAAA,CAAO/E,MAAP,EAAef,KAAf,CAAR,CANiB;AAAA,CAOjBhgB,KAAA,CAAMggB,KAAN,IAAemG,KAAA,CAAMhU,MAArB,CAPiB;AAAA,CAQjB,OAAO;AAAA,EAAE7U,KAAA,EAAO6oB,KAAT;AAAA,EAAgB7lB,IAAA,EAAM,KAAtB;AAAA,EAAP,CARiB;AAAA,CARnB,E;;;;;;ACXA,IAAI4f,SAAA,GAAY3pB,mBAAA,CAAQ,EAAR,CAAhB;AACA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CADA;AAIA,IAAIopB,YAAA,GAAe,UAAUyG,iBAAV,EAA6B;AAAA,CAC9C,OAAO,UAAUvG,KAAV,EAAiBjN,GAAjB,EAAsB;AAAA,EAC3B,IAAIyT,CAAA,GAAIhU,MAAA,CAAO8I,sBAAA,CAAuB0E,KAAvB,CAAP,CAAR,CAD2B;AAAA,EAE3B,IAAIyG,QAAA,GAAWpG,SAAA,CAAUtN,GAAV,CAAf,CAF2B;AAAA,EAG3B,IAAI2T,IAAA,GAAOF,CAAA,CAAElU,MAAb,CAH2B;AAAA,EAI3B,IAAIuC,KAAJ,EAAWhY,MAAX,CAJ2B;AAAA,EAK3B,IAAI4pB,QAAA,GAAW,CAAX,IAAgBA,QAAA,IAAYC,IAAhC;AAAA,GAAsC,OAAOH,iBAAA,GAAoB,EAApB,GAAyB3M,SAAhC,CALX;AAAA,EAM3B/E,KAAA,GAAQ2R,CAAA,CAAEG,UAAF,CAAaF,QAAb,CAAR,CAN2B;AAAA,EAO3B,OAAO5R,KAAA,GAAQ,MAAR,IAAkBA,KAAA,GAAQ,MAA1B,IAAoC4R,QAAA,GAAW,CAAX,KAAiBC,IAArD,IACD,CAAA7pB,MAAA,GAAS2pB,CAAA,CAAEG,UAAF,CAAaF,QAAA,GAAW,CAAxB,CAAT,CAAD,GAAwC,MADtC,IACgD5pB,MAAA,GAAS,MADzD,GAED0pB,iBAAA,GAAoBC,CAAA,CAAEP,MAAF,CAASQ,QAAT,CAApB,GAAyC5R,KAFxC,GAGD0R,iBAAA,GAAoBC,CAAA,CAAE9K,KAAF,CAAQ+K,QAAR,EAAkBA,QAAA,GAAW,CAA7B,CAApB,GAAuD,CAAA5R,KAAA,GAAQ,MAAR,IAAkB,EAAlB,CAAD,GAA0B,CAAAhY,MAAA,GAAS,MAAT,CAA1B,GAA6C,OAHzG,CAP2B;AAAA,EAA7B,CAD8C;AAAA,CAAhD,CAJA;AAmBAI,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAGfwoB,MAAA,EAAQ9G,YAAA,CAAa,KAAb,CAHO;AAAA,CAMfmG,MAAA,EAAQnG,YAAA,CAAa,IAAb,CANO;AAAA,CAAjB,C;;;;;;;ACnBa;AACb,IAAIzH,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAImwB,yBAAA,GAA4BnwB,mBAAA,CAAQ,EAAR,CAAhC,CAFA;AAGA,IAAIowB,cAAA,GAAiBpwB,mBAAA,CAAQ,EAAR,CAArB,CAHA;AAIA,IAAIqwB,cAAA,GAAiBrwB,mBAAA,CAAQ,EAAR,CAArB,CAJA;AAKA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CALA;AAMA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CANA;AAOA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CAPA;AAQA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CARA;AASA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CATA;AAUA,IAAIuwB,SAAA,GAAYvwB,mBAAA,CAAQ,EAAR,CAAhB,CAVA;AAWA,IAAIwwB,aAAA,GAAgBxwB,mBAAA,CAAQ,EAAR,CAApB,CAXA;AAaA,IAAImI,iBAAA,GAAoBqoB,aAAA,CAAcroB,iBAAtC,CAbA;AAcA,IAAIsoB,sBAAA,GAAyBD,aAAA,CAAcC,sBAA3C,CAdA;AAeA,IAAIC,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAfA;AAgBA,IAAIoF,IAAA,GAAO,MAAX,CAhBA;AAiBA,IAAIC,MAAA,GAAS,QAAb,CAjBA;AAkBA,IAAIC,OAAA,GAAU,SAAd,CAlBA;AAoBA,IAAIC,UAAA,GAAa,YAAY;AAAA,CAAE,OAAO,IAAP,CAAF;AAAA,CAA7B,CApBA;AAsBAvqB,MAAA,CAAOmB,OAAP,GAAiB,UAAUqpB,QAAV,EAAoBC,IAApB,EAA0BC,mBAA1B,EAA+C3mB,IAA/C,EAAqD4mB,OAArD,EAA8DC,MAA9D,EAAsExO,MAAtE,EAA8E;AAAA,CAC7FwN,yBAAA,CAA0Bc,mBAA1B,EAA+CD,IAA/C,EAAqD1mB,IAArD,EAD6F;AAAA,CAG7F,IAAI8mB,kBAAA,GAAqB,UAAUC,IAAV,EAAgB;AAAA,EACvC,IAAIA,IAAA,KAASH,OAAT,IAAoBI,eAAxB;AAAA,GAAyC,OAAOA,eAAP,CADF;AAAA,EAEvC,IAAI,CAACb,sBAAD,IAA2BY,IAAA,IAAQE,iBAAvC;AAAA,GAA0D,OAAOA,iBAAA,CAAkBF,IAAlB,CAAP,CAFnB;AAAA,EAGvC,QAAQA,IAAR;AAAA,EACE,KAAKV,IAAL;AAAA,GAAW,OAAO,SAASvmB,IAAT,GAAgB;AAAA,IAAE,OAAO,IAAI6mB,mBAAJ,CAAwB,IAAxB,EAA8BI,IAA9B,CAAP,CAAF;AAAA,IAAvB,CADb;AAAA,EAEE,KAAKT,MAAL;AAAA,GAAa,OAAO,SAAStoB,MAAT,GAAkB;AAAA,IAAE,OAAO,IAAI2oB,mBAAJ,CAAwB,IAAxB,EAA8BI,IAA9B,CAAP,CAAF;AAAA,IAAzB,CAFf;AAAA,EAGE,KAAKR,OAAL;AAAA,GAAc,OAAO,SAASW,OAAT,GAAmB;AAAA,IAAE,OAAO,IAAIP,mBAAJ,CAAwB,IAAxB,EAA8BI,IAA9B,CAAP,CAAF;AAAA,IAA1B,CAHhB;AAAA,GAHuC;AAAA,EAOrC,OAAO,YAAY;AAAA,GAAE,OAAO,IAAIJ,mBAAJ,CAAwB,IAAxB,CAAP,CAAF;AAAA,GAAnB,CAPqC;AAAA,EAAzC,CAH6F;AAAA,CAa7F,IAAIQ,aAAA,GAAgBT,IAAA,GAAO,WAA3B,CAb6F;AAAA,CAc7F,IAAIU,qBAAA,GAAwB,KAA5B,CAd6F;AAAA,CAe7F,IAAIH,iBAAA,GAAoBR,QAAA,CAAShO,SAAjC,CAf6F;AAAA,CAgB7F,IAAI4O,cAAA,GAAiBJ,iBAAA,CAAkBb,QAAlB,KAChBa,iBAAA,CAAkB,YAAlB,CADgB,IAEhBL,OAAA,IAAWK,iBAAA,CAAkBL,OAAlB,CAFhB,CAhB6F;AAAA,CAmB7F,IAAII,eAAA,GAAkB,CAACb,sBAAD,IAA2BkB,cAA3B,IAA6CP,kBAAA,CAAmBF,OAAnB,CAAnE,CAnB6F;AAAA,CAoB7F,IAAIU,iBAAA,GAAoBZ,IAAA,IAAQ,OAAR,GAAkBO,iBAAA,CAAkBC,OAAlB,IAA6BG,cAA/C,GAAgEA,cAAxF,CApB6F;AAAA,CAqB7F,IAAIE,wBAAJ,EAA8BC,OAA9B,EAAuCC,GAAvC,CArB6F;AAAA,CAwB7F,IAAIH,iBAAJ,EAAuB;AAAA,EACrBC,wBAAA,GAA2BzB,cAAA,CAAewB,iBAAA,CAAkB1N,IAAlB,CAAuB,IAAI6M,QAAJ,EAAvB,CAAf,CAA3B,CADqB;AAAA,EAErB,IAAI5oB,iBAAA,KAAsBvD,MAAA,CAAOme,SAA7B,IAA0C8O,wBAAA,CAAyBvnB,IAAvE,EAA6E;AAAA,GAC3E,IAAI,CAACod,OAAD,IAAY0I,cAAA,CAAeyB,wBAAf,MAA6C1pB,iBAA7D,EAAgF;AAAA,IAC9E,IAAIkoB,cAAJ,EAAoB;AAAA,KAClBA,cAAA,CAAewB,wBAAf,EAAyC1pB,iBAAzC,EADkB;AAAA,KAApB,MAEO,IAAI,OAAO0pB,wBAAA,CAAyBnB,QAAzB,CAAP,IAA6C,UAAjD,EAA6D;AAAA,KAClE3O,2BAAA,CAA4B8P,wBAA5B,EAAsDnB,QAAtD,EAAgEI,UAAhE,EADkE;AAAA,KAHU;AAAA,IADL;AAAA,GAS3ER,cAAA,CAAeuB,wBAAf,EAAyCJ,aAAzC,EAAwD,IAAxD,EAA8D,IAA9D,EAT2E;AAAA,GAU3E,IAAI/J,OAAJ;AAAA,IAAa6I,SAAA,CAAUkB,aAAV,IAA2BX,UAA3B,CAV8D;AAAA,GAFxD;AAAA,EAxBsE;AAAA,CAyC7F,IAAII,OAAA,IAAWN,MAAX,IAAqBe,cAArB,IAAuCA,cAAA,CAAe7sB,IAAf,KAAwB8rB,MAAnE,EAA2E;AAAA,EACzEc,qBAAA,GAAwB,IAAxB,CADyE;AAAA,EAEzEJ,eAAA,GAAkB,SAAShpB,MAAT,GAAkB;AAAA,GAAE,OAAOqpB,cAAA,CAAezN,IAAf,CAAoB,IAApB,CAAP,CAAF;AAAA,GAApC,CAFyE;AAAA,EAzCkB;AAAA,CA+C7F,IAAK,EAACwD,OAAD,IAAY/E,MAAZ,CAAD,IAAwB4O,iBAAA,CAAkBb,QAAlB,MAAgCY,eAA5D,EAA6E;AAAA,EAC3EvP,2BAAA,CAA4BwP,iBAA5B,EAA+Cb,QAA/C,EAAyDY,eAAzD,EAD2E;AAAA,EA/CgB;AAAA,CAkD7Ff,SAAA,CAAUS,IAAV,IAAkBM,eAAlB,CAlD6F;AAAA,CAqD7F,IAAIJ,OAAJ,EAAa;AAAA,EACXY,OAAA,GAAU;AAAA,GACRxpB,MAAA,EAAQ8oB,kBAAA,CAAmBR,MAAnB,CADA;AAAA,GAERxmB,IAAA,EAAM+mB,MAAA,GAASG,eAAT,GAA2BF,kBAAA,CAAmBT,IAAnB,CAFzB;AAAA,GAGRa,OAAA,EAASJ,kBAAA,CAAmBP,OAAnB,CAHD;AAAA,GAAV,CADW;AAAA,EAMX,IAAIlO,MAAJ;AAAA,GAAY,KAAKoP,GAAL,IAAYD,OAAZ,EAAqB;AAAA,IAC/B,IAAIrB,sBAAA,IAA0BiB,qBAA1B,IAAmD,CAAE,CAAAK,GAAA,IAAOR,iBAAP,CAAzD,EAAoF;AAAA,KAClFvP,QAAA,CAASuP,iBAAT,EAA4BQ,GAA5B,EAAiCD,OAAA,CAAQC,GAAR,CAAjC,EADkF;AAAA,KADrD;AAAA,IAAjC;AAAA;AAAA,GAIOpQ,CAAA,CAAE;AAAA,IAAEY,MAAA,EAAQyO,IAAV;AAAA,IAAgB9F,KAAA,EAAO,IAAvB;AAAA,IAA6BjI,MAAA,EAAQwN,sBAAA,IAA0BiB,qBAA/D;AAAA,IAAF,EAA0FI,OAA1F,EAVI;AAAA,EArDgF;AAAA,CAkE7F,OAAOA,OAAP,CAlE6F;AAAA,CAA/F,C;;;;;;;ACtBa;AACb,IAAI3pB,iBAAA,GAAoBnI,mBAAA,CAAQ,EAAR,EAAuCmI,iBAA/D,CADA;AAEA,IAAIxH,MAAA,GAASX,mBAAA,CAAQ,EAAR,CAAb,CAFA;AAGA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAHA;AAIA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CAJA;AAKA,IAAIuwB,SAAA,GAAYvwB,mBAAA,CAAQ,EAAR,CAAhB,CALA;AAOA,IAAI8wB,UAAA,GAAa,YAAY;AAAA,CAAE,OAAO,IAAP,CAAF;AAAA,CAA7B,CAPA;AASAvqB,MAAA,CAAOmB,OAAP,GAAiB,UAAUupB,mBAAV,EAA+BD,IAA/B,EAAqC1mB,IAArC,EAA2C;AAAA,CAC1D,IAAImnB,aAAA,GAAgBT,IAAA,GAAO,WAA3B,CAD0D;AAAA,CAE1DC,mBAAA,CAAoBlO,SAApB,GAAgCpiB,MAAA,CAAOwH,iBAAP,EAA0B,EAAEmC,IAAA,EAAMmZ,wBAAA,CAAyB,CAAzB,EAA4BnZ,IAA5B,CAAR,EAA1B,CAAhC,CAF0D;AAAA,CAG1DgmB,cAAA,CAAeW,mBAAf,EAAoCQ,aAApC,EAAmD,KAAnD,EAA0D,IAA1D,EAH0D;AAAA,CAI1DlB,SAAA,CAAUkB,aAAV,IAA2BX,UAA3B,CAJ0D;AAAA,CAK1D,OAAOG,mBAAP,CAL0D;AAAA,CAA5D,C;;;;;;;ACTa;AACb,IAAIb,cAAA,GAAiBpwB,mBAAA,CAAQ,EAAR,CAArB,CADA;AAEA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAFA;AAGA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAHA;AAIA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAJA;AAKA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CALA;AAOA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAPA;AAQA,IAAIkF,sBAAA,GAAyB,KAA7B,CARA;AAUA,IAAIK,UAAA,GAAa,YAAY;AAAA,CAAE,OAAO,IAAP,CAAF;AAAA,CAA7B,CAVA;AAcA,IAAI3oB,iBAAJ,EAAuB6pB,iCAAvB,EAA0DC,aAA1D,CAdA;AAgBA,IAAI,GAAG7nB,IAAP,EAAa;AAAA,CACX6nB,aAAA,GAAgB,GAAG7nB,IAAH,EAAhB,CADW;AAAA,CAGX,IAAI,CAAE,WAAU6nB,aAAV,CAAN;AAAA,EAAgCxB,sBAAA,GAAyB,IAAzB,CAAhC;AAAA,MACK;AAAA,EACHuB,iCAAA,GAAoC5B,cAAA,CAAeA,cAAA,CAAe6B,aAAf,CAAf,CAApC,CADG;AAAA,EAEH,IAAID,iCAAA,KAAsCptB,MAAA,CAAOme,SAAjD;AAAA,GAA4D5a,iBAAA,GAAoB6pB,iCAApB,CAFzD;AAAA,EAJM;AAAA,CAhBb;AA0BA,IAAI7pB,iBAAA,IAAqB+a,SAAzB;AAAA,CAAoC/a,iBAAA,GAAoB,EAApB,CA1BpC;AA6BA,IAAI,CAACuf,OAAD,IAAY,CAAC9D,GAAA,CAAIzb,iBAAJ,EAAuBuoB,QAAvB,CAAjB,EAAmD;AAAA,CACjD3O,2BAAA,CAA4B5Z,iBAA5B,EAA+CuoB,QAA/C,EAAyDI,UAAzD,EADiD;AAAA,CA7BnD;AAiCAvqB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfS,iBAAA,EAAmBA,iBADJ;AAAA,CAEfsoB,sBAAA,EAAwBA,sBAFT;AAAA,CAAjB,C;;;;;;ACjCA,IAAI7M,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV;AACA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAI4mB,SAAA,GAAY5mB,mBAAA,CAAQ,EAAR,CAAhB,CAFA;AAGA,IAAImyB,wBAAA,GAA2BnyB,mBAAA,CAAQ,EAAR,CAA/B,CAHA;AAKA,IAAIwtB,QAAA,GAAW5G,SAAA,CAAU,UAAV,CAAf,CALA;AAMA,IAAIwL,eAAA,GAAkBxtB,MAAA,CAAOme,SAA7B,CANA;AAUAxc,MAAA,CAAOmB,OAAP,GAAiByqB,wBAAA,GAA2BvtB,MAAA,CAAOwrB,cAAlC,GAAmD,UAAUrM,CAAV,EAAa;AAAA,CAC/EA,CAAA,GAAImO,QAAA,CAASnO,CAAT,CAAJ,CAD+E;AAAA,CAE/E,IAAIH,GAAA,CAAIG,CAAJ,EAAOyJ,QAAP,CAAJ;AAAA,EAAsB,OAAOzJ,CAAA,CAAEyJ,QAAF,CAAP,CAFyD;AAAA,CAG/E,IAAI,OAAOzJ,CAAA,CAAEtjB,WAAT,IAAwB,UAAxB,IAAsCsjB,CAAA,YAAaA,CAAA,CAAEtjB,WAAzD,EAAsE;AAAA,EACpE,OAAOsjB,CAAA,CAAEtjB,WAAF,CAAcsiB,SAArB,CADoE;AAAA,EAHS;AAAA,CAK7E,OAAOgB,CAAA,YAAanf,MAAb,GAAsBwtB,eAAtB,GAAwC,IAA/C,CAL6E;AAAA,CAAjF,C;;;;;;ACVA,IAAIxN,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUmiB,QAAV,EAAoB;AAAA,CACnC,OAAOjlB,MAAA,CAAOggB,sBAAA,CAAuBiF,QAAvB,CAAP,CAAP,CADmC;AAAA,CAArC,C;;;;;;ACJA,IAAI1F,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,CAACyc,KAAA,CAAM,YAAY;AAAA,CAClC,SAASyK,CAAT,GAAa;AAAA,EADqB;AAAA,CAElCA,CAAA,CAAE7L,SAAF,CAAYtiB,WAAZ,GAA0B,IAA1B,CAFkC;AAAA,CAGlC,OAAOmE,MAAA,CAAOwrB,cAAP,CAAsB,IAAIxB,CAAJ,EAAtB,MAAmCA,CAAA,CAAE7L,SAA5C,CAHkC;AAAA,CAAlB,CAAlB,C;;;;;;ACFA,IAAIqB,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE;AACA,IAAI8B,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAIyxB,aAAA,GAAgBlG,eAAA,CAAgB,aAAhB,CAApB,CAJA;AAMAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAcgP,GAAd,EAAmB5P,MAAnB,EAA2B;AAAA,CAC1C,IAAIY,EAAA,IAAM,CAACO,GAAA,CAAIP,EAAA,GAAKZ,MAAA,GAASY,EAAT,GAAcA,EAAA,CAAGN,SAA1B,EAAqC0O,aAArC,CAAX,EAAgE;AAAA,EAC9DrN,cAAA,CAAef,EAAf,EAAmBoO,aAAnB,EAAkC;AAAA,GAAExqB,YAAA,EAAc,IAAhB;AAAA,GAAsBF,KAAA,EAAOsrB,GAA7B;AAAA,GAAlC,EAD8D;AAAA,EADtB;AAAA,CAA5C,C;;;;;;ACNA9rB,MAAA,CAAOmB,OAAP,GAAiB,EAAjB,C;;;;;;ACAA,IAAIie,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAIsyB,kBAAA,GAAqBtyB,mBAAA,CAAQ,EAAR,CAAzB,CADA;AAOAuG,MAAA,CAAOmB,OAAP,GAAiB9C,MAAA,CAAOyrB,cAAP,IAA0B,gBAAe,EAAf,GAAoB,YAAY;AAAA,CACzE,IAAIkC,cAAA,GAAiB,KAArB,CADyE;AAAA,CAEzE,IAAIhL,IAAA,GAAO,EAAX,CAFyE;AAAA,CAGzE,IAAIiL,MAAJ,CAHyE;AAAA,CAIzE,IAAI;AAAA,EACFA,MAAA,GAAS5tB,MAAA,CAAOid,wBAAP,CAAgCjd,MAAA,CAAOme,SAAvC,EAAkD,WAAlD,EAA+DgE,GAAxE,CADE;AAAA,EAEFyL,MAAA,CAAOtO,IAAP,CAAYqD,IAAZ,EAAkB,EAAlB,EAFE;AAAA,EAGFgL,cAAA,GAAiBhL,IAAA,YAAgBlG,KAAjC,CAHE;AAAA,EAAJ,CAIE,OAAO4C,KAAP,EAAc;AAAA,EARyD;AAAA,CASzE,OAAO,SAASoM,cAAT,CAAwBtM,CAAxB,EAA2BmH,KAA3B,EAAkC;AAAA,EACvCvF,QAAA,CAAS5B,CAAT,EADuC;AAAA,EAEvCuO,kBAAA,CAAmBpH,KAAnB,EAFuC;AAAA,EAGvC,IAAIqH,cAAJ;AAAA,GAAoBC,MAAA,CAAOtO,IAAP,CAAYH,CAAZ,EAAemH,KAAf,EAApB;AAAA;AAAA,GACKnH,CAAA,CAAE0O,SAAF,GAAcvH,KAAd,CAJkC;AAAA,EAKvC,OAAOnH,CAAP,CALuC;AAAA,EAAzC,CATyE;AAAA,CAAZ,EAApB,GAgBrCb,SAhBqC,CAA3C,C;;;;;;ACPA,IAAIgC,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAI,CAAC6B,QAAA,CAAS7B,EAAT,CAAD,IAAiBA,EAAA,KAAO,IAA5B,EAAkC;AAAA,EAChC,MAAM4B,SAAA,CAAU,eAAenJ,MAAA,CAAOuH,EAAP,CAAf,GAA4B,iBAAtC,CAAN,CADgC;AAAA,EADL;AAAA,CAG3B,OAAOA,EAAP,CAH2B;AAAA,CAA/B,C;;;;;;ACFA,IAAI1B,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAIsvB,IAAA,GAAOtvB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAEA,IAAI0yB,2BAAA,GAA8B1yB,mBAAA,CAAQ,EAAR,CAAlC,CAFA;AAIA,IAAI2yB,mBAAA,GAAsB,CAACD,2BAAA,CAA4B,UAAUloB,QAAV,EAAoB;AAAA,CACzE6W,KAAA,CAAMiO,IAAN,CAAW9kB,QAAX,EADyE;AAAA,CAAhD,CAA3B,CAJA;AAUAmX,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,OAAV;AAAA,CAAmBG,IAAA,EAAM,IAAzB;AAAA,CAA+BO,MAAA,EAAQ0P,mBAAvC;AAAA,CAAF,EAAgE,EAC9DrD,IAAA,EAAMA,IADwD,EAAhE,E;;;;;;;ACVa;AACb,IAAIpD,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAEA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAI4yB,4BAAA,GAA+B5yB,mBAAA,CAAQ,EAAR,CAAnC,CAHA;AAIA,IAAI6yB,qBAAA,GAAwB7yB,mBAAA,CAAQ,EAAR,CAA5B,CAJA;AAKA,IAAIkpB,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CALA;AAMA,IAAI8yB,cAAA,GAAiB9yB,mBAAA,CAAQ,EAAR,CAArB,CANA;AAOA,IAAI+yB,iBAAA,GAAoB/yB,mBAAA,CAAQ,EAAR,CAAxB,CAPA;AAWAuG,MAAA,CAAOmB,OAAP,GAAiB,SAAS4nB,IAAT,CAAc0D,SAAd,EAAwE;AAAA,CACvF,IAAIjP,CAAA,GAAImO,QAAA,CAASc,SAAT,CAAR,CADuF;AAAA,CAEvF,IAAIC,CAAA,GAAI,OAAO,IAAP,IAAe,UAAf,GAA4B,IAA5B,GAAmC5R,KAA3C,CAFuF;AAAA,CAGvF,IAAI6R,eAAA,GAAkBlS,SAAA,CAAUpF,MAAhC,CAHuF;AAAA,CAIvF,IAAIuX,KAAA,GAAQD,eAAA,GAAkB,CAAlB,GAAsBlS,SAAA,CAAU,CAAV,CAAtB,GAAqCkC,SAAjD,CAJuF;AAAA,CAKvF,IAAIkQ,OAAA,GAAUD,KAAA,KAAUjQ,SAAxB,CALuF;AAAA,CAMvF,IAAI3Y,cAAA,GAAiBwoB,iBAAA,CAAkBhP,CAAlB,CAArB,CANuF;AAAA,CAOvF,IAAI0F,KAAA,GAAQ,CAAZ,CAPuF;AAAA,CAQvF,IAAI7N,MAAJ,EAAY5S,MAAZ,EAAoBqqB,IAApB,EAA0B3nB,QAA1B,EAAoCpB,IAApC,EAA0CvD,KAA1C,CARuF;AAAA,CASvF,IAAIqsB,OAAJ;AAAA,EAAaD,KAAA,GAAQjH,IAAA,CAAKiH,KAAL,EAAYD,eAAA,GAAkB,CAAlB,GAAsBlS,SAAA,CAAU,CAAV,CAAtB,GAAqCkC,SAAjD,EAA4D,CAA5D,CAAR,CAT0E;AAAA,CAWvF,IAAI3Y,cAAA,IAAkB2Y,SAAlB,IAA+B,CAAE,CAAA+P,CAAA,IAAK5R,KAAL,IAAcwR,qBAAA,CAAsBtoB,cAAtB,CAAd,CAArC,EAA2F;AAAA,EACzFmB,QAAA,GAAWnB,cAAA,CAAe2Z,IAAf,CAAoBH,CAApB,CAAX,CADyF;AAAA,EAEzFzZ,IAAA,GAAOoB,QAAA,CAASpB,IAAhB,CAFyF;AAAA,EAGzFtB,MAAA,GAAS,IAAIiqB,CAAJ,EAAT,CAHyF;AAAA,EAIzF,OAAM,CAAE,CAAAI,IAAA,GAAO/oB,IAAA,CAAK4Z,IAAL,CAAUxY,QAAV,CAAP,CAAD,CAA6B3B,IAApC,EAA0C0f,KAAA,EAA1C,EAAmD;AAAA,GACjD1iB,KAAA,GAAQqsB,OAAA,GAAUR,4BAAA,CAA6BlnB,QAA7B,EAAuCynB,KAAvC,EAA8C;AAAA,IAACE,IAAA,CAAKtsB,KAAN;AAAA,IAAa0iB,KAAb;AAAA,IAA9C,EAAmE,IAAnE,CAAV,GAAqF4J,IAAA,CAAKtsB,KAAlG,CADiD;AAAA,GAEjD+rB,cAAA,CAAe9pB,MAAf,EAAuBygB,KAAvB,EAA8B1iB,KAA9B,EAFiD;AAAA,GAJsC;AAAA,EAA3F,MAQO;AAAA,EACL6U,MAAA,GAASsN,QAAA,CAASnF,CAAA,CAAEnI,MAAX,CAAT,CADK;AAAA,EAEL5S,MAAA,GAAS,IAAIiqB,CAAJ,CAAMrX,MAAN,CAAT,CAFK;AAAA,EAGL,OAAMA,MAAA,GAAS6N,KAAf,EAAsBA,KAAA,EAAtB,EAA+B;AAAA,GAC7B1iB,KAAA,GAAQqsB,OAAA,GAAUD,KAAA,CAAMpP,CAAA,CAAE0F,KAAF,CAAN,EAAgBA,KAAhB,CAAV,GAAmC1F,CAAA,CAAE0F,KAAF,CAA3C,CAD6B;AAAA,GAE7BqJ,cAAA,CAAe9pB,MAAf,EAAuBygB,KAAvB,EAA8B1iB,KAA9B,EAF6B;AAAA,GAH1B;AAAA,EAnBgF;AAAA,CA2BvFiC,MAAA,CAAO4S,MAAP,GAAgB6N,KAAhB,CA3BuF;AAAA,CA4BvF,OAAOzgB,MAAP,CA5BuF;AAAA,CAAzF,C;;;;;;ACXA,IAAI2c,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUgE,QAAV,EAAoB7D,EAApB,EAAwBd,KAAxB,EAA+B8pB,OAA/B,EAAwC;AAAA,CACvD,IAAI;AAAA,EACF,OAAOA,OAAA,GAAUhpB,EAAA,CAAG8d,QAAA,CAAS5e,KAAT,EAAgB,CAAhB,CAAH,EAAuBA,KAAA,CAAM,CAAN,CAAvB,CAAV,GAA6Cc,EAAA,CAAGd,KAAH,CAApD,CADE;AAAA,EAAJ,CAGE,OAAOkd,KAAP,EAAc;AAAA,EACd,IAAIqP,YAAA,GAAe5nB,QAAA,CAAS,QAAT,CAAnB,CADc;AAAA,EAEd,IAAI4nB,YAAA,KAAiBpQ,SAArB;AAAA,GAAgCyC,QAAA,CAAS2N,YAAA,CAAapP,IAAb,CAAkBxY,QAAlB,CAAT,EAFlB;AAAA,EAGd,MAAMuY,KAAN,CAHc;AAAA,EAJuC;AAAA,CAAzD,C;;;;;;ACHA,IAAIsH,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AACA,IAAIuwB,SAAA,GAAYvwB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAGA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAHA;AAIA,IAAIyB,cAAA,GAAiB3L,KAAA,CAAM0B,SAA3B,CAJA;AAOAxc,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,OAAOA,EAAA,KAAOH,SAAP,IAAqB,CAAAqN,SAAA,CAAUlP,KAAV,KAAoBgC,EAApB,IAA0B2J,cAAA,CAAe0D,QAAf,MAA6BrN,EAAvD,CAA5B,CAD6B;AAAA,CAA/B,C;;;;;;;ACPa;AACb,IAAIM,WAAA,GAAc3jB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAEA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CAFA;AAGA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUge,MAAV,EAAkBrb,GAAlB,EAAuBtD,KAAvB,EAA8B;AAAA,CAC7C,IAAIwsB,WAAA,GAAc5P,WAAA,CAAYtZ,GAAZ,CAAlB,CAD6C;AAAA,CAE7C,IAAIkpB,WAAA,IAAe7N,MAAnB;AAAA,EAA2BD,oBAAA,CAAqB3D,CAArB,CAAuB4D,MAAvB,EAA+B6N,WAA/B,EAA4C9P,wBAAA,CAAyB,CAAzB,EAA4B1c,KAA5B,CAA5C,EAA3B;AAAA;AAAA,EACK2e,MAAA,CAAO6N,WAAP,IAAsBxsB,KAAtB,CAHwC;AAAA,CAA/C,C;;;;;;ACLA,IAAI8d,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd;AACA,IAAIuwB,SAAA,GAAYvwB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAJA;AAMAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAIA,EAAA,IAAMH,SAAV;AAAA,EAAqB,OAAOG,EAAA,CAAGqN,QAAH,KACvBrN,EAAA,CAAG,YAAH,CADuB,IAEvBkN,SAAA,CAAU1L,OAAA,CAAQxB,EAAR,CAAV,CAFgB,CADQ;AAAA,CAA/B,C;;;;;;ACNA,IAAImQ,qBAAA,GAAwBxzB,mBAAA,CAAQ,EAAR,CAA5B;AACA,IAAIyzB,UAAA,GAAazzB,mBAAA,CAAQ,EAAR,CAAjB,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAIyxB,aAAA,GAAgBlG,eAAA,CAAgB,aAAhB,CAApB,CAJA;AAMA,IAAImI,iBAAA,GAAoBD,UAAA,CAAW,YAAY;AAAA,CAAE,OAAOzS,SAAP,CAAF;AAAA,CAAZ,EAAX,KAAmD,WAA3E,CANA;AASA,IAAI2S,MAAA,GAAS,UAAUtQ,EAAV,EAAchZ,GAAd,EAAmB;AAAA,CAC9B,IAAI;AAAA,EACF,OAAOgZ,EAAA,CAAGhZ,GAAH,CAAP,CADE;AAAA,EAAJ,CAEE,OAAO4Z,KAAP,EAAc;AAAA,EAHc;AAAA,CAAhC,CATA;AAgBA1d,MAAA,CAAOmB,OAAP,GAAiB8rB,qBAAA,GAAwBC,UAAxB,GAAqC,UAAUpQ,EAAV,EAAc;AAAA,CAClE,IAAIU,CAAJ,EAAO6P,GAAP,EAAY5qB,MAAZ,CADkE;AAAA,CAElE,OAAOqa,EAAA,KAAOH,SAAP,GAAmB,WAAnB,GAAiCG,EAAA,KAAO,IAAP,GAAc,MAAd,GAEpC,OAAQ,CAAAuQ,GAAA,GAAMD,MAAA,CAAO5P,CAAA,GAAInf,MAAA,CAAOye,EAAP,CAAX,EAAuBoO,aAAvB,CAAN,CAAR,IAAwD,QAAxD,GAAmEmC,GAAnE,GAEAF,iBAAA,GAAoBD,UAAA,CAAW1P,CAAX,CAApB,GAEC,CAAA/a,MAAA,GAASyqB,UAAA,CAAW1P,CAAX,CAAT,CAAD,IAA4B,QAA5B,IAAwC,OAAOA,CAAA,CAAE8P,MAAT,IAAmB,UAA3D,GAAwE,WAAxE,GAAsF7qB,MAN1F,CAFkE;AAAA,CAApE,C;;;;;;AChBA,IAAIuiB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AAEA,IAAIyxB,aAAA,GAAgBlG,eAAA,CAAgB,aAAhB,CAApB,CAFA;AAGA,IAAIhE,IAAA,GAAO,EAAX,CAHA;AAKAA,IAAA,CAAKkK,aAAL,IAAsB,GAAtB,CALA;AAOAlrB,MAAA,CAAOmB,OAAP,GAAiBoU,MAAA,CAAOyL,IAAP,MAAiB,YAAlC,C;;;;;;ACPA,IAAIgE,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AAEA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAFA;AAGA,IAAIuI,YAAA,GAAe,KAAnB,CAHA;AAKA,IAAI;AAAA,CACF,IAAIC,MAAA,GAAS,CAAb,CADE;AAAA,CAEF,IAAIC,kBAAA,GAAqB;AAAA,EACvB1pB,IAAA,EAAM,YAAY;AAAA,GAChB,OAAO,EAAEP,IAAA,EAAM,CAAC,CAACgqB,MAAA,EAAV,EAAP,CADgB;AAAA,GADK;AAAA,EAIvB,UAAU,YAAY;AAAA,GACpBD,YAAA,GAAe,IAAf,CADoB;AAAA,GAJC;AAAA,EAAzB,CAFE;AAAA,CAUFE,kBAAA,CAAmBtD,QAAnB,IAA+B,YAAY;AAAA,EACzC,OAAO,IAAP,CADyC;AAAA,EAA3C,CAVE;AAAA,CAcFrP,KAAA,CAAMiO,IAAN,CAAW0E,kBAAX,EAA+B,YAAY;AAAA,EAAE,MAAM,CAAN,CAAF;AAAA,EAA3C,EAdE;AAAA,CAAJ,CAeE,OAAO/P,KAAP,EAAc;AAAA,CApBhB;AAsBA1d,MAAA,CAAOmB,OAAP,GAAiB,UAAU2c,IAAV,EAAgB4P,YAAhB,EAA8B;AAAA,CAC7C,IAAI,CAACA,YAAD,IAAiB,CAACH,YAAtB;AAAA,EAAoC,OAAO,KAAP,CADS;AAAA,CAE7C,IAAII,iBAAA,GAAoB,KAAxB,CAF6C;AAAA,CAG7C,IAAI;AAAA,EACF,IAAIxO,MAAA,GAAS,EAAb,CADE;AAAA,EAEFA,MAAA,CAAOgL,QAAP,IAAmB,YAAY;AAAA,GAC7B,OAAO;AAAA,IACLpmB,IAAA,EAAM,YAAY;AAAA,KAChB,OAAO,EAAEP,IAAA,EAAMmqB,iBAAA,GAAoB,IAA5B,EAAP,CADgB;AAAA,KADb;AAAA,IAAP,CAD6B;AAAA,GAA/B,CAFE;AAAA,EASF7P,IAAA,CAAKqB,MAAL,EATE;AAAA,EAAJ,CAUE,OAAOzB,KAAP,EAAc;AAAA,EAb6B;AAAA,CAc7C,OAAOiQ,iBAAP,CAd6C;AAAA,CAA/C,C;;;;;;ACtBAl0B,mBAAA,CAAQ,EAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK7jB,MAAL,CAAYuvB,MAA7B,C;;;;;;ACHA,IAAIxS,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAIm0B,MAAA,GAASn0B,mBAAA,CAAQ,GAAR,CAAb,CADA;AAKA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAgCO,MAAA,EAAQre,MAAA,CAAOuvB,MAAP,KAAkBA,MAA1D;AAAA,CAAF,EAAsE,EACpEA,MAAA,EAAQA,MAD4D,EAAtE,E;;;;;;;ACLa;AACb,IAAI5Q,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAEA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CAFA;AAGA,IAAIivB,UAAA,GAAajvB,mBAAA,CAAQ,EAAR,CAAjB,CAHA;AAIA,IAAIsoB,2BAAA,GAA8BtoB,mBAAA,CAAQ,EAAR,CAAlC,CAJA;AAKA,IAAIwjB,0BAAA,GAA6BxjB,mBAAA,CAAQ,EAAR,CAAjC,CALA;AAMA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAOA,IAAI2kB,aAAA,GAAgB3kB,mBAAA,CAAQ,EAAR,CAApB,CAPA;AASA,IAAIo0B,YAAA,GAAexvB,MAAA,CAAOuvB,MAA1B,CATA;AAUA,IAAI/P,cAAA,GAAiBxf,MAAA,CAAOwf,cAA5B,CAVA;AAcA7d,MAAA,CAAOmB,OAAP,GAAiB,CAAC0sB,YAAD,IAAiBjQ,KAAA,CAAM,YAAY;AAAA,CAElD,IAAIZ,WAAA,IAAe6Q,YAAA,CAAa,EAAEnW,CAAA,EAAG,CAAL,EAAb,EAAuBmW,YAAA,CAAahQ,cAAA,CAAe,EAAf,EAAmB,GAAnB,EAAwB;AAAA,GAC7Epd,UAAA,EAAY,IADiE;AAAA,GAE7E+E,GAAA,EAAK,YAAY;AAAA,IACfqY,cAAA,CAAe,IAAf,EAAqB,GAArB,EAA0B;AAAA,KACxBrd,KAAA,EAAO,CADiB;AAAA,KAExBC,UAAA,EAAY,KAFY;AAAA,KAA1B,EADe;AAAA,IAF4D;AAAA,GAAxB,CAAb,EAQtC,EAAEiX,CAAA,EAAG,CAAL,EARsC,CAAvB,EAQJA,CARI,KAQE,CARrB;AAAA,EAQwB,OAAO,IAAP,CAV0B;AAAA,CAYlD,IAAIoW,CAAA,GAAI,EAAR,CAZkD;AAAA,CAalD,IAAIC,CAAA,GAAI,EAAR,CAbkD;AAAA,CAelD,IAAIC,MAAA,GAAS3I,MAAA,EAAb,CAfkD;AAAA,CAgBlD,IAAI4I,QAAA,GAAW,sBAAf,CAhBkD;AAAA,CAiBlDH,CAAA,CAAEE,MAAF,IAAY,CAAZ,CAjBkD;AAAA,CAkBlDC,QAAA,CAAS1P,KAAT,CAAe,EAAf,EAAmB2P,OAAnB,CAA2B,UAAUC,GAAV,EAAe;AAAA,EAAEJ,CAAA,CAAEI,GAAF,IAASA,GAAT,CAAF;AAAA,EAA1C,EAlBkD;AAAA,CAmBlD,OAAON,YAAA,CAAa,EAAb,EAAiBC,CAAjB,EAAoBE,MAApB,KAA+B,CAA/B,IAAoCtF,UAAA,CAAWmF,YAAA,CAAa,EAAb,EAAiBE,CAAjB,CAAX,EAAgChO,IAAhC,CAAqC,EAArC,KAA4CkO,QAAvF,CAnBkD;AAAA,CAAlB,CAAjB,GAoBZ,SAASL,MAAT,CAAgB5R,MAAhB,EAAwBF,MAAxB,EAAgC;AAAA,CACnC,IAAIsS,CAAA,GAAIzC,QAAA,CAAS3P,MAAT,CAAR,CADmC;AAAA,CAEnC,IAAI2Q,eAAA,GAAkBlS,SAAA,CAAUpF,MAAhC,CAFmC;AAAA,CAGnC,IAAI6N,KAAA,GAAQ,CAAZ,CAHmC;AAAA,CAInC,IAAIlB,qBAAA,GAAwBD,2BAAA,CAA4BxG,CAAxD,CAJmC;AAAA,CAKnC,IAAIyC,oBAAA,GAAuBf,0BAAA,CAA2B1B,CAAtD,CALmC;AAAA,CAMnC,OAAOoR,eAAA,GAAkBzJ,KAAzB,EAAgC;AAAA,EAC9B,IAAIqG,CAAA,GAAInL,aAAA,CAAc3D,SAAA,CAAUyI,KAAA,EAAV,CAAd,CAAR,CAD8B;AAAA,EAE9B,IAAIrf,IAAA,GAAOme,qBAAA,GAAwB0G,UAAA,CAAWa,CAAX,EAActH,MAAd,CAAqBD,qBAAA,CAAsBuH,CAAtB,CAArB,CAAxB,GAAyEb,UAAA,CAAWa,CAAX,CAApF,CAF8B;AAAA,EAG9B,IAAIlU,MAAA,GAASxR,IAAA,CAAKwR,MAAlB,CAH8B;AAAA,EAI9B,IAAIgZ,CAAA,GAAI,CAAR,CAJ8B;AAAA,EAK9B,IAAIvqB,GAAJ,CAL8B;AAAA,EAM9B,OAAOuR,MAAA,GAASgZ,CAAhB,EAAmB;AAAA,GACjBvqB,GAAA,GAAMD,IAAA,CAAKwqB,CAAA,EAAL,CAAN,CADiB;AAAA,GAEjB,IAAI,CAACrR,WAAD,IAAgBgB,oBAAA,CAAqBL,IAArB,CAA0B4L,CAA1B,EAA6BzlB,GAA7B,CAApB;AAAA,IAAuDsqB,CAAA,CAAEtqB,GAAF,IAASylB,CAAA,CAAEzlB,GAAF,CAAT,CAFtC;AAAA,GANW;AAAA,EANG;AAAA,CAgBjC,OAAOsqB,CAAP,CAhBiC;AAAA,CApBpB,GAqCbP,YArCJ,C;;;;;;ACdAp0B,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAFA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK7jB,MAAL,CAAYiwB,WAA7B,C;;;;;;;ACJa;AACb,IAAInR,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB,CADA;AAEA,IAAI2sB,gBAAA,GAAmB3sB,mBAAA,CAAQ,EAAR,CAAvB,CAFA;AAGA,IAAIuwB,SAAA,GAAYvwB,mBAAA,CAAQ,EAAR,CAAhB,CAHA;AAIA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAJA;AAKA,IAAIwvB,cAAA,GAAiBxvB,mBAAA,CAAQ,EAAR,CAArB,CALA;AAOA,IAAI80B,cAAA,GAAiB,gBAArB,CAPA;AAQA,IAAIpF,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CARA;AASA,IAAIf,gBAAA,GAAmBD,mBAAA,CAAoBiB,SAApB,CAA8B8N,cAA9B,CAAvB,CATA;AAqBAvuB,MAAA,CAAOmB,OAAP,GAAiB8nB,cAAA,CAAenO,KAAf,EAAsB,OAAtB,EAA+B,UAAUsO,QAAV,EAAoBoF,IAApB,EAA0B;AAAA,CACxErF,gBAAA,CAAiB,IAAjB,EAAuB;AAAA,EACrB/nB,IAAA,EAAMmtB,cADe;AAAA,EAErBvS,MAAA,EAAQmB,eAAA,CAAgBiM,QAAhB,CAFa;AAAA,EAGrBlG,KAAA,EAAO,CAHc;AAAA,EAIrBsL,IAAA,EAAMA,IAJe;AAAA,EAAvB,EADwE;AAAA,CAAzD,EASd,YAAY;AAAA,CACb,IAAItrB,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CADa;AAAA,CAEb,IAAIzD,MAAA,GAAS9Y,KAAA,CAAM8Y,MAAnB,CAFa;AAAA,CAGb,IAAIwS,IAAA,GAAOtrB,KAAA,CAAMsrB,IAAjB,CAHa;AAAA,CAIb,IAAItL,KAAA,GAAQhgB,KAAA,CAAMggB,KAAN,EAAZ,CAJa;AAAA,CAKb,IAAI,CAAClH,MAAD,IAAWkH,KAAA,IAASlH,MAAA,CAAO3G,MAA/B,EAAuC;AAAA,EACrCnS,KAAA,CAAM8Y,MAAN,GAAeW,SAAf,CADqC;AAAA,EAErC,OAAO;AAAA,GAAEnc,KAAA,EAAOmc,SAAT;AAAA,GAAoBnZ,IAAA,EAAM,IAA1B;AAAA,GAAP,CAFqC;AAAA,EAL1B;AAAA,CASb,IAAIgrB,IAAA,IAAQ,MAAZ;AAAA,EAAoB,OAAO;AAAA,GAAEhuB,KAAA,EAAO0iB,KAAT;AAAA,GAAgB1f,IAAA,EAAM,KAAtB;AAAA,GAAP,CATP;AAAA,CAUb,IAAIgrB,IAAA,IAAQ,QAAZ;AAAA,EAAsB,OAAO;AAAA,GAAEhuB,KAAA,EAAOwb,MAAA,CAAOkH,KAAP,CAAT;AAAA,GAAwB1f,IAAA,EAAM,KAA9B;AAAA,GAAP,CAVT;AAAA,CAWb,OAAO;AAAA,EAAEhD,KAAA,EAAO;AAAA,GAAC0iB,KAAD;AAAA,GAAQlH,MAAA,CAAOkH,KAAP,CAAR;AAAA,GAAT;AAAA,EAAiC1f,IAAA,EAAM,KAAvC;AAAA,EAAP,CAXa;AAAA,CATE,EAqBd,QArBc,CAAjB,CArBA;AA+CAwmB,SAAA,CAAUyE,SAAV,GAAsBzE,SAAA,CAAUlP,KAAhC,CA/CA;AAkDAsL,gBAAA,CAAiB,MAAjB,EAlDA;AAmDAA,gBAAA,CAAiB,QAAjB,EAnDA;AAoDAA,gBAAA,CAAiB,SAAjB,E;;;;;;ACpDA,IAAIhL,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CADA;AAEA,IAAI8yB,cAAA,GAAiB9yB,mBAAA,CAAQ,EAAR,CAArB,CAFA;AAMA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAF,EAAoC;AAAA,CAClCmS,WAAA,EAAa,SAASA,WAAT,CAAqBrqB,QAArB,EAA+B;AAAA,EAC1C,IAAIrD,GAAA,GAAM,EAAV,CAD0C;AAAA,EAE1C8tB,OAAA,CAAQzqB,QAAR,EAAkB,UAAU0qB,CAAV,EAAapX,CAAb,EAAgB;AAAA,GAChCgV,cAAA,CAAe3rB,GAAf,EAAoB+tB,CAApB,EAAuBpX,CAAvB,EADgC;AAAA,GAAlC,EAEGoF,SAFH,EAEc,IAFd,EAF0C;AAAA,EAK1C,OAAO/b,GAAP,CAL0C;AAAA,EADV;AAAA,CAApC,E;;;;;;ACNA,IAAIwe,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAI6yB,qBAAA,GAAwB7yB,mBAAA,CAAQ,EAAR,CAA5B,CADA;AAEA,IAAIkpB,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAIksB,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CAHA;AAIA,IAAI+yB,iBAAA,GAAoB/yB,mBAAA,CAAQ,EAAR,CAAxB,CAJA;AAKA,IAAI4yB,4BAAA,GAA+B5yB,mBAAA,CAAQ,EAAR,CAAnC,CALA;AAOA,IAAIm1B,MAAA,GAAS,UAAUC,OAAV,EAAmBpsB,MAAnB,EAA2B;AAAA,CACtC,KAAKosB,OAAL,GAAeA,OAAf,CADsC;AAAA,CAEtC,KAAKpsB,MAAL,GAAcA,MAAd,CAFsC;AAAA,CAAxC,CAPA;AAYA,IAAIisB,OAAA,GAAU1uB,MAAA,CAAOmB,OAAP,GAAiB,UAAU8C,QAAV,EAAoB3C,EAApB,EAAwBujB,IAAxB,EAA8BiK,UAA9B,EAA0CC,WAA1C,EAAuD;AAAA,CACpF,IAAIC,aAAA,GAAgBrJ,IAAA,CAAKrkB,EAAL,EAASujB,IAAT,EAAeiK,UAAA,GAAa,CAAb,GAAiB,CAAhC,CAApB,CADoF;AAAA,CAEpF,IAAI3pB,QAAJ,EAAc8pB,MAAd,EAAsB/L,KAAtB,EAA6B7N,MAA7B,EAAqC5S,MAArC,EAA6CsB,IAA7C,EAAmD+oB,IAAnD,CAFoF;AAAA,CAIpF,IAAIiC,WAAJ,EAAiB;AAAA,EACf5pB,QAAA,GAAWlB,QAAX,CADe;AAAA,EAAjB,MAEO;AAAA,EACLgrB,MAAA,GAASzC,iBAAA,CAAkBvoB,QAAlB,CAAT,CADK;AAAA,EAEL,IAAI,OAAOgrB,MAAP,IAAiB,UAArB;AAAA,GAAiC,MAAMvQ,SAAA,CAAU,wBAAV,CAAN,CAF5B;AAAA,EAIL,IAAI4N,qBAAA,CAAsB2C,MAAtB,CAAJ,EAAmC;AAAA,GACjC,KAAK/L,KAAA,GAAQ,CAAR,EAAW7N,MAAA,GAASsN,QAAA,CAAS1e,QAAA,CAASoR,MAAlB,CAAzB,EAAoDA,MAAA,GAAS6N,KAA7D,EAAoEA,KAAA,EAApE,EAA6E;AAAA,IAC3EzgB,MAAA,GAASqsB,UAAA,GACLE,aAAA,CAAc5P,QAAA,CAAS0N,IAAA,GAAO7oB,QAAA,CAASif,KAAT,CAAhB,EAAiC,CAAjC,CAAd,EAAmD4J,IAAA,CAAK,CAAL,CAAnD,CADK,GAELkC,aAAA,CAAc/qB,QAAA,CAASif,KAAT,CAAd,CAFJ,CAD2E;AAAA,IAI3E,IAAIzgB,MAAA,IAAUA,MAAA,YAAkBmsB,MAAhC;AAAA,KAAwC,OAAOnsB,MAAP,CAJmC;AAAA,IAD5C;AAAA,GAM/B,OAAO,IAAImsB,MAAJ,CAAW,KAAX,CAAP,CAN+B;AAAA,GAJ9B;AAAA,EAYLzpB,QAAA,GAAW8pB,MAAA,CAAOtR,IAAP,CAAY1Z,QAAZ,CAAX,CAZK;AAAA,EAN6E;AAAA,CAqBpFF,IAAA,GAAOoB,QAAA,CAASpB,IAAhB,CArBoF;AAAA,CAsBpF,OAAO,CAAE,CAAA+oB,IAAA,GAAO/oB,IAAA,CAAK4Z,IAAL,CAAUxY,QAAV,CAAP,CAAD,CAA6B3B,IAArC,EAA2C;AAAA,EACzCf,MAAA,GAAS4pB,4BAAA,CAA6BlnB,QAA7B,EAAuC6pB,aAAvC,EAAsDlC,IAAA,CAAKtsB,KAA3D,EAAkEsuB,UAAlE,CAAT,CADyC;AAAA,EAEzC,IAAI,OAAOrsB,MAAP,IAAiB,QAAjB,IAA6BA,MAA7B,IAAuCA,MAAA,YAAkBmsB,MAA7D;AAAA,GAAqE,OAAOnsB,MAAP,CAF5B;AAAA,EAtByC;AAAA,CAyBlF,OAAO,IAAImsB,MAAJ,CAAW,KAAX,CAAP,CAzBkF;AAAA,CAAtF,CAZA;AAwCAF,OAAA,CAAQrqB,IAAR,GAAe,UAAU5B,MAAV,EAAkB;AAAA,CAC/B,OAAO,IAAImsB,MAAJ,CAAW,IAAX,EAAiBnsB,MAAjB,CAAP,CAD+B;AAAA,CAAjC,C;;;;;;ACxCAhJ,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKrlB,IAAL,CAAUqyB,IAA3B,C;;;;;;ACHA,IAAI9T,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AAEA,IAAI01B,GAAA,GAAMtyB,IAAA,CAAKsyB,GAAf,CAFA;AAGA,IAAIC,GAAA,GAAMvyB,IAAA,CAAKuyB,GAAf,CAHA;AAOAhU,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,MAAV;AAAA,CAAkBG,IAAA,EAAM,IAAxB;AAAA,CAAF,EAAkC;AAAA,CAChC+S,IAAA,EAAM,SAASA,IAAT,CAAcG,CAAd,EAAiB;AAAA,EACrB,OAAOF,GAAA,CAAIE,CAAJ,IAASD,GAAhB,CADqB;AAAA,EADS;AAAA,CAAlC,E;;;;;;ACPA31B,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKtN,MAAL,CAAY1Q,KAA7B,C;;;;;;ACHA,IAAIkX,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AAIA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAF,EAAoC;AAAA,CAClCjY,KAAA,EAAO,SAASA,KAAT,CAAeorB,MAAf,EAAuB;AAAA,EAE5B,OAAOA,MAAA,IAAUA,MAAjB,CAF4B;AAAA,EADI;AAAA,CAApC,E;;;;;;ACJA71B,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKtN,MAAL,CAAY2a,SAA7B,C;;;;;;ACHA,IAAInU,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAI81B,SAAA,GAAY91B,mBAAA,CAAQ,GAAR,CAAhB,CADA;AAKA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAF,EAAoC,EAClCoT,SAAA,EAAWA,SADuB,EAApC,E;;;;;;ACLA,IAAI5Q,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AAEA,IAAI+pB,KAAA,GAAQ3mB,IAAA,CAAK2mB,KAAjB,CAFA;AAMAxjB,MAAA,CAAOmB,OAAP,GAAiB,SAASouB,SAAT,CAAmBzS,EAAnB,EAAuB;AAAA,CACtC,OAAO,CAAC6B,QAAA,CAAS7B,EAAT,CAAD,IAAiB0S,QAAA,CAAS1S,EAAT,CAAjB,IAAiC0G,KAAA,CAAM1G,EAAN,MAAcA,EAAtD,CADsC;AAAA,CAAxC,C;;;;;;ACNArjB,mBAAA,CAAQ,GAAR,E;;;;;;;ACAa;AACb,IAAIg2B,mBAAA,GAAsBh2B,mBAAA,CAAQ,GAAR,CAA1B,CADA;AAEA,IAAIi2B,kBAAA,GAAqBj2B,mBAAA,CAAQ,GAAR,CAAzB,CAFA;AAGA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CAHA;AAKA,IAAIk2B,WAAA,GAAcF,mBAAA,CAAoBE,WAAtC,CALA;AAMA,IAAIC,sBAAA,GAAyBH,mBAAA,CAAoBG,sBAAjD,CANA;AAOA,IAAIC,sBAAA,GAAyBJ,mBAAA,CAAoBI,sBAAjD,CAPA;AAQA,IAAIC,MAAA,GAAS,GAAGrR,KAAhB,CARA;AAUA,IAAIrC,MAAA,GAASwB,KAAA,CAAM,YAAY;AAAA,CAE7B,IAAImS,SAAJ,CAAc,CAAd,EAAiBtR,KAAjB,GAF6B;AAAA,CAAlB,CAAb,CAVA;AAiBAoR,sBAAA,CAAuB,OAAvB,EAAgC,SAASpR,KAAT,CAAe9f,KAAf,EAAsBP,GAAtB,EAA2B;AAAA,CACzD,IAAI4xB,IAAA,GAAOF,MAAA,CAAOnS,IAAP,CAAYgS,WAAA,CAAY,IAAZ,CAAZ,EAA+BhxB,KAA/B,EAAsCP,GAAtC,CAAX,CADyD;AAAA,CAEzD,IAAIsuB,CAAA,GAAIgD,kBAAA,CAAmB,IAAnB,EAAyB,KAAKx1B,WAA9B,CAAR,CAFyD;AAAA,CAGzD,IAAIgpB,KAAA,GAAQ,CAAZ,CAHyD;AAAA,CAIzD,IAAI7N,MAAA,GAAS2a,IAAA,CAAK3a,MAAlB,CAJyD;AAAA,CAKzD,IAAI5S,MAAA,GAAS,IAAK,CAAAmtB,sBAAA,CAAuBlD,CAAvB,EAAL,CAAgCrX,MAAhC,CAAb,CALyD;AAAA,CAMzD,OAAOA,MAAA,GAAS6N,KAAhB;AAAA,EAAuBzgB,MAAA,CAAOygB,KAAP,IAAgB8M,IAAA,CAAK9M,KAAA,EAAL,CAAhB,CANkC;AAAA,CAOzD,OAAOzgB,MAAP,CAPyD;AAAA,CAA3D,EAQG2Z,MARH,E;;;;;;;ACjBa;AACb,IAAI6T,mBAAA,GAAsBx2B,mBAAA,CAAQ,GAAR,CAA1B,CADA;AAEA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CAFA;AAGA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CAHA;AAIA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAJA;AAKA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CALA;AAMA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CANA;AAOA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAPA;AAQA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CARA;AASA,IAAIokB,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE,CATA;AAUA,IAAIsO,cAAA,GAAiBpwB,mBAAA,CAAQ,EAAR,CAArB,CAVA;AAWA,IAAIqwB,cAAA,GAAiBrwB,mBAAA,CAAQ,EAAR,CAArB,CAXA;AAYA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAZA;AAaA,IAAIynB,GAAA,GAAMznB,mBAAA,CAAQ,EAAR,CAAV,CAbA;AAeA,IAAIs2B,SAAA,GAAY1U,MAAA,CAAO0U,SAAvB,CAfA;AAgBA,IAAIG,kBAAA,GAAqBH,SAAA,IAAaA,SAAA,CAAUvT,SAAhD,CAhBA;AAiBA,IAAI2T,iBAAA,GAAoB9U,MAAA,CAAO8U,iBAA/B,CAjBA;AAkBA,IAAIC,0BAAA,GAA6BD,iBAAA,IAAqBA,iBAAA,CAAkB3T,SAAxE,CAlBA;AAmBA,IAAI6T,UAAA,GAAaN,SAAA,IAAalG,cAAA,CAAekG,SAAf,CAA9B,CAnBA;AAoBA,IAAIO,mBAAA,GAAsBJ,kBAAA,IAAsBrG,cAAA,CAAeqG,kBAAf,CAAhD,CApBA;AAqBA,IAAIrE,eAAA,GAAkBxtB,MAAA,CAAOme,SAA7B,CArBA;AAsBA,IAAI+T,aAAA,GAAgB1E,eAAA,CAAgB0E,aAApC,CAtBA;AAwBA,IAAIrF,aAAA,GAAgBlG,eAAA,CAAgB,aAAhB,CAApB,CAxBA;AAyBA,IAAIwL,eAAA,GAAkBtP,GAAA,CAAI,iBAAJ,CAAtB,CAzBA;AA2BA,IAAIuP,yBAAA,GAA4BR,mBAAA,IAAuB,CAAC,CAACnG,cAAzB,IAA2CxL,OAAA,CAAQjD,MAAA,CAAOqV,KAAf,MAA0B,OAArG,CA3BA;AA4BA,IAAIC,uBAAA,GAA0B,KAA9B,CA5BA;AA6BA,IAAIlG,IAAJ,CA7BA;AA+BA,IAAImG,0BAAA,GAA6B;AAAA,CAC/Bb,SAAA,EAAW,CADoB;AAAA,CAE/BhV,UAAA,EAAY,CAFmB;AAAA,CAG/BoV,iBAAA,EAAmB,CAHY;AAAA,CAI/BU,UAAA,EAAY,CAJmB;AAAA,CAK/BC,WAAA,EAAa,CALkB;AAAA,CAM/BC,UAAA,EAAY,CANmB;AAAA,CAO/BC,WAAA,EAAa,CAPkB;AAAA,CAQ/BC,YAAA,EAAc,CARiB;AAAA,CAS/BC,YAAA,EAAc,CATiB;AAAA,CAAjC,CA/BA;AA2CA,IAAIC,MAAA,GAAS,SAASA,MAAT,CAAgBrU,EAAhB,EAAoB;AAAA,CAC/B,IAAIsU,KAAA,GAAQ9S,OAAA,CAAQxB,EAAR,CAAZ,CAD+B;AAAA,CAE/B,OAAOsU,KAAA,KAAU,UAAV,IAAwB/T,GAAA,CAAIuT,0BAAJ,EAAgCQ,KAAhC,CAA/B,CAF+B;AAAA,CAAjC,CA3CA;AAgDA,IAAIC,YAAA,GAAe,UAAUvU,EAAV,EAAc;AAAA,CAC/B,OAAO6B,QAAA,CAAS7B,EAAT,KAAgBO,GAAA,CAAIuT,0BAAJ,EAAgCtS,OAAA,CAAQxB,EAAR,CAAhC,CAAvB,CAD+B;AAAA,CAAjC,CAhDA;AAoDA,IAAI6S,WAAA,GAAc,UAAU7S,EAAV,EAAc;AAAA,CAC9B,IAAIuU,YAAA,CAAavU,EAAb,CAAJ;AAAA,EAAsB,OAAOA,EAAP,CADQ;AAAA,CAE9B,MAAM4B,SAAA,CAAU,6BAAV,CAAN,CAF8B;AAAA,CAAhC,CApDA;AAyDA,IAAIkR,sBAAA,GAAyB,UAAUlD,CAAV,EAAa;AAAA,CACxC,IAAI5C,cAAJ,EAAoB;AAAA,EAClB,IAAIyG,aAAA,CAAc5S,IAAd,CAAmB0S,UAAnB,EAA+B3D,CAA/B,CAAJ;AAAA,GAAuC,OAAOA,CAAP,CADrB;AAAA,EAApB;AAAA,EAEO,SAAS4E,KAAT,IAAkBV,0BAAlB;AAAA,GAA8C,IAAIvT,GAAA,CAAIuT,0BAAJ,EAAgCnG,IAAhC,CAAJ,EAA2C;AAAA,IAC9F,IAAI8G,qBAAA,GAAwBlW,MAAA,CAAOiW,KAAP,CAA5B,CAD8F;AAAA,IAE9F,IAAIC,qBAAA,IAA0B,CAAA7E,CAAA,KAAM6E,qBAAN,IAA+BhB,aAAA,CAAc5S,IAAd,CAAmB4T,qBAAnB,EAA0C7E,CAA1C,CAA/B,CAA9B,EAA4G;AAAA,KAC1G,OAAOA,CAAP,CAD0G;AAAA,KAFd;AAAA,IAHxD;AAAA,CAQtC,MAAMhO,SAAA,CAAU,yCAAV,CAAN,CARsC;AAAA,CAA1C,CAzDA;AAoEA,IAAImR,sBAAA,GAAyB,UAAUrE,GAAV,EAAegG,QAAf,EAAyB9U,MAAzB,EAAiC;AAAA,CAC5D,IAAI,CAACM,WAAL;AAAA,EAAkB,OAD0C;AAAA,CAE5D,IAAIN,MAAJ;AAAA,EAAY,SAAS4U,KAAT,IAAkBV,0BAAlB,EAA8C;AAAA,GACxD,IAAIW,qBAAA,GAAwBlW,MAAA,CAAOiW,KAAP,CAA5B,CADwD;AAAA,GAExD,IAAIC,qBAAA,IAAyBlU,GAAA,CAAIkU,qBAAA,CAAsB/U,SAA1B,EAAqCgP,GAArC,CAA7B,EAAwE;AAAA,IACtE,OAAO+F,qBAAA,CAAsB/U,SAAtB,CAAgCgP,GAAhC,CAAP,CADsE;AAAA,IAFhB;AAAA,GAFE;AAAA,CAQ5D,IAAI,CAAC8E,mBAAA,CAAoB9E,GAApB,CAAD,IAA6B9O,MAAjC,EAAyC;AAAA,EACvCjB,QAAA,CAAS6U,mBAAT,EAA8B9E,GAA9B,EAAmC9O,MAAA,GAAS8U,QAAT,GAC/Bf,yBAAA,IAA6BP,kBAAA,CAAmB1E,GAAnB,CAA7B,IAAwDgG,QAD5D,EADuC;AAAA,EARmB;AAAA,CAA9D,CApEA;AAkFA,IAAIC,4BAAA,GAA+B,UAAUjG,GAAV,EAAegG,QAAf,EAAyB9U,MAAzB,EAAiC;AAAA,CAClE,IAAI4U,KAAJ,EAAWC,qBAAX,CADkE;AAAA,CAElE,IAAI,CAACvU,WAAL;AAAA,EAAkB,OAFgD;AAAA,CAGlE,IAAI8M,cAAJ,EAAoB;AAAA,EAClB,IAAIpN,MAAJ;AAAA,GAAY,KAAK4U,KAAL,IAAcV,0BAAd,EAA0C;AAAA,IACpDW,qBAAA,GAAwBlW,MAAA,CAAOiW,KAAP,CAAxB,CADoD;AAAA,IAEpD,IAAIC,qBAAA,IAAyBlU,GAAA,CAAIkU,qBAAJ,EAA2B/F,GAA3B,CAA7B,EAA8D;AAAA,KAC5D,OAAO+F,qBAAA,CAAsB/F,GAAtB,CAAP,CAD4D;AAAA,KAFV;AAAA,IADpC;AAAA,EAOlB,IAAI,CAAC6E,UAAA,CAAW7E,GAAX,CAAD,IAAoB9O,MAAxB,EAAgC;AAAA,GAE9B,IAAI;AAAA,IACF,OAAOjB,QAAA,CAAS4U,UAAT,EAAqB7E,GAArB,EAA0B9O,MAAA,GAAS8U,QAAT,GAAoBf,yBAAA,IAA6BV,SAAA,CAAUvE,GAAV,CAA7B,IAA+CgG,QAA7F,CAAP,CADE;AAAA,IAAJ,CAEE,OAAO9T,KAAP,EAAc;AAAA,IAJc;AAAA,GAAhC;AAAA,GAKO,OAZW;AAAA,EAH8C;AAAA,CAiBlE,KAAK4T,KAAL,IAAcV,0BAAd,EAA0C;AAAA,EACxCW,qBAAA,GAAwBlW,MAAA,CAAOiW,KAAP,CAAxB,CADwC;AAAA,EAExC,IAAIC,qBAAA,IAA0B,EAACA,qBAAA,CAAsB/F,GAAtB,CAAD,IAA+B9O,MAA/B,CAA9B,EAAsE;AAAA,GACpEjB,QAAA,CAAS8V,qBAAT,EAAgC/F,GAAhC,EAAqCgG,QAArC,EADoE;AAAA,GAF9B;AAAA,EAjBwB;AAAA,CAApE,CAlFA;AA2GA,KAAK/G,IAAL,IAAamG,0BAAb,EAAyC;AAAA,CACvC,IAAI,CAACvV,MAAA,CAAOoP,IAAP,CAAL;AAAA,EAAmBgG,yBAAA,GAA4B,KAA5B,CADoB;AAAA,CA3GzC;AAgHA,IAAI,CAACA,yBAAD,IAA8B,OAAOJ,UAAP,IAAqB,UAAnD,IAAiEA,UAAA,KAAe9qB,QAAA,CAASiX,SAA7F,EAAwG;AAAA,CAEtG6T,UAAA,GAAa,SAASA,UAAT,GAAsB;AAAA,EACjC,MAAM3R,SAAA,CAAU,sBAAV,CAAN,CADiC;AAAA,EAAnC,CAFsG;AAAA,CAKtG,IAAI+R,yBAAJ;AAAA,EAA+B,KAAKhG,IAAL,IAAamG,0BAAb,EAAyC;AAAA,GACtE,IAAIvV,MAAA,CAAOoP,IAAP,CAAJ;AAAA,IAAkBX,cAAA,CAAezO,MAAA,CAAOoP,IAAP,CAAf,EAA6B4F,UAA7B,EADoD;AAAA,GAL8B;AAAA,CAhHxG;AA0HA,IAAI,CAACI,yBAAD,IAA8B,CAACH,mBAA/B,IAAsDA,mBAAA,KAAwBzE,eAAlF,EAAmG;AAAA,CACjGyE,mBAAA,GAAsBD,UAAA,CAAW7T,SAAjC,CADiG;AAAA,CAEjG,IAAIiU,yBAAJ;AAAA,EAA+B,KAAKhG,IAAL,IAAamG,0BAAb,EAAyC;AAAA,GACtE,IAAIvV,MAAA,CAAOoP,IAAP,CAAJ;AAAA,IAAkBX,cAAA,CAAezO,MAAA,CAAOoP,IAAP,EAAajO,SAA5B,EAAuC8T,mBAAvC,EADoD;AAAA,GAFyB;AAAA,CA1HnG;AAkIA,IAAIG,yBAAA,IAA6B5G,cAAA,CAAeuG,0BAAf,MAA+CE,mBAAhF,EAAqG;AAAA,CACnGxG,cAAA,CAAesG,0BAAf,EAA2CE,mBAA3C,EADmG;AAAA,CAlIrG;AAsIA,IAAItT,WAAA,IAAe,CAACK,GAAA,CAAIiT,mBAAJ,EAAyBpF,aAAzB,CAApB,EAA6D;AAAA,CAC3DyF,uBAAA,GAA0B,IAA1B,CAD2D;AAAA,CAE3D9S,cAAA,CAAeyS,mBAAf,EAAoCpF,aAApC,EAAmD;AAAA,EAAE1lB,GAAA,EAAK,YAAY;AAAA,GACpE,OAAOmZ,QAAA,CAAS,IAAT,IAAiB,KAAK6R,eAAL,CAAjB,GAAyC7T,SAAhD,CADoE;AAAA,GAAnB;AAAA,EAAnD,EAF2D;AAAA,CAK3D,KAAK8N,IAAL,IAAamG,0BAAb;AAAA,EAAyC,IAAIvV,MAAA,CAAOoP,IAAP,CAAJ,EAAkB;AAAA,GACzDjP,2BAAA,CAA4BH,MAAA,CAAOoP,IAAP,CAA5B,EAA0C+F,eAA1C,EAA2D/F,IAA3D,EADyD;AAAA,GALA;AAAA,CAtI7D;AAgJAzqB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfsvB,yBAAA,EAA2BA,yBADZ;AAAA,CAEfD,eAAA,EAAiBG,uBAAA,IAA2BH,eAF7B;AAAA,CAGfb,WAAA,EAAaA,WAHE;AAAA,CAIfC,sBAAA,EAAwBA,sBAJT;AAAA,CAKfC,sBAAA,EAAwBA,sBALT;AAAA,CAMf4B,4BAAA,EAA8BA,4BANf;AAAA,CAOfN,MAAA,EAAQA,MAPO;AAAA,CAQfE,YAAA,EAAcA,YARC;AAAA,CASfhB,UAAA,EAAYA,UATG;AAAA,CAUfC,mBAAA,EAAqBA,mBAVN;AAAA,CAAjB,C;;;;;;AChJAtwB,MAAA,CAAOmB,OAAP,GAAiB,OAAOuwB,WAAP,KAAuB,WAAvB,IAAsC,OAAOC,QAAP,KAAoB,WAA3E,C;;;;;;ACAA,IAAIvS,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAI0oB,SAAA,GAAY1oB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAIm4B,OAAA,GAAU5M,eAAA,CAAgB,SAAhB,CAAd,CAJA;AAQAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAUqc,CAAV,EAAaqU,kBAAb,EAAiC;AAAA,CAChD,IAAInF,CAAA,GAAItN,QAAA,CAAS5B,CAAT,EAAYtjB,WAApB,CADgD;AAAA,CAEhD,IAAIqvB,CAAJ,CAFgD;AAAA,CAGhD,OAAOmD,CAAA,KAAM/P,SAAN,IAAoB,CAAA4M,CAAA,GAAInK,QAAA,CAASsN,CAAT,EAAYkF,OAAZ,CAAJ,CAAD,IAA8BjV,SAAjD,GAA6DkV,kBAA7D,GAAkF1P,SAAA,CAAUoH,CAAV,CAAzF,CAHgD;AAAA,CAAlD,C;;;;;;ACRA9vB,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,EAAR,EADA;AAEAA,mBAAA,CAAQ,GAAR,EAFA;AAGAA,mBAAA,CAAQ,GAAR,EAHA;AAIAA,mBAAA,CAAQ,GAAR,EAJA;AAKAA,mBAAA,CAAQ,GAAR,EALA;AAMA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CANA;AAQAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK4P,OAAtB,C;;;;;;ACRA,IAAI7E,qBAAA,GAAwBxzB,mBAAA,CAAQ,EAAR,CAA5B;AACA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAI+kB,QAAA,GAAW/kB,mBAAA,CAAQ,GAAR,CAAf,CAFA;AAMA,IAAI,CAACwzB,qBAAL,EAA4B;AAAA,CAC1BxR,QAAA,CAASpd,MAAA,CAAOme,SAAhB,EAA2B,UAA3B,EAAuCgC,QAAvC,EAAiD,EAAEqB,MAAA,EAAQ,IAAV,EAAjD,EAD0B;AAAA,C;;;;;;;ACNf;AACb,IAAIoN,qBAAA,GAAwBxzB,mBAAA,CAAQ,EAAR,CAA5B,CADA;AAEA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB8rB,qBAAA,GAAwB,GAAGzO,QAA3B,GAAsC,SAASA,QAAT,GAAoB;AAAA,CACzE,OAAO,aAAaF,OAAA,CAAQ,IAAR,CAAb,GAA6B,GAApC,CADyE;AAAA,CAA3E,C;;;;;;ACNA,IAAIjD,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIs4B,YAAA,GAAet4B,mBAAA,CAAQ,GAAR,CAAnB,CADA;AAEA,IAAIu4B,oBAAA,GAAuBv4B,mBAAA,CAAQ,GAAR,CAA3B,CAFA;AAGA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAHA;AAIA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAJA;AAMA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CANA;AAOA,IAAIkG,aAAA,GAAgBlG,eAAA,CAAgB,aAAhB,CAApB,CAPA;AAQA,IAAIiN,WAAA,GAAcD,oBAAA,CAAqBjwB,MAAvC,CARA;AAUA,SAASmwB,eAAT,IAA4BH,YAA5B,EAA0C;AAAA,CACxC,IAAII,UAAA,GAAa9W,MAAA,CAAO6W,eAAP,CAAjB,CADwC;AAAA,CAExC,IAAIE,mBAAA,GAAsBD,UAAA,IAAcA,UAAA,CAAW3V,SAAnD,CAFwC;AAAA,CAGxC,IAAI4V,mBAAJ,EAAyB;AAAA,EAEvB,IAAIA,mBAAA,CAAoBjI,QAApB,MAAkC8H,WAAtC;AAAA,GAAmD,IAAI;AAAA,IACrDzW,2BAAA,CAA4B4W,mBAA5B,EAAiDjI,QAAjD,EAA2D8H,WAA3D,EADqD;AAAA,IAAJ,CAEjD,OAAOvU,KAAP,EAAc;AAAA,IACd0U,mBAAA,CAAoBjI,QAApB,IAAgC8H,WAAhC,CADc;AAAA,IAJO;AAAA,EAOvB,IAAI,CAACG,mBAAA,CAAoBlH,aAApB,CAAL,EAAyC;AAAA,GACvC1P,2BAAA,CAA4B4W,mBAA5B,EAAiDlH,aAAjD,EAAgEgH,eAAhE,EADuC;AAAA,GAPlB;AAAA,EAUvB,IAAIH,YAAA,CAAaG,eAAb,CAAJ;AAAA,GAAmC,SAAS1M,WAAT,IAAwBwM,oBAAxB,EAA8C;AAAA,IAE/E,IAAII,mBAAA,CAAoB5M,WAApB,MAAqCwM,oBAAA,CAAqBxM,WAArB,CAAzC;AAAA,KAA4E,IAAI;AAAA,MAC9EhK,2BAAA,CAA4B4W,mBAA5B,EAAiD5M,WAAjD,EAA8DwM,oBAAA,CAAqBxM,WAArB,CAA9D,EAD8E;AAAA,MAAJ,CAE1E,OAAO9H,KAAP,EAAc;AAAA,MACd0U,mBAAA,CAAoB5M,WAApB,IAAmCwM,oBAAA,CAAqBxM,WAArB,CAAnC,CADc;AAAA,MAJ+D;AAAA,IAV1D;AAAA,EAHe;AAAA,C;;;;;;ACR1CxlB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfkxB,WAAA,EAAa,CADE;AAAA,CAEfC,mBAAA,EAAqB,CAFN;AAAA,CAGfC,YAAA,EAAc,CAHC;AAAA,CAIfC,cAAA,EAAgB,CAJD;AAAA,CAKfC,WAAA,EAAa,CALE;AAAA,CAMfC,aAAA,EAAe,CANA;AAAA,CAOfrY,YAAA,EAAc,CAPC;AAAA,CAQfsY,oBAAA,EAAsB,CARP;AAAA,CASfC,QAAA,EAAU,CATK;AAAA,CAUfC,iBAAA,EAAmB,CAVJ;AAAA,CAWfC,cAAA,EAAgB,CAXD;AAAA,CAYfC,eAAA,EAAiB,CAZF;AAAA,CAafC,iBAAA,EAAmB,CAbJ;AAAA,CAcfC,SAAA,EAAW,CAdI;AAAA,CAefC,aAAA,EAAe,CAfA;AAAA,CAgBfC,YAAA,EAAc,CAhBC;AAAA,CAiBfC,QAAA,EAAU,CAjBK;AAAA,CAkBfC,gBAAA,EAAkB,CAlBH;AAAA,CAmBfC,MAAA,EAAQ,CAnBO;AAAA,CAoBfC,WAAA,EAAa,CApBE;AAAA,CAqBfC,aAAA,EAAe,CArBA;AAAA,CAsBfC,aAAA,EAAe,CAtBA;AAAA,CAuBfC,cAAA,EAAgB,CAvBD;AAAA,CAwBfC,YAAA,EAAc,CAxBC;AAAA,CAyBfC,aAAA,EAAe,CAzBA;AAAA,CA0BfC,gBAAA,EAAkB,CA1BH;AAAA,CA2BfC,gBAAA,EAAkB,CA3BH;AAAA,CA4BfC,cAAA,EAAgB,CA5BD;AAAA,CA6BfC,gBAAA,EAAkB,CA7BH;AAAA,CA8BfC,aAAA,EAAe,CA9BA;AAAA,CA+BfC,SAAA,EAAW,CA/BI;AAAA,CAAjB,C;;;;;;;ACFa;AACb,IAAI9Y,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAGA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CAHA;AAIA,IAAIooB,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB,CAJA;AAKA,IAAI06B,aAAA,GAAgB16B,mBAAA,CAAQ,GAAR,CAApB,CALA;AAMA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAOA,IAAI26B,WAAA,GAAc36B,mBAAA,CAAQ,GAAR,CAAlB,CAPA;AAQA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CARA;AASA,IAAI46B,UAAA,GAAa56B,mBAAA,CAAQ,GAAR,CAAjB,CATA;AAUA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAVA;AAWA,IAAI0oB,SAAA,GAAY1oB,mBAAA,CAAQ,EAAR,CAAhB,CAXA;AAYA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CAZA;AAaA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CAbA;AAcA,IAAI8lB,aAAA,GAAgB9lB,mBAAA,CAAQ,EAAR,CAApB,CAdA;AAeA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CAfA;AAgBA,IAAI0yB,2BAAA,GAA8B1yB,mBAAA,CAAQ,EAAR,CAAlC,CAhBA;AAiBA,IAAIi2B,kBAAA,GAAqBj2B,mBAAA,CAAQ,GAAR,CAAzB,CAjBA;AAkBA,IAAI86B,IAAA,GAAO96B,mBAAA,CAAQ,GAAR,EAA6B+mB,GAAxC,CAlBA;AAmBA,IAAIgU,SAAA,GAAY/6B,mBAAA,CAAQ,GAAR,CAAhB,CAnBA;AAoBA,IAAIg7B,cAAA,GAAiBh7B,mBAAA,CAAQ,GAAR,CAArB,CApBA;AAqBA,IAAIi7B,gBAAA,GAAmBj7B,mBAAA,CAAQ,GAAR,CAAvB,CArBA;AAsBA,IAAIk7B,0BAAA,GAA6Bl7B,mBAAA,CAAQ,GAAR,CAAjC,CAtBA;AAuBA,IAAIm7B,OAAA,GAAUn7B,mBAAA,CAAQ,GAAR,CAAd,CAvBA;AAwBA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAxBA;AAyBA,IAAImiB,QAAA,GAAWniB,mBAAA,CAAQ,EAAR,CAAf,CAzBA;AA0BA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CA1BA;AA2BA,IAAIo7B,UAAA,GAAap7B,mBAAA,CAAQ,GAAR,CAAjB,CA3BA;AA6BA,IAAIm4B,OAAA,GAAU5M,eAAA,CAAgB,SAAhB,CAAd,CA7BA;AA8BA,IAAI8P,OAAA,GAAU,SAAd,CA9BA;AA+BA,IAAIrV,gBAAA,GAAmBD,mBAAA,CAAoBha,GAA3C,CA/BA;AAgCA,IAAI2jB,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CAhCA;AAiCA,IAAIuU,uBAAA,GAA0BvV,mBAAA,CAAoBiB,SAApB,CAA8BqU,OAA9B,CAA9B,CAjCA;AAkCA,IAAIE,kBAAA,GAAqBb,aAAzB,CAlCA;AAmCA,IAAIzV,SAAA,GAAYrD,MAAA,CAAOqD,SAAvB,CAnCA;AAoCA,IAAIpjB,QAAA,GAAW+f,MAAA,CAAO/f,QAAtB,CApCA;AAqCA,IAAI6f,OAAA,GAAUE,MAAA,CAAOF,OAArB,CArCA;AAsCA,IAAI8Z,MAAA,GAASpT,UAAA,CAAW,OAAX,CAAb,CAtCA;AAuCA,IAAIqT,oBAAA,GAAuBP,0BAAA,CAA2BpZ,CAAtD,CAvCA;AAwCA,IAAI4Z,2BAAA,GAA8BD,oBAAlC,CAxCA;AAyCA,IAAIE,OAAA,GAAU9W,OAAA,CAAQnD,OAAR,KAAoB,SAAlC,CAzCA;AA0CA,IAAIka,cAAA,GAAiB,CAAC,CAAE,CAAA/5B,QAAA,IAAYA,QAAA,CAASg6B,WAArB,IAAoCja,MAAA,CAAOka,aAA3C,CAAxB,CA1CA;AA2CA,IAAIC,mBAAA,GAAsB,oBAA1B,CA3CA;AA4CA,IAAIC,iBAAA,GAAoB,kBAAxB,CA5CA;AA6CA,IAAIC,OAAA,GAAU,CAAd,CA7CA;AA8CA,IAAIC,SAAA,GAAY,CAAhB,CA9CA;AA+CA,IAAItsB,QAAA,GAAW,CAAf,CA/CA;AAgDA,IAAIusB,OAAA,GAAU,CAAd,CAhDA;AAiDA,IAAIC,SAAA,GAAY,CAAhB,CAjDA;AAkDA,IAAIC,QAAJ,EAAcC,oBAAd,EAAoCC,cAApC,EAAoDC,UAApD,CAlDA;AAoDA,IAAI7Z,MAAA,GAASR,QAAA,CAASkZ,OAAT,EAAkB,YAAY;AAAA,CACzC,IAAIoB,sBAAA,GAAyB3W,aAAA,CAAcyV,kBAAd,MAAsCzf,MAAA,CAAOyf,kBAAP,CAAnE,CADyC;AAAA,CAEzC,IAAI,CAACkB,sBAAL,EAA6B;AAAA,EAI3B,IAAIrB,UAAA,KAAe,EAAnB;AAAA,GAAuB,OAAO,IAAP,CAJI;AAAA,EAM3B,IAAI,CAACO,OAAD,IAAY,OAAOe,qBAAP,IAAgC,UAAhD;AAAA,GAA4D,OAAO,IAAP,CANjC;AAAA,EAFY;AAAA,CAWzC,IAAIhV,OAAA,IAAW,CAAC6T,kBAAA,CAAmBxY,SAAnB,CAA6B,SAA7B,CAAhB;AAAA,EAAyD,OAAO,IAAP,CAXhB;AAAA,CAezC,IAAIqY,UAAA,IAAc,EAAd,IAAoB,cAAc7T,IAAd,CAAmBgU,kBAAnB,CAAxB;AAAA,EAAgE,OAAO,KAAP,CAfvB;AAAA,CAiBzC,IAAIoB,OAAA,GAAUpB,kBAAA,CAAmBp5B,OAAnB,CAA2B,CAA3B,CAAd,CAjByC;AAAA,CAkBzC,IAAIy6B,WAAA,GAAc,UAAUvY,IAAV,EAAgB;AAAA,EAChCA,IAAA,CAAK,YAAY;AAAA,GAAjB,EAAkC,YAAY;AAAA,GAA9C,EADgC;AAAA,EAAlC,CAlByC;AAAA,CAqBzC,IAAI5jB,WAAA,GAAck8B,OAAA,CAAQl8B,WAAR,GAAsB,EAAxC,CArByC;AAAA,CAsBzCA,WAAA,CAAY03B,OAAZ,IAAuByE,WAAvB,CAtByC;AAAA,CAuBzC,OAAO,CAAE,CAAAD,OAAA,CAAQE,IAAR,CAAa,YAAY;AAAA,EAAzB,aAAqDD,WAArD,CAAT,CAvByC;AAAA,CAA9B,CAAb,CApDA;AA8EA,IAAIjK,mBAAA,GAAsBhQ,MAAA,IAAU,CAAC+P,2BAAA,CAA4B,UAAUloB,QAAV,EAAoB;AAAA,CACnF+wB,kBAAA,CAAmBuB,GAAnB,CAAuBtyB,QAAvB,EAAiC,OAAjC,EAA0C,YAAY;AAAA,EAAtD,EADmF;AAAA,CAAhD,CAArC,CA9EA;AAmFA,IAAIuyB,UAAA,GAAa,UAAU1Z,EAAV,EAAc;AAAA,CAC7B,IAAIwZ,IAAJ,CAD6B;AAAA,CAE7B,OAAO3X,QAAA,CAAS7B,EAAT,KAAgB,OAAQ,CAAAwZ,IAAA,GAAOxZ,EAAA,CAAGwZ,IAAV,CAAR,IAA2B,UAA3C,GAAwDA,IAAxD,GAA+D,KAAtE,CAF6B;AAAA,CAA/B,CAnFA;AAwFA,IAAIG,MAAA,GAAS,UAAUL,OAAV,EAAmBlzB,KAAnB,EAA0BwzB,QAA1B,EAAoC;AAAA,CAC/C,IAAIxzB,KAAA,CAAMyzB,QAAV;AAAA,EAAoB,OAD2B;AAAA,CAE/CzzB,KAAA,CAAMyzB,QAAN,GAAiB,IAAjB,CAF+C;AAAA,CAG/C,IAAIC,KAAA,GAAQ1zB,KAAA,CAAM2zB,SAAlB,CAH+C;AAAA,CAI/CrC,SAAA,CAAU,YAAY;AAAA,EACpB,IAAIh0B,KAAA,GAAQ0C,KAAA,CAAM1C,KAAlB,CADoB;AAAA,EAEpB,IAAIs2B,EAAA,GAAK5zB,KAAA,CAAMA,KAAN,IAAeyyB,SAAxB,CAFoB;AAAA,EAGpB,IAAIzS,KAAA,GAAQ,CAAZ,CAHoB;AAAA,EAKpB,OAAO0T,KAAA,CAAMvhB,MAAN,GAAe6N,KAAtB,EAA6B;AAAA,GAC3B,IAAI6T,QAAA,GAAWH,KAAA,CAAM1T,KAAA,EAAN,CAAf,CAD2B;AAAA,GAE3B,IAAI8T,OAAA,GAAUF,EAAA,GAAKC,QAAA,CAASD,EAAd,GAAmBC,QAAA,CAASE,IAA1C,CAF2B;AAAA,GAG3B,IAAIr7B,OAAA,GAAUm7B,QAAA,CAASn7B,OAAvB,CAH2B;AAAA,GAI3B,IAAIC,MAAA,GAASk7B,QAAA,CAASl7B,MAAtB,CAJ2B;AAAA,GAK3B,IAAI0sB,MAAA,GAASwO,QAAA,CAASxO,MAAtB,CAL2B;AAAA,GAM3B,IAAI9lB,MAAJ,EAAY6zB,IAAZ,EAAkBY,MAAlB,CAN2B;AAAA,GAO3B,IAAI;AAAA,IACF,IAAIF,OAAJ,EAAa;AAAA,KACX,IAAI,CAACF,EAAL,EAAS;AAAA,MACP,IAAI5zB,KAAA,CAAMi0B,SAAN,KAAoBtB,SAAxB;AAAA,OAAmCuB,iBAAA,CAAkBhB,OAAlB,EAA2BlzB,KAA3B,EAD5B;AAAA,MAEPA,KAAA,CAAMi0B,SAAN,GAAkBvB,OAAlB,CAFO;AAAA,MADE;AAAA,KAKX,IAAIoB,OAAA,KAAY,IAAhB;AAAA,MAAsBv0B,MAAA,GAASjC,KAAT,CAAtB;AAAA,UACK;AAAA,MACH,IAAI+nB,MAAJ;AAAA,OAAYA,MAAA,CAAO8O,KAAP,GADT;AAAA,MAEH50B,MAAA,GAASu0B,OAAA,CAAQx2B,KAAR,CAAT,CAFG;AAAA,MAGH,IAAI+nB,MAAJ,EAAY;AAAA,OACVA,MAAA,CAAO+O,IAAP,GADU;AAAA,OAEVJ,MAAA,GAAS,IAAT,CAFU;AAAA,OAHT;AAAA,MANM;AAAA,KAcX,IAAIz0B,MAAA,KAAWs0B,QAAA,CAASX,OAAxB,EAAiC;AAAA,MAC/Bv6B,MAAA,CAAO6iB,SAAA,CAAU,qBAAV,CAAP,EAD+B;AAAA,MAAjC,MAEO,IAAI4X,IAAA,GAAOE,UAAA,CAAW/zB,MAAX,CAAX,EAA+B;AAAA,MACpC6zB,IAAA,CAAK3Y,IAAL,CAAUlb,MAAV,EAAkB7G,OAAlB,EAA2BC,MAA3B,EADoC;AAAA,MAA/B;AAAA,MAEAD,OAAA,CAAQ6G,MAAR,EAlBI;AAAA,KAAb;AAAA,KAmBO5G,MAAA,CAAO2E,KAAP,EApBL;AAAA,IAAJ,CAqBE,OAAOkd,KAAP,EAAc;AAAA,IACd,IAAI6K,MAAA,IAAU,CAAC2O,MAAf;AAAA,KAAuB3O,MAAA,CAAO+O,IAAP,GADT;AAAA,IAEdz7B,MAAA,CAAO6hB,KAAP,EAFc;AAAA,IA5BW;AAAA,GALT;AAAA,EAsCpBxa,KAAA,CAAM2zB,SAAN,GAAkB,EAAlB,CAtCoB;AAAA,EAuCpB3zB,KAAA,CAAMyzB,QAAN,GAAiB,KAAjB,CAvCoB;AAAA,EAwCpB,IAAID,QAAA,IAAY,CAACxzB,KAAA,CAAMi0B,SAAvB;AAAA,GAAkCI,WAAA,CAAYnB,OAAZ,EAAqBlzB,KAArB,EAxCd;AAAA,EAAtB,EAJ+C;AAAA,CAAjD,CAxFA;AAwIA,IAAIqyB,aAAA,GAAgB,UAAUh3B,IAAV,EAAgB63B,OAAhB,EAAyBj7B,MAAzB,EAAiC;AAAA,CACnD,IAAIq8B,KAAJ,EAAWR,OAAX,CADmD;AAAA,CAEnD,IAAI3B,cAAJ,EAAoB;AAAA,EAClBmC,KAAA,GAAQl8B,QAAA,CAASg6B,WAAT,CAAqB,OAArB,CAAR,CADkB;AAAA,EAElBkC,KAAA,CAAMpB,OAAN,GAAgBA,OAAhB,CAFkB;AAAA,EAGlBoB,KAAA,CAAMr8B,MAAN,GAAeA,MAAf,CAHkB;AAAA,EAIlBq8B,KAAA,CAAMC,SAAN,CAAgBl5B,IAAhB,EAAsB,KAAtB,EAA6B,IAA7B,EAJkB;AAAA,EAKlB8c,MAAA,CAAOka,aAAP,CAAqBiC,KAArB,EALkB;AAAA,EAApB;AAAA,EAMOA,KAAA,GAAQ;AAAA,GAAEpB,OAAA,EAASA,OAAX;AAAA,GAAoBj7B,MAAA,EAAQA,MAA5B;AAAA,GAAR,CAR4C;AAAA,CASnD,IAAI67B,OAAA,GAAU3b,MAAA,CAAO,OAAO9c,IAAd,CAAd;AAAA,EAAmCy4B,OAAA,CAAQQ,KAAR,EAAnC;AAAA,MACK,IAAIj5B,IAAA,KAASi3B,mBAAb;AAAA,EAAkCd,gBAAA,CAAiB,6BAAjB,EAAgDv5B,MAAhD,EAVY;AAAA,CAArD,CAxIA;AAqJA,IAAIo8B,WAAA,GAAc,UAAUnB,OAAV,EAAmBlzB,KAAnB,EAA0B;AAAA,CAC1CqxB,IAAA,CAAK5W,IAAL,CAAUtC,MAAV,EAAkB,YAAY;AAAA,EAC5B,IAAI7a,KAAA,GAAQ0C,KAAA,CAAM1C,KAAlB,CAD4B;AAAA,EAE5B,IAAIk3B,YAAA,GAAeC,WAAA,CAAYz0B,KAAZ,CAAnB,CAF4B;AAAA,EAG5B,IAAIT,MAAJ,CAH4B;AAAA,EAI5B,IAAIi1B,YAAJ,EAAkB;AAAA,GAChBj1B,MAAA,GAASmyB,OAAA,CAAQ,YAAY;AAAA,IAC3B,IAAIQ,OAAJ,EAAa;AAAA,KACXja,OAAA,CAAQyc,IAAR,CAAa,oBAAb,EAAmCp3B,KAAnC,EAA0C41B,OAA1C,EADW;AAAA,KAAb;AAAA,KAEOb,aAAA,CAAcC,mBAAd,EAAmCY,OAAnC,EAA4C51B,KAA5C,EAHoB;AAAA,IAApB,CAAT,CADgB;AAAA,GAOhB0C,KAAA,CAAMi0B,SAAN,GAAkB/B,OAAA,IAAWuC,WAAA,CAAYz0B,KAAZ,CAAX,GAAgC2yB,SAAhC,GAA4CD,OAA9D,CAPgB;AAAA,GAQhB,IAAInzB,MAAA,CAAOib,KAAX;AAAA,IAAkB,MAAMjb,MAAA,CAAOjC,KAAb,CARF;AAAA,GAJU;AAAA,EAA9B,EAD0C;AAAA,CAA5C,CArJA;AAuKA,IAAIm3B,WAAA,GAAc,UAAUz0B,KAAV,EAAiB;AAAA,CACjC,OAAOA,KAAA,CAAMi0B,SAAN,KAAoBvB,OAApB,IAA+B,CAAC1yB,KAAA,CAAM20B,MAA7C,CADiC;AAAA,CAAnC,CAvKA;AA2KA,IAAIT,iBAAA,GAAoB,UAAUhB,OAAV,EAAmBlzB,KAAnB,EAA0B;AAAA,CAChDqxB,IAAA,CAAK5W,IAAL,CAAUtC,MAAV,EAAkB,YAAY;AAAA,EAC5B,IAAI+Z,OAAJ,EAAa;AAAA,GACXja,OAAA,CAAQyc,IAAR,CAAa,kBAAb,EAAiCxB,OAAjC,EADW;AAAA,GAAb;AAAA,GAEOb,aAAA,CAAcE,iBAAd,EAAiCW,OAAjC,EAA0ClzB,KAAA,CAAM1C,KAAhD,EAHqB;AAAA,EAA9B,EADgD;AAAA,CAAlD,CA3KA;AAmLA,IAAImlB,IAAA,GAAO,UAAUrkB,EAAV,EAAc80B,OAAd,EAAuBlzB,KAAvB,EAA8B40B,MAA9B,EAAsC;AAAA,CAC/C,OAAO,UAAUt3B,KAAV,EAAiB;AAAA,EACtBc,EAAA,CAAG80B,OAAH,EAAYlzB,KAAZ,EAAmB1C,KAAnB,EAA0Bs3B,MAA1B,EADsB;AAAA,EAAxB,CAD+C;AAAA,CAAjD,CAnLA;AAyLA,IAAIC,cAAA,GAAiB,UAAU3B,OAAV,EAAmBlzB,KAAnB,EAA0B1C,KAA1B,EAAiCs3B,MAAjC,EAAyC;AAAA,CAC5D,IAAI50B,KAAA,CAAMM,IAAV;AAAA,EAAgB,OAD4C;AAAA,CAE5DN,KAAA,CAAMM,IAAN,GAAa,IAAb,CAF4D;AAAA,CAG5D,IAAIs0B,MAAJ;AAAA,EAAY50B,KAAA,GAAQ40B,MAAR,CAHgD;AAAA,CAI5D50B,KAAA,CAAM1C,KAAN,GAAcA,KAAd,CAJ4D;AAAA,CAK5D0C,KAAA,CAAMA,KAAN,GAAcmG,QAAd,CAL4D;AAAA,CAM5DotB,MAAA,CAAOL,OAAP,EAAgBlzB,KAAhB,EAAuB,IAAvB,EAN4D;AAAA,CAA9D,CAzLA;AAkMA,IAAI80B,eAAA,GAAkB,UAAU5B,OAAV,EAAmBlzB,KAAnB,EAA0B1C,KAA1B,EAAiCs3B,MAAjC,EAAyC;AAAA,CAC7D,IAAI50B,KAAA,CAAMM,IAAV;AAAA,EAAgB,OAD6C;AAAA,CAE7DN,KAAA,CAAMM,IAAN,GAAa,IAAb,CAF6D;AAAA,CAG7D,IAAIs0B,MAAJ;AAAA,EAAY50B,KAAA,GAAQ40B,MAAR,CAHiD;AAAA,CAI7D,IAAI;AAAA,EACF,IAAI1B,OAAA,KAAY51B,KAAhB;AAAA,GAAuB,MAAMke,SAAA,CAAU,kCAAV,CAAN,CADrB;AAAA,EAEF,IAAI4X,IAAA,GAAOE,UAAA,CAAWh2B,KAAX,CAAX,CAFE;AAAA,EAGF,IAAI81B,IAAJ,EAAU;AAAA,GACR9B,SAAA,CAAU,YAAY;AAAA,IACpB,IAAIyD,OAAA,GAAU,EAAEz0B,IAAA,EAAM,KAAR,EAAd,CADoB;AAAA,IAEpB,IAAI;AAAA,KACF8yB,IAAA,CAAK3Y,IAAL,CAAUnd,KAAV,EACEmlB,IAAA,CAAKqS,eAAL,EAAsB5B,OAAtB,EAA+B6B,OAA/B,EAAwC/0B,KAAxC,CADF,EAEEyiB,IAAA,CAAKoS,cAAL,EAAqB3B,OAArB,EAA8B6B,OAA9B,EAAuC/0B,KAAvC,CAFF,EADE;AAAA,KAAJ,CAKE,OAAOwa,KAAP,EAAc;AAAA,KACdqa,cAAA,CAAe3B,OAAf,EAAwB6B,OAAxB,EAAiCva,KAAjC,EAAwCxa,KAAxC,EADc;AAAA,KAPI;AAAA,IAAtB,EADQ;AAAA,GAAV,MAYO;AAAA,GACLA,KAAA,CAAM1C,KAAN,GAAcA,KAAd,CADK;AAAA,GAEL0C,KAAA,CAAMA,KAAN,GAAcyyB,SAAd,CAFK;AAAA,GAGLc,MAAA,CAAOL,OAAP,EAAgBlzB,KAAhB,EAAuB,KAAvB,EAHK;AAAA,GAfL;AAAA,EAAJ,CAoBE,OAAOwa,KAAP,EAAc;AAAA,EACdqa,cAAA,CAAe3B,OAAf,EAAwB,EAAE5yB,IAAA,EAAM,KAAR,EAAxB,EAAyCka,KAAzC,EAAgDxa,KAAhD,EADc;AAAA,EAxB6C;AAAA,CAA/D,CAlMA;AAgOA,IAAIkZ,MAAJ,EAAY;AAAA,CAEV4Y,kBAAA,GAAqB,SAASlD,OAAT,CAAiBoG,QAAjB,EAA2B;AAAA,EAC9C5D,UAAA,CAAW,IAAX,EAAiBU,kBAAjB,EAAqCF,OAArC,EAD8C;AAAA,EAE9C3S,SAAA,CAAU+V,QAAV,EAF8C;AAAA,EAG9CpC,QAAA,CAASnY,IAAT,CAAc,IAAd,EAH8C;AAAA,EAI9C,IAAIza,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CAJ8C;AAAA,EAK9C,IAAI;AAAA,GACFyY,QAAA,CAASvS,IAAA,CAAKqS,eAAL,EAAsB,IAAtB,EAA4B90B,KAA5B,CAAT,EAA6CyiB,IAAA,CAAKoS,cAAL,EAAqB,IAArB,EAA2B70B,KAA3B,CAA7C,EADE;AAAA,GAAJ,CAEE,OAAOwa,KAAP,EAAc;AAAA,GACdqa,cAAA,CAAe,IAAf,EAAqB70B,KAArB,EAA4Bwa,KAA5B,EADc;AAAA,GAP8B;AAAA,EAAhD,CAFU;AAAA,CAcVoY,QAAA,GAAW,SAAShE,OAAT,CAAiBoG,QAAjB,EAA2B;AAAA,EACpC/O,gBAAA,CAAiB,IAAjB,EAAuB;AAAA,GACrB/nB,IAAA,EAAM0zB,OADe;AAAA,GAErBtxB,IAAA,EAAM,KAFe;AAAA,GAGrBmzB,QAAA,EAAU,KAHW;AAAA,GAIrBkB,MAAA,EAAQ,KAJa;AAAA,GAKrBhB,SAAA,EAAW,EALU;AAAA,GAMrBM,SAAA,EAAW,KANU;AAAA,GAOrBj0B,KAAA,EAAOwyB,OAPc;AAAA,GAQrBl1B,KAAA,EAAOmc,SARc;AAAA,GAAvB,EADoC;AAAA,EAAtC,CAdU;AAAA,CA0BVmZ,QAAA,CAAStZ,SAAT,GAAqB4X,WAAA,CAAYY,kBAAA,CAAmBxY,SAA/B,EAA0C;AAAA,EAG7D8Z,IAAA,EAAM,SAASA,IAAT,CAAc6B,WAAd,EAA2BC,UAA3B,EAAuC;AAAA,GAC3C,IAAIl1B,KAAA,GAAQ6xB,uBAAA,CAAwB,IAAxB,CAAZ,CAD2C;AAAA,GAE3C,IAAIgC,QAAA,GAAW7B,oBAAA,CAAqBxF,kBAAA,CAAmB,IAAnB,EAAyBsF,kBAAzB,CAArB,CAAf,CAF2C;AAAA,GAG3C+B,QAAA,CAASD,EAAT,GAAc,OAAOqB,WAAP,IAAsB,UAAtB,GAAmCA,WAAnC,GAAiD,IAA/D,CAH2C;AAAA,GAI3CpB,QAAA,CAASE,IAAT,GAAgB,OAAOmB,UAAP,IAAqB,UAArB,IAAmCA,UAAnD,CAJ2C;AAAA,GAK3CrB,QAAA,CAASxO,MAAT,GAAkB6M,OAAA,GAAUja,OAAA,CAAQoN,MAAlB,GAA2B5L,SAA7C,CAL2C;AAAA,GAM3CzZ,KAAA,CAAM20B,MAAN,GAAe,IAAf,CAN2C;AAAA,GAO3C30B,KAAA,CAAM2zB,SAAN,CAAgBzV,IAAhB,CAAqB2V,QAArB,EAP2C;AAAA,GAQ3C,IAAI7zB,KAAA,CAAMA,KAAN,IAAewyB,OAAnB;AAAA,IAA4Be,MAAA,CAAO,IAAP,EAAavzB,KAAb,EAAoB,KAApB,EARe;AAAA,GAS3C,OAAO6zB,QAAA,CAASX,OAAhB,CAT2C;AAAA,GAHgB;AAAA,EAgB7D,SAAS,UAAUgC,UAAV,EAAsB;AAAA,GAC7B,OAAO,KAAK9B,IAAL,CAAU3Z,SAAV,EAAqByb,UAArB,CAAP,CAD6B;AAAA,GAhB8B;AAAA,EAA1C,CAArB,CA1BU;AAAA,CA8CVrC,oBAAA,GAAuB,YAAY;AAAA,EACjC,IAAIK,OAAA,GAAU,IAAIN,QAAJ,EAAd,CADiC;AAAA,EAEjC,IAAI5yB,KAAA,GAAQuc,gBAAA,CAAiB2W,OAAjB,CAAZ,CAFiC;AAAA,EAGjC,KAAKA,OAAL,GAAeA,OAAf,CAHiC;AAAA,EAIjC,KAAKx6B,OAAL,GAAe+pB,IAAA,CAAKqS,eAAL,EAAsB5B,OAAtB,EAA+BlzB,KAA/B,CAAf,CAJiC;AAAA,EAKjC,KAAKrH,MAAL,GAAc8pB,IAAA,CAAKoS,cAAL,EAAqB3B,OAArB,EAA8BlzB,KAA9B,CAAd,CALiC;AAAA,EAAnC,CA9CU;AAAA,CAqDVyxB,0BAAA,CAA2BpZ,CAA3B,GAA+B2Z,oBAAA,GAAuB,UAAUxI,CAAV,EAAa;AAAA,EACjE,OAAOA,CAAA,KAAMsI,kBAAN,IAA4BtI,CAAA,KAAMsJ,cAAlC,GACH,IAAID,oBAAJ,CAAyBrJ,CAAzB,CADG,GAEHyI,2BAAA,CAA4BzI,CAA5B,CAFJ,CADiE;AAAA,EAAnE,CArDU;AAAA,CA2DV,IAAI,CAACvL,OAAD,IAAY,OAAOgT,aAAP,IAAwB,UAAxC,EAAoD;AAAA,EAClD8B,UAAA,GAAa9B,aAAA,CAAc3X,SAAd,CAAwB8Z,IAArC,CADkD;AAAA,EAIlD7a,QAAA,CAAS0Y,aAAA,CAAc3X,SAAvB,EAAkC,MAAlC,EAA0C,SAAS8Z,IAAT,CAAc6B,WAAd,EAA2BC,UAA3B,EAAuC;AAAA,GAC/E,IAAIvT,IAAA,GAAO,IAAX,CAD+E;AAAA,GAE/E,OAAO,IAAImQ,kBAAJ,CAAuB,UAAUp5B,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,IACvDo6B,UAAA,CAAWtY,IAAX,CAAgBkH,IAAhB,EAAsBjpB,OAAtB,EAA+BC,MAA/B,EADuD;AAAA,IAAlD,EAEJy6B,IAFI,CAEC6B,WAFD,EAEcC,UAFd,CAAP,CAF+E;AAAA,GAAjF,EAMG,EAAEvY,MAAA,EAAQ,IAAV,EANH,EAJkD;AAAA,EAalD,IAAI,OAAOoV,MAAP,IAAiB,UAArB;AAAA,GAAiC7Z,CAAA,CAAE;AAAA,IAAEC,MAAA,EAAQ,IAAV;AAAA,IAAgB5a,UAAA,EAAY,IAA5B;AAAA,IAAkCic,MAAA,EAAQ,IAA1C;AAAA,IAAF,EAAoD;AAAA,IAEnF2b,KAAA,EAAO,SAASA,KAAT,CAAezZ,KAAf,EAAmC;AAAA,KACxC,OAAO6V,cAAA,CAAeO,kBAAf,EAAmCC,MAAA,CAAOnP,KAAP,CAAazK,MAAb,EAAqBZ,SAArB,CAAnC,CAAP,CADwC;AAAA,KAFyC;AAAA,IAApD,EAbiB;AAAA,EA3D1C;AAAA,CAhOZ;AAiTAW,CAAA,CAAE;AAAA,CAAEC,MAAA,EAAQ,IAAV;AAAA,CAAgBpY,IAAA,EAAM,IAAtB;AAAA,CAA4ByZ,MAAA,EAAQN,MAApC;AAAA,CAAF,EAAgD,EAC9C0V,OAAA,EAASkD,kBADqC,EAAhD,EAjTA;AAqTAjL,cAAA,CAAeiL,kBAAf,EAAmCF,OAAnC,EAA4C,KAA5C,EAAmD,IAAnD,EArTA;AAsTAT,UAAA,CAAWS,OAAX,EAtTA;AAwTAkB,cAAA,GAAiBnU,UAAA,CAAWiT,OAAX,CAAjB,CAxTA;AA2TA1Z,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ8Y,OAAV;AAAA,CAAmB3Y,IAAA,EAAM,IAAzB;AAAA,CAA+BO,MAAA,EAAQN,MAAvC;AAAA,CAAF,EAAmD;AAAA,CAGjDvgB,MAAA,EAAQ,SAASA,MAAT,CAAgBub,CAAhB,EAAmB;AAAA,EACzB,IAAI0B,UAAA,GAAaoc,oBAAA,CAAqB,IAArB,CAAjB,CADyB;AAAA,EAEzBpc,UAAA,CAAWjd,MAAX,CAAkB8hB,IAAlB,CAAuBhB,SAAvB,EAAkCvF,CAAlC,EAFyB;AAAA,EAGzB,OAAO0B,UAAA,CAAWsd,OAAlB,CAHyB;AAAA,EAHsB;AAAA,CAAnD,EA3TA;AAqUAhb,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ8Y,OAAV;AAAA,CAAmB3Y,IAAA,EAAM,IAAzB;AAAA,CAA+BO,MAAA,EAAQyE,OAAA,IAAW/E,MAAlD;AAAA,CAAF,EAA8D;AAAA,CAG5DxgB,OAAA,EAAS,SAASA,OAAT,CAAiByzB,CAAjB,EAAoB;AAAA,EAC3B,OAAOoF,cAAA,CAAetT,OAAA,IAAW,SAAS6U,cAApB,GAAqChB,kBAArC,GAA0D,IAAzE,EAA+E3F,CAA/E,CAAP,CAD2B;AAAA,EAH+B;AAAA,CAA9D,EArUA;AA6UAjU,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ8Y,OAAV;AAAA,CAAmB3Y,IAAA,EAAM,IAAzB;AAAA,CAA+BO,MAAA,EAAQ0P,mBAAvC;AAAA,CAAF,EAAgE;AAAA,CAG9DmK,GAAA,EAAK,SAASA,GAAT,CAAatyB,QAAb,EAAuB;AAAA,EAC1B,IAAIyoB,CAAA,GAAI,IAAR,CAD0B;AAAA,EAE1B,IAAI5T,UAAA,GAAaoc,oBAAA,CAAqBxI,CAArB,CAAjB,CAF0B;AAAA,EAG1B,IAAI9wB,OAAA,GAAUkd,UAAA,CAAWld,OAAzB,CAH0B;AAAA,EAI1B,IAAIC,MAAA,GAASid,UAAA,CAAWjd,MAAxB,CAJ0B;AAAA,EAK1B,IAAI4G,MAAA,GAASmyB,OAAA,CAAQ,YAAY;AAAA,GAC/B,IAAI0D,eAAA,GAAkBnW,SAAA,CAAUuK,CAAA,CAAE9wB,OAAZ,CAAtB,CAD+B;AAAA,GAE/B,IAAImG,MAAA,GAAS,EAAb,CAF+B;AAAA,GAG/B,IAAIw2B,OAAA,GAAU,CAAd,CAH+B;AAAA,GAI/B,IAAIC,SAAA,GAAY,CAAhB,CAJ+B;AAAA,GAK/B9J,OAAA,CAAQzqB,QAAR,EAAkB,UAAUmyB,OAAV,EAAmB;AAAA,IACnC,IAAIlT,KAAA,GAAQqV,OAAA,EAAZ,CADmC;AAAA,IAEnC,IAAIE,aAAA,GAAgB,KAApB,CAFmC;AAAA,IAGnC12B,MAAA,CAAOqf,IAAP,CAAYzE,SAAZ,EAHmC;AAAA,IAInC6b,SAAA,GAJmC;AAAA,IAKnCF,eAAA,CAAgB3a,IAAhB,CAAqB+O,CAArB,EAAwB0J,OAAxB,EAAiCE,IAAjC,CAAsC,UAAU91B,KAAV,EAAiB;AAAA,KACrD,IAAIi4B,aAAJ;AAAA,MAAmB,OADkC;AAAA,KAErDA,aAAA,GAAgB,IAAhB,CAFqD;AAAA,KAGrD12B,MAAA,CAAOmhB,KAAP,IAAgB1iB,KAAhB,CAHqD;AAAA,KAIrD,EAAEg4B,SAAF,IAAe58B,OAAA,CAAQmG,MAAR,CAAf,CAJqD;AAAA,KAAvD,EAKGlG,MALH,EALmC;AAAA,IAArC,EAL+B;AAAA,GAiB/B,EAAE28B,SAAF,IAAe58B,OAAA,CAAQmG,MAAR,CAAf,CAjB+B;AAAA,GAApB,CAAb,CAL0B;AAAA,EAwB1B,IAAIU,MAAA,CAAOib,KAAX;AAAA,GAAkB7hB,MAAA,CAAO4G,MAAA,CAAOjC,KAAd,EAxBQ;AAAA,EAyB1B,OAAOsY,UAAA,CAAWsd,OAAlB,CAzB0B;AAAA,EAHkC;AAAA,CAgC9DsC,IAAA,EAAM,SAASA,IAAT,CAAcz0B,QAAd,EAAwB;AAAA,EAC5B,IAAIyoB,CAAA,GAAI,IAAR,CAD4B;AAAA,EAE5B,IAAI5T,UAAA,GAAaoc,oBAAA,CAAqBxI,CAArB,CAAjB,CAF4B;AAAA,EAG5B,IAAI7wB,MAAA,GAASid,UAAA,CAAWjd,MAAxB,CAH4B;AAAA,EAI5B,IAAI4G,MAAA,GAASmyB,OAAA,CAAQ,YAAY;AAAA,GAC/B,IAAI0D,eAAA,GAAkBnW,SAAA,CAAUuK,CAAA,CAAE9wB,OAAZ,CAAtB,CAD+B;AAAA,GAE/B8yB,OAAA,CAAQzqB,QAAR,EAAkB,UAAUmyB,OAAV,EAAmB;AAAA,IACnCkC,eAAA,CAAgB3a,IAAhB,CAAqB+O,CAArB,EAAwB0J,OAAxB,EAAiCE,IAAjC,CAAsCxd,UAAA,CAAWld,OAAjD,EAA0DC,MAA1D,EADmC;AAAA,IAArC,EAF+B;AAAA,GAApB,CAAb,CAJ4B;AAAA,EAU5B,IAAI4G,MAAA,CAAOib,KAAX;AAAA,GAAkB7hB,MAAA,CAAO4G,MAAA,CAAOjC,KAAd,EAVU;AAAA,EAW5B,OAAOsY,UAAA,CAAWsd,OAAlB,CAX4B;AAAA,EAhCgC;AAAA,CAAhE,E;;;;;;AC7UA,IAAI/a,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AAEAuG,MAAA,CAAOmB,OAAP,GAAiBka,MAAA,CAAOyW,OAAxB,C;;;;;;ACFA,IAAIrW,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU6a,MAAV,EAAkBkM,GAAlB,EAAuBrM,OAAvB,EAAgC;AAAA,CAC/C,SAAS/X,GAAT,IAAgBokB,GAAhB;AAAA,EAAqBzM,QAAA,CAASO,MAAT,EAAiBlY,GAAjB,EAAsBokB,GAAA,CAAIpkB,GAAJ,CAAtB,EAAgC+X,OAAhC,EAD0B;AAAA,CAE/C,OAAOG,MAAP,CAF+C;AAAA,CAAjD,C;;;;;;;ACFa;AACb,IAAI6F,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB,CADA;AAEA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CAFA;AAGA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAHA;AAIA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CAJA;AAMA,IAAIm4B,OAAA,GAAU5M,eAAA,CAAgB,SAAhB,CAAd,CANA;AAQAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAUw3B,gBAAV,EAA4B;AAAA,CAC3C,IAAIC,WAAA,GAAc/W,UAAA,CAAW8W,gBAAX,CAAlB,CAD2C;AAAA,CAE3C,IAAI9a,cAAA,GAAiBqB,oBAAA,CAAqB3D,CAA1C,CAF2C;AAAA,CAI3C,IAAIyB,WAAA,IAAe4b,WAAf,IAA8B,CAACA,WAAA,CAAYhH,OAAZ,CAAnC,EAAyD;AAAA,EACvD/T,cAAA,CAAe+a,WAAf,EAA4BhH,OAA5B,EAAqC;AAAA,GACnClxB,YAAA,EAAc,IADqB;AAAA,GAEnC8E,GAAA,EAAK,YAAY;AAAA,IAAE,OAAO,IAAP,CAAF;AAAA,IAFkB;AAAA,GAArC,EADuD;AAAA,EAJd;AAAA,CAA7C,C;;;;;;ACRAxF,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc8b,WAAd,EAA2Br6B,IAA3B,EAAiC;AAAA,CAChD,IAAI,CAAE,CAAAue,EAAA,YAAc8b,WAAd,CAAN,EAAkC;AAAA,EAChC,MAAMla,SAAA,CAAU,eAAgB,CAAAngB,IAAA,GAAOA,IAAA,GAAO,GAAd,GAAoB,EAApB,CAAhB,GAA0C,YAApD,CAAN,CADgC;AAAA,EADc;AAAA,CAG9C,OAAOue,EAAP,CAH8C;AAAA,CAAlD,C;;;;;;ACAA,IAAIzB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CADA;AAEA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAGA,IAAIksB,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CAHA;AAIA,IAAIktB,IAAA,GAAOltB,mBAAA,CAAQ,EAAR,CAAX,CAJA;AAKA,IAAIuC,aAAA,GAAgBvC,mBAAA,CAAQ,EAAR,CAApB,CALA;AAMA,IAAIo/B,MAAA,GAASp/B,mBAAA,CAAQ,GAAR,CAAb,CANA;AAQA,IAAIq/B,QAAA,GAAWzd,MAAA,CAAOyd,QAAtB,CARA;AASA,IAAItY,GAAA,GAAMnF,MAAA,CAAO0d,YAAjB,CATA;AAUA,IAAIC,KAAA,GAAQ3d,MAAA,CAAO4d,cAAnB,CAVA;AAWA,IAAI9d,OAAA,GAAUE,MAAA,CAAOF,OAArB,CAXA;AAYA,IAAI+d,cAAA,GAAiB7d,MAAA,CAAO6d,cAA5B,CAZA;AAaA,IAAIC,QAAA,GAAW9d,MAAA,CAAO8d,QAAtB,CAbA;AAcA,IAAIZ,OAAA,GAAU,CAAd,CAdA;AAeA,IAAIa,KAAA,GAAQ,EAAZ,CAfA;AAgBA,IAAIC,kBAAA,GAAqB,oBAAzB,CAhBA;AAiBA,IAAIC,KAAJ,EAAWC,OAAX,EAAoBC,IAApB,CAjBA;AAmBA,IAAIC,GAAA,GAAM,UAAUjY,EAAV,EAAc;AAAA,CAEtB,IAAI4X,KAAA,CAAMpa,cAAN,CAAqBwC,EAArB,CAAJ,EAA8B;AAAA,EAC5B,IAAIlgB,EAAA,GAAK83B,KAAA,CAAM5X,EAAN,CAAT,CAD4B;AAAA,EAE5B,OAAO4X,KAAA,CAAM5X,EAAN,CAAP,CAF4B;AAAA,EAG5BlgB,EAAA,GAH4B;AAAA,EAFR;AAAA,CAAxB,CAnBA;AA4BA,IAAIo4B,MAAA,GAAS,UAAUlY,EAAV,EAAc;AAAA,CACzB,OAAO,YAAY;AAAA,EACjBiY,GAAA,CAAIjY,EAAJ,EADiB;AAAA,EAAnB,CADyB;AAAA,CAA3B,CA5BA;AAkCA,IAAImY,QAAA,GAAW,UAAUnC,KAAV,EAAiB;AAAA,CAC9BiC,GAAA,CAAIjC,KAAA,CAAMzhB,IAAV,EAD8B;AAAA,CAAhC,CAlCA;AAsCA,IAAI6jB,IAAA,GAAO,UAAUpY,EAAV,EAAc;AAAA,CAEvBnG,MAAA,CAAOwe,WAAP,CAAmBrY,EAAA,GAAK,EAAxB,EAA4BsX,QAAA,CAAS95B,QAAT,GAAoB,IAApB,GAA2B85B,QAAA,CAASgB,IAAhE,EAFuB;AAAA,CAAzB,CAtCA;AA4CA,IAAI,CAACtZ,GAAD,IAAQ,CAACwY,KAAb,EAAoB;AAAA,CAClBxY,GAAA,GAAM,SAASuY,YAAT,CAAsBz3B,EAAtB,EAA0B;AAAA,EAC9B,IAAIuZ,IAAA,GAAO,EAAX,CAD8B;AAAA,EAE9B,IAAI1W,CAAA,GAAI,CAAR,CAF8B;AAAA,EAG9B,OAAOsW,SAAA,CAAUpF,MAAV,GAAmBlR,CAA1B;AAAA,GAA6B0W,IAAA,CAAKuG,IAAL,CAAU3G,SAAA,CAAUtW,CAAA,EAAV,CAAV,EAHC;AAAA,EAI9Bi1B,KAAA,CAAM,EAAEb,OAAR,IAAmB,YAAY;AAAA,GAE5B,QAAOj3B,EAAP,IAAa,UAAb,GAA0BA,EAA1B,GAA+BiE,QAAA,CAASjE,EAAT,CAA/B,CAAD,CAA8CwkB,KAA9C,CAAoDnJ,SAApD,EAA+D9B,IAA/D,EAF6B;AAAA,GAA/B,CAJ8B;AAAA,EAQ9Bye,KAAA,CAAMf,OAAN,EAR8B;AAAA,EAS9B,OAAOA,OAAP,CAT8B;AAAA,EAAhC,CADkB;AAAA,CAYlBS,KAAA,GAAQ,SAASC,cAAT,CAAwBzX,EAAxB,EAA4B;AAAA,EAClC,OAAO4X,KAAA,CAAM5X,EAAN,CAAP,CADkC;AAAA,EAApC,CAZkB;AAAA,CAgBlB,IAAIlD,OAAA,CAAQnD,OAAR,KAAoB,SAAxB,EAAmC;AAAA,EACjCme,KAAA,GAAQ,UAAU9X,EAAV,EAAc;AAAA,GACpBrG,OAAA,CAAQ4e,QAAR,CAAiBL,MAAA,CAAOlY,EAAP,CAAjB,EADoB;AAAA,GAAtB,CADiC;AAAA,EAAnC,MAKO,IAAI2X,QAAA,IAAYA,QAAA,CAASa,GAAzB,EAA8B;AAAA,EACnCV,KAAA,GAAQ,UAAU9X,EAAV,EAAc;AAAA,GACpB2X,QAAA,CAASa,GAAT,CAAaN,MAAA,CAAOlY,EAAP,CAAb,EADoB;AAAA,GAAtB,CADmC;AAAA,EAA9B,MAMA,IAAI0X,cAAA,IAAkB,CAACL,MAAvB,EAA+B;AAAA,EACpCU,OAAA,GAAU,IAAIL,cAAJ,EAAV,CADoC;AAAA,EAEpCM,IAAA,GAAOD,OAAA,CAAQU,KAAf,CAFoC;AAAA,EAGpCV,OAAA,CAAQW,KAAR,CAAcC,SAAd,GAA0BR,QAA1B,CAHoC;AAAA,EAIpCL,KAAA,GAAQ3T,IAAA,CAAK6T,IAAA,CAAKK,WAAV,EAAuBL,IAAvB,EAA6B,CAA7B,CAAR,CAJoC;AAAA,EAA/B,MAOA,IACLne,MAAA,CAAO+e,gBAAP,IACA,OAAOP,WAAP,IAAsB,UADtB,IAEA,CAACxe,MAAA,CAAOgf,aAFR,IAGA,CAACzc,KAAA,CAAMgc,IAAN,CAHD,IAIAd,QAAA,CAAS95B,QAAT,KAAsB,OALjB,EAML;AAAA,EACAs6B,KAAA,GAAQM,IAAR,CADA;AAAA,EAEAve,MAAA,CAAO+e,gBAAP,CAAwB,SAAxB,EAAmCT,QAAnC,EAA6C,KAA7C,EAFA;AAAA,EANK,MAUA,IAAIN,kBAAA,IAAsBr9B,aAAA,CAAc,QAAd,CAA1B,EAAmD;AAAA,EACxDs9B,KAAA,GAAQ,UAAU9X,EAAV,EAAc;AAAA,GACpBmF,IAAA,CAAKsB,WAAL,CAAiBjsB,aAAA,CAAc,QAAd,CAAjB,EAA0Cq9B,kBAA1C,IAAgE,YAAY;AAAA,IAC1E1S,IAAA,CAAK2T,WAAL,CAAiB,IAAjB,EAD0E;AAAA,IAE1Eb,GAAA,CAAIjY,EAAJ,EAF0E;AAAA,IAA5E,CADoB;AAAA,GAAtB,CADwD;AAAA,EAAnD,MAQA;AAAA,EACL8X,KAAA,GAAQ,UAAU9X,EAAV,EAAc;AAAA,GACpB+Y,UAAA,CAAWb,MAAA,CAAOlY,EAAP,CAAX,EAAuB,CAAvB,EADoB;AAAA,GAAtB,CADK;AAAA,EApDW;AAAA,CA5CpB;AAuGAxhB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfqf,GAAA,EAAKA,GADU;AAAA,CAEfwY,KAAA,EAAOA,KAFQ;AAAA,CAAjB,C;;;;;;ACvGA,IAAIlf,SAAA,GAAYrgB,mBAAA,CAAQ,GAAR,CAAhB;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,mCAAmC6f,IAAnC,CAAwClH,SAAxC,CAAjB,C;;;;;;ACFA,IAAI+H,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB0gB,UAAA,CAAW,WAAX,EAAwB,WAAxB,KAAwC,EAAzD,C;;;;;;ACFA,IAAIxG,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAI6hB,wBAAA,GAA2B7hB,mBAAA,CAAQ,EAAR,EAA2D8hB,CAA1F,CADA;AAEA,IAAI+C,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAGA,IAAI+gC,SAAA,GAAY/gC,mBAAA,CAAQ,GAAR,EAA6B+mB,GAA7C,CAHA;AAIA,IAAIqY,MAAA,GAASp/B,mBAAA,CAAQ,GAAR,CAAb,CAJA;AAMA,IAAIghC,gBAAA,GAAmBpf,MAAA,CAAOof,gBAAP,IAA2Bpf,MAAA,CAAOqf,sBAAzD,CANA;AAOA,IAAIvf,OAAA,GAAUE,MAAA,CAAOF,OAArB,CAPA;AAQA,IAAI2W,OAAA,GAAUzW,MAAA,CAAOyW,OAArB,CARA;AASA,IAAIsD,OAAA,GAAU9W,OAAA,CAAQnD,OAAR,KAAoB,SAAlC,CATA;AAWA,IAAIwf,wBAAA,GAA2Brf,wBAAA,CAAyBD,MAAzB,EAAiC,gBAAjC,CAA/B,CAXA;AAYA,IAAIuf,cAAA,GAAiBD,wBAAA,IAA4BA,wBAAA,CAAyBn6B,KAA1E,CAZA;AAcA,IAAIq6B,KAAJ,EAAWC,IAAX,EAAiBC,IAAjB,EAAuBtE,MAAvB,EAA+BuE,MAA/B,EAAuCC,IAAvC,EAA6C7E,OAA7C,EAAsDE,IAAtD,CAdA;AAiBA,IAAI,CAACsE,cAAL,EAAqB;AAAA,CACnBC,KAAA,GAAQ,YAAY;AAAA,EAClB,IAAIhD,MAAJ,EAAYv2B,EAAZ,CADkB;AAAA,EAElB,IAAI8zB,OAAA,IAAY,CAAAyC,MAAA,GAAS1c,OAAA,CAAQoN,MAAjB,CAAhB;AAAA,GAA0CsP,MAAA,CAAOP,IAAP,GAFxB;AAAA,EAGlB,OAAOwD,IAAP,EAAa;AAAA,GACXx5B,EAAA,GAAKw5B,IAAA,CAAKx5B,EAAV,CADW;AAAA,GAEXw5B,IAAA,GAAOA,IAAA,CAAK/2B,IAAZ,CAFW;AAAA,GAGX,IAAI;AAAA,IACFzC,EAAA,GADE;AAAA,IAAJ,CAEE,OAAOoc,KAAP,EAAc;AAAA,IACd,IAAIod,IAAJ;AAAA,KAAUrE,MAAA,GAAV;AAAA;AAAA,KACKsE,IAAA,GAAOpe,SAAP,CAFS;AAAA,IAGd,MAAMe,KAAN,CAHc;AAAA,IALL;AAAA,GAHK;AAAA,EAahBqd,IAAA,GAAOpe,SAAP,CAbgB;AAAA,EAclB,IAAIkb,MAAJ;AAAA,GAAYA,MAAA,CAAOR,KAAP,GAdM;AAAA,EAApB,CADmB;AAAA,CAmBnB,IAAIjC,OAAJ,EAAa;AAAA,EACXqB,MAAA,GAAS,YAAY;AAAA,GACnBtb,OAAA,CAAQ4e,QAAR,CAAiBc,KAAjB,EADmB;AAAA,GAArB,CADW;AAAA,EAAb,MAKO,IAAIJ,gBAAA,IAAoB,CAAC5B,MAAzB,EAAiC;AAAA,EACtCmC,MAAA,GAAS,IAAT,CADsC;AAAA,EAEtCC,IAAA,GAAO3/B,QAAA,CAAS4/B,cAAT,CAAwB,EAAxB,CAAP,CAFsC;AAAA,EAGtC,IAAIT,gBAAJ,CAAqBI,KAArB,EAA4BM,OAA5B,CAAoCF,IAApC,EAA0C,EAAEG,aAAA,EAAe,IAAjB,EAA1C,EAHsC;AAAA,EAItC3E,MAAA,GAAS,YAAY;AAAA,GACnBwE,IAAA,CAAKllB,IAAL,GAAYilB,MAAA,GAAS,CAACA,MAAtB,CADmB;AAAA,GAArB,CAJsC;AAAA,EAAjC,MAQA,IAAIlJ,OAAA,IAAWA,OAAA,CAAQl2B,OAAvB,EAAgC;AAAA,EAErCw6B,OAAA,GAAUtE,OAAA,CAAQl2B,OAAR,CAAgB+gB,SAAhB,CAAV,CAFqC;AAAA,EAGrC2Z,IAAA,GAAOF,OAAA,CAAQE,IAAf,CAHqC;AAAA,EAIrCG,MAAA,GAAS,YAAY;AAAA,GACnBH,IAAA,CAAK3Y,IAAL,CAAUyY,OAAV,EAAmByE,KAAnB,EADmB;AAAA,GAArB,CAJqC;AAAA,EAAhC,MAaA;AAAA,EACLpE,MAAA,GAAS,YAAY;AAAA,GAEnB+D,SAAA,CAAU7c,IAAV,CAAetC,MAAf,EAAuBwf,KAAvB,EAFmB;AAAA,GAArB,CADK;AAAA,EA7CY;AAAA,CAjBrB;AAsEA76B,MAAA,CAAOmB,OAAP,GAAiBy5B,cAAA,IAAkB,UAAUt5B,EAAV,EAAc;AAAA,CAC/C,IAAIizB,IAAA,GAAO;AAAA,EAAEjzB,EAAA,EAAIA,EAAN;AAAA,EAAUyC,IAAA,EAAM4Y,SAAhB;AAAA,EAAX,CAD+C;AAAA,CAE/C,IAAIoe,IAAJ;AAAA,EAAUA,IAAA,CAAKh3B,IAAL,GAAYwwB,IAAZ,CAFqC;AAAA,CAG/C,IAAI,CAACuG,IAAL,EAAW;AAAA,EACTA,IAAA,GAAOvG,IAAP,CADS;AAAA,EAETkC,MAAA,GAFS;AAAA,EAHoC;AAAA,CAM7CsE,IAAA,GAAOxG,IAAP,CAN6C;AAAA,CAAjD,C;;;;;;ACtEA,IAAInV,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAIy7B,oBAAA,GAAuBz7B,mBAAA,CAAQ,GAAR,CAA3B,CAFA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUurB,CAAV,EAAa2C,CAAb,EAAgB;AAAA,CAC/BjQ,QAAA,CAASsN,CAAT,EAD+B;AAAA,CAE/B,IAAI/N,QAAA,CAAS0Q,CAAT,KAAeA,CAAA,CAAEn1B,WAAF,KAAkBwyB,CAArC;AAAA,EAAwC,OAAO2C,CAAP,CAFT;AAAA,CAG/B,IAAIgM,iBAAA,GAAoBnG,oBAAA,CAAqB3Z,CAArB,CAAuBmR,CAAvB,CAAxB,CAH+B;AAAA,CAI/B,IAAI9wB,OAAA,GAAUy/B,iBAAA,CAAkBz/B,OAAhC,CAJ+B;AAAA,CAK/BA,OAAA,CAAQyzB,CAAR,EAL+B;AAAA,CAM/B,OAAOgM,iBAAA,CAAkBjF,OAAzB,CAN+B;AAAA,CAAjC,C;;;;;;;ACJa;AACb,IAAIjU,SAAA,GAAY1oB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAGA,IAAI6hC,iBAAA,GAAoB,UAAU5O,CAAV,EAAa;AAAA,CACnC,IAAI9wB,OAAJ,EAAaC,MAAb,CADmC;AAAA,CAEnC,KAAKu6B,OAAL,GAAe,IAAI1J,CAAJ,CAAM,UAAU6O,SAAV,EAAqBC,QAArB,EAA+B;AAAA,EAClD,IAAI5/B,OAAA,KAAY+gB,SAAZ,IAAyB9gB,MAAA,KAAW8gB,SAAxC;AAAA,GAAmD,MAAM+B,SAAA,CAAU,yBAAV,CAAN,CADD;AAAA,EAElD9iB,OAAA,GAAU2/B,SAAV,CAFkD;AAAA,EAGlD1/B,MAAA,GAAS2/B,QAAT,CAHkD;AAAA,EAArC,CAAf,CAFmC;AAAA,CAOnC,KAAK5/B,OAAL,GAAeumB,SAAA,CAAUvmB,OAAV,CAAf,CAPmC;AAAA,CAQnC,KAAKC,MAAL,GAAcsmB,SAAA,CAAUtmB,MAAV,CAAd,CARmC;AAAA,CAArC,CAHA;AAeAmE,MAAA,CAAOmB,OAAP,CAAeoa,CAAf,GAAmB,UAAUmR,CAAV,EAAa;AAAA,CAC9B,OAAO,IAAI4O,iBAAJ,CAAsB5O,CAAtB,CAAP,CAD8B;AAAA,CAAhC,C;;;;;;ACfA,IAAIrR,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUsW,CAAV,EAAaC,CAAb,EAAgB;AAAA,CAC/B,IAAIxY,OAAA,GAAUmc,MAAA,CAAOnc,OAArB,CAD+B;AAAA,CAE/B,IAAIA,OAAA,IAAWA,OAAA,CAAQwe,KAAvB,EAA8B;AAAA,EAC5BjD,SAAA,CAAUpF,MAAV,KAAqB,CAArB,GAAyBnW,OAAA,CAAQwe,KAAR,CAAcjG,CAAd,CAAzB,GAA4CvY,OAAA,CAAQwe,KAAR,CAAcjG,CAAd,EAAiBC,CAAjB,CAA5C,CAD4B;AAAA,EAFC;AAAA,CAAjC,C;;;;;;ACFA1X,MAAA,CAAOmB,OAAP,GAAiB,UAAU2c,IAAV,EAAgB;AAAA,CAC/B,IAAI;AAAA,EACF,OAAO;AAAA,GAAEJ,KAAA,EAAO,KAAT;AAAA,GAAgBld,KAAA,EAAOsd,IAAA,EAAvB;AAAA,GAAP,CADE;AAAA,EAAJ,CAEE,OAAOJ,KAAP,EAAc;AAAA,EACd,OAAO;AAAA,GAAEA,KAAA,EAAO,IAAT;AAAA,GAAeld,KAAA,EAAOkd,KAAtB;AAAA,GAAP,CADc;AAAA,EAHe;AAAA,CAAjC,C;;;;;;ACAA,IAAIrC,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIqgB,SAAA,GAAYrgB,mBAAA,CAAQ,GAAR,CAAhB,CADA;AAGA,IAAI0hB,OAAA,GAAUE,MAAA,CAAOF,OAArB,CAHA;AAIA,IAAIsgB,QAAA,GAAWtgB,OAAA,IAAWA,OAAA,CAAQsgB,QAAlC,CAJA;AAKA,IAAIC,EAAA,GAAKD,QAAA,IAAYA,QAAA,CAASC,EAA9B,CALA;AAMA,IAAIC,KAAJ,EAAWta,OAAX,CANA;AAQA,IAAIqa,EAAJ,EAAQ;AAAA,CACNC,KAAA,GAAQD,EAAA,CAAGnd,KAAH,CAAS,GAAT,CAAR,CADM;AAAA,CAEN8C,OAAA,GAAUsa,KAAA,CAAM,CAAN,IAAWA,KAAA,CAAM,CAAN,CAArB,CAFM;AAAA,CAAR,MAGO,IAAI7hB,SAAJ,EAAe;AAAA,CACpB6hB,KAAA,GAAQ7hB,SAAA,CAAU6hB,KAAV,CAAgB,aAAhB,CAAR,CADoB;AAAA,CAEpB,IAAI,CAACA,KAAD,IAAUA,KAAA,CAAM,CAAN,KAAY,EAA1B,EAA8B;AAAA,EAC5BA,KAAA,GAAQ7hB,SAAA,CAAU6hB,KAAV,CAAgB,eAAhB,CAAR,CAD4B;AAAA,EAE5B,IAAIA,KAAJ;AAAA,GAAWta,OAAA,GAAUsa,KAAA,CAAM,CAAN,CAAV,CAFiB;AAAA,EAFV;AAAA,CAXtB;AAmBA37B,MAAA,CAAOmB,OAAP,GAAiBkgB,OAAA,IAAW,CAACA,OAA7B,C;;;;;;;ACnBa;AACb,IAAIjG,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI0oB,SAAA,GAAY1oB,mBAAA,CAAQ,EAAR,CAAhB,CAFA;AAGA,IAAIk7B,0BAAA,GAA6Bl7B,mBAAA,CAAQ,GAAR,CAAjC,CAHA;AAIA,IAAIm7B,OAAA,GAAUn7B,mBAAA,CAAQ,GAAR,CAAd,CAJA;AAKA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CALA;AASA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,SAAV;AAAA,CAAqBG,IAAA,EAAM,IAA3B;AAAA,CAAF,EAAqC;AAAA,CACnCyf,UAAA,EAAY,SAASA,UAAT,CAAoB33B,QAApB,EAA8B;AAAA,EACxC,IAAIyoB,CAAA,GAAI,IAAR,CADwC;AAAA,EAExC,IAAI5T,UAAA,GAAa6b,0BAAA,CAA2BpZ,CAA3B,CAA6BmR,CAA7B,CAAjB,CAFwC;AAAA,EAGxC,IAAI9wB,OAAA,GAAUkd,UAAA,CAAWld,OAAzB,CAHwC;AAAA,EAIxC,IAAIC,MAAA,GAASid,UAAA,CAAWjd,MAAxB,CAJwC;AAAA,EAKxC,IAAI4G,MAAA,GAASmyB,OAAA,CAAQ,YAAY;AAAA,GAC/B,IAAIH,cAAA,GAAiBtS,SAAA,CAAUuK,CAAA,CAAE9wB,OAAZ,CAArB,CAD+B;AAAA,GAE/B,IAAImG,MAAA,GAAS,EAAb,CAF+B;AAAA,GAG/B,IAAIw2B,OAAA,GAAU,CAAd,CAH+B;AAAA,GAI/B,IAAIC,SAAA,GAAY,CAAhB,CAJ+B;AAAA,GAK/B9J,OAAA,CAAQzqB,QAAR,EAAkB,UAAUmyB,OAAV,EAAmB;AAAA,IACnC,IAAIlT,KAAA,GAAQqV,OAAA,EAAZ,CADmC;AAAA,IAEnC,IAAIE,aAAA,GAAgB,KAApB,CAFmC;AAAA,IAGnC12B,MAAA,CAAOqf,IAAP,CAAYzE,SAAZ,EAHmC;AAAA,IAInC6b,SAAA,GAJmC;AAAA,IAKnC/D,cAAA,CAAe9W,IAAf,CAAoB+O,CAApB,EAAuB0J,OAAvB,EAAgCE,IAAhC,CAAqC,UAAU91B,KAAV,EAAiB;AAAA,KACpD,IAAIi4B,aAAJ;AAAA,MAAmB,OADiC;AAAA,KAEpDA,aAAA,GAAgB,IAAhB,CAFoD;AAAA,KAGpD12B,MAAA,CAAOmhB,KAAP,IAAgB;AAAA,MAAE2Y,MAAA,EAAQ,WAAV;AAAA,MAAuBr7B,KAAA,EAAOA,KAA9B;AAAA,MAAhB,CAHoD;AAAA,KAIpD,EAAEg4B,SAAF,IAAe58B,OAAA,CAAQmG,MAAR,CAAf,CAJoD;AAAA,KAAtD,EAKG,UAAU2jB,CAAV,EAAa;AAAA,KACd,IAAI+S,aAAJ;AAAA,MAAmB,OADL;AAAA,KAEdA,aAAA,GAAgB,IAAhB,CAFc;AAAA,KAGd12B,MAAA,CAAOmhB,KAAP,IAAgB;AAAA,MAAE2Y,MAAA,EAAQ,UAAV;AAAA,MAAsB1gC,MAAA,EAAQuqB,CAA9B;AAAA,MAAhB,CAHc;AAAA,KAId,EAAE8S,SAAF,IAAe58B,OAAA,CAAQmG,MAAR,CAAf,CAJc;AAAA,KALhB,EALmC;AAAA,IAArC,EAL+B;AAAA,GAsB/B,EAAEy2B,SAAF,IAAe58B,OAAA,CAAQmG,MAAR,CAAf,CAtB+B;AAAA,GAApB,CAAb,CALwC;AAAA,EA6BxC,IAAIU,MAAA,CAAOib,KAAX;AAAA,GAAkB7hB,MAAA,CAAO4G,MAAA,CAAOjC,KAAd,EA7BsB;AAAA,EA8BxC,OAAOsY,UAAA,CAAWsd,OAAlB,CA9BwC;AAAA,EADP;AAAA,CAArC,E;;;;;;;ACTa;AACb,IAAIhb,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAGA,IAAI06B,aAAA,GAAgB16B,mBAAA,CAAQ,GAAR,CAApB,CAHA;AAIA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CAJA;AAKA,IAAIooB,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB,CALA;AAMA,IAAIi2B,kBAAA,GAAqBj2B,mBAAA,CAAQ,GAAR,CAAzB,CANA;AAOA,IAAIg7B,cAAA,GAAiBh7B,mBAAA,CAAQ,GAAR,CAArB,CAPA;AAQA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CARA;AAWA,IAAIqiC,WAAA,GAAc,CAAC,CAAC3H,aAAF,IAAmBvW,KAAA,CAAM,YAAY;AAAA,CACrDuW,aAAA,CAAc3X,SAAd,CAAwB,SAAxB,EAAmCmB,IAAnC,CAAwC;AAAA,EAAE2Y,IAAA,EAAM,YAAY;AAAA,GAApB;AAAA,EAAxC,EAA+E,YAAY;AAAA,EAA3F,EADqD;AAAA,CAAlB,CAArC,CAXA;AAiBAlb,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,SAAV;AAAA,CAAqB2I,KAAA,EAAO,IAA5B;AAAA,CAAkCoX,IAAA,EAAM,IAAxC;AAAA,CAA8Crf,MAAA,EAAQof,WAAtD;AAAA,CAAF,EAAuE;AAAA,CACrE,WAAW,UAAUE,SAAV,EAAqB;AAAA,EAC9B,IAAItP,CAAA,GAAIgD,kBAAA,CAAmB,IAAnB,EAAyB7N,UAAA,CAAW,SAAX,CAAzB,CAAR,CAD8B;AAAA,EAE9B,IAAIoa,UAAA,GAAa,OAAOD,SAAP,IAAoB,UAArC,CAF8B;AAAA,EAG9B,OAAO,KAAK1F,IAAL,CACL2F,UAAA,GAAa,UAAU5M,CAAV,EAAa;AAAA,GACxB,OAAOoF,cAAA,CAAe/H,CAAf,EAAkBsP,SAAA,EAAlB,EAA+B1F,IAA/B,CAAoC,YAAY;AAAA,IAAE,OAAOjH,CAAP,CAAF;AAAA,IAAhD,CAAP,CADwB;AAAA,GAA1B,GAEI2M,SAHC,EAILC,UAAA,GAAa,UAAUvW,CAAV,EAAa;AAAA,GACxB,OAAO+O,cAAA,CAAe/H,CAAf,EAAkBsP,SAAA,EAAlB,EAA+B1F,IAA/B,CAAoC,YAAY;AAAA,IAAE,MAAM5Q,CAAN,CAAF;AAAA,IAAhD,CAAP,CADwB;AAAA,GAA1B,GAEIsW,SANC,CAAP,CAH8B;AAAA,EADqC;AAAA,CAAvE,EAjBA;AAiCA,IAAI,CAAC7a,OAAD,IAAY,OAAOgT,aAAP,IAAwB,UAApC,IAAkD,CAACA,aAAA,CAAc3X,SAAd,CAAwB,SAAxB,CAAvD,EAA2F;AAAA,CACzFf,QAAA,CAAS0Y,aAAA,CAAc3X,SAAvB,EAAkC,SAAlC,EAA6CqF,UAAA,CAAW,SAAX,EAAsBrF,SAAtB,CAAgC,SAAhC,CAA7C,EADyF;AAAA,C;;;;;;ACjC3F/iB,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,GAAR,EAFA;AAGA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK/I,GAAtB,C;;;;;;;ACLa;AAEb1f,mBAAA,CAAQ,EAAR,EAFA;AAGA,IAAI2hB,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CAHA;AAIA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CAJA;AAKA,IAAIyiC,cAAA,GAAiBziC,mBAAA,CAAQ,GAAR,CAArB,CALA;AAMA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CANA;AAOA,IAAIitB,gBAAA,GAAmBjtB,mBAAA,CAAQ,EAAR,CAAvB,CAPA;AAQA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CARA;AASA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CATA;AAUA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAVA;AAWA,IAAIm0B,MAAA,GAASn0B,mBAAA,CAAQ,GAAR,CAAb,CAXA;AAYA,IAAI0iC,SAAA,GAAY1iC,mBAAA,CAAQ,EAAR,CAAhB,CAZA;AAaA,IAAIkwB,MAAA,GAASlwB,mBAAA,CAAQ,EAAR,EAAyCkwB,MAAtD,CAbA;AAcA,IAAIyS,OAAA,GAAU3iC,mBAAA,CAAQ,GAAR,CAAd,CAdA;AAeA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CAfA;AAgBA,IAAI4iC,qBAAA,GAAwB5iC,mBAAA,CAAQ,GAAR,CAA5B,CAhBA;AAiBA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAjBA;AAmBA,IAAI6iC,SAAA,GAAYjhB,MAAA,CAAOlC,GAAvB,CAnBA;AAoBA,IAAIojB,eAAA,GAAkBF,qBAAA,CAAsBE,eAA5C,CApBA;AAqBA,IAAIC,4BAAA,GAA+BH,qBAAA,CAAsBI,QAAzD,CArBA;AAsBA,IAAItT,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CAtBA;AAuBA,IAAIkc,mBAAA,GAAsBld,mBAAA,CAAoBiB,SAApB,CAA8B,KAA9B,CAA1B,CAvBA;AAwBA,IAAI+C,KAAA,GAAQ3mB,IAAA,CAAK2mB,KAAjB,CAxBA;AAyBA,IAAImZ,GAAA,GAAM9/B,IAAA,CAAK8/B,GAAf,CAzBA;AA2BA,IAAIC,iBAAA,GAAoB,mBAAxB,CA3BA;AA4BA,IAAIC,cAAA,GAAiB,gBAArB,CA5BA;AA6BA,IAAIC,YAAA,GAAe,cAAnB,CA7BA;AA8BA,IAAIC,YAAA,GAAe,cAAnB,CA9BA;AAgCA,IAAIC,KAAA,GAAQ,UAAZ,CAhCA;AAiCA,IAAIC,YAAA,GAAe,eAAnB,CAjCA;AAkCA,IAAIC,KAAA,GAAQ,IAAZ,CAlCA;AAmCA,IAAIC,SAAA,GAAY,UAAhB,CAnCA;AAoCA,IAAIC,GAAA,GAAM,UAAV,CApCA;AAqCA,IAAIC,GAAA,GAAM,OAAV,CArCA;AAsCA,IAAIC,GAAA,GAAM,eAAV,CAtCA;AAwCA,IAAIC,yBAAA,GAA4B,uCAAhC,CAxCA;AA0CA,IAAIC,2CAAA,GAA8C,sCAAlD,CA1CA;AA4CA,IAAIC,wCAAA,GAA2C,wCAA/C,CA5CA;AA8CA,IAAIC,gBAAA,GAAmB,uBAAvB,CA9CA;AA+CA,IAAIC,GAAJ,CA/CA;AAiDA,IAAIC,SAAA,GAAY,UAAU5iC,GAAV,EAAe4jB,KAAf,EAAsB;AAAA,CACpC,IAAInc,MAAJ,EAAYo7B,UAAZ,EAAwB3a,KAAxB,CADoC;AAAA,CAEpC,IAAItE,KAAA,CAAMoK,MAAN,CAAa,CAAb,KAAmB,GAAvB,EAA4B;AAAA,EAC1B,IAAIpK,KAAA,CAAMoK,MAAN,CAAapK,KAAA,CAAMvJ,MAAN,GAAe,CAA5B,KAAkC,GAAtC;AAAA,GAA2C,OAAOynB,YAAP,CADjB;AAAA,EAE1Br6B,MAAA,GAASq7B,SAAA,CAAUlf,KAAA,CAAMH,KAAN,CAAY,CAAZ,EAAe,CAAC,CAAhB,CAAV,CAAT,CAF0B;AAAA,EAG1B,IAAI,CAAChc,MAAL;AAAA,GAAa,OAAOq6B,YAAP,CAHa;AAAA,EAI1B9hC,GAAA,CAAI8+B,IAAJ,GAAWr3B,MAAX,CAJ0B;AAAA,EAA5B,MAMO,IAAI,CAACs7B,SAAA,CAAU/iC,GAAV,CAAL,EAAqB;AAAA,EAC1B,IAAIwiC,2CAAA,CAA4Cxc,IAA5C,CAAiDpC,KAAjD,CAAJ;AAAA,GAA6D,OAAOke,YAAP,CADnC;AAAA,EAE1Br6B,MAAA,GAAS,EAAT,CAF0B;AAAA,EAG1Bo7B,UAAA,GAAa1B,SAAA,CAAUvd,KAAV,CAAb,CAH0B;AAAA,EAI1B,KAAKsE,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQ2a,UAAA,CAAWxoB,MAAnC,EAA2C6N,KAAA,EAA3C,EAAoD;AAAA,GAClDzgB,MAAA,IAAUu7B,aAAA,CAAcH,UAAA,CAAW3a,KAAX,CAAd,EAAiC+a,yBAAjC,CAAV,CADkD;AAAA,GAJ1B;AAAA,EAO1BjjC,GAAA,CAAI8+B,IAAJ,GAAWr3B,MAAX,CAP0B;AAAA,EAArB,MAQA;AAAA,EACLmc,KAAA,GAAQwd,OAAA,CAAQxd,KAAR,CAAR,CADK;AAAA,EAEL,IAAI2e,yBAAA,CAA0Bvc,IAA1B,CAA+BpC,KAA/B,CAAJ;AAAA,GAA2C,OAAOke,YAAP,CAFtC;AAAA,EAGLr6B,MAAA,GAASy7B,SAAA,CAAUtf,KAAV,CAAT,CAHK;AAAA,EAIL,IAAInc,MAAA,KAAW,IAAf;AAAA,GAAqB,OAAOq6B,YAAP,CAJhB;AAAA,EAKL9hC,GAAA,CAAI8+B,IAAJ,GAAWr3B,MAAX,CALK;AAAA,EAhB6B;AAAA,CAAtC,CAjDA;AA0EA,IAAIy7B,SAAA,GAAY,UAAUtf,KAAV,EAAiB;AAAA,CAC/B,IAAIuf,KAAA,GAAQvf,KAAA,CAAML,KAAN,CAAY,GAAZ,CAAZ,CAD+B;AAAA,CAE/B,IAAI6f,WAAJ,EAAiBC,OAAjB,EAA0Bnb,KAA1B,EAAiCob,IAAjC,EAAuCC,KAAvC,EAA8CjP,MAA9C,EAAsDkP,IAAtD,CAF+B;AAAA,CAG/B,IAAIL,KAAA,CAAM9oB,MAAN,IAAgB8oB,KAAA,CAAMA,KAAA,CAAM9oB,MAAN,GAAe,CAArB,KAA2B,EAA/C,EAAmD;AAAA,EACjD8oB,KAAA,CAAMM,GAAN,GADiD;AAAA,EAHpB;AAAA,CAM/BL,WAAA,GAAcD,KAAA,CAAM9oB,MAApB,CAN+B;AAAA,CAO/B,IAAI+oB,WAAA,GAAc,CAAlB;AAAA,EAAqB,OAAOxf,KAAP,CAPU;AAAA,CAQ/Byf,OAAA,GAAU,EAAV,CAR+B;AAAA,CAS/B,KAAKnb,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQkb,WAAxB,EAAqClb,KAAA,EAArC,EAA8C;AAAA,EAC5Cob,IAAA,GAAOH,KAAA,CAAMjb,KAAN,CAAP,CAD4C;AAAA,EAE5C,IAAIob,IAAA,IAAQ,EAAZ;AAAA,GAAgB,OAAO1f,KAAP,CAF4B;AAAA,EAG5C2f,KAAA,GAAQ,EAAR,CAH4C;AAAA,EAI5C,IAAID,IAAA,CAAKjpB,MAAL,GAAc,CAAd,IAAmBipB,IAAA,CAAKtV,MAAL,CAAY,CAAZ,KAAkB,GAAzC,EAA8C;AAAA,GAC5CuV,KAAA,GAAQpB,SAAA,CAAUnc,IAAV,CAAesd,IAAf,IAAuB,EAAvB,GAA4B,CAApC,CAD4C;AAAA,GAE5CA,IAAA,GAAOA,IAAA,CAAK7f,KAAL,CAAW8f,KAAA,IAAS,CAAT,GAAa,CAAb,GAAiB,CAA5B,CAAP,CAF4C;AAAA,GAJF;AAAA,EAQ5C,IAAID,IAAA,KAAS,EAAb,EAAiB;AAAA,GACfhP,MAAA,GAAS,CAAT,CADe;AAAA,GAAjB,MAEO;AAAA,GACL,IAAI,CAAE,CAAAiP,KAAA,IAAS,EAAT,GAAclB,GAAd,GAAoBkB,KAAA,IAAS,CAAT,GAAanB,GAAb,GAAmBE,GAAvC,CAAD,CAA6Ctc,IAA7C,CAAkDsd,IAAlD,CAAL;AAAA,IAA8D,OAAO1f,KAAP,CADzD;AAAA,GAEL0Q,MAAA,GAAS/vB,QAAA,CAAS++B,IAAT,EAAeC,KAAf,CAAT,CAFK;AAAA,GAVqC;AAAA,EAc5CF,OAAA,CAAQjd,IAAR,CAAakO,MAAb,EAd4C;AAAA,EATf;AAAA,CAyB/B,KAAKpM,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQkb,WAAxB,EAAqClb,KAAA,EAArC,EAA8C;AAAA,EAC5CoM,MAAA,GAAS+O,OAAA,CAAQnb,KAAR,CAAT,CAD4C;AAAA,EAE5C,IAAIA,KAAA,IAASkb,WAAA,GAAc,CAA3B,EAA8B;AAAA,GAC5B,IAAI9O,MAAA,IAAUqN,GAAA,CAAI,GAAJ,EAAS,IAAIyB,WAAb,CAAd;AAAA,IAAyC,OAAO,IAAP,CADb;AAAA,GAA9B,MAEO,IAAI9O,MAAA,GAAS,GAAb;AAAA,GAAkB,OAAO,IAAP,CAJmB;AAAA,EAzBf;AAAA,CA+B/BkP,IAAA,GAAOH,OAAA,CAAQI,GAAR,EAAP,CA/B+B;AAAA,CAgC/B,KAAKvb,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQmb,OAAA,CAAQhpB,MAAhC,EAAwC6N,KAAA,EAAxC,EAAiD;AAAA,EAC/Csb,IAAA,IAAQH,OAAA,CAAQnb,KAAR,IAAiByZ,GAAA,CAAI,GAAJ,EAAS,IAAIzZ,KAAb,CAAzB,CAD+C;AAAA,EAhClB;AAAA,CAmC/B,OAAOsb,IAAP,CAnC+B;AAAA,CAAjC,CA1EA;AAiHA,IAAIV,SAAA,GAAY,UAAUlf,KAAV,EAAiB;AAAA,CAC/B,IAAI8f,OAAA,GAAU;AAAA,EAAC,CAAD;AAAA,EAAI,CAAJ;AAAA,EAAO,CAAP;AAAA,EAAU,CAAV;AAAA,EAAa,CAAb;AAAA,EAAgB,CAAhB;AAAA,EAAmB,CAAnB;AAAA,EAAsB,CAAtB;AAAA,EAAd,CAD+B;AAAA,CAE/B,IAAIC,UAAA,GAAa,CAAjB,CAF+B;AAAA,CAG/B,IAAIC,QAAA,GAAW,IAAf,CAH+B;AAAA,CAI/B,IAAIC,OAAA,GAAU,CAAd,CAJ+B;AAAA,CAK/B,IAAIr+B,KAAJ,EAAW6U,MAAX,EAAmBypB,WAAnB,EAAgCC,SAAhC,EAA2CzP,MAA3C,EAAmD0P,KAAnD,EAA0DC,IAA1D,CAL+B;AAAA,CAO/B,IAAIC,IAAA,GAAO,YAAY;AAAA,EACrB,OAAOtgB,KAAA,CAAMoK,MAAN,CAAa6V,OAAb,CAAP,CADqB;AAAA,EAAvB,CAP+B;AAAA,CAW/B,IAAIK,IAAA,MAAU,GAAd,EAAmB;AAAA,EACjB,IAAItgB,KAAA,CAAMoK,MAAN,CAAa,CAAb,KAAmB,GAAvB;AAAA,GAA4B,OADX;AAAA,EAEjB6V,OAAA,IAAW,CAAX,CAFiB;AAAA,EAGjBF,UAAA,GAHiB;AAAA,EAIjBC,QAAA,GAAWD,UAAX,CAJiB;AAAA,EAXY;AAAA,CAiB/B,OAAOO,IAAA,EAAP,EAAe;AAAA,EACb,IAAIP,UAAA,IAAc,CAAlB;AAAA,GAAqB,OADR;AAAA,EAEb,IAAIO,IAAA,MAAU,GAAd,EAAmB;AAAA,GACjB,IAAIN,QAAA,KAAa,IAAjB;AAAA,IAAuB,OADN;AAAA,GAEjBC,OAAA,GAFiB;AAAA,GAGjBF,UAAA,GAHiB;AAAA,GAIjBC,QAAA,GAAWD,UAAX,CAJiB;AAAA,GAKjB,SALiB;AAAA,GAFN;AAAA,EASbn+B,KAAA,GAAQ6U,MAAA,GAAS,CAAjB,CATa;AAAA,EAUb,OAAOA,MAAA,GAAS,CAAT,IAAcioB,GAAA,CAAItc,IAAJ,CAASke,IAAA,EAAT,CAArB,EAAuC;AAAA,GACrC1+B,KAAA,GAAQA,KAAA,GAAQ,EAAR,GAAajB,QAAA,CAAS2/B,IAAA,EAAT,EAAiB,EAAjB,CAArB,CADqC;AAAA,GAErCL,OAAA,GAFqC;AAAA,GAGrCxpB,MAAA,GAHqC;AAAA,GAV1B;AAAA,EAeb,IAAI6pB,IAAA,MAAU,GAAd,EAAmB;AAAA,GACjB,IAAI7pB,MAAA,IAAU,CAAd;AAAA,IAAiB,OADA;AAAA,GAEjBwpB,OAAA,IAAWxpB,MAAX,CAFiB;AAAA,GAGjB,IAAIspB,UAAA,GAAa,CAAjB;AAAA,IAAoB,OAHH;AAAA,GAIjBG,WAAA,GAAc,CAAd,CAJiB;AAAA,GAKjB,OAAOI,IAAA,EAAP,EAAe;AAAA,IACbH,SAAA,GAAY,IAAZ,CADa;AAAA,IAEb,IAAID,WAAA,GAAc,CAAlB,EAAqB;AAAA,KACnB,IAAII,IAAA,MAAU,GAAV,IAAiBJ,WAAA,GAAc,CAAnC;AAAA,MAAsCD,OAAA,GAAtC;AAAA;AAAA,MACK,OAFc;AAAA,KAFR;AAAA,IAMb,IAAI,CAAC3B,KAAA,CAAMlc,IAAN,CAAWke,IAAA,EAAX,CAAL;AAAA,KAAyB,OANZ;AAAA,IAOb,OAAOhC,KAAA,CAAMlc,IAAN,CAAWke,IAAA,EAAX,CAAP,EAA2B;AAAA,KACzB5P,MAAA,GAAS/vB,QAAA,CAAS2/B,IAAA,EAAT,EAAiB,EAAjB,CAAT,CADyB;AAAA,KAEzB,IAAIH,SAAA,KAAc,IAAlB;AAAA,MAAwBA,SAAA,GAAYzP,MAAZ,CAAxB;AAAA,UACK,IAAIyP,SAAA,IAAa,CAAjB;AAAA,MAAoB,OAApB;AAAA;AAAA,MACAA,SAAA,GAAYA,SAAA,GAAY,EAAZ,GAAiBzP,MAA7B,CAJoB;AAAA,KAKzB,IAAIyP,SAAA,GAAY,GAAhB;AAAA,MAAqB,OALI;AAAA,KAMzBF,OAAA,GANyB;AAAA,KAPd;AAAA,IAebH,OAAA,CAAQC,UAAR,IAAsBD,OAAA,CAAQC,UAAR,IAAsB,GAAtB,GAA4BI,SAAlD,CAfa;AAAA,IAgBbD,WAAA,GAhBa;AAAA,IAiBb,IAAIA,WAAA,IAAe,CAAf,IAAoBA,WAAA,IAAe,CAAvC;AAAA,KAA0CH,UAAA,GAjB7B;AAAA,IALE;AAAA,GAwBjB,IAAIG,WAAA,IAAe,CAAnB;AAAA,IAAsB,OAxBL;AAAA,GAyBjB,MAzBiB;AAAA,GAAnB,MA0BO,IAAII,IAAA,MAAU,GAAd,EAAmB;AAAA,GACxBL,OAAA,GADwB;AAAA,GAExB,IAAI,CAACK,IAAA,EAAL;AAAA,IAAa,OAFW;AAAA,GAAnB,MAGA,IAAIA,IAAA,EAAJ;AAAA,GAAY,OA5CN;AAAA,EA6CbR,OAAA,CAAQC,UAAA,EAAR,IAAwBn+B,KAAxB,CA7Ca;AAAA,EAjBgB;AAAA,CAgE/B,IAAIo+B,QAAA,KAAa,IAAjB,EAAuB;AAAA,EACrBI,KAAA,GAAQL,UAAA,GAAaC,QAArB,CADqB;AAAA,EAErBD,UAAA,GAAa,CAAb,CAFqB;AAAA,EAGrB,OAAOA,UAAA,IAAc,CAAd,IAAmBK,KAAA,GAAQ,CAAlC,EAAqC;AAAA,GACnCC,IAAA,GAAOP,OAAA,CAAQC,UAAR,CAAP,CADmC;AAAA,GAEnCD,OAAA,CAAQC,UAAA,EAAR,IAAwBD,OAAA,CAAQE,QAAA,GAAWI,KAAX,GAAmB,CAA3B,CAAxB,CAFmC;AAAA,GAGnCN,OAAA,CAAQE,QAAA,GAAW,EAAEI,KAArB,IAA8BC,IAA9B,CAHmC;AAAA,GAHhB;AAAA,EAAvB,MAQO,IAAIN,UAAA,IAAc,CAAlB;AAAA,EAAqB,OAxEG;AAAA,CAyE/B,OAAOD,OAAP,CAzE+B;AAAA,CAAjC,CAjHA;AA6LA,IAAIS,uBAAA,GAA0B,UAAUC,IAAV,EAAgB;AAAA,CAC5C,IAAIC,QAAA,GAAW,IAAf,CAD4C;AAAA,CAE5C,IAAIC,SAAA,GAAY,CAAhB,CAF4C;AAAA,CAG5C,IAAIC,SAAA,GAAY,IAAhB,CAH4C;AAAA,CAI5C,IAAIC,UAAA,GAAa,CAAjB,CAJ4C;AAAA,CAK5C,IAAItc,KAAA,GAAQ,CAAZ,CAL4C;AAAA,CAM5C,OAAOA,KAAA,GAAQ,CAAf,EAAkBA,KAAA,EAAlB,EAA2B;AAAA,EACzB,IAAIkc,IAAA,CAAKlc,KAAL,MAAgB,CAApB,EAAuB;AAAA,GACrB,IAAIsc,UAAA,GAAaF,SAAjB,EAA4B;AAAA,IAC1BD,QAAA,GAAWE,SAAX,CAD0B;AAAA,IAE1BD,SAAA,GAAYE,UAAZ,CAF0B;AAAA,IADP;AAAA,GAKrBD,SAAA,GAAY,IAAZ,CALqB;AAAA,GAMrBC,UAAA,GAAa,CAAb,CANqB;AAAA,GAAvB,MAOO;AAAA,GACL,IAAID,SAAA,KAAc,IAAlB;AAAA,IAAwBA,SAAA,GAAYrc,KAAZ,CADnB;AAAA,GAEL,EAAEsc,UAAF,CAFK;AAAA,GARkB;AAAA,EANiB;AAAA,CAmB5C,IAAIA,UAAA,GAAaF,SAAjB,EAA4B;AAAA,EAC1BD,QAAA,GAAWE,SAAX,CAD0B;AAAA,EAE1BD,SAAA,GAAYE,UAAZ,CAF0B;AAAA,EAnBgB;AAAA,CAuB5C,OAAOH,QAAP,CAvB4C;AAAA,CAA9C,CA7LA;AAuNA,IAAII,aAAA,GAAgB,UAAU3F,IAAV,EAAgB;AAAA,CAClC,IAAIr3B,MAAJ,EAAYygB,KAAZ,EAAmB0b,QAAnB,EAA6Bc,OAA7B,CADkC;AAAA,CAGlC,IAAI,OAAO5F,IAAP,IAAe,QAAnB,EAA6B;AAAA,EAC3Br3B,MAAA,GAAS,EAAT,CAD2B;AAAA,EAE3B,KAAKygB,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQ,CAAxB,EAA2BA,KAAA,EAA3B,EAAoC;AAAA,GAClCzgB,MAAA,CAAOk9B,OAAP,CAAe7F,IAAA,GAAO,GAAtB,EADkC;AAAA,GAElCA,IAAA,GAAOtW,KAAA,CAAMsW,IAAA,GAAO,GAAb,CAAP,CAFkC;AAAA,GAFT;AAAA,EAKzB,OAAOr3B,MAAA,CAAOsd,IAAP,CAAY,GAAZ,CAAP,CALyB;AAAA,EAA7B,MAOO,IAAI,OAAO+Z,IAAP,IAAe,QAAnB,EAA6B;AAAA,EAClCr3B,MAAA,GAAS,EAAT,CADkC;AAAA,EAElCm8B,QAAA,GAAWO,uBAAA,CAAwBrF,IAAxB,CAAX,CAFkC;AAAA,EAGlC,KAAK5W,KAAA,GAAQ,CAAb,EAAgBA,KAAA,GAAQ,CAAxB,EAA2BA,KAAA,EAA3B,EAAoC;AAAA,GAClC,IAAIwc,OAAA,IAAW5F,IAAA,CAAK5W,KAAL,MAAgB,CAA/B;AAAA,IAAkC,SADA;AAAA,GAElC,IAAIwc,OAAJ;AAAA,IAAaA,OAAA,GAAU,KAAV,CAFqB;AAAA,GAGlC,IAAId,QAAA,KAAa1b,KAAjB,EAAwB;AAAA,IACtBzgB,MAAA,IAAUygB,KAAA,GAAQ,GAAR,GAAc,IAAxB,CADsB;AAAA,IAEtBwc,OAAA,GAAU,IAAV,CAFsB;AAAA,IAAxB,MAGO;AAAA,IACLj9B,MAAA,IAAUq3B,IAAA,CAAK5W,KAAL,EAAY1E,QAAZ,CAAqB,EAArB,CAAV,CADK;AAAA,IAEL,IAAI0E,KAAA,GAAQ,CAAZ;AAAA,KAAezgB,MAAA,IAAU,GAAV,CAFV;AAAA,IAN2B;AAAA,GAHF;AAAA,EAclC,OAAO,MAAMA,MAAN,GAAe,GAAtB,CAdkC;AAAA,EAVF;AAAA,CAyBhC,OAAOq3B,IAAP,CAzBgC;AAAA,CAApC,CAvNA;AAmPA,IAAImE,yBAAA,GAA4B,EAAhC,CAnPA;AAoPA,IAAI2B,wBAAA,GAA2BhS,MAAA,CAAO,EAAP,EAAWqQ,yBAAX,EAAsC;AAAA,CACnE,KAAK,CAD8D;AAAA,CAC3D,KAAK,CADsD;AAAA,CACnD,KAAK,CAD8C;AAAA,CAC3C,KAAK,CADsC;AAAA,CACnC,KAAK,CAD8B;AAAA,CAAtC,CAA/B,CApPA;AAuPA,IAAI4B,oBAAA,GAAuBjS,MAAA,CAAO,EAAP,EAAWgS,wBAAX,EAAqC;AAAA,CAC9D,KAAK,CADyD;AAAA,CACtD,KAAK,CADiD;AAAA,CAC9C,KAAK,CADyC;AAAA,CACtC,KAAK,CADiC;AAAA,CAArC,CAA3B,CAvPA;AA0PA,IAAIE,wBAAA,GAA2BlS,MAAA,CAAO,EAAP,EAAWiS,oBAAX,EAAiC;AAAA,CAC9D,KAAK,CADyD;AAAA,CACtD,KAAK,CADiD;AAAA,CAC9C,KAAK,CADyC;AAAA,CACtC,KAAK,CADiC;AAAA,CAC9B,KAAK,CADyB;AAAA,CACtB,KAAK,CADiB;AAAA,CACd,MAAM,CADQ;AAAA,CACL,KAAK,CADA;AAAA,CACG,KAAK,CADR;AAAA,CACW,KAAK,CADhB;AAAA,CAAjC,CAA/B,CA1PA;AA8PA,IAAI7B,aAAA,GAAgB,UAAUkB,IAAV,EAAgB1e,GAAhB,EAAqB;AAAA,CACvC,IAAIpI,IAAA,GAAOuR,MAAA,CAAOuV,IAAP,EAAa,CAAb,CAAX,CADuC;AAAA,CAEvC,OAAO9mB,IAAA,GAAO,IAAP,IAAeA,IAAA,GAAO,IAAtB,IAA8B,CAACiF,GAAA,CAAImD,GAAJ,EAAS0e,IAAT,CAA/B,GAAgDA,IAAhD,GAAuD1mB,kBAAA,CAAmB0mB,IAAnB,CAA9D,CAFuC;AAAA,CAAzC,CA9PA;AAmQA,IAAIa,cAAA,GAAiB;AAAA,CACnBC,GAAA,EAAK,EADc;AAAA,CAEnBC,IAAA,EAAM,IAFa;AAAA,CAGnBC,IAAA,EAAM,EAHa;AAAA,CAInBC,KAAA,EAAO,GAJY;AAAA,CAKnBC,EAAA,EAAI,EALe;AAAA,CAMnBC,GAAA,EAAK,GANc;AAAA,CAArB,CAnQA;AA4QA,IAAItC,SAAA,GAAY,UAAU/iC,GAAV,EAAe;AAAA,CAC7B,OAAOqiB,GAAA,CAAI0iB,cAAJ,EAAoB/kC,GAAA,CAAIslC,MAAxB,CAAP,CAD6B;AAAA,CAA/B,CA5QA;AAgRA,IAAIC,mBAAA,GAAsB,UAAUvlC,GAAV,EAAe;AAAA,CACvC,OAAOA,GAAA,CAAIwlC,QAAJ,IAAgB,EAAhB,IAAsBxlC,GAAA,CAAIylC,QAAJ,IAAgB,EAA7C,CADuC;AAAA,CAAzC,CAhRA;AAoRA,IAAIC,8BAAA,GAAiC,UAAU1lC,GAAV,EAAe;AAAA,CAClD,OAAO,CAACA,GAAA,CAAI8+B,IAAL,IAAa9+B,GAAA,CAAI2lC,gBAAjB,IAAqC3lC,GAAA,CAAIslC,MAAJ,IAAc,MAA1D,CADkD;AAAA,CAApD,CApRA;AAwRA,IAAIM,oBAAA,GAAuB,UAAU3c,MAAV,EAAkB4c,UAAlB,EAA8B;AAAA,CACvD,IAAIjhC,MAAJ,CADuD;AAAA,CAEvD,OAAOqkB,MAAA,CAAO5O,MAAP,IAAiB,CAAjB,IAAsB2nB,KAAA,CAAMhc,IAAN,CAAWiD,MAAA,CAAO+E,MAAP,CAAc,CAAd,CAAX,CAAtB,IACD,CAAC,CAAAppB,MAAA,GAASqkB,MAAA,CAAO+E,MAAP,CAAc,CAAd,CAAT,CAAD,IAA+B,GAA/B,IAAuC,CAAC6X,UAAD,IAAejhC,MAAA,IAAU,GAAhE,CADN,CAFuD;AAAA,CAAzD,CAxRA;AA8RA,IAAIkhC,4BAAA,GAA+B,UAAU7c,MAAV,EAAkB;AAAA,CACnD,IAAI8c,KAAJ,CADmD;AAAA,CAEnD,OAAO9c,MAAA,CAAO5O,MAAP,GAAgB,CAAhB,IAAqBurB,oBAAA,CAAqB3c,MAAA,CAAOxF,KAAP,CAAa,CAAb,EAAgB,CAAhB,CAArB,CAArB,IACL,CAAAwF,MAAA,CAAO5O,MAAP,IAAiB,CAAjB,IACC,CAAC,CAAA0rB,KAAA,GAAQ9c,MAAA,CAAO+E,MAAP,CAAc,CAAd,CAAR,CAAD,KAA+B,GAA/B,IAAsC+X,KAAA,KAAU,IAAhD,IAAwDA,KAAA,KAAU,GAAlE,IAAyEA,KAAA,KAAU,GAAnF,CADD,CADF,CAFmD;AAAA,CAArD,CA9RA;AAsSA,IAAIC,eAAA,GAAkB,UAAUhmC,GAAV,EAAe;AAAA,CACnC,IAAIknB,IAAA,GAAOlnB,GAAA,CAAIknB,IAAf,CADmC;AAAA,CAEnC,IAAI+e,QAAA,GAAW/e,IAAA,CAAK7M,MAApB,CAFmC;AAAA,CAGnC,IAAI4rB,QAAA,IAAa,CAAAjmC,GAAA,CAAIslC,MAAJ,IAAc,MAAd,IAAwBW,QAAA,IAAY,CAApC,IAAyC,CAACL,oBAAA,CAAqB1e,IAAA,CAAK,CAAL,CAArB,EAA8B,IAA9B,CAA1C,CAAjB,EAAiG;AAAA,EAC/FA,IAAA,CAAKuc,GAAL,GAD+F;AAAA,EAH9D;AAAA,CAArC,CAtSA;AA8SA,IAAIyC,WAAA,GAAc,UAAUC,OAAV,EAAmB;AAAA,CACnC,OAAOA,OAAA,KAAY,GAAZ,IAAmBA,OAAA,CAAQhd,WAAR,OAA0B,KAApD,CADmC;AAAA,CAArC,CA9SA;AAkTA,IAAIid,WAAA,GAAc,UAAUD,OAAV,EAAmB;AAAA,CACnCA,OAAA,GAAUA,OAAA,CAAQhd,WAAR,EAAV,CADmC;AAAA,CAEnC,OAAOgd,OAAA,KAAY,IAAZ,IAAoBA,OAAA,KAAY,MAAhC,IAA0CA,OAAA,KAAY,MAAtD,IAAgEA,OAAA,KAAY,QAAnF,CAFmC;AAAA,CAArC,CAlTA;AAwTA,IAAIE,YAAA,GAAe,EAAnB,CAxTA;AAyTA,IAAIC,MAAA,GAAS,EAAb,CAzTA;AA0TA,IAAIC,SAAA,GAAY,EAAhB,CA1TA;AA2TA,IAAIC,6BAAA,GAAgC,EAApC,CA3TA;AA4TA,IAAIC,iBAAA,GAAoB,EAAxB,CA5TA;AA6TA,IAAIC,QAAA,GAAW,EAAf,CA7TA;AA8TA,IAAIC,cAAA,GAAiB,EAArB,CA9TA;AA+TA,IAAIC,yBAAA,GAA4B,EAAhC,CA/TA;AAgUA,IAAIC,gCAAA,GAAmC,EAAvC,CAhUA;AAiUA,IAAIC,SAAA,GAAY,EAAhB,CAjUA;AAkUA,IAAIC,IAAA,GAAO,EAAX,CAlUA;AAmUA,IAAIC,QAAA,GAAW,EAAf,CAnUA;AAoUA,IAAIC,IAAA,GAAO,EAAX,CApUA;AAqUA,IAAIC,IAAA,GAAO,EAAX,CArUA;AAsUA,IAAIC,UAAA,GAAa,EAAjB,CAtUA;AAuUA,IAAIC,SAAA,GAAY,EAAhB,CAvUA;AAwUA,IAAIC,UAAA,GAAa,EAAjB,CAxUA;AAyUA,IAAIC,IAAA,GAAO,EAAX,CAzUA;AA0UA,IAAIC,yBAAA,GAA4B,EAAhC,CA1UA;AA2UA,IAAIC,KAAA,GAAQ,EAAZ,CA3UA;AA4UA,IAAIC,QAAA,GAAW,EAAf,CA5UA;AA+UA,IAAIC,QAAA,GAAW,UAAU1nC,GAAV,EAAe4jB,KAAf,EAAsB+jB,aAAtB,EAAqC9tB,IAArC,EAA2C;AAAA,CACxD,IAAI3R,KAAA,GAAQy/B,aAAA,IAAiBtB,YAA7B,CADwD;AAAA,CAExD,IAAIxC,OAAA,GAAU,CAAd,CAFwD;AAAA,CAGxD,IAAIhmB,MAAA,GAAS,EAAb,CAHwD;AAAA,CAIxD,IAAI+pB,MAAA,GAAS,KAAb,CAJwD;AAAA,CAKxD,IAAIC,WAAA,GAAc,KAAlB,CALwD;AAAA,CAMxD,IAAIC,iBAAA,GAAoB,KAAxB,CANwD;AAAA,CAOxD,IAAIjF,UAAJ,EAAgBqB,IAAhB,EAAsB6D,gBAAtB,EAAwCC,OAAxC,CAPwD;AAAA,CASxD,IAAI,CAACL,aAAL,EAAoB;AAAA,EAClB3nC,GAAA,CAAIslC,MAAJ,GAAa,EAAb,CADkB;AAAA,EAElBtlC,GAAA,CAAIwlC,QAAJ,GAAe,EAAf,CAFkB;AAAA,EAGlBxlC,GAAA,CAAIylC,QAAJ,GAAe,EAAf,CAHkB;AAAA,EAIlBzlC,GAAA,CAAI8+B,IAAJ,GAAW,IAAX,CAJkB;AAAA,EAKlB9+B,GAAA,CAAIw+B,IAAJ,GAAW,IAAX,CALkB;AAAA,EAMlBx+B,GAAA,CAAIknB,IAAJ,GAAW,EAAX,CANkB;AAAA,EAOlBlnB,GAAA,CAAImD,KAAJ,GAAY,IAAZ,CAPkB;AAAA,EAQlBnD,GAAA,CAAIioC,QAAJ,GAAe,IAAf,CARkB;AAAA,EASlBjoC,GAAA,CAAI2lC,gBAAJ,GAAuB,KAAvB,CATkB;AAAA,EAUlB/hB,KAAA,GAAQA,KAAA,CAAMsF,OAAN,CAAcuZ,wCAAd,EAAwD,EAAxD,CAAR,CAVkB;AAAA,EAToC;AAAA,CAsBxD7e,KAAA,GAAQA,KAAA,CAAMsF,OAAN,CAAcwZ,gBAAd,EAAgC,EAAhC,CAAR,CAtBwD;AAAA,CAwBxDG,UAAA,GAAa1B,SAAA,CAAUvd,KAAV,CAAb,CAxBwD;AAAA,CA0BxD,OAAOigB,OAAA,IAAWhB,UAAA,CAAWxoB,MAA7B,EAAqC;AAAA,EACnC6pB,IAAA,GAAOrB,UAAA,CAAWgB,OAAX,CAAP,CADmC;AAAA,EAEnC,QAAQ37B,KAAR;AAAA,EACE,KAAKm+B,YAAL;AAAA,GACE,IAAInC,IAAA,IAAQlC,KAAA,CAAMhc,IAAN,CAAWke,IAAX,CAAZ,EAA8B;AAAA,IAC5BrmB,MAAA,IAAUqmB,IAAA,CAAK/a,WAAL,EAAV,CAD4B;AAAA,IAE5BjhB,KAAA,GAAQo+B,MAAR,CAF4B;AAAA,IAA9B,MAGO,IAAI,CAACqB,aAAL,EAAoB;AAAA,IACzBz/B,KAAA,GAAQq+B,SAAR,CADyB;AAAA,IAEzB,SAFyB;AAAA,IAApB;AAAA,IAGA,OAAO1E,cAAP,CAPT;AAAA,GAQE,MATJ;AAAA,EAWE,KAAKyE,MAAL;AAAA,GACE,IAAIpC,IAAA,IAAS,CAAAjC,YAAA,CAAajc,IAAb,CAAkBke,IAAlB,KAA2BA,IAAA,IAAQ,GAAnC,IAA0CA,IAAA,IAAQ,GAAlD,IAAyDA,IAAA,IAAQ,GAAjE,CAAb,EAAoF;AAAA,IAClFrmB,MAAA,IAAUqmB,IAAA,CAAK/a,WAAL,EAAV,CADkF;AAAA,IAApF,MAEO,IAAI+a,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACtB,IAAIyD,aAAA,IACF,CAAC5E,SAAA,CAAU/iC,GAAV,KAAkBqiB,GAAA,CAAI0iB,cAAJ,EAAoBlnB,MAApB,CAAnB,IACCA,MAAA,IAAU,MAAV,IAAqB,CAAA0nB,mBAAA,CAAoBvlC,GAApB,KAA4BA,GAAA,CAAIw+B,IAAJ,KAAa,IAAzC,CADtB,IAECx+B,GAAA,CAAIslC,MAAJ,IAAc,MAAd,IAAwB,CAACtlC,GAAA,CAAI8+B,IAF9B,CADF;AAAA,KAIG,OALmB;AAAA,IAMtB9+B,GAAA,CAAIslC,MAAJ,GAAaznB,MAAb,CANsB;AAAA,IAOtB,IAAI8pB,aAAJ,EAAmB;AAAA,KACjB,IAAI5E,SAAA,CAAU/iC,GAAV,KAAkB+kC,cAAA,CAAe/kC,GAAA,CAAIslC,MAAnB,KAA8BtlC,GAAA,CAAIw+B,IAAxD;AAAA,MAA8Dx+B,GAAA,CAAIw+B,IAAJ,GAAW,IAAX,CAD7C;AAAA,KAEjB,OAFiB;AAAA,KAPG;AAAA,IAWtB3gB,MAAA,GAAS,EAAT,CAXsB;AAAA,IAYtB,IAAI7d,GAAA,CAAIslC,MAAJ,IAAc,MAAlB,EAA0B;AAAA,KACxBp9B,KAAA,GAAQg/B,IAAR,CADwB;AAAA,KAA1B,MAEO,IAAInE,SAAA,CAAU/iC,GAAV,KAAkB6Z,IAAlB,IAA0BA,IAAA,CAAKyrB,MAAL,IAAetlC,GAAA,CAAIslC,MAAjD,EAAyD;AAAA,KAC9Dp9B,KAAA,GAAQs+B,6BAAR,CAD8D;AAAA,KAAzD,MAEA,IAAIzD,SAAA,CAAU/iC,GAAV,CAAJ,EAAoB;AAAA,KACzBkI,KAAA,GAAQ0+B,yBAAR,CADyB;AAAA,KAApB,MAEA,IAAI/D,UAAA,CAAWgB,OAAA,GAAU,CAArB,KAA2B,GAA/B,EAAoC;AAAA,KACzC37B,KAAA,GAAQu+B,iBAAR,CADyC;AAAA,KAEzC5C,OAAA,GAFyC;AAAA,KAApC,MAGA;AAAA,KACL7jC,GAAA,CAAI2lC,gBAAJ,GAAuB,IAAvB,CADK;AAAA,KAEL3lC,GAAA,CAAIknB,IAAJ,CAASd,IAAT,CAAc,EAAd,EAFK;AAAA,KAGLle,KAAA,GAAQq/B,yBAAR,CAHK;AAAA,KArBe;AAAA,IAAjB,MA0BA,IAAI,CAACI,aAAL,EAAoB;AAAA,IACzB9pB,MAAA,GAAS,EAAT,CADyB;AAAA,IAEzB3V,KAAA,GAAQq+B,SAAR,CAFyB;AAAA,IAGzB1C,OAAA,GAAU,CAAV,CAHyB;AAAA,IAIzB,SAJyB;AAAA,IAApB;AAAA,IAKA,OAAOhC,cAAP,CAlCT;AAAA,GAmCE,MA9CJ;AAAA,EAgDE,KAAK0E,SAAL;AAAA,GACE,IAAI,CAAC1sB,IAAD,IAAUA,IAAA,CAAK8rB,gBAAL,IAAyBzB,IAAA,IAAQ,GAA/C;AAAA,IAAqD,OAAOrC,cAAP,CADvD;AAAA,GAEE,IAAIhoB,IAAA,CAAK8rB,gBAAL,IAAyBzB,IAAA,IAAQ,GAArC,EAA0C;AAAA,IACxClkC,GAAA,CAAIslC,MAAJ,GAAazrB,IAAA,CAAKyrB,MAAlB,CADwC;AAAA,IAExCtlC,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CAFwC;AAAA,IAGxCzjB,GAAA,CAAImD,KAAJ,GAAY0W,IAAA,CAAK1W,KAAjB,CAHwC;AAAA,IAIxCnD,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CAJwC;AAAA,IAKxCjoC,GAAA,CAAI2lC,gBAAJ,GAAuB,IAAvB,CALwC;AAAA,IAMxCz9B,KAAA,GAAQu/B,QAAR,CANwC;AAAA,IAOxC,MAPwC;AAAA,IAF5C;AAAA,GAWEv/B,KAAA,GAAQ2R,IAAA,CAAKyrB,MAAL,IAAe,MAAf,GAAwB4B,IAAxB,GAA+BR,QAAvC,CAXF;AAAA,GAYE,SA5DJ;AAAA,EA8DE,KAAKF,6BAAL;AAAA,GACE,IAAItC,IAAA,IAAQ,GAAR,IAAerB,UAAA,CAAWgB,OAAA,GAAU,CAArB,KAA2B,GAA9C,EAAmD;AAAA,IACjD37B,KAAA,GAAQ2+B,gCAAR,CADiD;AAAA,IAEjDhD,OAAA,GAFiD;AAAA,IAAnD,MAGO;AAAA,IACL37B,KAAA,GAAQw+B,QAAR,CADK;AAAA,IAEL,SAFK;AAAA,IAJT;AAAA,GAOI,MArEN;AAAA,EAuEE,KAAKD,iBAAL;AAAA,GACE,IAAIvC,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACfh8B,KAAA,GAAQ4+B,SAAR,CADe;AAAA,IAEf,MAFe;AAAA,IAAjB,MAGO;AAAA,IACL5+B,KAAA,GAAQo/B,IAAR,CADK;AAAA,IAEL,SAFK;AAAA,IA3EX;AAAA,EAgFE,KAAKZ,QAAL;AAAA,GACE1mC,GAAA,CAAIslC,MAAJ,GAAazrB,IAAA,CAAKyrB,MAAlB,CADF;AAAA,GAEE,IAAIpB,IAAA,IAAQvB,GAAZ,EAAiB;AAAA,IACf3iC,GAAA,CAAIwlC,QAAJ,GAAe3rB,IAAA,CAAK2rB,QAApB,CADe;AAAA,IAEfxlC,GAAA,CAAIylC,QAAJ,GAAe5rB,IAAA,CAAK4rB,QAApB,CAFe;AAAA,IAGfzlC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAHe;AAAA,IAIf9+B,GAAA,CAAIw+B,IAAJ,GAAW3kB,IAAA,CAAK2kB,IAAhB,CAJe;AAAA,IAKfx+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CALe;AAAA,IAMfzjB,GAAA,CAAImD,KAAJ,GAAY0W,IAAA,CAAK1W,KAAjB,CANe;AAAA,IAAjB,MAOO,IAAI+gC,IAAA,IAAQ,GAAR,IAAgBA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CAApC,EAAqD;AAAA,IAC1DkI,KAAA,GAAQy+B,cAAR,CAD0D;AAAA,IAArD,MAEA,IAAIzC,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACtBlkC,GAAA,CAAIwlC,QAAJ,GAAe3rB,IAAA,CAAK2rB,QAApB,CADsB;AAAA,IAEtBxlC,GAAA,CAAIylC,QAAJ,GAAe5rB,IAAA,CAAK4rB,QAApB,CAFsB;AAAA,IAGtBzlC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAHsB;AAAA,IAItB9+B,GAAA,CAAIw+B,IAAJ,GAAW3kB,IAAA,CAAK2kB,IAAhB,CAJsB;AAAA,IAKtBx+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CALsB;AAAA,IAMtBzjB,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CANsB;AAAA,IAOtB+E,KAAA,GAAQs/B,KAAR,CAPsB;AAAA,IAAjB,MAQA,IAAItD,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACtBlkC,GAAA,CAAIwlC,QAAJ,GAAe3rB,IAAA,CAAK2rB,QAApB,CADsB;AAAA,IAEtBxlC,GAAA,CAAIylC,QAAJ,GAAe5rB,IAAA,CAAK4rB,QAApB,CAFsB;AAAA,IAGtBzlC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAHsB;AAAA,IAItB9+B,GAAA,CAAIw+B,IAAJ,GAAW3kB,IAAA,CAAK2kB,IAAhB,CAJsB;AAAA,IAKtBx+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CALsB;AAAA,IAMtBzjB,GAAA,CAAImD,KAAJ,GAAY0W,IAAA,CAAK1W,KAAjB,CANsB;AAAA,IAOtBnD,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CAPsB;AAAA,IAQtB//B,KAAA,GAAQu/B,QAAR,CARsB;AAAA,IAAjB,MASA;AAAA,IACLznC,GAAA,CAAIwlC,QAAJ,GAAe3rB,IAAA,CAAK2rB,QAApB,CADK;AAAA,IAELxlC,GAAA,CAAIylC,QAAJ,GAAe5rB,IAAA,CAAK4rB,QAApB,CAFK;AAAA,IAGLzlC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAHK;AAAA,IAIL9+B,GAAA,CAAIw+B,IAAJ,GAAW3kB,IAAA,CAAK2kB,IAAhB,CAJK;AAAA,IAKLx+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CALK;AAAA,IAMLzjB,GAAA,CAAIknB,IAAJ,CAASuc,GAAT,GANK;AAAA,IAOLv7B,KAAA,GAAQo/B,IAAR,CAPK;AAAA,IAQL,SARK;AAAA,IA5BT;AAAA,GAqCI,MArHN;AAAA,EAuHE,KAAKX,cAAL;AAAA,GACE,IAAI5D,SAAA,CAAU/iC,GAAV,KAAmB,CAAAkkC,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,IAAvB,CAAvB,EAAqD;AAAA,IACnDh8B,KAAA,GAAQ2+B,gCAAR,CADmD;AAAA,IAArD,MAEO,IAAI3C,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACtBh8B,KAAA,GAAQ4+B,SAAR,CADsB;AAAA,IAAjB,MAEA;AAAA,IACL9mC,GAAA,CAAIwlC,QAAJ,GAAe3rB,IAAA,CAAK2rB,QAApB,CADK;AAAA,IAELxlC,GAAA,CAAIylC,QAAJ,GAAe5rB,IAAA,CAAK4rB,QAApB,CAFK;AAAA,IAGLzlC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAHK;AAAA,IAIL9+B,GAAA,CAAIw+B,IAAJ,GAAW3kB,IAAA,CAAK2kB,IAAhB,CAJK;AAAA,IAKLt2B,KAAA,GAAQo/B,IAAR,CALK;AAAA,IAML,SANK;AAAA,IALT;AAAA,GAYI,MAnIN;AAAA,EAqIE,KAAKV,yBAAL;AAAA,GACE1+B,KAAA,GAAQ2+B,gCAAR,CADF;AAAA,GAEE,IAAI3C,IAAA,IAAQ,GAAR,IAAermB,MAAA,CAAOmQ,MAAP,CAAc6V,OAAA,GAAU,CAAxB,KAA8B,GAAjD;AAAA,IAAsD,SAFxD;AAAA,GAGEA,OAAA,GAHF;AAAA,GAIE,MAzIJ;AAAA,EA2IE,KAAKgD,gCAAL;AAAA,GACE,IAAI3C,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,IAA3B,EAAiC;AAAA,IAC/Bh8B,KAAA,GAAQ4+B,SAAR,CAD+B;AAAA,IAE/B,SAF+B;AAAA,IADnC;AAAA,GAII,MA/IN;AAAA,EAiJE,KAAKA,SAAL;AAAA,GACE,IAAI5C,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACf,IAAI0D,MAAJ;AAAA,KAAY/pB,MAAA,GAAS,QAAQA,MAAjB,CADG;AAAA,IAEf+pB,MAAA,GAAS,IAAT,CAFe;AAAA,IAGfG,gBAAA,GAAmB5G,SAAA,CAAUtjB,MAAV,CAAnB,CAHe;AAAA,IAIf,KAAK,IAAI1U,CAAA,GAAI,CAAR,CAAL,CAAgBA,CAAA,GAAI4+B,gBAAA,CAAiB1tB,MAArC,EAA6ClR,CAAA,EAA7C,EAAkD;AAAA,KAChD,IAAI++B,SAAA,GAAYH,gBAAA,CAAiB5+B,CAAjB,CAAhB,CADgD;AAAA,KAEhD,IAAI++B,SAAA,IAAa,GAAb,IAAoB,CAACJ,iBAAzB,EAA4C;AAAA,MAC1CA,iBAAA,GAAoB,IAApB,CAD0C;AAAA,MAE1C,SAF0C;AAAA,MAFI;AAAA,KAMhD,IAAIK,iBAAA,GAAoBnF,aAAA,CAAckF,SAAd,EAAyBpD,wBAAzB,CAAxB,CANgD;AAAA,KAOhD,IAAIgD,iBAAJ;AAAA,MAAuB9nC,GAAA,CAAIylC,QAAJ,IAAgB0C,iBAAhB,CAAvB;AAAA;AAAA,MACKnoC,GAAA,CAAIwlC,QAAJ,IAAgB2C,iBAAhB,CAR2C;AAAA,KAJnC;AAAA,IAcftqB,MAAA,GAAS,EAAT,CAde;AAAA,IAAjB,MAeO,IACLqmB,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IAA8BA,IAAA,IAAQ,GAAtC,IAA6CA,IAAA,IAAQ,GAArD,IACCA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CAFZ,EAGL;AAAA,IACA,IAAI4nC,MAAA,IAAU/pB,MAAA,IAAU,EAAxB;AAAA,KAA4B,OAAO+jB,iBAAP,CAD5B;AAAA,IAEAiC,OAAA,IAAW1C,SAAA,CAAUtjB,MAAV,EAAkBxD,MAAlB,GAA2B,CAAtC,CAFA;AAAA,IAGAwD,MAAA,GAAS,EAAT,CAHA;AAAA,IAIA3V,KAAA,GAAQ6+B,IAAR,CAJA;AAAA,IAHK;AAAA,IAQAlpB,MAAA,IAAUqmB,IAAV,CAxBT;AAAA,GAyBE,MA1KJ;AAAA,EA4KE,KAAK6C,IAAL,CA5KF;AAAA,EA6KE,KAAKC,QAAL;AAAA,GACE,IAAIW,aAAA,IAAiB3nC,GAAA,CAAIslC,MAAJ,IAAc,MAAnC,EAA2C;AAAA,IACzCp9B,KAAA,GAAQk/B,SAAR,CADyC;AAAA,IAEzC,SAFyC;AAAA,IAA3C,MAGO,IAAIlD,IAAA,IAAQ,GAAR,IAAe,CAAC2D,WAApB,EAAiC;AAAA,IACtC,IAAIhqB,MAAA,IAAU,EAAd;AAAA,KAAkB,OAAOikB,YAAP,CADoB;AAAA,IAEtCkG,OAAA,GAAUpF,SAAA,CAAU5iC,GAAV,EAAe6d,MAAf,CAAV,CAFsC;AAAA,IAGtC,IAAImqB,OAAJ;AAAA,KAAa,OAAOA,OAAP,CAHyB;AAAA,IAItCnqB,MAAA,GAAS,EAAT,CAJsC;AAAA,IAKtC3V,KAAA,GAAQ++B,IAAR,CALsC;AAAA,IAMtC,IAAIU,aAAA,IAAiBX,QAArB;AAAA,KAA+B,OANO;AAAA,IAAjC,MAOA,IACL9C,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IAA8BA,IAAA,IAAQ,GAAtC,IAA6CA,IAAA,IAAQ,GAArD,IACCA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CAFZ,EAGL;AAAA,IACA,IAAI+iC,SAAA,CAAU/iC,GAAV,KAAkB6d,MAAA,IAAU,EAAhC;AAAA,KAAoC,OAAOikB,YAAP,CADpC;AAAA,IAEA,IAAI6F,aAAA,IAAiB9pB,MAAA,IAAU,EAA3B,IAAkC,CAAA0nB,mBAAA,CAAoBvlC,GAApB,KAA4BA,GAAA,CAAIw+B,IAAJ,KAAa,IAAzC,CAAtC;AAAA,KAAsF,OAFtF;AAAA,IAGAwJ,OAAA,GAAUpF,SAAA,CAAU5iC,GAAV,EAAe6d,MAAf,CAAV,CAHA;AAAA,IAIA,IAAImqB,OAAJ;AAAA,KAAa,OAAOA,OAAP,CAJb;AAAA,IAKAnqB,MAAA,GAAS,EAAT,CALA;AAAA,IAMA3V,KAAA,GAAQm/B,UAAR,CANA;AAAA,IAOA,IAAIM,aAAJ;AAAA,KAAmB,OAPnB;AAAA,IAQA,SARA;AAAA,IAHK,MAYA;AAAA,IACL,IAAIzD,IAAA,IAAQ,GAAZ;AAAA,KAAiB2D,WAAA,GAAc,IAAd,CAAjB;AAAA,SACK,IAAI3D,IAAA,IAAQ,GAAZ;AAAA,KAAiB2D,WAAA,GAAc,KAAd,CAFjB;AAAA,IAGLhqB,MAAA,IAAUqmB,IAAV,CAHK;AAAA,IAvBT;AAAA,GA2BI,MAxMN;AAAA,EA0ME,KAAK+C,IAAL;AAAA,GACE,IAAI/E,KAAA,CAAMlc,IAAN,CAAWke,IAAX,CAAJ,EAAsB;AAAA,IACpBrmB,MAAA,IAAUqmB,IAAV,CADoB;AAAA,IAAtB,MAEO,IACLA,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IAA8BA,IAAA,IAAQ,GAAtC,IAA6CA,IAAA,IAAQ,GAArD,IACCA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CADjB,IAEA2nC,aAHK,EAIL;AAAA,IACA,IAAI9pB,MAAA,IAAU,EAAd,EAAkB;AAAA,KAChB,IAAI2gB,IAAA,GAAOj6B,QAAA,CAASsZ,MAAT,EAAiB,EAAjB,CAAX,CADgB;AAAA,KAEhB,IAAI2gB,IAAA,GAAO,MAAX;AAAA,MAAmB,OAAOuD,YAAP,CAFH;AAAA,KAGhB/hC,GAAA,CAAIw+B,IAAJ,GAAYuE,SAAA,CAAU/iC,GAAV,KAAkBw+B,IAAA,KAASuG,cAAA,CAAe/kC,GAAA,CAAIslC,MAAnB,CAA5B,GAA0D,IAA1D,GAAiE9G,IAA5E,CAHgB;AAAA,KAIhB3gB,MAAA,GAAS,EAAT,CAJgB;AAAA,KADlB;AAAA,IAOA,IAAI8pB,aAAJ;AAAA,KAAmB,OAPnB;AAAA,IAQAz/B,KAAA,GAAQm/B,UAAR,CARA;AAAA,IASA,SATA;AAAA,IAJK;AAAA,IAcA,OAAOtF,YAAP,CAjBT;AAAA,GAkBE,MA5NJ;AAAA,EA8NE,KAAKmF,IAAL;AAAA,GACElnC,GAAA,CAAIslC,MAAJ,GAAa,MAAb,CADF;AAAA,GAEE,IAAIpB,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,IAA3B;AAAA,IAAiCh8B,KAAA,GAAQi/B,UAAR,CAAjC;AAAA,QACK,IAAIttB,IAAA,IAAQA,IAAA,CAAKyrB,MAAL,IAAe,MAA3B,EAAmC;AAAA,IACtC,IAAIpB,IAAA,IAAQvB,GAAZ,EAAiB;AAAA,KACf3iC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CADe;AAAA,KAEf9+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CAFe;AAAA,KAGfzjB,GAAA,CAAImD,KAAJ,GAAY0W,IAAA,CAAK1W,KAAjB,CAHe;AAAA,KAAjB,MAIO,IAAI+gC,IAAA,IAAQ,GAAZ,EAAiB;AAAA,KACtBlkC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CADsB;AAAA,KAEtB9+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CAFsB;AAAA,KAGtBzjB,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CAHsB;AAAA,KAItB+E,KAAA,GAAQs/B,KAAR,CAJsB;AAAA,KAAjB,MAKA,IAAItD,IAAA,IAAQ,GAAZ,EAAiB;AAAA,KACtBlkC,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CADsB;AAAA,KAEtB9+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CAFsB;AAAA,KAGtBzjB,GAAA,CAAImD,KAAJ,GAAY0W,IAAA,CAAK1W,KAAjB,CAHsB;AAAA,KAItBnD,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CAJsB;AAAA,KAKtB//B,KAAA,GAAQu/B,QAAR,CALsB;AAAA,KAAjB,MAMA;AAAA,KACL,IAAI,CAAC3B,4BAAA,CAA6BjD,UAAA,CAAWpf,KAAX,CAAiBogB,OAAjB,EAA0B9e,IAA1B,CAA+B,EAA/B,CAA7B,CAAL,EAAuE;AAAA,MACrE/kB,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CADqE;AAAA,MAErE9+B,GAAA,CAAIknB,IAAJ,GAAWrN,IAAA,CAAKqN,IAAL,CAAUzD,KAAV,EAAX,CAFqE;AAAA,MAGrEuiB,eAAA,CAAgBhmC,GAAhB,EAHqE;AAAA,MADlE;AAAA,KAMLkI,KAAA,GAAQo/B,IAAR,CANK;AAAA,KAOL,SAPK;AAAA,KAhB+B;AAAA,IAAnC,MAyBE;AAAA,IACLp/B,KAAA,GAAQo/B,IAAR,CADK;AAAA,IAEL,SAFK;AAAA,IA5BT;AAAA,GA+BI,MA7PN;AAAA,EA+PE,KAAKH,UAAL;AAAA,GACE,IAAIjD,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,IAA3B,EAAiC;AAAA,IAC/Bh8B,KAAA,GAAQk/B,SAAR,CAD+B;AAAA,IAE/B,MAF+B;AAAA,IADnC;AAAA,GAKE,IAAIvtB,IAAA,IAAQA,IAAA,CAAKyrB,MAAL,IAAe,MAAvB,IAAiC,CAACQ,4BAAA,CAA6BjD,UAAA,CAAWpf,KAAX,CAAiBogB,OAAjB,EAA0B9e,IAA1B,CAA+B,EAA/B,CAA7B,CAAtC,EAAwG;AAAA,IACtG,IAAI6gB,oBAAA,CAAqB/rB,IAAA,CAAKqN,IAAL,CAAU,CAAV,CAArB,EAAmC,IAAnC,CAAJ;AAAA,KAA8ClnB,GAAA,CAAIknB,IAAJ,CAASd,IAAT,CAAcvM,IAAA,CAAKqN,IAAL,CAAU,CAAV,CAAd,EAA9C;AAAA;AAAA,KACKlnB,GAAA,CAAI8+B,IAAJ,GAAWjlB,IAAA,CAAKilB,IAAhB,CAFiG;AAAA,IAL1G;AAAA,GASE52B,KAAA,GAAQo/B,IAAR,CATF;AAAA,GAUE,SAzQJ;AAAA,EA2QE,KAAKF,SAAL;AAAA,GACE,IAAIlD,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IAA8BA,IAAA,IAAQ,IAAtC,IAA8CA,IAAA,IAAQ,GAAtD,IAA6DA,IAAA,IAAQ,GAAzE,EAA8E;AAAA,IAC5E,IAAI,CAACyD,aAAD,IAAkB/B,oBAAA,CAAqB/nB,MAArB,CAAtB,EAAoD;AAAA,KAClD3V,KAAA,GAAQo/B,IAAR,CADkD;AAAA,KAApD,MAEO,IAAIzpB,MAAA,IAAU,EAAd,EAAkB;AAAA,KACvB7d,GAAA,CAAI8+B,IAAJ,GAAW,EAAX,CADuB;AAAA,KAEvB,IAAI6I,aAAJ;AAAA,MAAmB,OAFI;AAAA,KAGvBz/B,KAAA,GAAQm/B,UAAR,CAHuB;AAAA,KAAlB,MAIA;AAAA,KACLW,OAAA,GAAUpF,SAAA,CAAU5iC,GAAV,EAAe6d,MAAf,CAAV,CADK;AAAA,KAEL,IAAImqB,OAAJ;AAAA,MAAa,OAAOA,OAAP,CAFR;AAAA,KAGL,IAAIhoC,GAAA,CAAI8+B,IAAJ,IAAY,WAAhB;AAAA,MAA6B9+B,GAAA,CAAI8+B,IAAJ,GAAW,EAAX,CAHxB;AAAA,KAIL,IAAI6I,aAAJ;AAAA,MAAmB,OAJd;AAAA,KAKL9pB,MAAA,GAAS,EAAT,CALK;AAAA,KAML3V,KAAA,GAAQm/B,UAAR,CANK;AAAA,KAPqE;AAAA,IAc1E,SAd0E;AAAA,IAA9E;AAAA,IAeOxpB,MAAA,IAAUqmB,IAAV,CAhBT;AAAA,GAiBE,MA5RJ;AAAA,EA8RE,KAAKmD,UAAL;AAAA,GACE,IAAItE,SAAA,CAAU/iC,GAAV,CAAJ,EAAoB;AAAA,IAClBkI,KAAA,GAAQo/B,IAAR,CADkB;AAAA,IAElB,IAAIpD,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,IAA3B;AAAA,KAAiC,SAFf;AAAA,IAApB,MAGO,IAAI,CAACyD,aAAD,IAAkBzD,IAAA,IAAQ,GAA9B,EAAmC;AAAA,IACxClkC,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CADwC;AAAA,IAExC+E,KAAA,GAAQs/B,KAAR,CAFwC;AAAA,IAAnC,MAGA,IAAI,CAACG,aAAD,IAAkBzD,IAAA,IAAQ,GAA9B,EAAmC;AAAA,IACxClkC,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CADwC;AAAA,IAExC//B,KAAA,GAAQu/B,QAAR,CAFwC;AAAA,IAAnC,MAGA,IAAIvD,IAAA,IAAQvB,GAAZ,EAAiB;AAAA,IACtBz6B,KAAA,GAAQo/B,IAAR,CADsB;AAAA,IAEtB,IAAIpD,IAAA,IAAQ,GAAZ;AAAA,KAAiB,SAFK;AAAA,IAV1B;AAAA,GAaI,MA3SN;AAAA,EA6SE,KAAKoD,IAAL;AAAA,GACE,IACEpD,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IACCA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CADjB,IAEC,CAAC2nC,aAAD,IAAmB,CAAAzD,IAAA,IAAQ,GAAR,IAAeA,IAAA,IAAQ,GAAvB,CAHtB,EAIE;AAAA,IACA,IAAIkC,WAAA,CAAYvoB,MAAZ,CAAJ,EAAyB;AAAA,KACvBmoB,eAAA,CAAgBhmC,GAAhB,EADuB;AAAA,KAEvB,IAAIkkC,IAAA,IAAQ,GAAR,IAAe,CAAE,CAAAA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CAAhB,CAArB,EAAsD;AAAA,MACpDA,GAAA,CAAIknB,IAAJ,CAASd,IAAT,CAAc,EAAd,EADoD;AAAA,MAF/B;AAAA,KAAzB,MAKO,IAAI8f,WAAA,CAAYroB,MAAZ,CAAJ,EAAyB;AAAA,KAC9B,IAAIqmB,IAAA,IAAQ,GAAR,IAAe,CAAE,CAAAA,IAAA,IAAQ,IAAR,IAAgBnB,SAAA,CAAU/iC,GAAV,CAAhB,CAArB,EAAsD;AAAA,MACpDA,GAAA,CAAIknB,IAAJ,CAASd,IAAT,CAAc,EAAd,EADoD;AAAA,MADxB;AAAA,KAAzB,MAIA;AAAA,KACL,IAAIpmB,GAAA,CAAIslC,MAAJ,IAAc,MAAd,IAAwB,CAACtlC,GAAA,CAAIknB,IAAJ,CAAS7M,MAAlC,IAA4CurB,oBAAA,CAAqB/nB,MAArB,CAAhD,EAA8E;AAAA,MAC5E,IAAI7d,GAAA,CAAI8+B,IAAR;AAAA,OAAc9+B,GAAA,CAAI8+B,IAAJ,GAAW,EAAX,CAD8D;AAAA,MAE5EjhB,MAAA,GAASA,MAAA,CAAOmQ,MAAP,CAAc,CAAd,IAAmB,GAA5B,CAF4E;AAAA,MADzE;AAAA,KAKLhuB,GAAA,CAAIknB,IAAJ,CAASd,IAAT,CAAcvI,MAAd,EALK;AAAA,KAVP;AAAA,IAiBAA,MAAA,GAAS,EAAT,CAjBA;AAAA,IAkBA,IAAI7d,GAAA,CAAIslC,MAAJ,IAAc,MAAd,IAAyB,CAAApB,IAAA,IAAQvB,GAAR,IAAeuB,IAAA,IAAQ,GAAvB,IAA8BA,IAAA,IAAQ,GAAtC,CAA7B,EAAyE;AAAA,KACvE,OAAOlkC,GAAA,CAAIknB,IAAJ,CAAS7M,MAAT,GAAkB,CAAlB,IAAuBra,GAAA,CAAIknB,IAAJ,CAAS,CAAT,MAAgB,EAA9C,EAAkD;AAAA,MAChDlnB,GAAA,CAAIknB,IAAJ,CAASkhB,KAAT,GADgD;AAAA,MADqB;AAAA,KAlBzE;AAAA,IAuBA,IAAIlE,IAAA,IAAQ,GAAZ,EAAiB;AAAA,KACflkC,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CADe;AAAA,KAEf+E,KAAA,GAAQs/B,KAAR,CAFe;AAAA,KAAjB,MAGO,IAAItD,IAAA,IAAQ,GAAZ,EAAiB;AAAA,KACtBlkC,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CADsB;AAAA,KAEtB//B,KAAA,GAAQu/B,QAAR,CAFsB;AAAA,KA1BxB;AAAA,IAJF,MAkCO;AAAA,IACL5pB,MAAA,IAAUmlB,aAAA,CAAckB,IAAd,EAAoBW,oBAApB,CAAV,CADK;AAAA,IAnCT;AAAA,GAqCI,MAlVN;AAAA,EAoVE,KAAK0C,yBAAL;AAAA,GACE,IAAIrD,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACflkC,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CADe;AAAA,IAEf+E,KAAA,GAAQs/B,KAAR,CAFe;AAAA,IAAjB,MAGO,IAAItD,IAAA,IAAQ,GAAZ,EAAiB;AAAA,IACtBlkC,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CADsB;AAAA,IAEtB//B,KAAA,GAAQu/B,QAAR,CAFsB;AAAA,IAAjB,MAGA,IAAIvD,IAAA,IAAQvB,GAAZ,EAAiB;AAAA,IACtB3iC,GAAA,CAAIknB,IAAJ,CAAS,CAAT,KAAe8b,aAAA,CAAckB,IAAd,EAAoBjB,yBAApB,CAAf,CADsB;AAAA,IAP1B;AAAA,GASI,MA7VN;AAAA,EA+VE,KAAKuE,KAAL;AAAA,GACE,IAAI,CAACG,aAAD,IAAkBzD,IAAA,IAAQ,GAA9B,EAAmC;AAAA,IACjClkC,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CADiC;AAAA,IAEjC//B,KAAA,GAAQu/B,QAAR,CAFiC;AAAA,IAAnC,MAGO,IAAIvD,IAAA,IAAQvB,GAAZ,EAAiB;AAAA,IACtB,IAAIuB,IAAA,IAAQ,GAAR,IAAenB,SAAA,CAAU/iC,GAAV,CAAnB;AAAA,KAAmCA,GAAA,CAAImD,KAAJ,IAAa,KAAb,CAAnC;AAAA,SACK,IAAI+gC,IAAA,IAAQ,GAAZ;AAAA,KAAiBlkC,GAAA,CAAImD,KAAJ,IAAa,KAAb,CAAjB;AAAA;AAAA,KACAnD,GAAA,CAAImD,KAAJ,IAAa6/B,aAAA,CAAckB,IAAd,EAAoBjB,yBAApB,CAAb,CAHiB;AAAA,IAJ1B;AAAA,GAQI,MAvWN;AAAA,EAyWE,KAAKwE,QAAL;AAAA,GACE,IAAIvD,IAAA,IAAQvB,GAAZ;AAAA,IAAiB3iC,GAAA,CAAIioC,QAAJ,IAAgBjF,aAAA,CAAckB,IAAd,EAAoBU,wBAApB,CAAhB,CADnB;AAAA,GAEE,MA3WJ;AAAA,GAFmC;AAAA,EAgXnCf,OAAA,GAhXmC;AAAA,EA1BmB;AAAA,CAA1D,CA/UA;AA+tBA,IAAIwE,cAAA,GAAiB,SAASlqB,GAAT,CAAane,GAAb,EAA+B;AAAA,CAClD,IAAI6pB,IAAA,GAAOyP,UAAA,CAAW,IAAX,EAAiB+O,cAAjB,EAAiC,KAAjC,CAAX,CADkD;AAAA,CAElD,IAAIxuB,IAAA,GAAO4F,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAAjD,CAFkD;AAAA,CAGlD,IAAI2mB,SAAA,GAAY/tB,MAAA,CAAOva,GAAP,CAAhB,CAHkD;AAAA,CAIlD,IAAIkI,KAAA,GAAQimB,gBAAA,CAAiBtE,IAAjB,EAAuB,EAAEzjB,IAAA,EAAM,KAAR,EAAvB,CAAZ,CAJkD;AAAA,CAKlD,IAAImiC,SAAJ,EAAeP,OAAf,CALkD;AAAA,CAMlD,IAAInuB,IAAA,KAAS8H,SAAb,EAAwB;AAAA,EACtB,IAAI9H,IAAA,YAAgBwuB,cAApB;AAAA,GAAoCE,SAAA,GAAY7G,mBAAA,CAAoB7nB,IAApB,CAAZ,CAApC;AAAA,OACK;AAAA,GACHmuB,OAAA,GAAUN,QAAA,CAASa,SAAA,GAAY,EAArB,EAAyBhuB,MAAA,CAAOV,IAAP,CAAzB,CAAV,CADG;AAAA,GAEH,IAAImuB,OAAJ;AAAA,IAAa,MAAMtkB,SAAA,CAAUskB,OAAV,CAAN,CAFV;AAAA,GAFiB;AAAA,EAN0B;AAAA,CAalDA,OAAA,GAAUN,QAAA,CAASx/B,KAAT,EAAgBogC,SAAhB,EAA2B,IAA3B,EAAiCC,SAAjC,CAAV,CAbkD;AAAA,CAclD,IAAIP,OAAJ;AAAA,EAAa,MAAMtkB,SAAA,CAAUskB,OAAV,CAAN,CAdqC;AAAA,CAelD,IAAIQ,YAAA,GAAetgC,KAAA,CAAMsgC,YAAN,GAAqB,IAAIjH,eAAJ,EAAxC,CAfkD;AAAA,CAgBlD,IAAIkH,iBAAA,GAAoBjH,4BAAA,CAA6BgH,YAA7B,CAAxB,CAhBkD;AAAA,CAiBlDC,iBAAA,CAAkBC,kBAAlB,CAAqCxgC,KAAA,CAAM/E,KAA3C,EAjBkD;AAAA,CAkBlDslC,iBAAA,CAAkBE,SAAlB,GAA8B,YAAY;AAAA,EACxCzgC,KAAA,CAAM/E,KAAN,GAAcoX,MAAA,CAAOiuB,YAAP,KAAwB,IAAtC,CADwC;AAAA,EAA1C,CAlBkD;AAAA,CAqBlD,IAAI,CAACxmB,WAAL,EAAkB;AAAA,EAChB6H,IAAA,CAAK+e,IAAL,GAAYC,YAAA,CAAalmB,IAAb,CAAkBkH,IAAlB,CAAZ,CADgB;AAAA,EAEhBA,IAAA,CAAKif,MAAL,GAAcC,SAAA,CAAUpmB,IAAV,CAAekH,IAAf,CAAd,CAFgB;AAAA,EAGhBA,IAAA,CAAK7lB,QAAL,GAAgBglC,WAAA,CAAYrmB,IAAZ,CAAiBkH,IAAjB,CAAhB,CAHgB;AAAA,EAIhBA,IAAA,CAAK2b,QAAL,GAAgByD,WAAA,CAAYtmB,IAAZ,CAAiBkH,IAAjB,CAAhB,CAJgB;AAAA,EAKhBA,IAAA,CAAK4b,QAAL,GAAgByD,WAAA,CAAYvmB,IAAZ,CAAiBkH,IAAjB,CAAhB,CALgB;AAAA,EAMhBA,IAAA,CAAKiV,IAAL,GAAYqK,OAAA,CAAQxmB,IAAR,CAAakH,IAAb,CAAZ,CANgB;AAAA,EAOhBA,IAAA,CAAKuf,QAAL,GAAgBC,WAAA,CAAY1mB,IAAZ,CAAiBkH,IAAjB,CAAhB,CAPgB;AAAA,EAQhBA,IAAA,CAAK2U,IAAL,GAAY8K,OAAA,CAAQ3mB,IAAR,CAAakH,IAAb,CAAZ,CARgB;AAAA,EAShBA,IAAA,CAAK0f,QAAL,GAAgBC,WAAA,CAAY7mB,IAAZ,CAAiBkH,IAAjB,CAAhB,CATgB;AAAA,EAUhBA,IAAA,CAAKC,MAAL,GAAc2f,SAAA,CAAU9mB,IAAV,CAAekH,IAAf,CAAd,CAVgB;AAAA,EAWhBA,IAAA,CAAK2e,YAAL,GAAoBkB,eAAA,CAAgB/mB,IAAhB,CAAqBkH,IAArB,CAApB,CAXgB;AAAA,EAYhBA,IAAA,CAAK8f,IAAL,GAAYC,OAAA,CAAQjnB,IAAR,CAAakH,IAAb,CAAZ,CAZgB;AAAA,EArBgC;AAAA,CAApD,CA/tBA;AAowBA,IAAIggB,YAAA,GAAexB,cAAA,CAAe7mB,SAAlC,CApwBA;AAswBA,IAAIqnB,YAAA,GAAe,YAAY;AAAA,CAC7B,IAAI7oC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD6B;AAAA,CAE7B,IAAI4D,MAAA,GAAStlC,GAAA,CAAIslC,MAAjB,CAF6B;AAAA,CAG7B,IAAIE,QAAA,GAAWxlC,GAAA,CAAIwlC,QAAnB,CAH6B;AAAA,CAI7B,IAAIC,QAAA,GAAWzlC,GAAA,CAAIylC,QAAnB,CAJ6B;AAAA,CAK7B,IAAI3G,IAAA,GAAO9+B,GAAA,CAAI8+B,IAAf,CAL6B;AAAA,CAM7B,IAAIN,IAAA,GAAOx+B,GAAA,CAAIw+B,IAAf,CAN6B;AAAA,CAO7B,IAAItX,IAAA,GAAOlnB,GAAA,CAAIknB,IAAf,CAP6B;AAAA,CAQ7B,IAAI/jB,KAAA,GAAQnD,GAAA,CAAImD,KAAhB,CAR6B;AAAA,CAS7B,IAAI8kC,QAAA,GAAWjoC,GAAA,CAAIioC,QAAnB,CAT6B;AAAA,CAU7B,IAAI6B,MAAA,GAASxE,MAAA,GAAS,GAAtB,CAV6B;AAAA,CAW7B,IAAIxG,IAAA,KAAS,IAAb,EAAmB;AAAA,EACjBgL,MAAA,IAAU,IAAV,CADiB;AAAA,EAEjB,IAAIvE,mBAAA,CAAoBvlC,GAApB,CAAJ,EAA8B;AAAA,GAC5B8pC,MAAA,IAAUtE,QAAA,GAAY,CAAAC,QAAA,GAAW,MAAMA,QAAjB,GAA4B,EAA5B,CAAZ,GAA8C,GAAxD,CAD4B;AAAA,GAFb;AAAA,EAKjBqE,MAAA,IAAUrF,aAAA,CAAc3F,IAAd,CAAV,CALiB;AAAA,EAMjB,IAAIN,IAAA,KAAS,IAAb;AAAA,GAAmBsL,MAAA,IAAU,MAAMtL,IAAhB,CANF;AAAA,EAAnB,MAOO,IAAI8G,MAAA,IAAU,MAAd;AAAA,EAAsBwE,MAAA,IAAU,IAAV,CAlBA;AAAA,CAmB7BA,MAAA,IAAU9pC,GAAA,CAAI2lC,gBAAJ,GAAuBze,IAAA,CAAK,CAAL,CAAvB,GAAiCA,IAAA,CAAK7M,MAAL,GAAc,MAAM6M,IAAA,CAAKnC,IAAL,CAAU,GAAV,CAApB,GAAqC,EAAhF,CAnB6B;AAAA,CAoB7B,IAAI5hB,KAAA,KAAU,IAAd;AAAA,EAAoB2mC,MAAA,IAAU,MAAM3mC,KAAhB,CApBS;AAAA,CAqB7B,IAAI8kC,QAAA,KAAa,IAAjB;AAAA,EAAuB6B,MAAA,IAAU,MAAM7B,QAAhB,CArBM;AAAA,CAsB7B,OAAO6B,MAAP,CAtB6B;AAAA,CAA/B,CAtwBA;AA+xBA,IAAIf,SAAA,GAAY,YAAY;AAAA,CAC1B,IAAI/oC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD0B;AAAA,CAE1B,IAAI4D,MAAA,GAAStlC,GAAA,CAAIslC,MAAjB,CAF0B;AAAA,CAG1B,IAAI9G,IAAA,GAAOx+B,GAAA,CAAIw+B,IAAf,CAH0B;AAAA,CAI1B,IAAI8G,MAAA,IAAU,MAAd;AAAA,EAAsB,IAAI;AAAA,GACxB,OAAO,IAAInnB,GAAJ,CAAQmnB,MAAA,CAAOpe,IAAP,CAAY,CAAZ,CAAR,EAAwB4hB,MAA/B,CADwB;AAAA,GAAJ,CAEpB,OAAOpmB,KAAP,EAAc;AAAA,GACd,OAAO,MAAP,CADc;AAAA,GANU;AAAA,CAS1B,IAAI4iB,MAAA,IAAU,MAAV,IAAoB,CAACvC,SAAA,CAAU/iC,GAAV,CAAzB;AAAA,EAAyC,OAAO,MAAP,CATf;AAAA,CAU1B,OAAOslC,MAAA,GAAS,KAAT,GAAiBb,aAAA,CAAczkC,GAAA,CAAI8+B,IAAlB,CAAjB,GAA4C,CAAAN,IAAA,KAAS,IAAT,GAAgB,MAAMA,IAAtB,GAA6B,EAA7B,CAAnD,CAV0B;AAAA,CAA5B,CA/xBA;AA4yBA,IAAIwK,WAAA,GAAc,YAAY;AAAA,CAC5B,OAAOtH,mBAAA,CAAoB,IAApB,EAA0B4D,MAA1B,GAAmC,GAA1C,CAD4B;AAAA,CAA9B,CA5yBA;AAgzBA,IAAI2D,WAAA,GAAc,YAAY;AAAA,CAC5B,OAAOvH,mBAAA,CAAoB,IAApB,EAA0B8D,QAAjC,CAD4B;AAAA,CAA9B,CAhzBA;AAozBA,IAAI0D,WAAA,GAAc,YAAY;AAAA,CAC5B,OAAOxH,mBAAA,CAAoB,IAApB,EAA0B+D,QAAjC,CAD4B;AAAA,CAA9B,CApzBA;AAwzBA,IAAI0D,OAAA,GAAU,YAAY;AAAA,CACxB,IAAInpC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADwB;AAAA,CAExB,IAAI5C,IAAA,GAAO9+B,GAAA,CAAI8+B,IAAf,CAFwB;AAAA,CAGxB,IAAIN,IAAA,GAAOx+B,GAAA,CAAIw+B,IAAf,CAHwB;AAAA,CAIxB,OAAOM,IAAA,KAAS,IAAT,GAAgB,EAAhB,GACHN,IAAA,KAAS,IAAT,GAAgBiG,aAAA,CAAc3F,IAAd,CAAhB,GACA2F,aAAA,CAAc3F,IAAd,IAAsB,GAAtB,GAA4BN,IAFhC,CAJwB;AAAA,CAA1B,CAxzBA;AAi0BA,IAAI6K,WAAA,GAAc,YAAY;AAAA,CAC5B,IAAIvK,IAAA,GAAO4C,mBAAA,CAAoB,IAApB,EAA0B5C,IAArC,CAD4B;AAAA,CAE5B,OAAOA,IAAA,KAAS,IAAT,GAAgB,EAAhB,GAAqB2F,aAAA,CAAc3F,IAAd,CAA5B,CAF4B;AAAA,CAA9B,CAj0BA;AAs0BA,IAAIwK,OAAA,GAAU,YAAY;AAAA,CACxB,IAAI9K,IAAA,GAAOkD,mBAAA,CAAoB,IAApB,EAA0BlD,IAArC,CADwB;AAAA,CAExB,OAAOA,IAAA,KAAS,IAAT,GAAgB,EAAhB,GAAqBjkB,MAAA,CAAOikB,IAAP,CAA5B,CAFwB;AAAA,CAA1B,CAt0BA;AA20BA,IAAIgL,WAAA,GAAc,YAAY;AAAA,CAC5B,IAAIxpC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4B;AAAA,CAE5B,IAAIxa,IAAA,GAAOlnB,GAAA,CAAIknB,IAAf,CAF4B;AAAA,CAG5B,OAAOlnB,GAAA,CAAI2lC,gBAAJ,GAAuBze,IAAA,CAAK,CAAL,CAAvB,GAAiCA,IAAA,CAAK7M,MAAL,GAAc,MAAM6M,IAAA,CAAKnC,IAAL,CAAU,GAAV,CAApB,GAAqC,EAA7E,CAH4B;AAAA,CAA9B,CA30BA;AAi1BA,IAAI0kB,SAAA,GAAY,YAAY;AAAA,CAC1B,IAAItmC,KAAA,GAAQu+B,mBAAA,CAAoB,IAApB,EAA0Bv+B,KAAtC,CAD0B;AAAA,CAE1B,OAAOA,KAAA,GAAQ,MAAMA,KAAd,GAAsB,EAA7B,CAF0B;AAAA,CAA5B,CAj1BA;AAs1BA,IAAIumC,eAAA,GAAkB,YAAY;AAAA,CAChC,OAAOhI,mBAAA,CAAoB,IAApB,EAA0B8G,YAAjC,CADgC;AAAA,CAAlC,CAt1BA;AA01BA,IAAIoB,OAAA,GAAU,YAAY;AAAA,CACxB,IAAI3B,QAAA,GAAWvG,mBAAA,CAAoB,IAApB,EAA0BuG,QAAzC,CADwB;AAAA,CAExB,OAAOA,QAAA,GAAW,MAAMA,QAAjB,GAA4B,EAAnC,CAFwB;AAAA,CAA1B,CA11BA;AA+1BA,IAAI8B,kBAAA,GAAqB,UAAUC,MAAV,EAAkB/Y,MAAlB,EAA0B;AAAA,CACjD,OAAO;AAAA,EAAEzmB,GAAA,EAAKw/B,MAAP;AAAA,EAAexkB,GAAA,EAAKyL,MAApB;AAAA,EAA4BvrB,YAAA,EAAc,IAA1C;AAAA,EAAgDD,UAAA,EAAY,IAA5D;AAAA,EAAP,CADiD;AAAA,CAAnD,CA/1BA;AAm2BA,IAAIuc,WAAJ,EAAiB;AAAA,CACf0J,gBAAA,CAAiBme,YAAjB,EAA+B;AAAA,EAG7BjB,IAAA,EAAMmB,kBAAA,CAAmBlB,YAAnB,EAAiC,UAAUD,IAAV,EAAgB;AAAA,GACrD,IAAI5oC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADqD;AAAA,GAErD,IAAI4G,SAAA,GAAY/tB,MAAA,CAAOquB,IAAP,CAAhB,CAFqD;AAAA,GAGrD,IAAIZ,OAAA,GAAUN,QAAA,CAAS1nC,GAAT,EAAcsoC,SAAd,CAAd,CAHqD;AAAA,GAIrD,IAAIN,OAAJ;AAAA,IAAa,MAAMtkB,SAAA,CAAUskB,OAAV,CAAN,CAJwC;AAAA,GAKrDxG,4BAAA,CAA6BxhC,GAAA,CAAIwoC,YAAjC,EAA+CE,kBAA/C,CAAkE1oC,GAAA,CAAImD,KAAtE,EALqD;AAAA,GAAjD,CAHuB;AAAA,EAY7B2lC,MAAA,EAAQiB,kBAAA,CAAmBhB,SAAnB,CAZqB;AAAA,EAe7B/kC,QAAA,EAAU+lC,kBAAA,CAAmBf,WAAnB,EAAgC,UAAUhlC,QAAV,EAAoB;AAAA,GAC5D,IAAIhE,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4D;AAAA,GAE5DgG,QAAA,CAAS1nC,GAAT,EAAcua,MAAA,CAAOvW,QAAP,IAAmB,GAAjC,EAAsCqiC,YAAtC,EAF4D;AAAA,GAApD,CAfmB;AAAA,EAqB7Bb,QAAA,EAAUuE,kBAAA,CAAmBd,WAAnB,EAAgC,UAAUzD,QAAV,EAAoB;AAAA,GAC5D,IAAIxlC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4D;AAAA,GAE5D,IAAImB,UAAA,GAAa1B,SAAA,CAAU5mB,MAAA,CAAOirB,QAAP,CAAV,CAAjB,CAF4D;AAAA,GAG5D,IAAIE,8BAAA,CAA+B1lC,GAA/B,CAAJ;AAAA,IAAyC,OAHmB;AAAA,GAI5DA,GAAA,CAAIwlC,QAAJ,GAAe,EAAf,CAJ4D;AAAA,GAK5D,KAAK,IAAIr8B,CAAA,GAAI,CAAR,CAAL,CAAgBA,CAAA,GAAI05B,UAAA,CAAWxoB,MAA/B,EAAuClR,CAAA,EAAvC,EAA4C;AAAA,IAC1CnJ,GAAA,CAAIwlC,QAAJ,IAAgBxC,aAAA,CAAcH,UAAA,CAAW15B,CAAX,CAAd,EAA6B27B,wBAA7B,CAAhB,CAD0C;AAAA,IALgB;AAAA,GAApD,CArBmB;AAAA,EAgC7BW,QAAA,EAAUsE,kBAAA,CAAmBb,WAAnB,EAAgC,UAAUzD,QAAV,EAAoB;AAAA,GAC5D,IAAIzlC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4D;AAAA,GAE5D,IAAImB,UAAA,GAAa1B,SAAA,CAAU5mB,MAAA,CAAOkrB,QAAP,CAAV,CAAjB,CAF4D;AAAA,GAG5D,IAAIC,8BAAA,CAA+B1lC,GAA/B,CAAJ;AAAA,IAAyC,OAHmB;AAAA,GAI5DA,GAAA,CAAIylC,QAAJ,GAAe,EAAf,CAJ4D;AAAA,GAK5D,KAAK,IAAIt8B,CAAA,GAAI,CAAR,CAAL,CAAgBA,CAAA,GAAI05B,UAAA,CAAWxoB,MAA/B,EAAuClR,CAAA,EAAvC,EAA4C;AAAA,IAC1CnJ,GAAA,CAAIylC,QAAJ,IAAgBzC,aAAA,CAAcH,UAAA,CAAW15B,CAAX,CAAd,EAA6B27B,wBAA7B,CAAhB,CAD0C;AAAA,IALgB;AAAA,GAApD,CAhCmB;AAAA,EA2C7BhG,IAAA,EAAMiL,kBAAA,CAAmBZ,OAAnB,EAA4B,UAAUrK,IAAV,EAAgB;AAAA,GAChD,IAAI9+B,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADgD;AAAA,GAEhD,IAAI1hC,GAAA,CAAI2lC,gBAAR;AAAA,IAA0B,OAFsB;AAAA,GAGhD+B,QAAA,CAAS1nC,GAAT,EAAcua,MAAA,CAAOukB,IAAP,CAAd,EAA4BiI,IAA5B,EAHgD;AAAA,GAA5C,CA3CuB;AAAA,EAkD7BqC,QAAA,EAAUW,kBAAA,CAAmBV,WAAnB,EAAgC,UAAUD,QAAV,EAAoB;AAAA,GAC5D,IAAIppC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4D;AAAA,GAE5D,IAAI1hC,GAAA,CAAI2lC,gBAAR;AAAA,IAA0B,OAFkC;AAAA,GAG5D+B,QAAA,CAAS1nC,GAAT,EAAcua,MAAA,CAAO6uB,QAAP,CAAd,EAAgCpC,QAAhC,EAH4D;AAAA,GAApD,CAlDmB;AAAA,EAyD7BxI,IAAA,EAAMuL,kBAAA,CAAmBT,OAAnB,EAA4B,UAAU9K,IAAV,EAAgB;AAAA,GAChD,IAAIx+B,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADgD;AAAA,GAEhD,IAAIgE,8BAAA,CAA+B1lC,GAA/B,CAAJ;AAAA,IAAyC,OAFO;AAAA,GAGhDw+B,IAAA,GAAOjkB,MAAA,CAAOikB,IAAP,CAAP,CAHgD;AAAA,GAIhD,IAAIA,IAAA,IAAQ,EAAZ;AAAA,IAAgBx+B,GAAA,CAAIw+B,IAAJ,GAAW,IAAX,CAAhB;AAAA;AAAA,IACKkJ,QAAA,CAAS1nC,GAAT,EAAcw+B,IAAd,EAAoByI,IAApB,EAL2C;AAAA,GAA5C,CAzDuB;AAAA,EAkE7BsC,QAAA,EAAUQ,kBAAA,CAAmBP,WAAnB,EAAgC,UAAUD,QAAV,EAAoB;AAAA,GAC5D,IAAIvpC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CAD4D;AAAA,GAE5D,IAAI1hC,GAAA,CAAI2lC,gBAAR;AAAA,IAA0B,OAFkC;AAAA,GAG5D3lC,GAAA,CAAIknB,IAAJ,GAAW,EAAX,CAH4D;AAAA,GAI5DwgB,QAAA,CAAS1nC,GAAT,EAAcupC,QAAA,GAAW,EAAzB,EAA6BlC,UAA7B,EAJ4D;AAAA,GAApD,CAlEmB;AAAA,EA0E7Bvd,MAAA,EAAQigB,kBAAA,CAAmBN,SAAnB,EAA8B,UAAU3f,MAAV,EAAkB;AAAA,GACtD,IAAI9pB,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADsD;AAAA,GAEtD5X,MAAA,GAASvP,MAAA,CAAOuP,MAAP,CAAT,CAFsD;AAAA,GAGtD,IAAIA,MAAA,IAAU,EAAd,EAAkB;AAAA,IAChB9pB,GAAA,CAAImD,KAAJ,GAAY,IAAZ,CADgB;AAAA,IAAlB,MAEO;AAAA,IACL,IAAI,OAAO2mB,MAAA,CAAOkE,MAAP,CAAc,CAAd,CAAX;AAAA,KAA6BlE,MAAA,GAASA,MAAA,CAAOrG,KAAP,CAAa,CAAb,CAAT,CADxB;AAAA,IAELzjB,GAAA,CAAImD,KAAJ,GAAY,EAAZ,CAFK;AAAA,IAGLukC,QAAA,CAAS1nC,GAAT,EAAc8pB,MAAd,EAAsB0d,KAAtB,EAHK;AAAA,IAL+C;AAAA,GAUtDhG,4BAAA,CAA6BxhC,GAAA,CAAIwoC,YAAjC,EAA+CE,kBAA/C,CAAkE1oC,GAAA,CAAImD,KAAtE,EAVsD;AAAA,GAAhD,CA1EqB;AAAA,EAwF7BqlC,YAAA,EAAcuB,kBAAA,CAAmBL,eAAnB,CAxFe;AAAA,EA2F7BC,IAAA,EAAMI,kBAAA,CAAmBH,OAAnB,EAA4B,UAAUD,IAAV,EAAgB;AAAA,GAChD,IAAI3pC,GAAA,GAAM0hC,mBAAA,CAAoB,IAApB,CAAV,CADgD;AAAA,GAEhDiI,IAAA,GAAOpvB,MAAA,CAAOovB,IAAP,CAAP,CAFgD;AAAA,GAGhD,IAAIA,IAAA,IAAQ,EAAZ,EAAgB;AAAA,IACd3pC,GAAA,CAAIioC,QAAJ,GAAe,IAAf,CADc;AAAA,IAEd,OAFc;AAAA,IAHgC;AAAA,GAOhD,IAAI,OAAO0B,IAAA,CAAK3b,MAAL,CAAY,CAAZ,CAAX;AAAA,IAA2B2b,IAAA,GAAOA,IAAA,CAAKlmB,KAAL,CAAW,CAAX,CAAP,CAPqB;AAAA,GAQhDzjB,GAAA,CAAIioC,QAAJ,GAAe,EAAf,CARgD;AAAA,GAShDP,QAAA,CAAS1nC,GAAT,EAAc2pC,IAAd,EAAoBlC,QAApB,EATgD;AAAA,GAA5C,CA3FuB;AAAA,EAA/B,EADe;AAAA,CAn2BjB;AA+8BAhnB,QAAA,CAASopB,YAAT,EAAuB,QAAvB,EAAiC,SAASI,MAAT,GAAkB;AAAA,CACjD,OAAOpB,YAAA,CAAalmB,IAAb,CAAkB,IAAlB,CAAP,CADiD;AAAA,CAAnD,EAEG,EAAEld,UAAA,EAAY,IAAd,EAFH,EA/8BA;AAq9BAgb,QAAA,CAASopB,YAAT,EAAuB,UAAvB,EAAmC,SAASrmB,QAAT,GAAoB;AAAA,CACrD,OAAOqlB,YAAA,CAAalmB,IAAb,CAAkB,IAAlB,CAAP,CADqD;AAAA,CAAvD,EAEG,EAAEld,UAAA,EAAY,IAAd,EAFH,EAr9BA;AAy9BA,IAAI67B,SAAJ,EAAe;AAAA,CACb,IAAI4I,qBAAA,GAAwB5I,SAAA,CAAUtjB,eAAtC,CADa;AAAA,CAEb,IAAImsB,qBAAA,GAAwB7I,SAAA,CAAU8I,eAAtC,CAFa;AAAA,CAMb,IAAIF,qBAAJ;AAAA,EAA2BzpB,QAAA,CAAS4nB,cAAT,EAAyB,iBAAzB,EAA4C,SAASrqB,eAAT,CAAyBI,IAAzB,EAA+B;AAAA,GACpG,OAAO8rB,qBAAA,CAAsBpf,KAAtB,CAA4BwW,SAA5B,EAAuC7hB,SAAvC,CAAP,CADoG;AAAA,GAA3E,EANd;AAAA,CAYb,IAAI0qB,qBAAJ;AAAA,EAA2B1pB,QAAA,CAAS4nB,cAAT,EAAyB,iBAAzB,EAA4C,SAAS+B,eAAT,CAAyBpqC,GAAzB,EAA8B;AAAA,GACnG,OAAOmqC,qBAAA,CAAsBrf,KAAtB,CAA4BwW,SAA5B,EAAuC7hB,SAAvC,CAAP,CADmG;AAAA,GAA1E,EAZd;AAAA,CAz9Bf;AA0+BAsP,cAAA,CAAesZ,cAAf,EAA+B,KAA/B,EA1+BA;AA4+BAjoB,CAAA,CAAE;AAAA,CAAEC,MAAA,EAAQ,IAAV;AAAA,CAAgBqB,MAAA,EAAQ,CAACwf,cAAzB;AAAA,CAAyCtf,IAAA,EAAM,CAACI,WAAhD;AAAA,CAAF,EAAiE,EAC/D7D,GAAA,EAAKkqB,cAD0D,EAAjE,E;;;;;;AC5+BA,IAAIzlB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AACA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CADA;AAEA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAFA;AAIA,IAAI0wB,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAJA;AAMAhlB,MAAA,CAAOmB,OAAP,GAAiB,CAACyc,KAAA,CAAM,YAAY;AAAA,CAClC,IAAI5iB,GAAA,GAAM,IAAIme,GAAJ,CAAQ,eAAR,EAAyB,UAAzB,CAAV,CADkC;AAAA,CAElC,IAAIqqB,YAAA,GAAexoC,GAAA,CAAIwoC,YAAvB,CAFkC;AAAA,CAGlC,IAAI/gC,MAAA,GAAS,EAAb,CAHkC;AAAA,CAIlCzH,GAAA,CAAIupC,QAAJ,GAAe,OAAf,CAJkC;AAAA,CAKlCf,YAAA,CAAatV,OAAb,CAAqB,UAAU1tB,KAAV,EAAiBsD,GAAjB,EAAsB;AAAA,EACzC0/B,YAAA,CAAa,QAAb,EAAuB,GAAvB,EADyC;AAAA,EAEzC/gC,MAAA,IAAUqB,GAAA,GAAMtD,KAAhB,CAFyC;AAAA,EAA3C,EALkC;AAAA,CASlC,OAAQ2gB,OAAA,IAAW,CAACnmB,GAAA,CAAIiqC,MAAjB,IACF,CAACzB,YAAA,CAAa6B,IADZ,IAEFrqC,GAAA,CAAI4oC,IAAJ,KAAa,wBAFX,IAGFJ,YAAA,CAAah+B,GAAb,CAAiB,GAAjB,MAA0B,GAHxB,IAIF+P,MAAA,CAAO,IAAIgnB,eAAJ,CAAoB,MAApB,CAAP,MAAwC,KAJtC,IAKF,CAACiH,YAAA,CAAarZ,QAAb,CALC,IAOF,IAAIhR,GAAJ,CAAQ,aAAR,EAAuBqnB,QAAvB,KAAoC,GAPlC,IAQF,IAAIjE,eAAJ,CAAoB,IAAIA,eAAJ,CAAoB,KAApB,CAApB,EAAgD/2B,GAAhD,CAAoD,GAApD,MAA6D,GAR3D,IAUF,IAAI2T,GAAJ,CAAQ,aAAR,EAAuB2gB,IAAvB,KAAgC,YAV9B,IAYF,IAAI3gB,GAAJ,CAAQ,YAAR,EAAsBwrB,IAAtB,KAA+B,SAZ7B,IAcFliC,MAAA,KAAW,MAdT,IAgBF,IAAI0W,GAAJ,CAAQ,UAAR,EAAoBwD,SAApB,EAA+Bmd,IAA/B,KAAwC,GAhB7C,CATkC;AAAA,CAAlB,CAAlB,C;;;;;;;ACNa;AAEb,IAAIwL,MAAA,GAAS,UAAb,CAFA;AAGA,IAAIzwB,IAAA,GAAO,EAAX,CAHA;AAIA,IAAI0wB,IAAA,GAAO,CAAX,CAJA;AAKA,IAAIC,IAAA,GAAO,EAAX,CALA;AAMA,IAAIC,IAAA,GAAO,EAAX,CANA;AAOA,IAAIC,IAAA,GAAO,GAAX,CAPA;AAQA,IAAIC,WAAA,GAAc,EAAlB,CARA;AASA,IAAIC,QAAA,GAAW,GAAf,CATA;AAUA,IAAIC,SAAA,GAAY,GAAhB,CAVA;AAWA,IAAIC,aAAA,GAAgB,cAApB,CAXA;AAYA,IAAIC,eAAA,GAAkB,wBAAtB,CAZA;AAaA,IAAIC,cAAA,GAAiB,iDAArB,CAbA;AAcA,IAAIC,aAAA,GAAgBpxB,IAAA,GAAO0wB,IAA3B,CAdA;AAeA,IAAI/hB,KAAA,GAAQ3mB,IAAA,CAAK2mB,KAAjB,CAfA;AAgBA,IAAI0iB,kBAAA,GAAqB3wB,MAAA,CAAO4wB,YAAhC,CAhBA;AAyBA,IAAIC,UAAA,GAAa,UAAUniB,MAAV,EAAkB;AAAA,CACjC,IAAI6gB,MAAA,GAAS,EAAb,CADiC;AAAA,CAEjC,IAAIvM,OAAA,GAAU,CAAd,CAFiC;AAAA,CAGjC,IAAIljB,MAAA,GAAS4O,MAAA,CAAO5O,MAApB,CAHiC;AAAA,CAIjC,OAAOkjB,OAAA,GAAUljB,MAAjB,EAAyB;AAAA,EACvB,IAAI7U,KAAA,GAAQyjB,MAAA,CAAOyF,UAAP,CAAkB6O,OAAA,EAAlB,CAAZ,CADuB;AAAA,EAEvB,IAAI/3B,KAAA,IAAS,MAAT,IAAmBA,KAAA,IAAS,MAA5B,IAAsC+3B,OAAA,GAAUljB,MAApD,EAA4D;AAAA,GAE1D,IAAIgxB,KAAA,GAAQpiB,MAAA,CAAOyF,UAAP,CAAkB6O,OAAA,EAAlB,CAAZ,CAF0D;AAAA,GAG1D,IAAK,CAAA8N,KAAA,GAAQ,MAAR,CAAD,IAAoB,MAAxB,EAAgC;AAAA,IAC9BvB,MAAA,CAAO1jB,IAAP,CAAa,CAAC,CAAA5gB,KAAA,GAAQ,KAAR,CAAD,IAAmB,EAAnB,CAAD,GAA2B,CAAA6lC,KAAA,GAAQ,KAAR,CAA3B,GAA4C,OAAxD,EAD8B;AAAA,IAAhC,MAEO;AAAA,IAGLvB,MAAA,CAAO1jB,IAAP,CAAY5gB,KAAZ,EAHK;AAAA,IAIL+3B,OAAA,GAJK;AAAA,IALmD;AAAA,GAA5D,MAWO;AAAA,GACLuM,MAAA,CAAO1jB,IAAP,CAAY5gB,KAAZ,EADK;AAAA,GAbgB;AAAA,EAJQ;AAAA,CAqBjC,OAAOskC,MAAP,CArBiC;AAAA,CAAnC,CAzBA;AAoDA,IAAIwB,YAAA,GAAe,UAAUC,KAAV,EAAiB;AAAA,CAGlC,OAAOA,KAAA,GAAQ,EAAR,GAAa,KAAM,CAAAA,KAAA,GAAQ,EAAR,CAA1B,CAHkC;AAAA,CAApC,CApDA;AA8DA,IAAIC,KAAA,GAAQ,UAAUC,KAAV,EAAiBC,SAAjB,EAA4BC,SAA5B,EAAuC;AAAA,CACjD,IAAIhY,CAAA,GAAI,CAAR,CADiD;AAAA,CAEjD8X,KAAA,GAAQE,SAAA,GAAYnjB,KAAA,CAAMijB,KAAA,GAAQf,IAAd,CAAZ,GAAkCe,KAAA,IAAS,CAAnD,CAFiD;AAAA,CAGjDA,KAAA,IAASjjB,KAAA,CAAMijB,KAAA,GAAQC,SAAd,CAAT,CAHiD;AAAA,CAIjD,OAAOD,KAAA,GAAQR,aAAA,GAAgBT,IAAhB,IAAwB,CAAvC,EAA0C7W,CAAA,IAAK9Z,IAA/C,EAAqD;AAAA,EACnD4xB,KAAA,GAAQjjB,KAAA,CAAMijB,KAAA,GAAQR,aAAd,CAAR,CADmD;AAAA,EAJJ;AAAA,CAOjD,OAAOziB,KAAA,CAAMmL,CAAA,GAAK,CAAAsX,aAAA,GAAgB,CAAhB,CAAD,GAAsBQ,KAAtB,GAA+B,CAAAA,KAAA,GAAQhB,IAAR,CAAzC,CAAP,CAPiD;AAAA,CAAnD,CA9DA;AA6EA,IAAImB,MAAA,GAAS,UAAUhoB,KAAV,EAAiB;AAAA,CAC5B,IAAIkmB,MAAA,GAAS,EAAb,CAD4B;AAAA,CAI5BlmB,KAAA,GAAQwnB,UAAA,CAAWxnB,KAAX,CAAR,CAJ4B;AAAA,CAO5B,IAAIioB,WAAA,GAAcjoB,KAAA,CAAMvJ,MAAxB,CAP4B;AAAA,CAU5B,IAAIyxB,CAAA,GAAIlB,QAAR,CAV4B;AAAA,CAW5B,IAAIa,KAAA,GAAQ,CAAZ,CAX4B;AAAA,CAY5B,IAAIM,IAAA,GAAOpB,WAAX,CAZ4B;AAAA,CAa5B,IAAIxhC,CAAJ,EAAO6iC,YAAP,CAb4B;AAAA,CAgB5B,KAAK7iC,CAAA,GAAI,CAAT,EAAYA,CAAA,GAAIya,KAAA,CAAMvJ,MAAtB,EAA8BlR,CAAA,EAA9B,EAAmC;AAAA,EACjC6iC,YAAA,GAAepoB,KAAA,CAAMza,CAAN,CAAf,CADiC;AAAA,EAEjC,IAAI6iC,YAAA,GAAe,IAAnB,EAAyB;AAAA,GACvBlC,MAAA,CAAO1jB,IAAP,CAAY8kB,kBAAA,CAAmBc,YAAnB,CAAZ,EADuB;AAAA,GAFQ;AAAA,EAhBP;AAAA,CAuB5B,IAAIC,WAAA,GAAcnC,MAAA,CAAOzvB,MAAzB,CAvB4B;AAAA,CAwB5B,IAAI6xB,cAAA,GAAiBD,WAArB,CAxB4B;AAAA,CA2B5B,IAAIA,WAAJ,EAAiB;AAAA,EACfnC,MAAA,CAAO1jB,IAAP,CAAYykB,SAAZ,EADe;AAAA,EA3BW;AAAA,CAgC5B,OAAOqB,cAAA,GAAiBL,WAAxB,EAAqC;AAAA,EAEnC,IAAI/vB,CAAA,GAAIwuB,MAAR,CAFmC;AAAA,EAGnC,KAAKnhC,CAAA,GAAI,CAAT,EAAYA,CAAA,GAAIya,KAAA,CAAMvJ,MAAtB,EAA8BlR,CAAA,EAA9B,EAAmC;AAAA,GACjC6iC,YAAA,GAAepoB,KAAA,CAAMza,CAAN,CAAf,CADiC;AAAA,GAEjC,IAAI6iC,YAAA,IAAgBF,CAAhB,IAAqBE,YAAA,GAAelwB,CAAxC,EAA2C;AAAA,IACzCA,CAAA,GAAIkwB,YAAJ,CADyC;AAAA,IAFV;AAAA,GAHA;AAAA,EAWnC,IAAIG,qBAAA,GAAwBD,cAAA,GAAiB,CAA7C,CAXmC;AAAA,EAYnC,IAAIpwB,CAAA,GAAIgwB,CAAJ,GAAQtjB,KAAA,CAAO,CAAA8hB,MAAA,GAASmB,KAAT,CAAD,GAAmBU,qBAAzB,CAAZ,EAA6D;AAAA,GAC3D,MAAMC,UAAA,CAAWpB,cAAX,CAAN,CAD2D;AAAA,GAZ1B;AAAA,EAgBnCS,KAAA,IAAU,CAAA3vB,CAAA,GAAIgwB,CAAJ,CAAD,GAAUK,qBAAnB,CAhBmC;AAAA,EAiBnCL,CAAA,GAAIhwB,CAAJ,CAjBmC;AAAA,EAmBnC,KAAK3S,CAAA,GAAI,CAAT,EAAYA,CAAA,GAAIya,KAAA,CAAMvJ,MAAtB,EAA8BlR,CAAA,EAA9B,EAAmC;AAAA,GACjC6iC,YAAA,GAAepoB,KAAA,CAAMza,CAAN,CAAf,CADiC;AAAA,GAEjC,IAAI6iC,YAAA,GAAeF,CAAf,IAAoB,EAAEL,KAAF,GAAUnB,MAAlC,EAA0C;AAAA,IACxC,MAAM8B,UAAA,CAAWpB,cAAX,CAAN,CADwC;AAAA,IAFT;AAAA,GAKjC,IAAIgB,YAAA,IAAgBF,CAApB,EAAuB;AAAA,IAErB,IAAIO,CAAA,GAAIZ,KAAR,CAFqB;AAAA,IAGrB,KAAK,IAAI9X,CAAA,GAAI9Z,IAAR,CAAL,EAAuC8Z,CAAA,IAAK9Z,IAA5C,EAAkD;AAAA,KAChD,IAAIyyB,CAAA,GAAI3Y,CAAA,IAAKoY,IAAL,GAAYxB,IAAZ,GAAoB5W,CAAA,IAAKoY,IAAA,GAAOvB,IAAZ,GAAmBA,IAAnB,GAA0B7W,CAAA,GAAIoY,IAA1D,CADgD;AAAA,KAEhD,IAAIM,CAAA,GAAIC,CAAR;AAAA,MAAW,MAFqC;AAAA,KAGhD,IAAIC,OAAA,GAAUF,CAAA,GAAIC,CAAlB,CAHgD;AAAA,KAIhD,IAAIE,UAAA,GAAa3yB,IAAA,GAAOyyB,CAAxB,CAJgD;AAAA,KAKhDxC,MAAA,CAAO1jB,IAAP,CAAY8kB,kBAAA,CAAmBI,YAAA,CAAagB,CAAA,GAAIC,OAAA,GAAUC,UAA3B,CAAnB,CAAZ,EALgD;AAAA,KAMhDH,CAAA,GAAI7jB,KAAA,CAAM+jB,OAAA,GAAUC,UAAhB,CAAJ,CANgD;AAAA,KAH7B;AAAA,IAYrB1C,MAAA,CAAO1jB,IAAP,CAAY8kB,kBAAA,CAAmBI,YAAA,CAAae,CAAb,CAAnB,CAAZ,EAZqB;AAAA,IAarBN,IAAA,GAAOP,KAAA,CAAMC,KAAN,EAAaU,qBAAb,EAAoCD,cAAA,IAAkBD,WAAtD,CAAP,CAbqB;AAAA,IAcrBR,KAAA,GAAQ,CAAR,CAdqB;AAAA,IAerB,EAAES,cAAF,CAfqB;AAAA,IALU;AAAA,GAnBA;AAAA,EA2CnC,EAAET,KAAF,CA3CmC;AAAA,EA4CnC,EAAEK,CAAF,CA5CmC;AAAA,EAhCT;AAAA,CA8E5B,OAAOhC,MAAA,CAAO/kB,IAAP,CAAY,EAAZ,CAAP,CA9E4B;AAAA,CAA9B,CA7EA;AA8JA/f,MAAA,CAAOmB,OAAP,GAAiB,UAAUyd,KAAV,EAAiB;AAAA,CAChC,IAAI6oB,OAAA,GAAU,EAAd,CADgC;AAAA,CAEhC,IAAIC,MAAA,GAAS9oB,KAAA,CAAMuF,WAAN,GAAoBD,OAApB,CAA4B6hB,eAA5B,EAA6C,QAA7C,EAAuDxnB,KAAvD,CAA6D,GAA7D,CAAb,CAFgC;AAAA,CAGhC,IAAIpa,CAAJ,EAAOwjC,KAAP,CAHgC;AAAA,CAIhC,KAAKxjC,CAAA,GAAI,CAAT,EAAYA,CAAA,GAAIujC,MAAA,CAAOryB,MAAvB,EAA+BlR,CAAA,EAA/B,EAAoC;AAAA,EAClCwjC,KAAA,GAAQD,MAAA,CAAOvjC,CAAP,CAAR,CADkC;AAAA,EAElCsjC,OAAA,CAAQrmB,IAAR,CAAa0kB,aAAA,CAAc9kB,IAAd,CAAmB2mB,KAAnB,IAA4B,SAASf,MAAA,CAAOe,KAAP,CAArC,GAAqDA,KAAlE,EAFkC;AAAA,EAJJ;AAAA,CAQhC,OAAOF,OAAA,CAAQ1nB,IAAR,CAAa,GAAb,CAAP,CARgC;AAAA,CAAlC,C;;;;;;;AC9Ja;AAEbtmB,mBAAA,CAAQ,GAAR,EAFA;AAGA,IAAI2hB,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CAHA;AAIA,IAAIooB,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB,CAJA;AAKA,IAAIyiC,cAAA,GAAiBziC,mBAAA,CAAQ,GAAR,CAArB,CALA;AAMA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAOA,IAAI26B,WAAA,GAAc36B,mBAAA,CAAQ,GAAR,CAAlB,CAPA;AAQA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CARA;AASA,IAAImwB,yBAAA,GAA4BnwB,mBAAA,CAAQ,EAAR,CAAhC,CATA;AAUA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAVA;AAWA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CAXA;AAYA,IAAI0G,MAAA,GAAS1G,mBAAA,CAAQ,EAAR,CAAb,CAZA;AAaA,IAAIksB,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CAbA;AAcA,IAAI6kB,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd,CAdA;AAeA,IAAI2lB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAfA;AAgBA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAhBA;AAiBA,IAAIW,MAAA,GAASX,mBAAA,CAAQ,EAAR,CAAb,CAjBA;AAkBA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAlBA;AAmBA,IAAImuC,WAAA,GAAcnuC,mBAAA,CAAQ,GAAR,CAAlB,CAnBA;AAoBA,IAAI+yB,iBAAA,GAAoB/yB,mBAAA,CAAQ,EAAR,CAAxB,CApBA;AAqBA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CArBA;AAuBA,IAAIw7B,MAAA,GAASpT,UAAA,CAAW,OAAX,CAAb,CAvBA;AAwBA,IAAIgmB,OAAA,GAAUhmB,UAAA,CAAW,SAAX,CAAd,CAxBA;AAyBA,IAAIsI,QAAA,GAAWnF,eAAA,CAAgB,UAAhB,CAAf,CAzBA;AA0BA,IAAI8iB,iBAAA,GAAoB,iBAAxB,CA1BA;AA2BA,IAAIC,0BAAA,GAA6BD,iBAAA,GAAoB,UAArD,CA3BA;AA4BA,IAAI3e,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CA5BA;AA6BA,IAAIwnB,sBAAA,GAAyBxoB,mBAAA,CAAoBiB,SAApB,CAA8BqnB,iBAA9B,CAA7B,CA7BA;AA8BA,IAAIG,wBAAA,GAA2BzoB,mBAAA,CAAoBiB,SAApB,CAA8BsnB,0BAA9B,CAA/B,CA9BA;AAgCA,IAAIG,IAAA,GAAO,KAAX,CAhCA;AAiCA,IAAIC,SAAA,GAAYrtB,KAAA,CAAM,CAAN,CAAhB,CAjCA;AAmCA,IAAIstB,eAAA,GAAkB,UAAUhzB,KAAV,EAAiB;AAAA,CACrC,OAAO+yB,SAAA,CAAU/yB,KAAA,GAAQ,CAAlB,KAAyB,CAAA+yB,SAAA,CAAU/yB,KAAA,GAAQ,CAAlB,IAAuBizB,MAAA,CAAO,uBAAuBjzB,KAAvB,GAA+B,IAAtC,EAA4C,IAA5C,CAAvB,CAAhC,CADqC;AAAA,CAAvC,CAnCA;AAuCA,IAAIkzB,aAAA,GAAgB,UAAUC,QAAV,EAAoB;AAAA,CACtC,IAAI;AAAA,EACF,OAAOlwB,kBAAA,CAAmBkwB,QAAnB,CAAP,CADE;AAAA,EAAJ,CAEE,OAAO7qB,KAAP,EAAc;AAAA,EACd,OAAO6qB,QAAP,CADc;AAAA,EAHsB;AAAA,CAAxC,CAvCA;AA+CA,IAAIC,WAAA,GAAc,UAAU1rB,EAAV,EAAc;AAAA,CAC9B,IAAIra,MAAA,GAASqa,EAAA,CAAGoH,OAAH,CAAWgkB,IAAX,EAAiB,GAAjB,CAAb,CAD8B;AAAA,CAE9B,IAAI9yB,KAAA,GAAQ,CAAZ,CAF8B;AAAA,CAG9B,IAAI;AAAA,EACF,OAAOiD,kBAAA,CAAmB5V,MAAnB,CAAP,CADE;AAAA,EAAJ,CAEE,OAAOib,KAAP,EAAc;AAAA,EACd,OAAOtI,KAAP,EAAc;AAAA,GACZ3S,MAAA,GAASA,MAAA,CAAOyhB,OAAP,CAAekkB,eAAA,CAAgBhzB,KAAA,EAAhB,CAAf,EAAyCkzB,aAAzC,CAAT,CADY;AAAA,GADA;AAAA,EAId,OAAO7lC,MAAP,CAJc;AAAA,EALc;AAAA,CAAhC,CA/CA;AA4DA,IAAIgmC,IAAA,GAAO,cAAX,CA5DA;AA8DA,IAAIvkB,OAAA,GAAU;AAAA,CACZ,KAAK,KADO;AAAA,CAEZ,KAAK,KAFO;AAAA,CAGZ,KAAK,KAHO;AAAA,CAIZ,KAAK,KAJO;AAAA,CAKZ,KAAK,KALO;AAAA,CAMZ,OAAO,GANK;AAAA,CAAd,CA9DA;AAuEA,IAAIwkB,QAAA,GAAW,UAAU/M,KAAV,EAAiB;AAAA,CAC9B,OAAOzX,OAAA,CAAQyX,KAAR,CAAP,CAD8B;AAAA,CAAhC,CAvEA;AA2EA,IAAIgN,SAAA,GAAY,UAAU7rB,EAAV,EAAc;AAAA,CAC5B,OAAOtE,kBAAA,CAAmBsE,EAAnB,EAAuBoH,OAAvB,CAA+BukB,IAA/B,EAAqCC,QAArC,CAAP,CAD4B;AAAA,CAA9B,CA3EA;AA+EA,IAAIE,iBAAA,GAAoB,UAAUnmC,MAAV,EAAkBtE,KAAlB,EAAyB;AAAA,CAC/C,IAAIA,KAAJ,EAAW;AAAA,EACT,IAAI0qC,UAAA,GAAa1qC,KAAA,CAAMogB,KAAN,CAAY,GAAZ,CAAjB,CADS;AAAA,EAET,IAAI2E,KAAA,GAAQ,CAAZ,CAFS;AAAA,EAGT,IAAI4lB,SAAJ,EAAeplC,KAAf,CAHS;AAAA,EAIT,OAAOwf,KAAA,GAAQ2lB,UAAA,CAAWxzB,MAA1B,EAAkC;AAAA,GAChCyzB,SAAA,GAAYD,UAAA,CAAW3lB,KAAA,EAAX,CAAZ,CADgC;AAAA,GAEhC,IAAI4lB,SAAA,CAAUzzB,MAAd,EAAsB;AAAA,IACpB3R,KAAA,GAAQolC,SAAA,CAAUvqB,KAAV,CAAgB,GAAhB,CAAR,CADoB;AAAA,IAEpB9b,MAAA,CAAO2e,IAAP,CAAY;AAAA,KACVtd,GAAA,EAAK0kC,WAAA,CAAY9kC,KAAA,CAAM0/B,KAAN,EAAZ,CADK;AAAA,KAEV5iC,KAAA,EAAOgoC,WAAA,CAAY9kC,KAAA,CAAMqc,IAAN,CAAW,GAAX,CAAZ,CAFG;AAAA,KAAZ,EAFoB;AAAA,IAFU;AAAA,GAJzB;AAAA,EADoC;AAAA,CAAjD,CA/EA;AAiGA,IAAI2jB,kBAAA,GAAqB,UAAUvlC,KAAV,EAAiB;AAAA,CACxC,KAAK8sB,OAAL,CAAa5V,MAAb,GAAsB,CAAtB,CADwC;AAAA,CAExCuzB,iBAAA,CAAkB,KAAK3d,OAAvB,EAAgC9sB,KAAhC,EAFwC;AAAA,CAA1C,CAjGA;AAsGA,IAAI4qC,uBAAA,GAA0B,UAAUC,MAAV,EAAkBC,QAAlB,EAA4B;AAAA,CACxD,IAAID,MAAA,GAASC,QAAb;AAAA,EAAuB,MAAMvqB,SAAA,CAAU,sBAAV,CAAN,CADiC;AAAA,CAA1D,CAtGA;AA0GA,IAAIwqB,uBAAA,GAA0Btf,yBAAA,CAA0B,SAASuf,QAAT,CAAkBvvC,MAAlB,EAA0B40B,IAA1B,EAAgC;AAAA,CACtFrF,gBAAA,CAAiB,IAAjB,EAAuB;AAAA,EACrB/nB,IAAA,EAAM2mC,0BADe;AAAA,EAErB5iC,QAAA,EAAUyiC,WAAA,CAAYI,sBAAA,CAAuBpuC,MAAvB,EAA+BqxB,OAA3C,CAFW;AAAA,EAGrBuD,IAAA,EAAMA,IAHe;AAAA,EAAvB,EADsF;AAAA,CAA1D,EAM3B,UAN2B,EAMf,SAASzqB,IAAT,GAAgB;AAAA,CAC7B,IAAIb,KAAA,GAAQ+kC,wBAAA,CAAyB,IAAzB,CAAZ,CAD6B;AAAA,CAE7B,IAAIzZ,IAAA,GAAOtrB,KAAA,CAAMsrB,IAAjB,CAF6B;AAAA,CAG7B,IAAI1B,IAAA,GAAO5pB,KAAA,CAAMiC,QAAN,CAAepB,IAAf,EAAX,CAH6B;AAAA,CAI7B,IAAIL,KAAA,GAAQopB,IAAA,CAAKtsB,KAAjB,CAJ6B;AAAA,CAK7B,IAAI,CAACssB,IAAA,CAAKtpB,IAAV,EAAgB;AAAA,EACdspB,IAAA,CAAKtsB,KAAL,GAAaguB,IAAA,KAAS,MAAT,GAAkB9qB,KAAA,CAAMI,GAAxB,GAA8B0qB,IAAA,KAAS,QAAT,GAAoB9qB,KAAA,CAAMlD,KAA1B,GAAkC;AAAA,GAACkD,KAAA,CAAMI,GAAP;AAAA,GAAYJ,KAAA,CAAMlD,KAAlB;AAAA,GAA7E,CADc;AAAA,EALa;AAAA,CAO3B,OAAOssB,IAAP,CAP2B;AAAA,CAND,CAA9B,CA1GA;AA4HA,IAAIsc,0BAAA,GAA6B,SAAS7M,eAAT,GAAqC;AAAA,CACpEjI,UAAA,CAAW,IAAX,EAAiB8U,0BAAjB,EAA6CtB,iBAA7C,EADoE;AAAA,CAEpE,IAAIuB,IAAA,GAAO5uB,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAAjD,CAFoE;AAAA,CAGpE,IAAIkI,IAAA,GAAO,IAAX,CAHoE;AAAA,CAIpE,IAAIoG,OAAA,GAAU,EAAd,CAJoE;AAAA,CAKpE,IAAIjnB,cAAJ,EAAoBmB,QAApB,EAA8BpB,IAA9B,EAAoC+oB,IAApC,EAA0Cwc,aAA1C,EAAyDC,SAAzD,EAAoE3xB,KAApE,EAA2EhY,MAA3E,EAAmFkE,GAAnF,CALoE;AAAA,CAOpEqlB,gBAAA,CAAiBtE,IAAjB,EAAuB;AAAA,EACrBzjB,IAAA,EAAM0mC,iBADe;AAAA,EAErB7c,OAAA,EAASA,OAFY;AAAA,EAGrB0Y,SAAA,EAAW,YAAY;AAAA,GAHF;AAAA,EAIrBD,kBAAA,EAAoBA,kBAJC;AAAA,EAAvB,EAPoE;AAAA,CAcpE,IAAI2F,IAAA,KAAS1sB,SAAb,EAAwB;AAAA,EACtB,IAAIgC,QAAA,CAAS0qB,IAAT,CAAJ,EAAoB;AAAA,GAClBrlC,cAAA,GAAiBwoB,iBAAA,CAAkB6c,IAAlB,CAAjB,CADkB;AAAA,GAElB,IAAI,OAAOrlC,cAAP,KAA0B,UAA9B,EAA0C;AAAA,IACxCmB,QAAA,GAAWnB,cAAA,CAAe2Z,IAAf,CAAoB0rB,IAApB,CAAX,CADwC;AAAA,IAExCtlC,IAAA,GAAOoB,QAAA,CAASpB,IAAhB,CAFwC;AAAA,IAGxC,OAAO,CAAE,CAAA+oB,IAAA,GAAO/oB,IAAA,CAAK4Z,IAAL,CAAUxY,QAAV,CAAP,CAAD,CAA6B3B,IAArC,EAA2C;AAAA,KACzC8lC,aAAA,GAAgB1B,WAAA,CAAYxoB,QAAA,CAAS0N,IAAA,CAAKtsB,KAAd,CAAZ,CAAhB,CADyC;AAAA,KAEzC+oC,SAAA,GAAYD,aAAA,CAAcvlC,IAA1B,CAFyC;AAAA,KAGzC,IACG,CAAA6T,KAAA,GAAQ2xB,SAAA,CAAU5rB,IAAV,CAAe2rB,aAAf,CAAR,CAAD,CAAwC9lC,IAAxC,IACC,CAAA5D,MAAA,GAAS2pC,SAAA,CAAU5rB,IAAV,CAAe2rB,aAAf,CAAT,CAAD,CAAyC9lC,IADzC,IAEA,CAAC+lC,SAAA,CAAU5rB,IAAV,CAAe2rB,aAAf,EAA8B9lC,IAHjC;AAAA,MAIE,MAAMkb,SAAA,CAAU,iCAAV,CAAN,CAPuC;AAAA,KAQzCuM,OAAA,CAAQ7J,IAAR,CAAa;AAAA,MAAEtd,GAAA,EAAK8T,KAAA,CAAMpX,KAAN,GAAc,EAArB;AAAA,MAAyBA,KAAA,EAAOZ,MAAA,CAAOY,KAAP,GAAe,EAA/C;AAAA,MAAb,EARyC;AAAA,KAHH;AAAA,IAA1C;AAAA,IAaO,KAAKsD,GAAL,IAAYulC,IAAZ;AAAA,KAAkB,IAAIlpC,MAAA,CAAOkpC,IAAP,EAAavlC,GAAb,CAAJ;AAAA,MAAuBmnB,OAAA,CAAQ7J,IAAR,CAAa;AAAA,OAAEtd,GAAA,EAAKA,GAAP;AAAA,OAAYtD,KAAA,EAAO6oC,IAAA,CAAKvlC,GAAL,IAAY,EAA/B;AAAA,OAAb,EAf9B;AAAA,GAApB,MAgBO;AAAA,GACL8kC,iBAAA,CAAkB3d,OAAlB,EAA2B,OAAOoe,IAAP,KAAgB,QAAhB,GAA2BA,IAAA,CAAKrgB,MAAL,CAAY,CAAZ,MAAmB,GAAnB,GAAyBqgB,IAAA,CAAK5qB,KAAL,CAAW,CAAX,CAAzB,GAAyC4qB,IAApE,GAA2EA,IAAA,GAAO,EAA7G,EADK;AAAA,GAjBe;AAAA,EAd4C;AAAA,CAAtE,CA5HA;AAiKA,IAAIG,wBAAA,GAA2BJ,0BAAA,CAA2B5sB,SAA1D,CAjKA;AAmKA4X,WAAA,CAAYoV,wBAAZ,EAAsC;AAAA,CAGpCC,MAAA,EAAQ,SAASA,MAAT,CAAgBlrC,IAAhB,EAAsBiC,KAAtB,EAA6B;AAAA,EACnCuoC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EADmC;AAAA,EAEnC,IAAInS,KAAA,GAAQ8kC,sBAAA,CAAuB,IAAvB,CAAZ,CAFmC;AAAA,EAGnC9kC,KAAA,CAAM+nB,OAAN,CAAc7J,IAAd,CAAmB;AAAA,GAAEtd,GAAA,EAAKvF,IAAA,GAAO,EAAd;AAAA,GAAkBiC,KAAA,EAAOA,KAAA,GAAQ,EAAjC;AAAA,GAAnB,EAHmC;AAAA,EAInC0C,KAAA,CAAMygC,SAAN,GAJmC;AAAA,EAHD;AAAA,CAWpC,UAAU,UAAUplC,IAAV,EAAgB;AAAA,EACxBwqC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EADwB;AAAA,EAExB,IAAInS,KAAA,GAAQ8kC,sBAAA,CAAuB,IAAvB,CAAZ,CAFwB;AAAA,EAGxB,IAAI/c,OAAA,GAAU/nB,KAAA,CAAM+nB,OAApB,CAHwB;AAAA,EAIxB,IAAInnB,GAAA,GAAMvF,IAAA,GAAO,EAAjB,CAJwB;AAAA,EAKxB,IAAI2kB,KAAA,GAAQ,CAAZ,CALwB;AAAA,EAMxB,OAAOA,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B;AAAA,GAC7B,IAAI4V,OAAA,CAAQ/H,KAAR,EAAepf,GAAf,KAAuBA,GAA3B;AAAA,IAAgCmnB,OAAA,CAAQye,MAAR,CAAexmB,KAAf,EAAsB,CAAtB,EAAhC;AAAA;AAAA,IACKA,KAAA,GAFwB;AAAA,GANP;AAAA,EAUxBhgB,KAAA,CAAMygC,SAAN,GAVwB;AAAA,EAXU;AAAA,CAyBpCn+B,GAAA,EAAK,SAASA,GAAT,CAAajH,IAAb,EAAmB;AAAA,EACtBwqC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EADsB;AAAA,EAEtB,IAAI4V,OAAA,GAAU+c,sBAAA,CAAuB,IAAvB,EAA6B/c,OAA3C,CAFsB;AAAA,EAGtB,IAAInnB,GAAA,GAAMvF,IAAA,GAAO,EAAjB,CAHsB;AAAA,EAItB,IAAI2kB,KAAA,GAAQ,CAAZ,CAJsB;AAAA,EAKtB,OAAOA,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B6N,KAAA,EAA/B,EAAwC;AAAA,GACtC,IAAI+H,OAAA,CAAQ/H,KAAR,EAAepf,GAAf,KAAuBA,GAA3B;AAAA,IAAgC,OAAOmnB,OAAA,CAAQ/H,KAAR,EAAe1iB,KAAtB,CADM;AAAA,GALlB;AAAA,EAQtB,OAAO,IAAP,CARsB;AAAA,EAzBY;AAAA,CAqCpCmpC,MAAA,EAAQ,SAASA,MAAT,CAAgBprC,IAAhB,EAAsB;AAAA,EAC5BwqC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EAD4B;AAAA,EAE5B,IAAI4V,OAAA,GAAU+c,sBAAA,CAAuB,IAAvB,EAA6B/c,OAA3C,CAF4B;AAAA,EAG5B,IAAInnB,GAAA,GAAMvF,IAAA,GAAO,EAAjB,CAH4B;AAAA,EAI5B,IAAIkE,MAAA,GAAS,EAAb,CAJ4B;AAAA,EAK5B,IAAIygB,KAAA,GAAQ,CAAZ,CAL4B;AAAA,EAM5B,OAAOA,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B6N,KAAA,EAA/B,EAAwC;AAAA,GACtC,IAAI+H,OAAA,CAAQ/H,KAAR,EAAepf,GAAf,KAAuBA,GAA3B;AAAA,IAAgCrB,MAAA,CAAO2e,IAAP,CAAY6J,OAAA,CAAQ/H,KAAR,EAAe1iB,KAA3B,EADM;AAAA,GANZ;AAAA,EAS5B,OAAOiC,MAAP,CAT4B;AAAA,EArCM;AAAA,CAkDpC4a,GAAA,EAAK,SAASA,GAAT,CAAa9e,IAAb,EAAmB;AAAA,EACtBwqC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EADsB;AAAA,EAEtB,IAAI4V,OAAA,GAAU+c,sBAAA,CAAuB,IAAvB,EAA6B/c,OAA3C,CAFsB;AAAA,EAGtB,IAAInnB,GAAA,GAAMvF,IAAA,GAAO,EAAjB,CAHsB;AAAA,EAItB,IAAI2kB,KAAA,GAAQ,CAAZ,CAJsB;AAAA,EAKtB,OAAOA,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B;AAAA,GAC7B,IAAI4V,OAAA,CAAQ/H,KAAA,EAAR,EAAiBpf,GAAjB,KAAyBA,GAA7B;AAAA,IAAkC,OAAO,IAAP,CADL;AAAA,GALT;AAAA,EAQtB,OAAO,KAAP,CARsB;AAAA,EAlDY;AAAA,CA8DpC0c,GAAA,EAAK,SAASA,GAAT,CAAajiB,IAAb,EAAmBiC,KAAnB,EAA0B;AAAA,EAC7BuoC,uBAAA,CAAwBtuB,SAAA,CAAUpF,MAAlC,EAA0C,CAA1C,EAD6B;AAAA,EAE7B,IAAInS,KAAA,GAAQ8kC,sBAAA,CAAuB,IAAvB,CAAZ,CAF6B;AAAA,EAG7B,IAAI/c,OAAA,GAAU/nB,KAAA,CAAM+nB,OAApB,CAH6B;AAAA,EAI7B,IAAI2e,KAAA,GAAQ,KAAZ,CAJ6B;AAAA,EAK7B,IAAI9lC,GAAA,GAAMvF,IAAA,GAAO,EAAjB,CAL6B;AAAA,EAM7B,IAAIugB,GAAA,GAAMte,KAAA,GAAQ,EAAlB,CAN6B;AAAA,EAO7B,IAAI0iB,KAAA,GAAQ,CAAZ,CAP6B;AAAA,EAQ7B,IAAIxf,KAAJ,CAR6B;AAAA,EAS7B,OAAOwf,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B6N,KAAA,EAA/B,EAAwC;AAAA,GACtCxf,KAAA,GAAQunB,OAAA,CAAQ/H,KAAR,CAAR,CADsC;AAAA,GAEtC,IAAIxf,KAAA,CAAMI,GAAN,KAAcA,GAAlB,EAAuB;AAAA,IACrB,IAAI8lC,KAAJ;AAAA,KAAW3e,OAAA,CAAQye,MAAR,CAAexmB,KAAA,EAAf,EAAwB,CAAxB,EAAX;AAAA,SACK;AAAA,KACH0mB,KAAA,GAAQ,IAAR,CADG;AAAA,KAEHlmC,KAAA,CAAMlD,KAAN,GAAcse,GAAd,CAFG;AAAA,KAFgB;AAAA,IAFe;AAAA,GATX;AAAA,EAmB7B,IAAI,CAAC8qB,KAAL;AAAA,GAAY3e,OAAA,CAAQ7J,IAAR,CAAa;AAAA,IAAEtd,GAAA,EAAKA,GAAP;AAAA,IAAYtD,KAAA,EAAOse,GAAnB;AAAA,IAAb,EAnBiB;AAAA,EAoB7B5b,KAAA,CAAMygC,SAAN,GApB6B;AAAA,EA9DK;AAAA,CAsFpC0B,IAAA,EAAM,SAASA,IAAT,GAAgB;AAAA,EACpB,IAAIniC,KAAA,GAAQ8kC,sBAAA,CAAuB,IAAvB,CAAZ,CADoB;AAAA,EAEpB,IAAI/c,OAAA,GAAU/nB,KAAA,CAAM+nB,OAApB,CAFoB;AAAA,EAIpB,IAAIxM,KAAA,GAAQwM,OAAA,CAAQxM,KAAR,EAAZ,CAJoB;AAAA,EAKpB,IAAI/a,KAAJ,EAAWmmC,YAAX,EAAyBC,UAAzB,CALoB;AAAA,EAMpB7e,OAAA,CAAQ5V,MAAR,GAAiB,CAAjB,CANoB;AAAA,EAOpB,KAAKy0B,UAAA,GAAa,CAAlB,EAAqBA,UAAA,GAAarrB,KAAA,CAAMpJ,MAAxC,EAAgDy0B,UAAA,EAAhD,EAA8D;AAAA,GAC5DpmC,KAAA,GAAQ+a,KAAA,CAAMqrB,UAAN,CAAR,CAD4D;AAAA,GAE5D,KAAKD,YAAA,GAAe,CAApB,EAAuBA,YAAA,GAAeC,UAAtC,EAAkDD,YAAA,EAAlD,EAAkE;AAAA,IAChE,IAAI5e,OAAA,CAAQ4e,YAAR,EAAsB/lC,GAAtB,GAA4BJ,KAAA,CAAMI,GAAtC,EAA2C;AAAA,KACzCmnB,OAAA,CAAQye,MAAR,CAAeG,YAAf,EAA6B,CAA7B,EAAgCnmC,KAAhC,EADyC;AAAA,KAEzC,MAFyC;AAAA,KADqB;AAAA,IAFN;AAAA,GAQ5D,IAAImmC,YAAA,KAAiBC,UAArB;AAAA,IAAiC7e,OAAA,CAAQ7J,IAAR,CAAa1d,KAAb,EAR2B;AAAA,GAP1C;AAAA,EAiBpBR,KAAA,CAAMygC,SAAN,GAjBoB;AAAA,EAtFc;AAAA,CA0GpCzV,OAAA,EAAS,SAASA,OAAT,CAAiB6b,QAAjB,EAA2C;AAAA,EAClD,IAAI9e,OAAA,GAAU+c,sBAAA,CAAuB,IAAvB,EAA6B/c,OAA3C,CADkD;AAAA,EAElD,IAAI+D,aAAA,GAAgBrJ,IAAA,CAAKokB,QAAL,EAAetvB,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAArD,EAAgE,CAAhE,CAApB,CAFkD;AAAA,EAGlD,IAAIuG,KAAA,GAAQ,CAAZ,CAHkD;AAAA,EAIlD,IAAIxf,KAAJ,CAJkD;AAAA,EAKlD,OAAOwf,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B;AAAA,GAC7B3R,KAAA,GAAQunB,OAAA,CAAQ/H,KAAA,EAAR,CAAR,CAD6B;AAAA,GAE7B8L,aAAA,CAActrB,KAAA,CAAMlD,KAApB,EAA2BkD,KAAA,CAAMI,GAAjC,EAAsC,IAAtC,EAF6B;AAAA,GALmB;AAAA,EA1GhB;AAAA,CAqHpCD,IAAA,EAAM,SAASA,IAAT,GAAgB;AAAA,EACpB,OAAO,IAAIqlC,uBAAJ,CAA4B,IAA5B,EAAkC,MAAlC,CAAP,CADoB;AAAA,EArHc;AAAA,CAyHpCnnC,MAAA,EAAQ,SAASA,MAAT,GAAkB;AAAA,EACxB,OAAO,IAAImnC,uBAAJ,CAA4B,IAA5B,EAAkC,QAAlC,CAAP,CADwB;AAAA,EAzHU;AAAA,CA6HpCje,OAAA,EAAS,SAASA,OAAT,GAAmB;AAAA,EAC1B,OAAO,IAAIie,uBAAJ,CAA4B,IAA5B,EAAkC,SAAlC,CAAP,CAD0B;AAAA,EA7HQ;AAAA,CAAtC,EAgIG,EAAEzoC,UAAA,EAAY,IAAd,EAhIH,EAnKA;AAsSAgb,QAAA,CAAS+tB,wBAAT,EAAmCrf,QAAnC,EAA6Cqf,wBAAA,CAAyBve,OAAtE,EAtSA;AA0SAxP,QAAA,CAAS+tB,wBAAT,EAAmC,UAAnC,EAA+C,SAAShrB,QAAT,GAAoB;AAAA,CACjE,IAAIyM,OAAA,GAAU+c,sBAAA,CAAuB,IAAvB,EAA6B/c,OAA3C,CADiE;AAAA,CAEjE,IAAIxoB,MAAA,GAAS,EAAb,CAFiE;AAAA,CAGjE,IAAIygB,KAAA,GAAQ,CAAZ,CAHiE;AAAA,CAIjE,IAAIxf,KAAJ,CAJiE;AAAA,CAKjE,OAAOwf,KAAA,GAAQ+H,OAAA,CAAQ5V,MAAvB,EAA+B;AAAA,EAC7B3R,KAAA,GAAQunB,OAAA,CAAQ/H,KAAA,EAAR,CAAR,CAD6B;AAAA,EAE7BzgB,MAAA,CAAO2e,IAAP,CAAYunB,SAAA,CAAUjlC,KAAA,CAAMI,GAAhB,IAAuB,GAAvB,GAA6B6kC,SAAA,CAAUjlC,KAAA,CAAMlD,KAAhB,CAAzC,EAF6B;AAAA,EALkC;AAAA,CAQ/D,OAAOiC,MAAA,CAAOsd,IAAP,CAAY,GAAZ,CAAP,CAR+D;AAAA,CAAnE,EASG,EAAEtf,UAAA,EAAY,IAAd,EATH,EA1SA;AAqTAspB,cAAA,CAAeqf,0BAAf,EAA2CtB,iBAA3C,EArTA;AAuTA1sB,CAAA,CAAE;AAAA,CAAEC,MAAA,EAAQ,IAAV;AAAA,CAAgBqB,MAAA,EAAQ,CAACwf,cAAzB;AAAA,CAAF,EAA6C,EAC3CK,eAAA,EAAiB6M,0BAD0B,EAA7C,EAvTA;AA6TA,IAAI,CAAClN,cAAD,IAAmB,OAAOjH,MAAP,IAAiB,UAApC,IAAkD,OAAO4S,OAAP,IAAkB,UAAxE,EAAoF;AAAA,CAClFzsB,CAAA,CAAE;AAAA,EAAEC,MAAA,EAAQ,IAAV;AAAA,EAAgB5a,UAAA,EAAY,IAA5B;AAAA,EAAkCic,MAAA,EAAQ,IAA1C;AAAA,EAAF,EAAoD;AAAA,EAClD2b,KAAA,EAAO,SAASA,KAAT,CAAezZ,KAAf,EAAmC;AAAA,GACxC,IAAI/D,IAAA,GAAO,CAAC+D,KAAD,CAAX,CADwC;AAAA,GAExC,IAAIyqB,IAAJ,EAAUW,IAAV,EAAgBC,OAAhB,CAFwC;AAAA,GAGxC,IAAIxvB,SAAA,CAAUpF,MAAV,GAAmB,CAAvB,EAA0B;AAAA,IACxBg0B,IAAA,GAAO5uB,SAAA,CAAU,CAAV,CAAP,CADwB;AAAA,IAExB,IAAIkE,QAAA,CAAS0qB,IAAT,CAAJ,EAAoB;AAAA,KAClBW,IAAA,GAAOX,IAAA,CAAKW,IAAZ,CADkB;AAAA,KAElB,IAAI1rB,OAAA,CAAQ0rB,IAAR,MAAkBlC,iBAAtB,EAAyC;AAAA,MACvCmC,OAAA,GAAUZ,IAAA,CAAKY,OAAL,GAAe,IAAIpC,OAAJ,CAAYwB,IAAA,CAAKY,OAAjB,CAAf,GAA2C,IAAIpC,OAAJ,EAArD,CADuC;AAAA,MAEvC,IAAI,CAACoC,OAAA,CAAQ5sB,GAAR,CAAY,cAAZ,CAAL,EAAkC;AAAA,OAChC4sB,OAAA,CAAQzpB,GAAR,CAAY,cAAZ,EAA4B,iDAA5B,EADgC;AAAA,OAFK;AAAA,MAKvC6oB,IAAA,GAAOjvC,MAAA,CAAOivC,IAAP,EAAa;AAAA,OAClBW,IAAA,EAAM9sB,wBAAA,CAAyB,CAAzB,EAA4B3H,MAAA,CAAOy0B,IAAP,CAA5B,CADY;AAAA,OAElBC,OAAA,EAAS/sB,wBAAA,CAAyB,CAAzB,EAA4B+sB,OAA5B,CAFS;AAAA,OAAb,CAAP,CALuC;AAAA,MAFvB;AAAA,KAFI;AAAA,IAexBpvB,IAAA,CAAKuG,IAAL,CAAUioB,IAAV,EAfwB;AAAA,IAHc;AAAA,GAmBtC,OAAOpU,MAAA,CAAOnP,KAAP,CAAa,IAAb,EAAmBjL,IAAnB,CAAP,CAnBsC;AAAA,GADQ;AAAA,EAApD,EADkF;AAAA,CA7TpF;AAuVA7a,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfo7B,eAAA,EAAiB6M,0BADF;AAAA,CAEf3M,QAAA,EAAUuL,sBAFK;AAAA,CAAjB,C;;;;;;ACvVA,IAAI5oB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAI+yB,iBAAA,GAAoB/yB,mBAAA,CAAQ,EAAR,CAAxB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU2b,EAAV,EAAc;AAAA,CAC7B,IAAI9Y,cAAA,GAAiBwoB,iBAAA,CAAkB1P,EAAlB,CAArB,CAD6B;AAAA,CAE7B,IAAI,OAAO9Y,cAAP,IAAyB,UAA7B,EAAyC;AAAA,EACvC,MAAM0a,SAAA,CAAUnJ,MAAA,CAAOuH,EAAP,IAAa,kBAAvB,CAAN,CADuC;AAAA,EAFZ;AAAA,CAI3B,OAAOsC,QAAA,CAASpb,cAAA,CAAe2Z,IAAf,CAAoBb,EAApB,CAAT,CAAP,CAJ2B;AAAA,CAA/B,C;;;;;;;ACHa;AACb,IAAI1B,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAKA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,KAAV;AAAA,CAAiB2I,KAAA,EAAO,IAAxB;AAAA,CAA8BlkB,UAAA,EAAY,IAA1C;AAAA,CAAF,EAAoD;AAAA,CAClDwkC,MAAA,EAAQ,SAASA,MAAT,GAAkB;AAAA,EACxB,OAAO9rB,GAAA,CAAIqD,SAAJ,CAAcgC,QAAd,CAAuBb,IAAvB,CAA4B,IAA5B,CAAP,CADwB;AAAA,EADwB;AAAA,CAApD,E;;;;;;ACFA,CAAC,UAAUtC,MAAV,EAAkB6uB,OAAlB,EAA2B;AAAA,CACxB,QAA+DA,OAAA,CAAQ/oC,OAAR,CAA/D,GACA,SADA,CADwB;AAAA,CAA3B,CAIC,IAJD,EAIQ,UAAUA,OAAV,EAAmB;AAAA,CAAE,aAAF;AAAA,CAGxB,IAAIgpC,cAAA,GAAiB,OAAO9kB,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,MAAA,CAAOlgB,QAAd,KAA2B,QAA3D,GACjBkgB,MADiB,GAEjB,UAAU+kB,WAAV,EAAuB;AAAA,EAAE,OAAO,YAAYA,WAAZ,GAA0B,GAAjC,CAAF;AAAA,EAF3B,CAHwB;AAAA,CAQxB,SAASC,IAAT,GAAgB;AAAA,EARQ;AAAA,CAcxB,IAAIC,WAAA,GAAc11B,MAAA,CAAO1Q,KAAP,IAAgB,UAAUmrB,CAAV,EAAa;AAAA,EAE3C,OAAOA,CAAA,KAAMA,CAAb,CAF2C;AAAA,EAA/C,CAdwB;AAAA,CAmBxB,IAAIkb,8BAAA,GAAkCF,IAAtC,CAnBwB;AAAA,CAqBxB,SAASG,YAAT,CAAsBnb,CAAtB,EAAyB;AAAA,EACrB,OAAQ,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAA,KAAM,IAAhC,IAAyC,OAAOA,CAAP,KAAa,UAA7D,CADqB;AAAA,EArBD;AAAA,CAwBxB,SAASob,mBAAT,CAA6BC,QAA7B,EAAuC;AAAA,EAGnC,OAAOA,QAAA,CAASjsB,KAAT,EAAP,CAHmC;AAAA,EAxBf;AAAA,CA6BxB,SAASksB,eAAT,CAAyBC,IAAzB,EAA+BC,UAA/B,EAA2C3iB,GAA3C,EAAgD4iB,SAAhD,EAA2DhE,CAA3D,EAA8D;AAAA,EAC1D,IAAI/rB,UAAJ,CAAe6vB,IAAf,EAAqBpqB,GAArB,CAAyB,IAAIzF,UAAJ,CAAemN,GAAf,EAAoB4iB,SAApB,EAA+BhE,CAA/B,CAAzB,EAA4D+D,UAA5D,EAD0D;AAAA,EA7BtC;AAAA,CAgCxB,SAASE,yBAAT,CAAmCxzB,CAAnC,EAAsC;AAAA,EAClC,IAAIyzB,mBAAA,CAAoBzzB,CAApB,MAA2B,KAA/B,EAAsC;AAAA,GAClC,OAAO,KAAP,CADkC;AAAA,GADJ;AAAA,EAIlC,IAAIA,CAAA,KAAM0zB,QAAV,EAAoB;AAAA,GAChB,OAAO,KAAP,CADgB;AAAA,GAJc;AAAA,EAOlC,OAAO,IAAP,CAPkC;AAAA,EAhCd;AAAA,CAyCxB,SAASD,mBAAT,CAA6BzzB,CAA7B,EAAgC;AAAA,EAC5B,IAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAAA,GACvB,OAAO,KAAP,CADuB;AAAA,GADC;AAAA,EAI5B,IAAI+yB,WAAA,CAAY/yB,CAAZ,CAAJ,EAAoB;AAAA,GAChB,OAAO,KAAP,CADgB;AAAA,GAJQ;AAAA,EAO5B,IAAIA,CAAA,GAAI,CAAR,EAAW;AAAA,GACP,OAAO,KAAP,CADO;AAAA,GAPiB;AAAA,EAU5B,OAAO,IAAP,CAV4B;AAAA,EAzCR;AAAA,CAqDxB,SAAS2zB,IAAT,CAAc7iB,CAAd,EAAiBnK,CAAjB,EAAoBrD,IAApB,EAA0B;AAAA,EACtB,IAAI,OAAOwN,CAAP,KAAa,UAAjB,EAA6B;AAAA,GACzB,MAAM,IAAI3J,SAAJ,CAAc,4BAAd,CAAN,CADyB;AAAA,GADP;AAAA,EAItB,OAAOnZ,QAAA,CAASiX,SAAT,CAAmBsJ,KAAnB,CAAyBnI,IAAzB,CAA8B0K,CAA9B,EAAiCnK,CAAjC,EAAoCrD,IAApC,CAAP,CAJsB;AAAA,EArDF;AAAA,CA2DxB,SAASswB,mCAAT,CAA6CC,gBAA7C,EAA+DC,UAA/D,EAA2EC,YAA3E,EAAyFC,SAAzF,EAAoG;AAAA,EAChG,IAAIpoC,MAAA,GAASioC,gBAAA,CAAiBC,UAAjB,CAAb,CADgG;AAAA,EAEhG,IAAIloC,MAAA,KAAWwZ,SAAf,EAA0B;AAAA,GACtB,IAAI,OAAOxZ,MAAP,KAAkB,UAAtB,EAAkC;AAAA,IAC9B,MAAM,IAAIub,SAAJ,CAAcvb,MAAA,GAAS,kBAAvB,CAAN,CAD8B;AAAA,IADZ;AAAA,GAItB,QAAQmoC,YAAR;AAAA,GACI,KAAK,CAAL,EAAQ;AAAA,KACJ,OAAO,YAAY;AAAA,MACf,OAAOE,WAAA,CAAYroC,MAAZ,EAAoBioC,gBAApB,EAAsCG,SAAtC,CAAP,CADe;AAAA,MAAnB,CADI;AAAA,KADZ;AAAA,GAMI,KAAK,CAAL,EAAQ;AAAA,KACJ,OAAO,UAAUlqC,GAAV,EAAe;AAAA,MAClB,IAAIoqC,QAAA,GAAW,CAACpqC,GAAD,EAAM4gB,MAAN,CAAaspB,SAAb,CAAf,CADkB;AAAA,MAElB,OAAOC,WAAA,CAAYroC,MAAZ,EAAoBioC,gBAApB,EAAsCK,QAAtC,CAAP,CAFkB;AAAA,MAAtB,CADI;AAAA,KANZ;AAAA,IAJsB;AAAA,GAFsE;AAAA,EAoBhG,OAAO,YAAY;AAAA,GAAE,OAAOC,mBAAA,CAAoB/uB,SAApB,CAAP,CAAF;AAAA,GAAnB,CApBgG;AAAA,EA3D5E;AAAA,CAiFxB,SAASgvB,YAAT,CAAsBnuB,CAAtB,EAAyBC,CAAzB,EAA4B5C,IAA5B,EAAkC;AAAA,EAC9B,IAAI1X,MAAA,GAASqa,CAAA,CAAEC,CAAF,CAAb,CAD8B;AAAA,EAE9B,IAAIta,MAAA,KAAWwZ,SAAf,EAA0B;AAAA,GACtB,OAAOA,SAAP,CADsB;AAAA,GAFI;AAAA,EAK9B,OAAOuuB,IAAA,CAAK/nC,MAAL,EAAaqa,CAAb,EAAgB3C,IAAhB,CAAP,CAL8B;AAAA,EAjFV;AAAA,CAwFxB,SAAS2wB,WAAT,CAAqBnjB,CAArB,EAAwBnK,CAAxB,EAA2BrD,IAA3B,EAAiC;AAAA,EAC7B,IAAI;AAAA,GACA,OAAO6wB,mBAAA,CAAoBR,IAAA,CAAK7iB,CAAL,EAAQnK,CAAR,EAAWrD,IAAX,CAApB,CAAP,CADA;AAAA,GAAJ,CAGA,OAAOra,KAAP,EAAc;AAAA,GACV,OAAOorC,mBAAA,CAAoBprC,KAApB,CAAP,CADU;AAAA,GAJe;AAAA,EAxFT;AAAA,CAiGxB,SAASqrC,mBAAT,CAA6BruB,CAA7B,EAAgC;AAAA,EAC5B,OAAOA,CAAP,CAD4B;AAAA,EAjGR;AAAA,CAqGxB,SAASsuB,gBAAT,CAA0BtuB,CAA1B,EAA6B;AAAA,EACzB,OAAO,KAAP,CADyB;AAAA,EArGL;AAAA,CAwGxB,SAASuuB,iCAAT,CAA2CC,aAA3C,EAA0D;AAAA,EACtDA,aAAA,GAAgBp3B,MAAA,CAAOo3B,aAAP,CAAhB,CADsD;AAAA,EAEtD,IAAI1B,WAAA,CAAY0B,aAAZ,KAA8BA,aAAA,GAAgB,CAAlD,EAAqD;AAAA,GACjD,MAAM,IAAI5E,UAAJ,CAAe,+EAAf,CAAN,CADiD;AAAA,GAFC;AAAA,EAKtD,OAAO4E,aAAP,CALsD;AAAA,EAxGlC;AAAA,CA+GxB,SAASC,iCAAT,CAA2CxiB,IAA3C,EAAiD;AAAA,EAC7C,IAAIA,IAAA,KAAS9M,SAAb,EAAwB;AAAA,GACpB,OAAO,YAAY;AAAA,IAAE,OAAO,CAAP,CAAF;AAAA,IAAnB,CADoB;AAAA,GADqB;AAAA,EAI7C,IAAI,OAAO8M,IAAP,KAAgB,UAApB,EAAgC;AAAA,GAC5B,MAAM,IAAI/K,SAAJ,CAAc,wDAAd,CAAN,CAD4B;AAAA,GAJa;AAAA,EAO7C,OAAO,UAAUhJ,KAAV,EAAiB;AAAA,GAAE,OAAO+T,IAAA,CAAK/T,KAAL,CAAP,CAAF;AAAA,GAAxB,CAP6C;AAAA,EA/GzB;AAAA,CAwHxB,IAAIw2B,eAAA,GAAkBpa,OAAtB,CAxHwB;AAAA,CAyHxB,IAAIqa,mBAAA,GAAsBra,OAAA,CAAQtV,SAAR,CAAkB8Z,IAA5C,CAzHwB;AAAA,CA0HxB,IAAI8V,sBAAA,GAAyBta,OAAA,CAAQl2B,OAAR,CAAgB+pB,IAAhB,CAAqBumB,eAArB,CAA7B,CA1HwB;AAAA,CA2HxB,IAAIG,qBAAA,GAAwBva,OAAA,CAAQj2B,MAAR,CAAe8pB,IAAf,CAAoBumB,eAApB,CAA5B,CA3HwB;AAAA,CA4HxB,SAASI,UAAT,CAAoBpU,QAApB,EAA8B;AAAA,EAC1B,OAAO,IAAIgU,eAAJ,CAAoBhU,QAApB,CAAP,CAD0B;AAAA,EA5HN;AAAA,CA+HxB,SAASwT,mBAAT,CAA6BlrC,KAA7B,EAAoC;AAAA,EAChC,OAAO4rC,sBAAA,CAAuB5rC,KAAvB,CAAP,CADgC;AAAA,EA/HZ;AAAA,CAkIxB,SAASorC,mBAAT,CAA6BzwC,MAA7B,EAAqC;AAAA,EACjC,OAAOkxC,qBAAA,CAAsBlxC,MAAtB,CAAP,CADiC;AAAA,EAlIb;AAAA,CAqIxB,SAASoxC,kBAAT,CAA4BnW,OAA5B,EAAqC+B,WAArC,EAAkDC,UAAlD,EAA8D;AAAA,EAG1D,OAAO+T,mBAAA,CAAoBxuB,IAApB,CAAyByY,OAAzB,EAAkC+B,WAAlC,EAA+CC,UAA/C,CAAP,CAH0D;AAAA,EArItC;AAAA,CA0IxB,SAASoU,WAAT,CAAqBpW,OAArB,EAA8B+B,WAA9B,EAA2CC,UAA3C,EAAuD;AAAA,EACnDmU,kBAAA,CAAmBA,kBAAA,CAAmBnW,OAAnB,EAA4B+B,WAA5B,EAAyCC,UAAzC,CAAnB,EAAyEzb,SAAzE,EAAoF4tB,8BAApF,EADmD;AAAA,EA1I/B;AAAA,CA6IxB,SAASkC,eAAT,CAAyBrW,OAAzB,EAAkC+B,WAAlC,EAA+C;AAAA,EAC3CqU,WAAA,CAAYpW,OAAZ,EAAqB+B,WAArB,EAD2C;AAAA,EA7IvB;AAAA,CAgJxB,SAASuU,aAAT,CAAuBtW,OAAvB,EAAgCgC,UAAhC,EAA4C;AAAA,EACxCoU,WAAA,CAAYpW,OAAZ,EAAqBzZ,SAArB,EAAgCyb,UAAhC,EADwC;AAAA,EAhJpB;AAAA,CAmJxB,SAASuU,oBAAT,CAA8BvW,OAA9B,EAAuCwW,kBAAvC,EAA2DC,gBAA3D,EAA6E;AAAA,EACzE,OAAON,kBAAA,CAAmBnW,OAAnB,EAA4BwW,kBAA5B,EAAgDC,gBAAhD,CAAP,CADyE;AAAA,EAnJrD;AAAA,CAsJxB,SAASC,yBAAT,CAAmC1W,OAAnC,EAA4C;AAAA,EACxCmW,kBAAA,CAAmBnW,OAAnB,EAA4BzZ,SAA5B,EAAuC4tB,8BAAvC,EADwC;AAAA,EAtJpB;AAAA,CA4JxB,IAAIwC,oBAAA,GAAuB,KAA3B,CA5JwB;AAAA,CAmKxB,IAAIC,WAAA,GAA6B,YAAY;AAAA,EACzC,SAASA,WAAT,GAAuB;AAAA,GACnB,KAAKC,OAAL,GAAe,CAAf,CADmB;AAAA,GAEnB,KAAKC,KAAL,GAAa,CAAb,CAFmB;AAAA,GAInB,KAAKC,MAAL,GAAc;AAAA,IACVC,SAAA,EAAW,EADD;AAAA,IAEVC,KAAA,EAAO1wB,SAFG;AAAA,IAAd,CAJmB;AAAA,GAQnB,KAAK2wB,KAAL,GAAa,KAAKH,MAAlB,CARmB;AAAA,GAYnB,KAAKF,OAAL,GAAe,CAAf,CAZmB;AAAA,GAcnB,KAAKC,KAAL,GAAa,CAAb,CAdmB;AAAA,GADkB;AAAA,EAiBzC7uC,MAAA,CAAOwf,cAAP,CAAsBmvB,WAAA,CAAYxwB,SAAlC,EAA6C,QAA7C,EAAuD;AAAA,GACnDhX,GAAA,EAAK,YAAY;AAAA,IACb,OAAO,KAAK0nC,KAAZ,CADa;AAAA,IADkC;AAAA,GAInDzsC,UAAA,EAAY,IAJuC;AAAA,GAKnDC,YAAA,EAAc,IALqC;AAAA,GAAvD,EAjByC;AAAA,EA4BzCssC,WAAA,CAAYxwB,SAAZ,CAAsB4E,IAAtB,GAA6B,UAAUzI,OAAV,EAAmB;AAAA,GAC5C,IAAI40B,OAAA,GAAU,KAAKD,KAAnB,CAD4C;AAAA,GAE5C,IAAIE,OAAA,GAAUD,OAAd,CAF4C;AAAA,GAG5C,IAAIA,OAAA,CAAQH,SAAR,CAAkB/3B,MAAlB,KAA6B03B,oBAAA,GAAuB,CAAxD,EAA2D;AAAA,IACvDS,OAAA,GAAU;AAAA,KACNJ,SAAA,EAAW,EADL;AAAA,KAENC,KAAA,EAAO1wB,SAFD;AAAA,KAAV,CADuD;AAAA,IAHf;AAAA,GAW5C4wB,OAAA,CAAQH,SAAR,CAAkBhsB,IAAlB,CAAuBzI,OAAvB,EAX4C;AAAA,GAY5C,IAAI60B,OAAA,KAAYD,OAAhB,EAAyB;AAAA,IACrB,KAAKD,KAAL,GAAaE,OAAb,CADqB;AAAA,IAErBD,OAAA,CAAQF,KAAR,GAAgBG,OAAhB,CAFqB;AAAA,IAZmB;AAAA,GAgB5C,EAAE,KAAKN,KAAP,CAhB4C;AAAA,GAAhD,CA5ByC;AAAA,EAgDzCF,WAAA,CAAYxwB,SAAZ,CAAsB4mB,KAAtB,GAA8B,YAAY;AAAA,GACtC,IAAIqK,QAAA,GAAW,KAAKN,MAApB,CADsC;AAAA,GAEtC,IAAIO,QAAA,GAAWD,QAAf,CAFsC;AAAA,GAGtC,IAAIE,SAAA,GAAY,KAAKV,OAArB,CAHsC;AAAA,GAItC,IAAIW,SAAA,GAAYD,SAAA,GAAY,CAA5B,CAJsC;AAAA,GAKtC,IAAIjD,QAAA,GAAW+C,QAAA,CAASL,SAAxB,CALsC;AAAA,GAMtC,IAAIz0B,OAAA,GAAU+xB,QAAA,CAASiD,SAAT,CAAd,CANsC;AAAA,GAOtC,IAAIC,SAAA,KAAcb,oBAAlB,EAAwC;AAAA,IACpCW,QAAA,GAAWD,QAAA,CAASJ,KAApB,CADoC;AAAA,IAEpCO,SAAA,GAAY,CAAZ,CAFoC;AAAA,IAPF;AAAA,GAYtC,EAAE,KAAKV,KAAP,CAZsC;AAAA,GAatC,KAAKD,OAAL,GAAeW,SAAf,CAbsC;AAAA,GActC,IAAIH,QAAA,KAAaC,QAAjB,EAA2B;AAAA,IACvB,KAAKP,MAAL,GAAcO,QAAd,CADuB;AAAA,IAdW;AAAA,GAkBtChD,QAAA,CAASiD,SAAT,IAAsBhxB,SAAtB,CAlBsC;AAAA,GAmBtC,OAAOhE,OAAP,CAnBsC;AAAA,GAA1C,CAhDyC;AAAA,EA6EzCq0B,WAAA,CAAYxwB,SAAZ,CAAsB0R,OAAtB,GAAgC,UAAU6b,QAAV,EAAoB;AAAA,GAChD,IAAI5lC,CAAA,GAAI,KAAK8oC,OAAb,CADgD;AAAA,GAEhD,IAAIhS,IAAA,GAAO,KAAKkS,MAAhB,CAFgD;AAAA,GAGhD,IAAIzC,QAAA,GAAWzP,IAAA,CAAKmS,SAApB,CAHgD;AAAA,GAIhD,OAAOjpC,CAAA,KAAMumC,QAAA,CAASr1B,MAAf,IAAyB4lB,IAAA,CAAKoS,KAAL,KAAe1wB,SAA/C,EAA0D;AAAA,IACtD,IAAIxY,CAAA,KAAMumC,QAAA,CAASr1B,MAAnB,EAA2B;AAAA,KACvB4lB,IAAA,GAAOA,IAAA,CAAKoS,KAAZ,CADuB;AAAA,KAEvB3C,QAAA,GAAWzP,IAAA,CAAKmS,SAAhB,CAFuB;AAAA,KAGvBjpC,CAAA,GAAI,CAAJ,CAHuB;AAAA,KAIvB,IAAIumC,QAAA,CAASr1B,MAAT,KAAoB,CAAxB,EAA2B;AAAA,MACvB,MADuB;AAAA,MAJJ;AAAA,KAD2B;AAAA,IAStD00B,QAAA,CAASW,QAAA,CAASvmC,CAAT,CAAT,EATsD;AAAA,IAUtD,EAAEA,CAAF,CAVsD;AAAA,IAJV;AAAA,GAApD,CA7EyC;AAAA,EAgGzC6oC,WAAA,CAAYxwB,SAAZ,CAAsBqxB,IAAtB,GAA6B,YAAY;AAAA,GACrC,IAAIC,KAAA,GAAQ,KAAKX,MAAjB,CADqC;AAAA,GAErC,IAAIY,MAAA,GAAS,KAAKd,OAAlB,CAFqC;AAAA,GAGrC,OAAOa,KAAA,CAAMV,SAAN,CAAgBW,MAAhB,CAAP,CAHqC;AAAA,GAAzC,CAhGyC;AAAA,EAqGzC,OAAOf,WAAP,CArGyC;AAAA,EAAZ,EAAjC,CAnKwB;AAAA,CA2QxB,SAASgB,8BAAT,CAAwCxtC,KAAxC,EAA+CgD,IAA/C,EAAqDyqC,aAArD,EAAoE;AAAA,EAChE,IAAIzxB,SAAA,GAAY,IAAhB,CADgE;AAAA,EAEhE,IAAIyxB,aAAA,KAAkB,IAAtB,EAA4B;AAAA,GACxBzxB,SAAA,GAAYne,MAAA,CAAOme,SAAnB,CADwB;AAAA,GAFoC;AAAA,EAKhE,IAAI5b,GAAA,GAAMvC,MAAA,CAAOjE,MAAP,CAAcoiB,SAAd,CAAV,CALgE;AAAA,EAMhE5b,GAAA,CAAIJ,KAAJ,GAAYA,KAAZ,CANgE;AAAA,EAOhEI,GAAA,CAAI4C,IAAJ,GAAWA,IAAX,CAPgE;AAAA,EAQhE,OAAO5C,GAAP,CARgE;AAAA,EA3Q5C;AAAA,CAqRxB,SAASstC,qCAAT,CAA+CC,MAA/C,EAAuDC,MAAvD,EAA+D;AAAA,EAC3DD,MAAA,CAAOE,cAAP,GAAwB,IAAxB,CAD2D;AAAA,EAE3DF,MAAA,CAAOG,oBAAP,GAA8BF,MAA9B,CAF2D;AAAA,EAG3DA,MAAA,CAAOG,OAAP,GAAiBJ,MAAjB,CAH2D;AAAA,EAI3D,IAAIC,MAAA,CAAOI,MAAP,KAAkB,UAAtB,EAAkC;AAAA,GAC9BC,oCAAA,CAAqCN,MAArC,EAD8B;AAAA,GAAlC,MAGK,IAAIC,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GACjCE,8CAAA,CAA+CP,MAA/C,EADiC;AAAA,GAAhC,MAGA;AAAA,GACDQ,8CAAA,CAA+CR,MAA/C,EAAuDC,MAAA,CAAOQ,YAA9D,EADC;AAAA,GAVsD;AAAA,EArRvC;AAAA,CAqSxB,SAASC,iCAAT,CAA2CV,MAA3C,EAAmDhzC,MAAnD,EAA2D;AAAA,EACvD,IAAIizC,MAAA,GAASD,MAAA,CAAOG,oBAApB,CADuD;AAAA,EAEvD,OAAOQ,oBAAA,CAAqBV,MAArB,EAA6BjzC,MAA7B,CAAP,CAFuD;AAAA,EArSnC;AAAA,CAySxB,SAAS4zC,kCAAT,CAA4CZ,MAA5C,EAAoD;AAAA,EAChD,IAAIA,MAAA,CAAOG,oBAAP,CAA4BE,MAA5B,KAAuC,UAA3C,EAAuD;AAAA,GACnDQ,gCAAA,CAAiCb,MAAjC,EAAyC,IAAIzvB,SAAJ,CAAc,mFAAd,CAAzC,EADmD;AAAA,GAAvD,MAGK;AAAA,GACDuwB,yCAAA,CAA0Cd,MAA1C,EAAkD,IAAIzvB,SAAJ,CAAc,mFAAd,CAAlD,EADC;AAAA,GAJ2C;AAAA,EAOhDyvB,MAAA,CAAOG,oBAAP,CAA4BC,OAA5B,GAAsC5xB,SAAtC,CAPgD;AAAA,EAQhDwxB,MAAA,CAAOG,oBAAP,GAA8B3xB,SAA9B,CARgD;AAAA,EAzS5B;AAAA,CAoTxB,SAASuyB,mBAAT,CAA6B3wC,IAA7B,EAAmC;AAAA,EAC/B,OAAO,IAAImgB,SAAJ,CAAc,YAAYngB,IAAZ,GAAmB,mCAAjC,CAAP,CAD+B;AAAA,EApTX;AAAA,CAwTxB,SAASkwC,oCAAT,CAA8CN,MAA9C,EAAsD;AAAA,EAClDA,MAAA,CAAOgB,cAAP,GAAwB7C,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAC1DsyC,MAAA,CAAOiB,sBAAP,GAAgCxzC,OAAhC,CAD0D;AAAA,GAE1DuyC,MAAA,CAAOkB,qBAAP,GAA+BxzC,MAA/B,CAF0D;AAAA,GAAtC,CAAxB,CADkD;AAAA,EAxT9B;AAAA,CA8TxB,SAAS8yC,8CAAT,CAAwDR,MAAxD,EAAgEhzC,MAAhE,EAAwE;AAAA,EACpEszC,oCAAA,CAAqCN,MAArC,EADoE;AAAA,EAEpEa,gCAAA,CAAiCb,MAAjC,EAAyChzC,MAAzC,EAFoE;AAAA,EA9ThD;AAAA,CAkUxB,SAASuzC,8CAAT,CAAwDP,MAAxD,EAAgE;AAAA,EAC5DM,oCAAA,CAAqCN,MAArC,EAD4D;AAAA,EAE5DmB,iCAAA,CAAkCnB,MAAlC,EAF4D;AAAA,EAlUxC;AAAA,CAsUxB,SAASa,gCAAT,CAA0Cb,MAA1C,EAAkDhzC,MAAlD,EAA0D;AAAA,EACtD2xC,yBAAA,CAA0BqB,MAAA,CAAOgB,cAAjC,EADsD;AAAA,EAEtDhB,MAAA,CAAOkB,qBAAP,CAA6Bl0C,MAA7B,EAFsD;AAAA,EAGtDgzC,MAAA,CAAOiB,sBAAP,GAAgCzyB,SAAhC,CAHsD;AAAA,EAItDwxB,MAAA,CAAOkB,qBAAP,GAA+B1yB,SAA/B,CAJsD;AAAA,EAtUlC;AAAA,CA4UxB,SAASsyB,yCAAT,CAAmDd,MAAnD,EAA2DhzC,MAA3D,EAAmE;AAAA,EAC/DwzC,8CAAA,CAA+CR,MAA/C,EAAuDhzC,MAAvD,EAD+D;AAAA,EA5U3C;AAAA,CA+UxB,SAASm0C,iCAAT,CAA2CnB,MAA3C,EAAmD;AAAA,EAC/CA,MAAA,CAAOiB,sBAAP,CAA8BzyB,SAA9B,EAD+C;AAAA,EAE/CwxB,MAAA,CAAOiB,sBAAP,GAAgCzyB,SAAhC,CAF+C;AAAA,EAG/CwxB,MAAA,CAAOkB,qBAAP,GAA+B1yB,SAA/B,CAH+C;AAAA,EA/U3B;AAAA,CAqVxB,IAAI4yB,WAAA,GAAcpF,cAAA,CAAe,iBAAf,CAAlB,CArVwB;AAAA,CAsVxB,IAAIqF,SAAA,GAAYrF,cAAA,CAAe,eAAf,CAAhB,CAtVwB;AAAA,CAyVxB,SAASsF,kCAAT,CAA4CrB,MAA5C,EAAoDH,aAApD,EAAmE;AAAA,EAC/D,IAAIA,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,KAAhB,CAAF;AAAA,GADiC;AAAA,EAE/D,IAAIE,MAAA,GAAS,IAAIuB,2BAAJ,CAAgCtB,MAAhC,CAAb,CAF+D;AAAA,EAG/DD,MAAA,CAAOE,cAAP,GAAwBJ,aAAxB,CAH+D;AAAA,EAI/D,OAAOE,MAAP,CAJ+D;AAAA,EAzV3C;AAAA,CAgWxB,SAASwB,4BAAT,CAAsCvB,MAAtC,EAA8C;AAAA,EAC1C,IAAIhY,OAAA,GAAUkW,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAChD,IAAI+zC,WAAA,GAAc;AAAA,IACdC,QAAA,EAAUj0C,OADI;AAAA,IAEdk0C,OAAA,EAASj0C,MAFK;AAAA,IAAlB,CADgD;AAAA,GAKhDuyC,MAAA,CAAOG,OAAP,CAAewB,aAAf,CAA6B3uB,IAA7B,CAAkCwuB,WAAlC,EALgD;AAAA,GAAtC,CAAd,CAD0C;AAAA,EAQ1C,OAAOxZ,OAAP,CAR0C;AAAA,EAhWtB;AAAA,CA0WxB,SAAS4Z,gCAAT,CAA0C5B,MAA1C,EAAkD14B,KAAlD,EAAyDlS,IAAzD,EAA+D;AAAA,EAC3D,IAAI2qC,MAAA,GAASC,MAAA,CAAOG,OAApB,CAD2D;AAAA,EAE3D,IAAIqB,WAAA,GAAczB,MAAA,CAAO4B,aAAP,CAAqB3M,KAArB,EAAlB,CAF2D;AAAA,EAG3DwM,WAAA,CAAYC,QAAZ,CAAqB7B,8BAAA,CAA+Bt4B,KAA/B,EAAsClS,IAAtC,EAA4C2qC,MAAA,CAAOE,cAAnD,CAArB,EAH2D;AAAA,EA1WvC;AAAA,CA+WxB,SAAS4B,gCAAT,CAA0C7B,MAA1C,EAAkD;AAAA,EAC9C,OAAOA,MAAA,CAAOG,OAAP,CAAewB,aAAf,CAA6B16B,MAApC,CAD8C;AAAA,EA/W1B;AAAA,CAkXxB,SAAS66B,8BAAT,CAAwC9B,MAAxC,EAAgD;AAAA,EAC5C,IAAID,MAAA,GAASC,MAAA,CAAOG,OAApB,CAD4C;AAAA,EAE5C,IAAIJ,MAAA,KAAWxxB,SAAf,EAA0B;AAAA,GACtB,OAAO,KAAP,CADsB;AAAA,GAFkB;AAAA,EAK5C,IAAI,CAACwzB,6BAAA,CAA8BhC,MAA9B,CAAL,EAA4C;AAAA,GACxC,OAAO,KAAP,CADwC;AAAA,GALA;AAAA,EAQ5C,OAAO,IAAP,CAR4C;AAAA,EAlXxB;AAAA,CA4XxB,IAAIuB,2BAAA,GAA6C,YAAY;AAAA,EACzD,SAASA,2BAAT,CAAqCtB,MAArC,EAA6C;AAAA,GACzC,IAAIgC,gBAAA,CAAiBhC,MAAjB,MAA6B,KAAjC,EAAwC;AAAA,IACpC,MAAM,IAAI1vB,SAAJ,CAAc,oFAAd,CAAN,CADoC;AAAA,IADC;AAAA,GAIzC,IAAI2xB,sBAAA,CAAuBjC,MAAvB,MAAmC,IAAvC,EAA6C;AAAA,IACzC,MAAM,IAAI1vB,SAAJ,CAAc,6EAAd,CAAN,CADyC;AAAA,IAJJ;AAAA,GAOzCwvB,qCAAA,CAAsC,IAAtC,EAA4CE,MAA5C,EAPyC;AAAA,GAQzC,KAAK2B,aAAL,GAAqB,IAAI/C,WAAJ,EAArB,CARyC;AAAA,GADY;AAAA,EAWzD3uC,MAAA,CAAOwf,cAAP,CAAsB6xB,2BAAA,CAA4BlzB,SAAlD,EAA6D,QAA7D,EAAuE;AAAA,GACnEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI,CAAC2qC,6BAAA,CAA8B,IAA9B,CAAL,EAA0C;AAAA,KACtC,OAAOvE,mBAAA,CAAoB0E,gCAAA,CAAiC,QAAjC,CAApB,CAAP,CADsC;AAAA,KAD7B;AAAA,IAIb,OAAO,KAAKnB,cAAZ,CAJa;AAAA,IADkD;AAAA,GAOnE1uC,UAAA,EAAY,IAPuD;AAAA,GAQnEC,YAAA,EAAc,IARqD;AAAA,GAAvE,EAXyD;AAAA,EAqBzDgvC,2BAAA,CAA4BlzB,SAA5B,CAAsC+zB,MAAtC,GAA+C,UAAUp1C,MAAV,EAAkB;AAAA,GAC7D,IAAI,CAACg1C,6BAAA,CAA8B,IAA9B,CAAL,EAA0C;AAAA,IACtC,OAAOvE,mBAAA,CAAoB0E,gCAAA,CAAiC,QAAjC,CAApB,CAAP,CADsC;AAAA,IADmB;AAAA,GAI7D,IAAI,KAAKhC,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,QAApB,CAApB,CAAP,CADyC;AAAA,IAJgB;AAAA,GAO7D,OAAOL,iCAAA,CAAkC,IAAlC,EAAwC1zC,MAAxC,CAAP,CAP6D;AAAA,GAAjE,CArByD;AAAA,EA8BzDu0C,2BAAA,CAA4BlzB,SAA5B,CAAsCg0B,IAAtC,GAA6C,YAAY;AAAA,GACrD,IAAI,CAACL,6BAAA,CAA8B,IAA9B,CAAL,EAA0C;AAAA,IACtC,OAAOvE,mBAAA,CAAoB0E,gCAAA,CAAiC,MAAjC,CAApB,CAAP,CADsC;AAAA,IADW;AAAA,GAIrD,IAAI,KAAKhC,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,WAApB,CAApB,CAAP,CADyC;AAAA,IAJQ;AAAA,GAOrD,OAAOuB,+BAAA,CAAgC,IAAhC,CAAP,CAPqD;AAAA,GAAzD,CA9ByD;AAAA,EAuCzDf,2BAAA,CAA4BlzB,SAA5B,CAAsCk0B,WAAtC,GAAoD,YAAY;AAAA,GAC5D,IAAI,CAACP,6BAAA,CAA8B,IAA9B,CAAL,EAA0C;AAAA,IACtC,MAAMG,gCAAA,CAAiC,aAAjC,CAAN,CADsC;AAAA,IADkB;AAAA,GAI5D,IAAI,KAAKhC,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OADyC;AAAA,IAJe;AAAA,GAO5D,IAAI,KAAKozB,aAAL,CAAmB16B,MAAnB,GAA4B,CAAhC,EAAmC;AAAA,IAC/B,MAAM,IAAIqJ,SAAJ,CAAc,qFAAd,CAAN,CAD+B;AAAA,IAPyB;AAAA,GAU5DqwB,kCAAA,CAAmC,IAAnC,EAV4D;AAAA,GAAhE,CAvCyD;AAAA,EAmDzD,OAAOW,2BAAP,CAnDyD;AAAA,EAAZ,EAAjD,CA5XwB;AAAA,CAkbxB,SAASS,6BAAT,CAAuC9gB,CAAvC,EAA0C;AAAA,EACtC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADgB;AAAA,EAItC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,eAAxC,CAAL,EAA+D;AAAA,GAC3D,OAAO,KAAP,CAD2D;AAAA,GAJzB;AAAA,EAOtC,OAAO,IAAP,CAPsC;AAAA,EAlblB;AAAA,CA2bxB,SAASohB,+BAAT,CAAyCtC,MAAzC,EAAiD;AAAA,EAC7C,IAAIC,MAAA,GAASD,MAAA,CAAOG,oBAApB,CAD6C;AAAA,EAE7CF,MAAA,CAAOuC,UAAP,GAAoB,IAApB,CAF6C;AAAA,EAG7C,IAAIvC,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GAC5B,OAAO9C,mBAAA,CAAoBsC,8BAAA,CAA+BrxB,SAA/B,EAA0C,IAA1C,EAAgDwxB,MAAA,CAAOE,cAAvD,CAApB,CAAP,CAD4B;AAAA,GAHa;AAAA,EAM7C,IAAID,MAAA,CAAOI,MAAP,KAAkB,SAAtB,EAAiC;AAAA,GAC7B,OAAO5C,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CAD6B;AAAA,GANY;AAAA,EAS7C,OAAOR,MAAA,CAAOwC,yBAAP,CAAiCpB,SAAjC,GAAP,CAT6C;AAAA,EA3bzB;AAAA,CAucxB,SAASc,gCAAT,CAA0C/xC,IAA1C,EAAgD;AAAA,EAC5C,OAAO,IAAImgB,SAAJ,CAAc,2CAA2CngB,IAA3C,GAAkD,oDAAhE,CAAP,CAD4C;AAAA,EAvcxB;AAAA,CA4cxB,IAAIsyC,EAAJ,CA5cwB;AAAA,CA6cxB,IAAIC,sBAAJ,CA7cwB;AAAA,CA8cxB,IAAI,OAAO3G,cAAA,CAAe4G,aAAtB,KAAwC,QAA5C,EAAsD;AAAA,EAGlDD,sBAAA,GAA0B,CAAAD,EAAA,GAAK,EAAL,EAGtBA,EAAA,CAAG1G,cAAA,CAAe4G,aAAlB,IAAmC,YAAY;AAAA,GAC3C,OAAO,IAAP,CAD2C;AAAA,GAHzB,EAMtBF,EANsB,CAA1B,CAHkD;AAAA,EAUlDxyC,MAAA,CAAOwf,cAAP,CAAsBizB,sBAAtB,EAA8C3G,cAAA,CAAe4G,aAA7D,EAA4E,EAAEtwC,UAAA,EAAY,KAAd,EAA5E,EAVkD;AAAA,EA9c9B;AAAA,CA4dxB,IAAIuwC,oCAAA,GAAuC;AAAA,EACvCjtC,IAAA,EAAM,YAAY;AAAA,GACd,IAAIktC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,OAAOrF,mBAAA,CAAoBsF,sCAAA,CAAuC,MAAvC,CAApB,CAAP,CAD+C;AAAA,IADrC;AAAA,GAId,IAAI/C,MAAA,GAAS,KAAKgD,oBAAlB,CAJc;AAAA,GAKd,IAAIhD,MAAA,CAAOG,oBAAP,KAAgC3xB,SAApC,EAA+C;AAAA,IAC3C,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,SAApB,CAApB,CAAP,CAD2C;AAAA,IALjC;AAAA,GAQd,OAAOvC,oBAAA,CAAqB8D,+BAAA,CAAgCtC,MAAhC,CAArB,EAA8D,UAAU1rC,MAAV,EAAkB;AAAA,IACnF,IAAIe,IAAA,GAAOf,MAAA,CAAOe,IAAlB,CADmF;AAAA,IAEnF,IAAIA,IAAJ,EAAU;AAAA,KACNurC,kCAAA,CAAmCZ,MAAnC,EADM;AAAA,KAFyE;AAAA,IAKnF,IAAI3tC,KAAA,GAAQiC,MAAA,CAAOjC,KAAnB,CALmF;AAAA,IAMnF,OAAOwtC,8BAAA,CAA+BxtC,KAA/B,EAAsCgD,IAAtC,EAA4C,IAA5C,CAAP,CANmF;AAAA,IAAhF,CAAP,CARc;AAAA,GADqB;AAAA,EAkBvC4tC,MAAA,EAAQ,UAAU5wC,KAAV,EAAiB;AAAA,GACrB,IAAIywC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,OAAOrF,mBAAA,CAAoBsF,sCAAA,CAAuC,MAAvC,CAApB,CAAP,CAD+C;AAAA,IAD9B;AAAA,GAIrB,IAAI/C,MAAA,GAAS,KAAKgD,oBAAlB,CAJqB;AAAA,GAKrB,IAAIhD,MAAA,CAAOG,oBAAP,KAAgC3xB,SAApC,EAA+C;AAAA,IAC3C,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,kBAApB,CAApB,CAAP,CAD2C;AAAA,IAL1B;AAAA,GAQrB,IAAIf,MAAA,CAAO4B,aAAP,CAAqB16B,MAArB,GAA8B,CAAlC,EAAqC;AAAA,IACjC,OAAOu2B,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,qFAAd,CAApB,CAAP,CADiC;AAAA,IARhB;AAAA,GAWrB,IAAI,KAAK2yB,cAAL,KAAwB,KAA5B,EAAmC;AAAA,IAC/B,IAAI5uC,MAAA,GAASosC,iCAAA,CAAkCV,MAAlC,EAA0C3tC,KAA1C,CAAb,CAD+B;AAAA,IAE/BuuC,kCAAA,CAAmCZ,MAAnC,EAF+B;AAAA,IAG/B,OAAOxB,oBAAA,CAAqBlqC,MAArB,EAA6B,YAAY;AAAA,KAAE,OAAOurC,8BAAA,CAA+BxtC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAP,CAAF;AAAA,KAAzC,CAAP,CAH+B;AAAA,IAXd;AAAA,GAgBrBuuC,kCAAA,CAAmCZ,MAAnC,EAhBqB;AAAA,GAiBrB,OAAOzC,mBAAA,CAAoBsC,8BAAA,CAA+BxtC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAApB,CAAP,CAjBqB;AAAA,GAlBc;AAAA,EAA3C,CA5dwB;AAAA,CAkgBxB,IAAIswC,sBAAA,KAA2Bn0B,SAA/B,EAA0C;AAAA,EACtCte,MAAA,CAAOyrB,cAAP,CAAsBknB,oCAAtB,EAA4DF,sBAA5D,EADsC;AAAA,EAlgBlB;AAAA,CAqgBxBzyC,MAAA,CAAOwf,cAAP,CAAsBmzB,oCAAtB,EAA4D,MAA5D,EAAoE,EAAEvwC,UAAA,EAAY,KAAd,EAApE,EArgBwB;AAAA,CAsgBxBpC,MAAA,CAAOwf,cAAP,CAAsBmzB,oCAAtB,EAA4D,QAA5D,EAAsE,EAAEvwC,UAAA,EAAY,KAAd,EAAtE,EAtgBwB;AAAA,CAwgBxB,SAAS6wC,kCAAT,CAA4ClD,MAA5C,EAAoDmD,aAApD,EAAmE;AAAA,EAC/D,IAAIA,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,KAAhB,CAAF;AAAA,GADiC;AAAA,EAE/D,IAAIpD,MAAA,GAASsB,kCAAA,CAAmCrB,MAAnC,CAAb,CAF+D;AAAA,EAG/D,IAAIjpC,QAAA,GAAW9G,MAAA,CAAOjE,MAAP,CAAc42C,oCAAd,CAAf,CAH+D;AAAA,EAI/D7rC,QAAA,CAASgsC,oBAAT,GAAgChD,MAAhC,CAJ+D;AAAA,EAK/DhpC,QAAA,CAASksC,cAAT,GAA0BG,OAAA,CAAQD,aAAR,CAA1B,CAL+D;AAAA,EAM/D,OAAOpsC,QAAP,CAN+D;AAAA,EAxgB3C;AAAA,CAghBxB,SAAS8rC,6BAAT,CAAuC5hB,CAAvC,EAA0C;AAAA,EACtC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADgB;AAAA,EAItC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,sBAAxC,CAAL,EAAsE;AAAA,GAClE,OAAO,KAAP,CADkE;AAAA,GAJhC;AAAA,EAOtC,OAAO,IAAP,CAPsC;AAAA,EAhhBlB;AAAA,CA0hBxB,SAAS6hB,sCAAT,CAAgD3yC,IAAhD,EAAsD;AAAA,EAClD,OAAO,IAAImgB,SAAJ,CAAc,iCAAiCngB,IAAjC,GAAwC,mDAAtD,CAAP,CADkD;AAAA,EA1hB9B;AAAA,CA8hBxB,SAASkzC,YAAT,CAAsBC,SAAtB,EAAiC;AAAA,EAC7B,IAAIC,IAAA,GAAOD,SAAA,CAAUE,MAAV,CAAiBxO,KAAjB,EAAX,CAD6B;AAAA,EAE7BsO,SAAA,CAAUG,eAAV,IAA6BF,IAAA,CAAKloB,IAAlC,CAF6B;AAAA,EAG7B,IAAIioB,SAAA,CAAUG,eAAV,GAA4B,CAAhC,EAAmC;AAAA,GAC/BH,SAAA,CAAUG,eAAV,GAA4B,CAA5B,CAD+B;AAAA,GAHN;AAAA,EAM7B,OAAOF,IAAA,CAAKnxC,KAAZ,CAN6B;AAAA,EA9hBT;AAAA,CAsiBxB,SAASsxC,oBAAT,CAA8BJ,SAA9B,EAAyClxC,KAAzC,EAAgDipB,IAAhD,EAAsD;AAAA,EAClDA,IAAA,GAAO7U,MAAA,CAAO6U,IAAP,CAAP,CADkD;AAAA,EAElD,IAAI,CAACshB,yBAAA,CAA0BthB,IAA1B,CAAL,EAAsC;AAAA,GAClC,MAAM,IAAI2d,UAAJ,CAAe,sDAAf,CAAN,CADkC;AAAA,GAFY;AAAA,EAKlDsK,SAAA,CAAUE,MAAV,CAAiBxwB,IAAjB,CAAsB;AAAA,GAAE5gB,KAAA,EAAOA,KAAT;AAAA,GAAgBipB,IAAA,EAAMA,IAAtB;AAAA,GAAtB,EALkD;AAAA,EAMlDioB,SAAA,CAAUG,eAAV,IAA6BpoB,IAA7B,CANkD;AAAA,EAtiB9B;AAAA,CA8iBxB,SAASsoB,cAAT,CAAwBL,SAAxB,EAAmC;AAAA,EAC/B,IAAIC,IAAA,GAAOD,SAAA,CAAUE,MAAV,CAAiB/D,IAAjB,EAAX,CAD+B;AAAA,EAE/B,OAAO8D,IAAA,CAAKnxC,KAAZ,CAF+B;AAAA,EA9iBX;AAAA,CAkjBxB,SAASwxC,UAAT,CAAoBN,SAApB,EAA+B;AAAA,EAC3BA,SAAA,CAAUE,MAAV,GAAmB,IAAI5E,WAAJ,EAAnB,CAD2B;AAAA,EAE3B0E,SAAA,CAAUG,eAAV,GAA4B,CAA5B,CAF2B;AAAA,EAljBP;AAAA,CAujBxB,IAAII,UAAA,GAAa9H,cAAA,CAAe,gBAAf,CAAjB,CAvjBwB;AAAA,CAwjBxB,IAAI+H,UAAA,GAAa/H,cAAA,CAAe,gBAAf,CAAjB,CAxjBwB;AAAA,CAyjBxB,IAAIgI,cAAA,GAAgC,YAAY;AAAA,EAC5C,SAASA,cAAT,CAAwBC,cAAxB,EAAwCC,QAAxC,EAAkD;AAAA,GAC9C,IAAID,cAAA,KAAmB,KAAK,CAA5B,EAA+B;AAAA,IAAEA,cAAA,GAAiB,EAAjB,CAAF;AAAA,IADe;AAAA,GAE9C,IAAIC,QAAA,KAAa,KAAK,CAAtB,EAAyB;AAAA,IAAEA,QAAA,GAAW,EAAX,CAAF;AAAA,IAFqB;AAAA,GAG9CC,wBAAA,CAAyB,IAAzB,EAH8C;AAAA,GAI9C,IAAI7oB,IAAA,GAAO4oB,QAAA,CAAS5oB,IAApB,CAJ8C;AAAA,GAK9C,IAAIuiB,aAAA,GAAgBqG,QAAA,CAASrG,aAA7B,CAL8C;AAAA,GAM9C,IAAI5qC,IAAA,GAAOgxC,cAAA,CAAehxC,IAA1B,CAN8C;AAAA,GAO9C,IAAIA,IAAA,KAASub,SAAb,EAAwB;AAAA,IACpB,MAAM,IAAIyqB,UAAJ,CAAe,2BAAf,CAAN,CADoB;AAAA,IAPsB;AAAA,GAU9C,IAAImL,aAAA,GAAgBtG,iCAAA,CAAkCxiB,IAAlC,CAApB,CAV8C;AAAA,GAW9C,IAAIuiB,aAAA,KAAkBrvB,SAAtB,EAAiC;AAAA,IAC7BqvB,aAAA,GAAgB,CAAhB,CAD6B;AAAA,IAXa;AAAA,GAc9CA,aAAA,GAAgBD,iCAAA,CAAkCC,aAAlC,CAAhB,CAd8C;AAAA,GAe9CwG,sDAAA,CAAuD,IAAvD,EAA6DJ,cAA7D,EAA6EpG,aAA7E,EAA4FuG,aAA5F,EAf8C;AAAA,GADN;AAAA,EAkB5Cl0C,MAAA,CAAOwf,cAAP,CAAsBs0B,cAAA,CAAe31B,SAArC,EAAgD,QAAhD,EAA0D;AAAA,GACtDhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAIitC,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,KAClC,MAAMC,yBAAA,CAA0B,QAA1B,CAAN,CADkC;AAAA,KADzB;AAAA,IAIb,OAAOC,sBAAA,CAAuB,IAAvB,CAAP,CAJa;AAAA,IADqC;AAAA,GAOtDlyC,UAAA,EAAY,IAP0C;AAAA,GAQtDC,YAAA,EAAc,IARwC;AAAA,GAA1D,EAlB4C;AAAA,EA4B5CyxC,cAAA,CAAe31B,SAAf,CAAyBo2B,KAAzB,GAAiC,UAAUz3C,MAAV,EAAkB;AAAA,GAC/C,IAAIs3C,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,OAAO7G,mBAAA,CAAoB8G,yBAAA,CAA0B,OAA1B,CAApB,CAAP,CADkC;AAAA,IADS;AAAA,GAI/C,IAAIC,sBAAA,CAAuB,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,OAAO/G,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,iDAAd,CAApB,CAAP,CADuC;AAAA,IAJI;AAAA,GAO/C,OAAOm0B,mBAAA,CAAoB,IAApB,EAA0B13C,MAA1B,CAAP,CAP+C;AAAA,GAAnD,CA5B4C;AAAA,EAqC5Cg3C,cAAA,CAAe31B,SAAf,CAAyBgL,KAAzB,GAAiC,YAAY;AAAA,GACzC,IAAIirB,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,OAAO7G,mBAAA,CAAoB8G,yBAAA,CAA0B,OAA1B,CAApB,CAAP,CADkC;AAAA,IADG;AAAA,GAIzC,IAAIC,sBAAA,CAAuB,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,OAAO/G,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,iDAAd,CAApB,CAAP,CADuC;AAAA,IAJF;AAAA,GAOzC,IAAIo0B,mCAAA,CAAoC,IAApC,MAA8C,IAAlD,EAAwD;AAAA,IACpD,OAAOlH,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,wCAAd,CAApB,CAAP,CADoD;AAAA,IAPf;AAAA,GAUzC,OAAOq0B,mBAAA,CAAoB,IAApB,CAAP,CAVyC;AAAA,GAA7C,CArC4C;AAAA,EAiD5CZ,cAAA,CAAe31B,SAAf,CAAyBw2B,SAAzB,GAAqC,YAAY;AAAA,GAC7C,IAAIP,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,MAAMC,yBAAA,CAA0B,WAA1B,CAAN,CADkC;AAAA,IADO;AAAA,GAI7C,OAAOO,kCAAA,CAAmC,IAAnC,CAAP,CAJ6C;AAAA,GAAjD,CAjD4C;AAAA,EAuD5C,OAAOd,cAAP,CAvD4C;AAAA,EAAZ,EAApC,CAzjBwB;AAAA,CAmnBxB,SAASc,kCAAT,CAA4C7E,MAA5C,EAAoD;AAAA,EAChD,OAAO,IAAI8E,2BAAJ,CAAgC9E,MAAhC,CAAP,CADgD;AAAA,EAnnB5B;AAAA,CAunBxB,SAAS+E,oBAAT,CAA8BC,cAA9B,EAA8CC,cAA9C,EAA8DC,cAA9D,EAA8EC,cAA9E,EAA8FvH,aAA9F,EAA6GuG,aAA7G,EAA4H;AAAA,EACxH,IAAIvG,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,CAAhB,CAAF;AAAA,GAD0F;AAAA,EAExH,IAAIuG,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,YAAY;AAAA,IAAE,OAAO,CAAP,CAAF;AAAA,IAA5B,CAAF;AAAA,GAF0F;AAAA,EAGxH,IAAInE,MAAA,GAAS/vC,MAAA,CAAOjE,MAAP,CAAc+3C,cAAA,CAAe31B,SAA7B,CAAb,CAHwH;AAAA,EAIxH81B,wBAAA,CAAyBlE,MAAzB,EAJwH;AAAA,EAKxH,IAAInzB,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAco5C,+BAAA,CAAgCh3B,SAA9C,CAAjB,CALwH;AAAA,EAMxHi3B,oCAAA,CAAqCrF,MAArC,EAA6CnzB,UAA7C,EAAyDm4B,cAAzD,EAAyEC,cAAzE,EAAyFC,cAAzF,EAAyGC,cAAzG,EAAyHvH,aAAzH,EAAwIuG,aAAxI,EANwH;AAAA,EAOxH,OAAOnE,MAAP,CAPwH;AAAA,EAvnBpG;AAAA,CAgoBxB,SAASkE,wBAAT,CAAkClE,MAAlC,EAA0C;AAAA,EACtCA,MAAA,CAAOI,MAAP,GAAgB,UAAhB,CADsC;AAAA,EAItCJ,MAAA,CAAOQ,YAAP,GAAsBjyB,SAAtB,CAJsC;AAAA,EAKtCyxB,MAAA,CAAOsF,OAAP,GAAiB/2B,SAAjB,CALsC;AAAA,EAQtCyxB,MAAA,CAAOuF,yBAAP,GAAmCh3B,SAAnC,CARsC;AAAA,EAWtCyxB,MAAA,CAAOwF,cAAP,GAAwB,IAAI5G,WAAJ,EAAxB,CAXsC;AAAA,EActCoB,MAAA,CAAOyF,qBAAP,GAA+Bl3B,SAA/B,CAdsC;AAAA,EAiBtCyxB,MAAA,CAAO0F,aAAP,GAAuBn3B,SAAvB,CAjBsC;AAAA,EAoBtCyxB,MAAA,CAAO2F,qBAAP,GAA+Bp3B,SAA/B,CApBsC;AAAA,EAsBtCyxB,MAAA,CAAO4F,oBAAP,GAA8Br3B,SAA9B,CAtBsC;AAAA,EAwBtCyxB,MAAA,CAAO6F,aAAP,GAAuB,KAAvB,CAxBsC;AAAA,EAhoBlB;AAAA,CA0pBxB,SAASxB,gBAAT,CAA0BpjB,CAA1B,EAA6B;AAAA,EACzB,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADG;AAAA,EAIzB,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,2BAAxC,CAAL,EAA2E;AAAA,GACvE,OAAO,KAAP,CADuE;AAAA,GAJlD;AAAA,EAOzB,OAAO,IAAP,CAPyB;AAAA,EA1pBL;AAAA,CAmqBxB,SAASsjB,sBAAT,CAAgCvE,MAAhC,EAAwC;AAAA,EACpC,IAAIA,MAAA,CAAOsF,OAAP,KAAmB/2B,SAAvB,EAAkC;AAAA,GAC9B,OAAO,KAAP,CAD8B;AAAA,GADE;AAAA,EAIpC,OAAO,IAAP,CAJoC;AAAA,EAnqBhB;AAAA,CAyqBxB,SAASk2B,mBAAT,CAA6BzE,MAA7B,EAAqCjzC,MAArC,EAA6C;AAAA,EACzC,IAAI+H,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CADyC;AAAA,EAEzC,IAAItrC,KAAA,KAAU,QAAV,IAAsBA,KAAA,KAAU,SAApC,EAA+C;AAAA,GAC3C,OAAOwoC,mBAAA,CAAoB/uB,SAApB,CAAP,CAD2C;AAAA,GAFN;AAAA,EAKzC,IAAIyxB,MAAA,CAAO4F,oBAAP,KAAgCr3B,SAApC,EAA+C;AAAA,GAC3C,OAAOyxB,MAAA,CAAO4F,oBAAP,CAA4BE,QAAnC,CAD2C;AAAA,GALN;AAAA,EAQzC,IAAIC,kBAAA,GAAqB,KAAzB,CARyC;AAAA,EASzC,IAAIjxC,KAAA,KAAU,UAAd,EAA0B;AAAA,GACtBixC,kBAAA,GAAqB,IAArB,CADsB;AAAA,GAGtBh5C,MAAA,GAASwhB,SAAT,CAHsB;AAAA,GATe;AAAA,EAczC,IAAIyZ,OAAA,GAAUkW,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAChDuyC,MAAA,CAAO4F,oBAAP,GAA8B;AAAA,IAC1BE,QAAA,EAAUv3B,SADgB;AAAA,IAE1BkzB,QAAA,EAAUj0C,OAFgB;AAAA,IAG1Bk0C,OAAA,EAASj0C,MAHiB;AAAA,IAI1Bu4C,OAAA,EAASj5C,MAJiB;AAAA,IAK1Bk5C,mBAAA,EAAqBF,kBALK;AAAA,IAA9B,CADgD;AAAA,GAAtC,CAAd,CAdyC;AAAA,EAuBzC/F,MAAA,CAAO4F,oBAAP,CAA4BE,QAA5B,GAAuC9d,OAAvC,CAvByC;AAAA,EAwBzC,IAAI+d,kBAAA,KAAuB,KAA3B,EAAkC;AAAA,GAC9BG,2BAAA,CAA4BlG,MAA5B,EAAoCjzC,MAApC,EAD8B;AAAA,GAxBO;AAAA,EA2BzC,OAAOi7B,OAAP,CA3ByC;AAAA,EAzqBrB;AAAA,CAssBxB,SAAS2c,mBAAT,CAA6B3E,MAA7B,EAAqC;AAAA,EACjC,IAAIlrC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CADiC;AAAA,EAEjC,IAAItrC,KAAA,KAAU,QAAV,IAAsBA,KAAA,KAAU,SAApC,EAA+C;AAAA,GAC3C,OAAO0oC,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,oBAAoBxb,KAApB,GAA4B,2DAA1C,CAApB,CAAP,CAD2C;AAAA,GAFd;AAAA,EAKjC,IAAIkzB,OAAA,GAAUkW,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAChD,IAAI04C,YAAA,GAAe;AAAA,IACf1E,QAAA,EAAUj0C,OADK;AAAA,IAEfk0C,OAAA,EAASj0C,MAFM;AAAA,IAAnB,CADgD;AAAA,GAKhDuyC,MAAA,CAAO0F,aAAP,GAAuBS,YAAvB,CALgD;AAAA,GAAtC,CAAd,CALiC;AAAA,EAYjC,IAAIC,MAAA,GAASpG,MAAA,CAAOsF,OAApB,CAZiC;AAAA,EAajC,IAAIc,MAAA,KAAW73B,SAAX,IAAwByxB,MAAA,CAAO6F,aAAP,KAAyB,IAAjD,IAAyD/wC,KAAA,KAAU,UAAvE,EAAmF;AAAA,GAC/EuxC,gCAAA,CAAiCD,MAAjC,EAD+E;AAAA,GAblD;AAAA,EAgBjCE,oCAAA,CAAqCtG,MAAA,CAAOuF,yBAA5C,EAhBiC;AAAA,EAiBjC,OAAOvd,OAAP,CAjBiC;AAAA,EAtsBb;AAAA,CA0tBxB,SAASue,6BAAT,CAAuCvG,MAAvC,EAA+C;AAAA,EAC3C,IAAIhY,OAAA,GAAUkW,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAChD,IAAI+4C,YAAA,GAAe;AAAA,IACf/E,QAAA,EAAUj0C,OADK;AAAA,IAEfk0C,OAAA,EAASj0C,MAFM;AAAA,IAAnB,CADgD;AAAA,GAKhDuyC,MAAA,CAAOwF,cAAP,CAAsBxyB,IAAtB,CAA2BwzB,YAA3B,EALgD;AAAA,GAAtC,CAAd,CAD2C;AAAA,EAQ3C,OAAOxe,OAAP,CAR2C;AAAA,EA1tBvB;AAAA,CAouBxB,SAASye,+BAAT,CAAyCzG,MAAzC,EAAiD1wB,KAAjD,EAAwD;AAAA,EACpD,IAAIxa,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CADoD;AAAA,EAEpD,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,GACtBoxC,2BAAA,CAA4BlG,MAA5B,EAAoC1wB,KAApC,EADsB;AAAA,GAEtB,OAFsB;AAAA,GAF0B;AAAA,EAMpDo3B,4BAAA,CAA6B1G,MAA7B,EANoD;AAAA,EApuBhC;AAAA,CA4uBxB,SAASkG,2BAAT,CAAqClG,MAArC,EAA6CjzC,MAA7C,EAAqD;AAAA,EACjD,IAAI8f,UAAA,GAAamzB,MAAA,CAAOuF,yBAAxB,CADiD;AAAA,EAEjDvF,MAAA,CAAOI,MAAP,GAAgB,UAAhB,CAFiD;AAAA,EAGjDJ,MAAA,CAAOQ,YAAP,GAAsBzzC,MAAtB,CAHiD;AAAA,EAIjD,IAAIq5C,MAAA,GAASpG,MAAA,CAAOsF,OAApB,CAJiD;AAAA,EAKjD,IAAIc,MAAA,KAAW73B,SAAf,EAA0B;AAAA,GACtBo4B,qDAAA,CAAsDP,MAAtD,EAA8Dr5C,MAA9D,EADsB;AAAA,GALuB;AAAA,EAQjD,IAAI65C,wCAAA,CAAyC5G,MAAzC,MAAqD,KAArD,IAA8DnzB,UAAA,CAAWg6B,QAAX,KAAwB,IAA1F,EAAgG;AAAA,GAC5FH,4BAAA,CAA6B1G,MAA7B,EAD4F;AAAA,GAR/C;AAAA,EA5uB7B;AAAA,CAwvBxB,SAAS0G,4BAAT,CAAsC1G,MAAtC,EAA8C;AAAA,EAC1CA,MAAA,CAAOI,MAAP,GAAgB,SAAhB,CAD0C;AAAA,EAE1CJ,MAAA,CAAOuF,yBAAP,CAAiCzB,UAAjC,IAF0C;AAAA,EAG1C,IAAIgD,WAAA,GAAc9G,MAAA,CAAOQ,YAAzB,CAH0C;AAAA,EAI1CR,MAAA,CAAOwF,cAAP,CAAsB1lB,OAAtB,CAA8B,UAAU0mB,YAAV,EAAwB;AAAA,GAClDA,YAAA,CAAa9E,OAAb,CAAqBoF,WAArB,EADkD;AAAA,GAAtD,EAJ0C;AAAA,EAO1C9G,MAAA,CAAOwF,cAAP,GAAwB,IAAI5G,WAAJ,EAAxB,CAP0C;AAAA,EAQ1C,IAAIoB,MAAA,CAAO4F,oBAAP,KAAgCr3B,SAApC,EAA+C;AAAA,GAC3Cw4B,iDAAA,CAAkD/G,MAAlD,EAD2C;AAAA,GAE3C,OAF2C;AAAA,GARL;AAAA,EAY1C,IAAIgH,YAAA,GAAehH,MAAA,CAAO4F,oBAA1B,CAZ0C;AAAA,EAa1C5F,MAAA,CAAO4F,oBAAP,GAA8Br3B,SAA9B,CAb0C;AAAA,EAc1C,IAAIy4B,YAAA,CAAaf,mBAAb,KAAqC,IAAzC,EAA+C;AAAA,GAC3Ce,YAAA,CAAatF,OAAb,CAAqBoF,WAArB,EAD2C;AAAA,GAE3CC,iDAAA,CAAkD/G,MAAlD,EAF2C;AAAA,GAG3C,OAH2C;AAAA,GAdL;AAAA,EAmB1C,IAAIhY,OAAA,GAAUgY,MAAA,CAAOuF,yBAAP,CAAiC1B,UAAjC,EAA6CmD,YAAA,CAAahB,OAA1D,CAAd,CAnB0C;AAAA,EAoB1C5H,WAAA,CAAYpW,OAAZ,EAAqB,YAAY;AAAA,GAC7Bgf,YAAA,CAAavF,QAAb,GAD6B;AAAA,GAE7BsF,iDAAA,CAAkD/G,MAAlD,EAF6B;AAAA,GAAjC,EAGG,UAAUjzC,MAAV,EAAkB;AAAA,GACjBi6C,YAAA,CAAatF,OAAb,CAAqB30C,MAArB,EADiB;AAAA,GAEjBg6C,iDAAA,CAAkD/G,MAAlD,EAFiB;AAAA,GAHrB,EApB0C;AAAA,EAxvBtB;AAAA,CAoxBxB,SAASiH,iCAAT,CAA2CjH,MAA3C,EAAmD;AAAA,EAC/CA,MAAA,CAAOyF,qBAAP,CAA6BhE,QAA7B,CAAsClzB,SAAtC,EAD+C;AAAA,EAE/CyxB,MAAA,CAAOyF,qBAAP,GAA+Bl3B,SAA/B,CAF+C;AAAA,EApxB3B;AAAA,CAwxBxB,SAAS24B,0CAAT,CAAoDlH,MAApD,EAA4D1wB,KAA5D,EAAmE;AAAA,EAC/D0wB,MAAA,CAAOyF,qBAAP,CAA6B/D,OAA7B,CAAqCpyB,KAArC,EAD+D;AAAA,EAE/D0wB,MAAA,CAAOyF,qBAAP,GAA+Bl3B,SAA/B,CAF+D;AAAA,EAG/Dk4B,+BAAA,CAAgCzG,MAAhC,EAAwC1wB,KAAxC,EAH+D;AAAA,EAxxB3C;AAAA,CA6xBxB,SAAS63B,iCAAT,CAA2CnH,MAA3C,EAAmD;AAAA,EAC/CA,MAAA,CAAO2F,qBAAP,CAA6BlE,QAA7B,CAAsClzB,SAAtC,EAD+C;AAAA,EAE/CyxB,MAAA,CAAO2F,qBAAP,GAA+Bp3B,SAA/B,CAF+C;AAAA,EAG/C,IAAIzZ,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAH+C;AAAA,EAI/C,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,GAEtBkrC,MAAA,CAAOQ,YAAP,GAAsBjyB,SAAtB,CAFsB;AAAA,GAGtB,IAAIyxB,MAAA,CAAO4F,oBAAP,KAAgCr3B,SAApC,EAA+C;AAAA,IAC3CyxB,MAAA,CAAO4F,oBAAP,CAA4BnE,QAA5B,GAD2C;AAAA,IAE3CzB,MAAA,CAAO4F,oBAAP,GAA8Br3B,SAA9B,CAF2C;AAAA,IAHzB;AAAA,GAJqB;AAAA,EAY/CyxB,MAAA,CAAOI,MAAP,GAAgB,QAAhB,CAZ+C;AAAA,EAa/C,IAAIgG,MAAA,GAASpG,MAAA,CAAOsF,OAApB,CAb+C;AAAA,EAc/C,IAAIc,MAAA,KAAW73B,SAAf,EAA0B;AAAA,GACtB64B,iCAAA,CAAkChB,MAAlC,EADsB;AAAA,GAdqB;AAAA,EA7xB3B;AAAA,CA+yBxB,SAASiB,0CAAT,CAAoDrH,MAApD,EAA4D1wB,KAA5D,EAAmE;AAAA,EAC/D0wB,MAAA,CAAO2F,qBAAP,CAA6BjE,OAA7B,CAAqCpyB,KAArC,EAD+D;AAAA,EAE/D0wB,MAAA,CAAO2F,qBAAP,GAA+Bp3B,SAA/B,CAF+D;AAAA,EAI/D,IAAIyxB,MAAA,CAAO4F,oBAAP,KAAgCr3B,SAApC,EAA+C;AAAA,GAC3CyxB,MAAA,CAAO4F,oBAAP,CAA4BlE,OAA5B,CAAoCpyB,KAApC,EAD2C;AAAA,GAE3C0wB,MAAA,CAAO4F,oBAAP,GAA8Br3B,SAA9B,CAF2C;AAAA,GAJgB;AAAA,EAQ/Dk4B,+BAAA,CAAgCzG,MAAhC,EAAwC1wB,KAAxC,EAR+D;AAAA,EA/yB3C;AAAA,CA0zBxB,SAASo1B,mCAAT,CAA6C1E,MAA7C,EAAqD;AAAA,EACjD,IAAIA,MAAA,CAAO0F,aAAP,KAAyBn3B,SAAzB,IAAsCyxB,MAAA,CAAO2F,qBAAP,KAAiCp3B,SAA3E,EAAsF;AAAA,GAClF,OAAO,KAAP,CADkF;AAAA,GADrC;AAAA,EAIjD,OAAO,IAAP,CAJiD;AAAA,EA1zB7B;AAAA,CAg0BxB,SAASq4B,wCAAT,CAAkD5G,MAAlD,EAA0D;AAAA,EACtD,IAAIA,MAAA,CAAOyF,qBAAP,KAAiCl3B,SAAjC,IAA8CyxB,MAAA,CAAO2F,qBAAP,KAAiCp3B,SAAnF,EAA8F;AAAA,GAC1F,OAAO,KAAP,CAD0F;AAAA,GADxC;AAAA,EAItD,OAAO,IAAP,CAJsD;AAAA,EAh0BlC;AAAA,CAs0BxB,SAAS+4B,sCAAT,CAAgDtH,MAAhD,EAAwD;AAAA,EACpDA,MAAA,CAAO2F,qBAAP,GAA+B3F,MAAA,CAAO0F,aAAtC,CADoD;AAAA,EAEpD1F,MAAA,CAAO0F,aAAP,GAAuBn3B,SAAvB,CAFoD;AAAA,EAt0BhC;AAAA,CA00BxB,SAASg5B,2CAAT,CAAqDvH,MAArD,EAA6D;AAAA,EACzDA,MAAA,CAAOyF,qBAAP,GAA+BzF,MAAA,CAAOwF,cAAP,CAAsBxQ,KAAtB,EAA/B,CADyD;AAAA,EA10BrC;AAAA,CA60BxB,SAAS+R,iDAAT,CAA2D/G,MAA3D,EAAmE;AAAA,EAC/D,IAAIA,MAAA,CAAO0F,aAAP,KAAyBn3B,SAA7B,EAAwC;AAAA,GACpCyxB,MAAA,CAAO0F,aAAP,CAAqBhE,OAArB,CAA6B1B,MAAA,CAAOQ,YAApC,EADoC;AAAA,GAEpCR,MAAA,CAAO0F,aAAP,GAAuBn3B,SAAvB,CAFoC;AAAA,GADuB;AAAA,EAK/D,IAAI63B,MAAA,GAASpG,MAAA,CAAOsF,OAApB,CAL+D;AAAA,EAM/D,IAAIc,MAAA,KAAW73B,SAAf,EAA0B;AAAA,GACtBi5B,gCAAA,CAAiCpB,MAAjC,EAAyCpG,MAAA,CAAOQ,YAAhD,EADsB;AAAA,GANqC;AAAA,EA70B3C;AAAA,CAu1BxB,SAASiH,gCAAT,CAA0CzH,MAA1C,EAAkD0H,YAAlD,EAAgE;AAAA,EAC5D,IAAItB,MAAA,GAASpG,MAAA,CAAOsF,OAApB,CAD4D;AAAA,EAE5D,IAAIc,MAAA,KAAW73B,SAAX,IAAwBm5B,YAAA,KAAiB1H,MAAA,CAAO6F,aAApD,EAAmE;AAAA,GAC/D,IAAI6B,YAAA,KAAiB,IAArB,EAA2B;AAAA,IACvBC,8BAAA,CAA+BvB,MAA/B,EADuB;AAAA,IAA3B,MAGK;AAAA,IACDC,gCAAA,CAAiCD,MAAjC,EADC;AAAA,IAJ0D;AAAA,GAFP;AAAA,EAU5DpG,MAAA,CAAO6F,aAAP,GAAuB6B,YAAvB,CAV4D;AAAA,EAv1BxC;AAAA,CAm2BxB,IAAI5C,2BAAA,GAA6C,YAAY;AAAA,EACzD,SAASA,2BAAT,CAAqC9E,MAArC,EAA6C;AAAA,GACzC,IAAIqE,gBAAA,CAAiBrE,MAAjB,MAA6B,KAAjC,EAAwC;AAAA,IACpC,MAAM,IAAI1vB,SAAJ,CAAc,oFAAd,CAAN,CADoC;AAAA,IADC;AAAA,GAIzC,IAAIi0B,sBAAA,CAAuBvE,MAAvB,MAAmC,IAAvC,EAA6C;AAAA,IACzC,MAAM,IAAI1vB,SAAJ,CAAc,6EAAd,CAAN,CADyC;AAAA,IAJJ;AAAA,GAOzC,KAAKs3B,oBAAL,GAA4B5H,MAA5B,CAPyC;AAAA,GAQzCA,MAAA,CAAOsF,OAAP,GAAiB,IAAjB,CARyC;AAAA,GASzC,IAAIxwC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CATyC;AAAA,GAUzC,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,IACtB,IAAI4vC,mCAAA,CAAoC1E,MAApC,MAAgD,KAAhD,IAAyDA,MAAA,CAAO6F,aAAP,KAAyB,IAAtF,EAA4F;AAAA,KACxFgC,mCAAA,CAAoC,IAApC,EADwF;AAAA,KAA5F,MAGK;AAAA,KACDC,6CAAA,CAA8C,IAA9C,EADC;AAAA,KAJiB;AAAA,IAOtBC,oCAAA,CAAqC,IAArC,EAPsB;AAAA,IAA1B,MASK,IAAIjzC,KAAA,KAAU,UAAd,EAA0B;AAAA,IAC3BkzC,6CAAA,CAA8C,IAA9C,EAAoDhI,MAAA,CAAOQ,YAA3D,EAD2B;AAAA,IAE3BuH,oCAAA,CAAqC,IAArC,EAF2B;AAAA,IAA1B,MAIA,IAAIjzC,KAAA,KAAU,QAAd,EAAwB;AAAA,IACzBgzC,6CAAA,CAA8C,IAA9C,EADyB;AAAA,IAEzBG,8CAAA,CAA+C,IAA/C,EAFyB;AAAA,IAAxB,MAIA;AAAA,IACD,IAAInB,WAAA,GAAc9G,MAAA,CAAOQ,YAAzB,CADC;AAAA,IAEDwH,6CAAA,CAA8C,IAA9C,EAAoDlB,WAApD,EAFC;AAAA,IAGDoB,8CAAA,CAA+C,IAA/C,EAAqDpB,WAArD,EAHC;AAAA,IA3BoC;AAAA,GADY;AAAA,EAkCzD72C,MAAA,CAAOwf,cAAP,CAAsBq1B,2BAAA,CAA4B12B,SAAlD,EAA6D,QAA7D,EAAuE;AAAA,GACnEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI+wC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,KAC/C,OAAO3K,mBAAA,CAAoB4K,gCAAA,CAAiC,QAAjC,CAApB,CAAP,CAD+C;AAAA,KADtC;AAAA,IAIb,OAAO,KAAKrH,cAAZ,CAJa;AAAA,IADkD;AAAA,GAOnE1uC,UAAA,EAAY,IAPuD;AAAA,GAQnEC,YAAA,EAAc,IARqD;AAAA,GAAvE,EAlCyD;AAAA,EA4CzDrC,MAAA,CAAOwf,cAAP,CAAsBq1B,2BAAA,CAA4B12B,SAAlD,EAA6D,aAA7D,EAA4E;AAAA,GACxEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI+wC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,KAC/C,MAAMC,gCAAA,CAAiC,aAAjC,CAAN,CAD+C;AAAA,KADtC;AAAA,IAIb,IAAI,KAAKR,oBAAL,KAA8Br5B,SAAlC,EAA6C;AAAA,KACzC,MAAM85B,0BAAA,CAA2B,aAA3B,CAAN,CADyC;AAAA,KAJhC;AAAA,IAOb,OAAOC,yCAAA,CAA0C,IAA1C,CAAP,CAPa;AAAA,IADuD;AAAA,GAUxEj2C,UAAA,EAAY,IAV4D;AAAA,GAWxEC,YAAA,EAAc,IAX0D;AAAA,GAA5E,EA5CyD;AAAA,EAyDzDrC,MAAA,CAAOwf,cAAP,CAAsBq1B,2BAAA,CAA4B12B,SAAlD,EAA6D,OAA7D,EAAsE;AAAA,GAClEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI+wC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,KAC/C,OAAO3K,mBAAA,CAAoB4K,gCAAA,CAAiC,OAAjC,CAApB,CAAP,CAD+C;AAAA,KADtC;AAAA,IAIb,OAAO,KAAKG,aAAZ,CAJa;AAAA,IADiD;AAAA,GAOlEl2C,UAAA,EAAY,IAPsD;AAAA,GAQlEC,YAAA,EAAc,IARoD;AAAA,GAAtE,EAzDyD;AAAA,EAmEzDwyC,2BAAA,CAA4B12B,SAA5B,CAAsCo2B,KAAtC,GAA8C,UAAUz3C,MAAV,EAAkB;AAAA,GAC5D,IAAIo7C,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,OAAO3K,mBAAA,CAAoB4K,gCAAA,CAAiC,OAAjC,CAApB,CAAP,CAD+C;AAAA,IADS;AAAA,GAI5D,IAAI,KAAKR,oBAAL,KAA8Br5B,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoB6K,0BAAA,CAA2B,OAA3B,CAApB,CAAP,CADyC;AAAA,IAJe;AAAA,GAO5D,OAAOG,gCAAA,CAAiC,IAAjC,EAAuCz7C,MAAvC,CAAP,CAP4D;AAAA,GAAhE,CAnEyD;AAAA,EA4EzD+3C,2BAAA,CAA4B12B,SAA5B,CAAsCgL,KAAtC,GAA8C,YAAY;AAAA,GACtD,IAAI+uB,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,OAAO3K,mBAAA,CAAoB4K,gCAAA,CAAiC,OAAjC,CAApB,CAAP,CAD+C;AAAA,IADG;AAAA,GAItD,IAAIpI,MAAA,GAAS,KAAK4H,oBAAlB,CAJsD;AAAA,GAKtD,IAAI5H,MAAA,KAAWzxB,SAAf,EAA0B;AAAA,IACtB,OAAOivB,mBAAA,CAAoB6K,0BAAA,CAA2B,OAA3B,CAApB,CAAP,CADsB;AAAA,IAL4B;AAAA,GAQtD,IAAI3D,mCAAA,CAAoC1E,MAApC,MAAgD,IAApD,EAA0D;AAAA,IACtD,OAAOxC,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,wCAAd,CAApB,CAAP,CADsD;AAAA,IARJ;AAAA,GAWtD,OAAOm4B,gCAAA,CAAiC,IAAjC,CAAP,CAXsD;AAAA,GAA1D,CA5EyD;AAAA,EAyFzD3D,2BAAA,CAA4B12B,SAA5B,CAAsCk0B,WAAtC,GAAoD,YAAY;AAAA,GAC5D,IAAI6F,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,MAAMC,gCAAA,CAAiC,aAAjC,CAAN,CAD+C;AAAA,IADS;AAAA,GAI5D,IAAIpI,MAAA,GAAS,KAAK4H,oBAAlB,CAJ4D;AAAA,GAK5D,IAAI5H,MAAA,KAAWzxB,SAAf,EAA0B;AAAA,IACtB,OADsB;AAAA,IALkC;AAAA,GAQ5Dm6B,kCAAA,CAAmC,IAAnC,EAR4D;AAAA,GAAhE,CAzFyD;AAAA,EAmGzD5D,2BAAA,CAA4B12B,SAA5B,CAAsC+K,KAAtC,GAA8C,UAAU7R,KAAV,EAAiB;AAAA,GAC3D,IAAI6gC,6BAAA,CAA8B,IAA9B,MAAwC,KAA5C,EAAmD;AAAA,IAC/C,OAAO3K,mBAAA,CAAoB4K,gCAAA,CAAiC,OAAjC,CAApB,CAAP,CAD+C;AAAA,IADQ;AAAA,GAI3D,IAAI,KAAKR,oBAAL,KAA8Br5B,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoB6K,0BAAA,CAA2B,UAA3B,CAApB,CAAP,CADyC;AAAA,IAJc;AAAA,GAO3D,OAAOM,gCAAA,CAAiC,IAAjC,EAAuCrhC,KAAvC,CAAP,CAP2D;AAAA,GAA/D,CAnGyD;AAAA,EA4GzD,OAAOw9B,2BAAP,CA5GyD;AAAA,EAAZ,EAAjD,CAn2BwB;AAAA,CAk9BxB,SAASqD,6BAAT,CAAuClnB,CAAvC,EAA0C;AAAA,EACtC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADgB;AAAA,EAItC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,sBAAxC,CAAL,EAAsE;AAAA,GAClE,OAAO,KAAP,CADkE;AAAA,GAJhC;AAAA,EAOtC,OAAO,IAAP,CAPsC;AAAA,EAl9BlB;AAAA,CA49BxB,SAASunB,gCAAT,CAA0CpC,MAA1C,EAAkDr5C,MAAlD,EAA0D;AAAA,EACtD,IAAIizC,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CADsD;AAAA,EAEtD,OAAOnD,mBAAA,CAAoBzE,MAApB,EAA4BjzC,MAA5B,CAAP,CAFsD;AAAA,EA59BlC;AAAA,CAg+BxB,SAAS07C,gCAAT,CAA0CrC,MAA1C,EAAkD;AAAA,EAC9C,IAAIpG,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CAD8C;AAAA,EAE9C,OAAOjD,mBAAA,CAAoB3E,MAApB,CAAP,CAF8C;AAAA,EAh+B1B;AAAA,CAo+BxB,SAAS4I,oDAAT,CAA8DxC,MAA9D,EAAsE;AAAA,EAClE,IAAIpG,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CADkE;AAAA,EAElE,IAAI9yC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAFkE;AAAA,EAGlE,IAAIsE,mCAAA,CAAoC1E,MAApC,MAAgD,IAAhD,IAAwDlrC,KAAA,KAAU,QAAtE,EAAgF;AAAA,GAC5E,OAAOwoC,mBAAA,CAAoB/uB,SAApB,CAAP,CAD4E;AAAA,GAHd;AAAA,EAMlE,IAAIzZ,KAAA,KAAU,SAAd,EAAyB;AAAA,GACrB,OAAO0oC,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CADqB;AAAA,GANyC;AAAA,EASlE,OAAOiI,gCAAA,CAAiCrC,MAAjC,CAAP,CATkE;AAAA,EAp+B9C;AAAA,CA++BxB,SAASyC,sDAAT,CAAgEzC,MAAhE,EAAwE92B,KAAxE,EAA+E;AAAA,EAC3E,IAAI82B,MAAA,CAAO0C,mBAAP,KAA+B,SAAnC,EAA8C;AAAA,GAC1CtB,gCAAA,CAAiCpB,MAAjC,EAAyC92B,KAAzC,EAD0C;AAAA,GAA9C,MAGK;AAAA,GACDy5B,yCAAA,CAA0C3C,MAA1C,EAAkD92B,KAAlD,EADC;AAAA,GAJsE;AAAA,EA/+BvD;AAAA,CAu/BxB,SAASq3B,qDAAT,CAA+DP,MAA/D,EAAuE92B,KAAvE,EAA8E;AAAA,EAC1E,IAAI82B,MAAA,CAAO4C,kBAAP,KAA8B,SAAlC,EAA6C;AAAA,GACzCC,+BAAA,CAAgC7C,MAAhC,EAAwC92B,KAAxC,EADyC;AAAA,GAA7C,MAGK;AAAA,GACD45B,wCAAA,CAAyC9C,MAAzC,EAAiD92B,KAAjD,EADC;AAAA,GAJqE;AAAA,EAv/BtD;AAAA,CA+/BxB,SAASg5B,yCAAT,CAAmDlC,MAAnD,EAA2D;AAAA,EACvD,IAAIpG,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CADuD;AAAA,EAEvD,IAAI9yC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAFuD;AAAA,EAGvD,IAAItrC,KAAA,KAAU,SAAV,IAAuBA,KAAA,KAAU,UAArC,EAAiD;AAAA,GAC7C,OAAO,IAAP,CAD6C;AAAA,GAHM;AAAA,EAMvD,IAAIA,KAAA,KAAU,QAAd,EAAwB;AAAA,GACpB,OAAO,CAAP,CADoB;AAAA,GAN+B;AAAA,EASvD,OAAOq0C,6CAAA,CAA8CnJ,MAAA,CAAOuF,yBAArD,CAAP,CATuD;AAAA,EA//BnC;AAAA,CA0gCxB,SAASmD,kCAAT,CAA4CtC,MAA5C,EAAoD;AAAA,EAChD,IAAIpG,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CADgD;AAAA,EAEhD,IAAIwB,aAAA,GAAgB,IAAI94B,SAAJ,CAAc,mFAAd,CAApB,CAFgD;AAAA,EAGhDq2B,qDAAA,CAAsDP,MAAtD,EAA8DgD,aAA9D,EAHgD;AAAA,EAMhDP,sDAAA,CAAuDzC,MAAvD,EAA+DgD,aAA/D,EANgD;AAAA,EAOhDpJ,MAAA,CAAOsF,OAAP,GAAiB/2B,SAAjB,CAPgD;AAAA,EAQhD63B,MAAA,CAAOwB,oBAAP,GAA8Br5B,SAA9B,CARgD;AAAA,EA1gC5B;AAAA,CAohCxB,SAASo6B,gCAAT,CAA0CvC,MAA1C,EAAkD9+B,KAAlD,EAAyD;AAAA,EACrD,IAAI04B,MAAA,GAASoG,MAAA,CAAOwB,oBAApB,CADqD;AAAA,EAErD,IAAI/6B,UAAA,GAAamzB,MAAA,CAAOuF,yBAAxB,CAFqD;AAAA,EAGrD,IAAI8D,SAAA,GAAYC,2CAAA,CAA4Cz8B,UAA5C,EAAwDvF,KAAxD,CAAhB,CAHqD;AAAA,EAIrD,IAAI04B,MAAA,KAAWoG,MAAA,CAAOwB,oBAAtB,EAA4C;AAAA,GACxC,OAAOpK,mBAAA,CAAoB6K,0BAAA,CAA2B,UAA3B,CAApB,CAAP,CADwC;AAAA,GAJS;AAAA,EAOrD,IAAIvzC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAPqD;AAAA,EAQrD,IAAItrC,KAAA,KAAU,SAAd,EAAyB;AAAA,GACrB,OAAO0oC,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CADqB;AAAA,GAR4B;AAAA,EAWrD,IAAIkE,mCAAA,CAAoC1E,MAApC,MAAgD,IAAhD,IAAwDlrC,KAAA,KAAU,QAAtE,EAAgF;AAAA,GAC5E,OAAO0oC,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,0DAAd,CAApB,CAAP,CAD4E;AAAA,GAX3B;AAAA,EAcrD,IAAIxb,KAAA,KAAU,UAAd,EAA0B;AAAA,GACtB,OAAO0oC,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CADsB;AAAA,GAd2B;AAAA,EAiBrD,IAAIxY,OAAA,GAAUue,6BAAA,CAA8BvG,MAA9B,CAAd,CAjBqD;AAAA,EAkBrDuJ,oCAAA,CAAqC18B,UAArC,EAAiDvF,KAAjD,EAAwD+hC,SAAxD,EAlBqD;AAAA,EAmBrD,OAAOrhB,OAAP,CAnBqD;AAAA,EAphCjC;AAAA,CAyiCxB,IAAIod,+BAAA,GAAiD,YAAY;AAAA,EAE7D,SAASA,+BAAT,GAA2C;AAAA,GACvC,MAAM,IAAI90B,SAAJ,CAAc,kEAAd,CAAN,CADuC;AAAA,GAFkB;AAAA,EAK7D80B,+BAAA,CAAgCh3B,SAAhC,CAA0CkB,KAA1C,GAAkD,UAAUgI,CAAV,EAAa;AAAA,GAC3D,IAAIkyB,iCAAA,CAAkC,IAAlC,MAA4C,KAAhD,EAAuD;AAAA,IACnD,MAAM,IAAIl5B,SAAJ,CAAc,uGAAd,CAAN,CADmD;AAAA,IADI;AAAA,GAI3D,IAAIxb,KAAA,GAAQ,KAAK20C,yBAAL,CAA+BrJ,MAA3C,CAJ2D;AAAA,GAK3D,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,IAGtB,OAHsB;AAAA,IALiC;AAAA,GAU3D40C,oCAAA,CAAqC,IAArC,EAA2CpyB,CAA3C,EAV2D;AAAA,GAA/D,CAL6D;AAAA,EAkB7D8tB,+BAAA,CAAgCh3B,SAAhC,CAA0Cy1B,UAA1C,IAAwD,UAAU92C,MAAV,EAAkB;AAAA,GACtE,IAAIsH,MAAA,GAAS,KAAKs1C,eAAL,CAAqB58C,MAArB,CAAb,CADsE;AAAA,GAEtE68C,8CAAA,CAA+C,IAA/C,EAFsE;AAAA,GAGtE,OAAOv1C,MAAP,CAHsE;AAAA,GAA1E,CAlB6D;AAAA,EAwB7D+wC,+BAAA,CAAgCh3B,SAAhC,CAA0C01B,UAA1C,IAAwD,YAAY;AAAA,GAChEF,UAAA,CAAW,IAAX,EADgE;AAAA,GAApE,CAxB6D;AAAA,EA2B7D,OAAOwB,+BAAP,CA3B6D;AAAA,EAAZ,EAArD,CAziCwB;AAAA,CAukCxB,SAASoE,iCAAT,CAA2CvoB,CAA3C,EAA8C;AAAA,EAC1C,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADoB;AAAA,EAI1C,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,2BAAxC,CAAL,EAA2E;AAAA,GACvE,OAAO,KAAP,CADuE;AAAA,GAJjC;AAAA,EAO1C,OAAO,IAAP,CAP0C;AAAA,EAvkCtB;AAAA,CAglCxB,SAASokB,oCAAT,CAA8CrF,MAA9C,EAAsDnzB,UAAtD,EAAkEm4B,cAAlE,EAAkFC,cAAlF,EAAkGC,cAAlG,EAAkHC,cAAlH,EAAkIvH,aAAlI,EAAiJuG,aAAjJ,EAAgK;AAAA,EAC5Jt3B,UAAA,CAAW48B,yBAAX,GAAuCzJ,MAAvC,CAD4J;AAAA,EAE5JA,MAAA,CAAOuF,yBAAP,GAAmC14B,UAAnC,CAF4J;AAAA,EAI5JA,UAAA,CAAW22B,MAAX,GAAoBj1B,SAApB,CAJ4J;AAAA,EAK5J1B,UAAA,CAAW42B,eAAX,GAA6Bl1B,SAA7B,CAL4J;AAAA,EAM5Jq1B,UAAA,CAAW/2B,UAAX,EAN4J;AAAA,EAO5JA,UAAA,CAAWg6B,QAAX,GAAsB,KAAtB,CAP4J;AAAA,EAQ5Jh6B,UAAA,CAAWg9B,sBAAX,GAAoC1F,aAApC,CAR4J;AAAA,EAS5Jt3B,UAAA,CAAWi9B,YAAX,GAA0BlM,aAA1B,CAT4J;AAAA,EAU5J/wB,UAAA,CAAWk9B,eAAX,GAA6B9E,cAA7B,CAV4J;AAAA,EAW5Jp4B,UAAA,CAAWm9B,eAAX,GAA6B9E,cAA7B,CAX4J;AAAA,EAY5Jr4B,UAAA,CAAW88B,eAAX,GAA6BxE,cAA7B,CAZ4J;AAAA,EAa5J,IAAIuC,YAAA,GAAeuC,8CAAA,CAA+Cp9B,UAA/C,CAAnB,CAb4J;AAAA,EAc5J46B,gCAAA,CAAiCzH,MAAjC,EAAyC0H,YAAzC,EAd4J;AAAA,EAe5J,IAAIwC,WAAA,GAAclF,cAAA,EAAlB,CAf4J;AAAA,EAgB5J,IAAImF,YAAA,GAAe7M,mBAAA,CAAoB4M,WAApB,CAAnB,CAhB4J;AAAA,EAiB5J9L,WAAA,CAAY+L,YAAZ,EAA0B,YAAY;AAAA,GAClCt9B,UAAA,CAAWg6B,QAAX,GAAsB,IAAtB,CADkC;AAAA,GAElCuD,mDAAA,CAAoDv9B,UAApD,EAFkC;AAAA,GAAtC,EAGG,UAAU7D,CAAV,EAAa;AAAA,GACZ6D,UAAA,CAAWg6B,QAAX,GAAsB,IAAtB,CADY;AAAA,GAEZJ,+BAAA,CAAgCzG,MAAhC,EAAwCh3B,CAAxC,EAFY;AAAA,GAHhB,EAjB4J;AAAA,EAhlCxI;AAAA,CAymCxB,SAASo7B,sDAAT,CAAgEpE,MAAhE,EAAwEgE,cAAxE,EAAwFpG,aAAxF,EAAuGuG,aAAvG,EAAsH;AAAA,EAClH,IAAIt3B,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAco5C,+BAAA,CAAgCh3B,SAA9C,CAAjB,CADkH;AAAA,EAElH,SAAS42B,cAAT,GAA0B;AAAA,GACtB,OAAOzH,YAAA,CAAayG,cAAb,EAA6B,OAA7B,EAAsC,CAACn3B,UAAD,CAAtC,CAAP,CADsB;AAAA,GAFwF;AAAA,EAKlH,IAAIo4B,cAAA,GAAiBlI,mCAAA,CAAoCiH,cAApC,EAAoD,OAApD,EAA6D,CAA7D,EAAgE,CAACn3B,UAAD,CAAhE,CAArB,CALkH;AAAA,EAMlH,IAAIq4B,cAAA,GAAiBnI,mCAAA,CAAoCiH,cAApC,EAAoD,OAApD,EAA6D,CAA7D,EAAgE,EAAhE,CAArB,CANkH;AAAA,EAOlH,IAAImB,cAAA,GAAiBpI,mCAAA,CAAoCiH,cAApC,EAAoD,OAApD,EAA6D,CAA7D,EAAgE,EAAhE,CAArB,CAPkH;AAAA,EAQlHqB,oCAAA,CAAqCrF,MAArC,EAA6CnzB,UAA7C,EAAyDm4B,cAAzD,EAAyEC,cAAzE,EAAyFC,cAAzF,EAAyGC,cAAzG,EAAyHvH,aAAzH,EAAwIuG,aAAxI,EARkH;AAAA,EAzmC9F;AAAA,CAonCxB,SAASyF,8CAAT,CAAwD/8B,UAAxD,EAAoE;AAAA,EAChEA,UAAA,CAAWk9B,eAAX,GAA6Bx7B,SAA7B,CADgE;AAAA,EAEhE1B,UAAA,CAAWm9B,eAAX,GAA6Bz7B,SAA7B,CAFgE;AAAA,EAGhE1B,UAAA,CAAW88B,eAAX,GAA6Bp7B,SAA7B,CAHgE;AAAA,EAIhE1B,UAAA,CAAWg9B,sBAAX,GAAoCt7B,SAApC,CAJgE;AAAA,EApnC5C;AAAA,CA0nCxB,SAAS+3B,oCAAT,CAA8Cz5B,UAA9C,EAA0D;AAAA,EACtD62B,oBAAA,CAAqB72B,UAArB,EAAiC,OAAjC,EAA0C,CAA1C,EADsD;AAAA,EAEtDu9B,mDAAA,CAAoDv9B,UAApD,EAFsD;AAAA,EA1nClC;AAAA,CA8nCxB,SAASy8B,2CAAT,CAAqDz8B,UAArD,EAAiEvF,KAAjE,EAAwE;AAAA,EACpE,IAAI;AAAA,GACA,OAAOuF,UAAA,CAAWg9B,sBAAX,CAAkCviC,KAAlC,CAAP,CADA;AAAA,GAAJ,CAGA,OAAO+iC,UAAP,EAAmB;AAAA,GACfC,4CAAA,CAA6Cz9B,UAA7C,EAAyDw9B,UAAzD,EADe;AAAA,GAEf,OAAO,CAAP,CAFe;AAAA,GAJiD;AAAA,EA9nChD;AAAA,CAuoCxB,SAASlB,6CAAT,CAAuDt8B,UAAvD,EAAmE;AAAA,EAC/D,OAAOA,UAAA,CAAWi9B,YAAX,GAA0Bj9B,UAAA,CAAW42B,eAA5C,CAD+D;AAAA,EAvoC3C;AAAA,CA0oCxB,SAAS8F,oCAAT,CAA8C18B,UAA9C,EAA0DvF,KAA1D,EAAiE+hC,SAAjE,EAA4E;AAAA,EACxE,IAAIkB,WAAA,GAAc,EAAEjjC,KAAA,EAAOA,KAAT,EAAlB,CADwE;AAAA,EAExE,IAAI;AAAA,GACAo8B,oBAAA,CAAqB72B,UAArB,EAAiC09B,WAAjC,EAA8ClB,SAA9C,EADA;AAAA,GAAJ,CAGA,OAAOmB,QAAP,EAAiB;AAAA,GACbF,4CAAA,CAA6Cz9B,UAA7C,EAAyD29B,QAAzD,EADa;AAAA,GAEb,OAFa;AAAA,GALuD;AAAA,EASxE,IAAIxK,MAAA,GAASnzB,UAAA,CAAW48B,yBAAxB,CATwE;AAAA,EAUxE,IAAI/E,mCAAA,CAAoC1E,MAApC,MAAgD,KAAhD,IAAyDA,MAAA,CAAOI,MAAP,KAAkB,UAA/E,EAA2F;AAAA,GACvF,IAAIsH,YAAA,GAAeuC,8CAAA,CAA+Cp9B,UAA/C,CAAnB,CADuF;AAAA,GAEvF46B,gCAAA,CAAiCzH,MAAjC,EAAyC0H,YAAzC,EAFuF;AAAA,GAVnB;AAAA,EAcxE0C,mDAAA,CAAoDv9B,UAApD,EAdwE;AAAA,EA1oCpD;AAAA,CA2pCxB,SAASu9B,mDAAT,CAA6Dv9B,UAA7D,EAAyE;AAAA,EACrE,IAAImzB,MAAA,GAASnzB,UAAA,CAAW48B,yBAAxB,CADqE;AAAA,EAErE,IAAI58B,UAAA,CAAWg6B,QAAX,KAAwB,KAA5B,EAAmC;AAAA,GAC/B,OAD+B;AAAA,GAFkC;AAAA,EAKrE,IAAI7G,MAAA,CAAOyF,qBAAP,KAAiCl3B,SAArC,EAAgD;AAAA,GAC5C,OAD4C;AAAA,GALqB;AAAA,EAQrE,IAAIzZ,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CARqE;AAAA,EASrE,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,GACtB4xC,4BAAA,CAA6B1G,MAA7B,EADsB;AAAA,GAEtB,OAFsB;AAAA,GAT2C;AAAA,EAarE,IAAInzB,UAAA,CAAW22B,MAAX,CAAkBv8B,MAAlB,KAA6B,CAAjC,EAAoC;AAAA,GAChC,OADgC;AAAA,GAbiC;AAAA,EAgBrE,IAAIsjC,WAAA,GAAc5G,cAAA,CAAe92B,UAAf,CAAlB,CAhBqE;AAAA,EAiBrE,IAAI09B,WAAA,KAAgB,OAApB,EAA6B;AAAA,GACzBE,2CAAA,CAA4C59B,UAA5C,EADyB;AAAA,GAA7B,MAGK;AAAA,GACD69B,2CAAA,CAA4C79B,UAA5C,EAAwD09B,WAAA,CAAYjjC,KAApE,EADC;AAAA,GApBgE;AAAA,EA3pCjD;AAAA,CAmrCxB,SAASgjC,4CAAT,CAAsDz9B,UAAtD,EAAkEyC,KAAlE,EAAyE;AAAA,EACrE,IAAIzC,UAAA,CAAW48B,yBAAX,CAAqCrJ,MAArC,KAAgD,UAApD,EAAgE;AAAA,GAC5DsJ,oCAAA,CAAqC78B,UAArC,EAAiDyC,KAAjD,EAD4D;AAAA,GADK;AAAA,EAnrCjD;AAAA,CAwrCxB,SAASm7B,2CAAT,CAAqD59B,UAArD,EAAiE;AAAA,EAC7D,IAAImzB,MAAA,GAASnzB,UAAA,CAAW48B,yBAAxB,CAD6D;AAAA,EAE7DnC,sCAAA,CAAuCtH,MAAvC,EAF6D;AAAA,EAG7DqD,YAAA,CAAax2B,UAAb,EAH6D;AAAA,EAI7D,IAAI89B,gBAAA,GAAmB99B,UAAA,CAAWm9B,eAAX,EAAvB,CAJ6D;AAAA,EAK7DJ,8CAAA,CAA+C/8B,UAA/C,EAL6D;AAAA,EAM7DuxB,WAAA,CAAYuM,gBAAZ,EAA8B,YAAY;AAAA,GACtCxD,iCAAA,CAAkCnH,MAAlC,EADsC;AAAA,GAA1C,EAEG,UAAUjzC,MAAV,EAAkB;AAAA,GACjBs6C,0CAAA,CAA2CrH,MAA3C,EAAmDjzC,MAAnD,EADiB;AAAA,GAFrB,EAN6D;AAAA,EAxrCzC;AAAA,CAosCxB,SAAS29C,2CAAT,CAAqD79B,UAArD,EAAiEvF,KAAjE,EAAwE;AAAA,EACpE,IAAI04B,MAAA,GAASnzB,UAAA,CAAW48B,yBAAxB,CADoE;AAAA,EAEpElC,2CAAA,CAA4CvH,MAA5C,EAFoE;AAAA,EAGpE,IAAI4K,gBAAA,GAAmB/9B,UAAA,CAAWk9B,eAAX,CAA2BziC,KAA3B,CAAvB,CAHoE;AAAA,EAIpE82B,WAAA,CAAYwM,gBAAZ,EAA8B,YAAY;AAAA,GACtC3D,iCAAA,CAAkCjH,MAAlC,EADsC;AAAA,GAEtC,IAAIlrC,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAFsC;AAAA,GAGtCiD,YAAA,CAAax2B,UAAb,EAHsC;AAAA,GAItC,IAAI63B,mCAAA,CAAoC1E,MAApC,MAAgD,KAAhD,IAAyDlrC,KAAA,KAAU,UAAvE,EAAmF;AAAA,IAC/E,IAAI4yC,YAAA,GAAeuC,8CAAA,CAA+Cp9B,UAA/C,CAAnB,CAD+E;AAAA,IAE/E46B,gCAAA,CAAiCzH,MAAjC,EAAyC0H,YAAzC,EAF+E;AAAA,IAJ7C;AAAA,GAQtC0C,mDAAA,CAAoDv9B,UAApD,EARsC;AAAA,GAA1C,EASG,UAAU9f,MAAV,EAAkB;AAAA,GACjB,IAAIizC,MAAA,CAAOI,MAAP,KAAkB,UAAtB,EAAkC;AAAA,IAC9BwJ,8CAAA,CAA+C/8B,UAA/C,EAD8B;AAAA,IADjB;AAAA,GAIjBq6B,0CAAA,CAA2ClH,MAA3C,EAAmDjzC,MAAnD,EAJiB;AAAA,GATrB,EAJoE;AAAA,EApsChD;AAAA,CAwtCxB,SAASk9C,8CAAT,CAAwDp9B,UAAxD,EAAoE;AAAA,EAChE,IAAIg+B,WAAA,GAAc1B,6CAAA,CAA8Ct8B,UAA9C,CAAlB,CADgE;AAAA,EAEhE,OAAOg+B,WAAA,IAAe,CAAtB,CAFgE;AAAA,EAxtC5C;AAAA,CA6tCxB,SAASnB,oCAAT,CAA8C78B,UAA9C,EAA0DyC,KAA1D,EAAiE;AAAA,EAC7D,IAAI0wB,MAAA,GAASnzB,UAAA,CAAW48B,yBAAxB,CAD6D;AAAA,EAE7DG,8CAAA,CAA+C/8B,UAA/C,EAF6D;AAAA,EAG7Dq5B,2BAAA,CAA4BlG,MAA5B,EAAoC1wB,KAApC,EAH6D;AAAA,EA7tCzC;AAAA,CAmuCxB,SAASg1B,yBAAT,CAAmCn0C,IAAnC,EAAyC;AAAA,EACrC,OAAO,IAAImgB,SAAJ,CAAc,8BAA8BngB,IAA9B,GAAqC,uCAAnD,CAAP,CADqC;AAAA,EAnuCjB;AAAA,CAuuCxB,SAASi4C,gCAAT,CAA0Cj4C,IAA1C,EAAgD;AAAA,EAC5C,OAAO,IAAImgB,SAAJ,CAAc,2CAA2CngB,IAA3C,GAAkD,oDAAhE,CAAP,CAD4C;AAAA,EAvuCxB;AAAA,CA0uCxB,SAASk4C,0BAAT,CAAoCl4C,IAApC,EAA0C;AAAA,EACtC,OAAO,IAAImgB,SAAJ,CAAc,YAAYngB,IAAZ,GAAmB,mCAAjC,CAAP,CADsC;AAAA,EA1uClB;AAAA,CA6uCxB,SAAS43C,oCAAT,CAA8C3B,MAA9C,EAAsD;AAAA,EAClDA,MAAA,CAAOrF,cAAP,GAAwB7C,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAC1D24C,MAAA,CAAOpF,sBAAP,GAAgCxzC,OAAhC,CAD0D;AAAA,GAE1D44C,MAAA,CAAOnF,qBAAP,GAA+BxzC,MAA/B,CAF0D;AAAA,GAG1D24C,MAAA,CAAO0C,mBAAP,GAA6B,SAA7B,CAH0D;AAAA,GAAtC,CAAxB,CADkD;AAAA,EA7uC9B;AAAA,CAovCxB,SAASZ,8CAAT,CAAwD9B,MAAxD,EAAgEr5C,MAAhE,EAAwE;AAAA,EACpEg7C,oCAAA,CAAqC3B,MAArC,EADoE;AAAA,EAEpEoB,gCAAA,CAAiCpB,MAAjC,EAAyCr5C,MAAzC,EAFoE;AAAA,EApvChD;AAAA,CAwvCxB,SAASk7C,8CAAT,CAAwD7B,MAAxD,EAAgE;AAAA,EAC5D2B,oCAAA,CAAqC3B,MAArC,EAD4D;AAAA,EAE5DgB,iCAAA,CAAkChB,MAAlC,EAF4D;AAAA,EAxvCxC;AAAA,CA4vCxB,SAASoB,gCAAT,CAA0CpB,MAA1C,EAAkDr5C,MAAlD,EAA0D;AAAA,EACtD2xC,yBAAA,CAA0B0H,MAAA,CAAOrF,cAAjC,EADsD;AAAA,EAEtDqF,MAAA,CAAOnF,qBAAP,CAA6Bl0C,MAA7B,EAFsD;AAAA,EAGtDq5C,MAAA,CAAOpF,sBAAP,GAAgCzyB,SAAhC,CAHsD;AAAA,EAItD63B,MAAA,CAAOnF,qBAAP,GAA+B1yB,SAA/B,CAJsD;AAAA,EAKtD63B,MAAA,CAAO0C,mBAAP,GAA6B,UAA7B,CALsD;AAAA,EA5vClC;AAAA,CAmwCxB,SAASC,yCAAT,CAAmD3C,MAAnD,EAA2Dr5C,MAA3D,EAAmE;AAAA,EAC/Dm7C,8CAAA,CAA+C9B,MAA/C,EAAuDr5C,MAAvD,EAD+D;AAAA,EAnwC3C;AAAA,CAswCxB,SAASq6C,iCAAT,CAA2ChB,MAA3C,EAAmD;AAAA,EAC/CA,MAAA,CAAOpF,sBAAP,CAA8BzyB,SAA9B,EAD+C;AAAA,EAE/C63B,MAAA,CAAOpF,sBAAP,GAAgCzyB,SAAhC,CAF+C;AAAA,EAG/C63B,MAAA,CAAOnF,qBAAP,GAA+B1yB,SAA/B,CAH+C;AAAA,EAI/C63B,MAAA,CAAO0C,mBAAP,GAA6B,UAA7B,CAJ+C;AAAA,EAtwC3B;AAAA,CA4wCxB,SAASjB,mCAAT,CAA6CzB,MAA7C,EAAqD;AAAA,EACjDA,MAAA,CAAOmC,aAAP,GAAuBrK,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GACzD24C,MAAA,CAAO0E,qBAAP,GAA+Bt9C,OAA/B,CADyD;AAAA,GAEzD44C,MAAA,CAAO2E,oBAAP,GAA8Bt9C,MAA9B,CAFyD;AAAA,GAAtC,CAAvB,CADiD;AAAA,EAKjD24C,MAAA,CAAO4C,kBAAP,GAA4B,SAA5B,CALiD;AAAA,EA5wC7B;AAAA,CAmxCxB,SAAShB,6CAAT,CAAuD5B,MAAvD,EAA+Dr5C,MAA/D,EAAuE;AAAA,EACnE86C,mCAAA,CAAoCzB,MAApC,EADmE;AAAA,EAEnE6C,+BAAA,CAAgC7C,MAAhC,EAAwCr5C,MAAxC,EAFmE;AAAA,EAnxC/C;AAAA,CAuxCxB,SAAS+6C,6CAAT,CAAuD1B,MAAvD,EAA+D;AAAA,EAC3DyB,mCAAA,CAAoCzB,MAApC,EAD2D;AAAA,EAE3DC,gCAAA,CAAiCD,MAAjC,EAF2D;AAAA,EAvxCvC;AAAA,CA2xCxB,SAAS6C,+BAAT,CAAyC7C,MAAzC,EAAiDr5C,MAAjD,EAAyD;AAAA,EACrD2xC,yBAAA,CAA0B0H,MAAA,CAAOmC,aAAjC,EADqD;AAAA,EAErDnC,MAAA,CAAO2E,oBAAP,CAA4Bh+C,MAA5B,EAFqD;AAAA,EAGrDq5C,MAAA,CAAO0E,qBAAP,GAA+Bv8B,SAA/B,CAHqD;AAAA,EAIrD63B,MAAA,CAAO2E,oBAAP,GAA8Bx8B,SAA9B,CAJqD;AAAA,EAKrD63B,MAAA,CAAO4C,kBAAP,GAA4B,UAA5B,CALqD;AAAA,EA3xCjC;AAAA,CAkyCxB,SAASrB,8BAAT,CAAwCvB,MAAxC,EAAgD;AAAA,EAC5CyB,mCAAA,CAAoCzB,MAApC,EAD4C;AAAA,EAlyCxB;AAAA,CAqyCxB,SAAS8C,wCAAT,CAAkD9C,MAAlD,EAA0Dr5C,MAA1D,EAAkE;AAAA,EAC9Di7C,6CAAA,CAA8C5B,MAA9C,EAAsDr5C,MAAtD,EAD8D;AAAA,EAryC1C;AAAA,CAwyCxB,SAASs5C,gCAAT,CAA0CD,MAA1C,EAAkD;AAAA,EAC9CA,MAAA,CAAO0E,qBAAP,CAA6Bv8B,SAA7B,EAD8C;AAAA,EAE9C63B,MAAA,CAAO0E,qBAAP,GAA+Bv8B,SAA/B,CAF8C;AAAA,EAG9C63B,MAAA,CAAO2E,oBAAP,GAA8Bx8B,SAA9B,CAH8C;AAAA,EAI9C63B,MAAA,CAAO4C,kBAAP,GAA4B,WAA5B,CAJ8C;AAAA,EAxyC1B;AAAA,CA+yCxB,SAASgC,aAAT,CAAuB54C,KAAvB,EAA8B;AAAA,EAC1B,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAA,KAAU,IAA3C,EAAiD;AAAA,GAC7C,OAAO,KAAP,CAD6C;AAAA,GADvB;AAAA,EAI1B,IAAI;AAAA,GACA,OAAO,OAAOA,KAAA,CAAM64C,OAAb,KAAyB,SAAhC,CADA;AAAA,GAAJ,CAGA,OAAOxI,EAAP,EAAW;AAAA,GAEP,OAAO,KAAP,CAFO;AAAA,GAPe;AAAA,EA/yCN;AAAA,CA6zCxB,IAAIyI,kBAAA,GAAqB,OAAOC,YAAP,KAAwB,WAAxB,GAAsCA,YAAtC,GAAqD58B,SAA9E,CA7zCwB;AAAA,CAg0CxB,SAAS68B,yBAAT,CAAmCp3C,IAAnC,EAAyC;AAAA,EACrC,IAAI,CAAE,QAAOA,IAAP,KAAgB,UAAhB,IAA8B,OAAOA,IAAP,KAAgB,QAA9C,CAAN,EAA+D;AAAA,GAC3D,OAAO,KAAP,CAD2D;AAAA,GAD1B;AAAA,EAIrC,IAAI;AAAA,GACA,IAAIA,IAAJ,GADA;AAAA,GAEA,OAAO,IAAP,CAFA;AAAA,GAAJ,CAIA,OAAOyuC,EAAP,EAAW;AAAA,GACP,OAAO,KAAP,CADO;AAAA,GAR0B;AAAA,EAh0CjB;AAAA,CA40CxB,SAAS4I,0BAAT,GAAsC;AAAA,EAClC,IAAIr3C,IAAA,GAAO,SAASm3C,YAAT,CAAsBG,OAAtB,EAA+Bn7C,IAA/B,EAAqC;AAAA,GAC5C,KAAKm7C,OAAL,GAAeA,OAAA,IAAW,EAA1B,CAD4C;AAAA,GAE5C,KAAKn7C,IAAL,GAAYA,IAAA,IAAQ,OAApB,CAF4C;AAAA,GAG5C,IAAIo7C,KAAA,CAAMC,iBAAV,EAA6B;AAAA,IACzBD,KAAA,CAAMC,iBAAN,CAAwB,IAAxB,EAA8B,KAAK1/C,WAAnC,EADyB;AAAA,IAHe;AAAA,GAAhD,CADkC;AAAA,EAQlCkI,IAAA,CAAKoa,SAAL,GAAiBne,MAAA,CAAOjE,MAAP,CAAcu/C,KAAA,CAAMn9B,SAApB,CAAjB,CARkC;AAAA,EASlCne,MAAA,CAAOwf,cAAP,CAAsBzb,IAAA,CAAKoa,SAA3B,EAAsC,aAAtC,EAAqD;AAAA,GAAEhc,KAAA,EAAO4B,IAAT;AAAA,GAAezB,QAAA,EAAU,IAAzB;AAAA,GAA+BD,YAAA,EAAc,IAA7C;AAAA,GAArD,EATkC;AAAA,EAUlC,OAAO0B,IAAP,CAVkC;AAAA,EA50Cd;AAAA,CAw1CxB,IAAIy3C,cAAA,GAAiBL,yBAAA,CAA0BF,kBAA1B,IAAgDA,kBAAhD,GAAqEG,0BAAA,EAA1F,CAx1CwB;AAAA,CA01CxB,SAASK,oBAAT,CAA8Bh+B,MAA9B,EAAsC8uB,IAAtC,EAA4CmP,YAA5C,EAA0DC,YAA1D,EAAwEzI,aAAxE,EAAuF0I,MAAvF,EAA+F;AAAA,EAC3F,IAAI9L,MAAA,GAASsB,kCAAA,CAAmC3zB,MAAnC,CAAb,CAD2F;AAAA,EAE3F,IAAI04B,MAAA,GAASvB,kCAAA,CAAmCrI,IAAnC,CAAb,CAF2F;AAAA,EAG3F9uB,MAAA,CAAO60B,UAAP,GAAoB,IAApB,CAH2F;AAAA,EAI3F,IAAIuJ,YAAA,GAAe,KAAnB,CAJ2F;AAAA,EAM3F,IAAIC,YAAA,GAAezO,mBAAA,CAAoB/uB,SAApB,CAAnB,CAN2F;AAAA,EAO3F,OAAO2vB,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GACzC,IAAI03C,cAAJ,CADyC;AAAA,GAEzC,IAAI0G,MAAA,KAAWt9B,SAAf,EAA0B;AAAA,IACtB42B,cAAA,GAAiB,YAAY;AAAA,KACzB,IAAI71B,KAAA,GAAQ,IAAIm8B,cAAJ,CAAmB,SAAnB,EAA8B,YAA9B,CAAZ,CADyB;AAAA,KAEzB,IAAIO,OAAA,GAAU,EAAd,CAFyB;AAAA,KAGzB,IAAIJ,YAAA,KAAiB,KAArB,EAA4B;AAAA,MACxBI,OAAA,CAAQh5B,IAAR,CAAa,YAAY;AAAA,OACrB,IAAIwpB,IAAA,CAAK4D,MAAL,KAAgB,UAApB,EAAgC;AAAA,QAC5B,OAAOqE,mBAAA,CAAoBjI,IAApB,EAA0BltB,KAA1B,CAAP,CAD4B;AAAA,QADX;AAAA,OAIrB,OAAOguB,mBAAA,CAAoB/uB,SAApB,CAAP,CAJqB;AAAA,OAAzB,EADwB;AAAA,MAHH;AAAA,KAWzB,IAAI40B,aAAA,KAAkB,KAAtB,EAA6B;AAAA,MACzB6I,OAAA,CAAQh5B,IAAR,CAAa,YAAY;AAAA,OACrB,IAAItF,MAAA,CAAO0yB,MAAP,KAAkB,UAAtB,EAAkC;AAAA,QAC9B,OAAOM,oBAAA,CAAqBhzB,MAArB,EAA6B4B,KAA7B,CAAP,CAD8B;AAAA,QADb;AAAA,OAIrB,OAAOguB,mBAAA,CAAoB/uB,SAApB,CAAP,CAJqB;AAAA,OAAzB,EADyB;AAAA,MAXJ;AAAA,KAmBzB09B,kBAAA,CAAmB,YAAY;AAAA,MAAE,OAAOvoB,OAAA,CAAQyE,GAAR,CAAY6jB,OAAA,CAAQE,GAAR,CAAY,UAAUC,MAAV,EAAkB;AAAA,OAAE,OAAOA,MAAA,EAAP,CAAF;AAAA,OAA9B,CAAZ,CAAP,CAAF;AAAA,MAA/B,EAA6G,IAA7G,EAAmH78B,KAAnH,EAnByB;AAAA,KAA7B,CADsB;AAAA,IAsBtB,IAAIu8B,MAAA,CAAOZ,OAAP,KAAmB,IAAvB,EAA6B;AAAA,KACzB9F,cAAA,GADyB;AAAA,KAEzB,OAFyB;AAAA,KAtBP;AAAA,IA0BtB0G,MAAA,CAAO7f,gBAAP,CAAwB,OAAxB,EAAiCmZ,cAAjC,EA1BsB;AAAA,IAFe;AAAA,GAiCzC,SAASiH,QAAT,GAAoB;AAAA,IAChB,OAAOlO,UAAA,CAAW,UAAUmO,WAAV,EAAuBC,UAAvB,EAAmC;AAAA,KACjD,SAAS32C,IAAT,CAAcP,IAAd,EAAoB;AAAA,MAChB,IAAIA,IAAJ,EAAU;AAAA,OACNi3C,WAAA,GADM;AAAA,OAAV,MAGK;AAAA,OAGDlO,kBAAA,CAAmBoO,QAAA,EAAnB,EAA+B52C,IAA/B,EAAqC22C,UAArC,EAHC;AAAA,OAJW;AAAA,MAD6B;AAAA,KAWjD32C,IAAA,CAAK,KAAL,EAXiD;AAAA,KAA9C,CAAP,CADgB;AAAA,IAjCqB;AAAA,GAgDzC,SAAS42C,QAAT,GAAoB;AAAA,IAChB,IAAIT,YAAA,KAAiB,IAArB,EAA2B;AAAA,KACvB,OAAOxO,mBAAA,CAAoB,IAApB,CAAP,CADuB;AAAA,KADX;AAAA,IAIhB,OAAOa,kBAAA,CAAmBiI,MAAA,CAAOmC,aAA1B,EAAyC,YAAY;AAAA,KACxD,OAAOpK,kBAAA,CAAmBkE,+BAAA,CAAgCtC,MAAhC,CAAnB,EAA4D,UAAU1rC,MAAV,EAAkB;AAAA,MACjF,IAAIA,MAAA,CAAOe,IAAP,KAAgB,IAApB,EAA0B;AAAA,OACtB,OAAO,IAAP,CADsB;AAAA,OADuD;AAAA,MAIjF22C,YAAA,GAAe5N,kBAAA,CAAmBwK,gCAAA,CAAiCvC,MAAjC,EAAyC/xC,MAAA,CAAOjC,KAAhD,CAAnB,EAA2Emc,SAA3E,EAAsF0tB,IAAtF,CAAf,CAJiF;AAAA,MAKjF,OAAO,KAAP,CALiF;AAAA,MAA9E,CAAP,CADwD;AAAA,KAArD,CAAP,CAJgB;AAAA,IAhDqB;AAAA,GA+DzCuQ,kBAAA,CAAmB9+B,MAAnB,EAA2BqyB,MAAA,CAAOgB,cAAlC,EAAkD,UAAU+F,WAAV,EAAuB;AAAA,IACrE,IAAI8E,YAAA,KAAiB,KAArB,EAA4B;AAAA,KACxBK,kBAAA,CAAmB,YAAY;AAAA,MAAE,OAAOxH,mBAAA,CAAoBjI,IAApB,EAA0BsK,WAA1B,CAAP,CAAF;AAAA,MAA/B,EAAmF,IAAnF,EAAyFA,WAAzF,EADwB;AAAA,KAA5B,MAGK;AAAA,KACD2F,QAAA,CAAS,IAAT,EAAe3F,WAAf,EADC;AAAA,KAJgE;AAAA,IAAzE,EA/DyC;AAAA,GAwEzC0F,kBAAA,CAAmBhQ,IAAnB,EAAyB4J,MAAA,CAAOrF,cAAhC,EAAgD,UAAU+F,WAAV,EAAuB;AAAA,IACnE,IAAI3D,aAAA,KAAkB,KAAtB,EAA6B;AAAA,KACzB8I,kBAAA,CAAmB,YAAY;AAAA,MAAE,OAAOvL,oBAAA,CAAqBhzB,MAArB,EAA6Bo5B,WAA7B,CAAP,CAAF;AAAA,MAA/B,EAAsF,IAAtF,EAA4FA,WAA5F,EADyB;AAAA,KAA7B,MAGK;AAAA,KACD2F,QAAA,CAAS,IAAT,EAAe3F,WAAf,EADC;AAAA,KAJ8D;AAAA,IAAvE,EAxEyC;AAAA,GAiFzC4F,iBAAA,CAAkBh/B,MAAlB,EAA0BqyB,MAAA,CAAOgB,cAAjC,EAAiD,YAAY;AAAA,IACzD,IAAI4K,YAAA,KAAiB,KAArB,EAA4B;AAAA,KACxBM,kBAAA,CAAmB,YAAY;AAAA,MAAE,OAAOrD,oDAAA,CAAqDxC,MAArD,CAAP,CAAF;AAAA,MAA/B,EADwB;AAAA,KAA5B,MAGK;AAAA,KACDqG,QAAA,GADC;AAAA,KAJoD;AAAA,IAA7D,EAjFyC;AAAA,GA0FzC,IAAI/H,mCAAA,CAAoClI,IAApC,MAA8C,IAA9C,IAAsDA,IAAA,CAAK4D,MAAL,KAAgB,QAA1E,EAAoF;AAAA,IAChF,IAAIuM,YAAA,GAAe,IAAIr8B,SAAJ,CAAc,6EAAd,CAAnB,CADgF;AAAA,IAEhF,IAAI6yB,aAAA,KAAkB,KAAtB,EAA6B;AAAA,KACzB8I,kBAAA,CAAmB,YAAY;AAAA,MAAE,OAAOvL,oBAAA,CAAqBhzB,MAArB,EAA6Bi/B,YAA7B,CAAP,CAAF;AAAA,MAA/B,EAAuF,IAAvF,EAA6FA,YAA7F,EADyB;AAAA,KAA7B,MAGK;AAAA,KACDF,QAAA,CAAS,IAAT,EAAeE,YAAf,EADC;AAAA,KAL2E;AAAA,IA1F3C;AAAA,GAmGzCjO,yBAAA,CAA0B0N,QAAA,EAA1B,EAnGyC;AAAA,GAoGzC,SAASQ,qBAAT,GAAiC;AAAA,IAG7B,IAAIC,eAAA,GAAkBd,YAAtB,CAH6B;AAAA,IAI7B,OAAO5N,kBAAA,CAAmB4N,YAAnB,EAAiC,YAAY;AAAA,KAAE,OAAOc,eAAA,KAAoBd,YAApB,GAAmCa,qBAAA,EAAnC,GAA6Dr+B,SAApE,CAAF;AAAA,KAA7C,CAAP,CAJ6B;AAAA,IApGQ;AAAA,GA0GzC,SAASi+B,kBAAT,CAA4BxM,MAA5B,EAAoChY,OAApC,EAA6CmkB,MAA7C,EAAqD;AAAA,IACjD,IAAInM,MAAA,CAAOI,MAAP,KAAkB,SAAtB,EAAiC;AAAA,KAC7B+L,MAAA,CAAOnM,MAAA,CAAOQ,YAAd,EAD6B;AAAA,KAAjC,MAGK;AAAA,KACDlC,aAAA,CAActW,OAAd,EAAuBmkB,MAAvB,EADC;AAAA,KAJ4C;AAAA,IA1GZ;AAAA,GAkHzC,SAASO,iBAAT,CAA2B1M,MAA3B,EAAmChY,OAAnC,EAA4CmkB,MAA5C,EAAoD;AAAA,IAChD,IAAInM,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,KAC5B+L,MAAA,GAD4B;AAAA,KAAhC,MAGK;AAAA,KACD9N,eAAA,CAAgBrW,OAAhB,EAAyBmkB,MAAzB,EADC;AAAA,KAJ2C;AAAA,IAlHX;AAAA,GA0HzC,SAASF,kBAAT,CAA4BE,MAA5B,EAAoCW,eAApC,EAAqDC,aAArD,EAAoE;AAAA,IAChE,IAAIjB,YAAA,KAAiB,IAArB,EAA2B;AAAA,KACvB,OADuB;AAAA,KADqC;AAAA,IAIhEA,YAAA,GAAe,IAAf,CAJgE;AAAA,IAKhE,IAAItP,IAAA,CAAK4D,MAAL,KAAgB,UAAhB,IAA8BsE,mCAAA,CAAoClI,IAApC,MAA8C,KAAhF,EAAuF;AAAA,KACnF6B,eAAA,CAAgBuO,qBAAA,EAAhB,EAAyCI,SAAzC,EADmF;AAAA,KAAvF,MAGK;AAAA,KACDA,SAAA,GADC;AAAA,KAR2D;AAAA,IAWhE,SAASA,SAAT,GAAqB;AAAA,KACjB5O,WAAA,CAAY+N,MAAA,EAAZ,EAAsB,YAAY;AAAA,MAAE,OAAOc,QAAA,CAASH,eAAT,EAA0BC,aAA1B,CAAP,CAAF;AAAA,MAAlC,EAAwF,UAAUG,QAAV,EAAoB;AAAA,MAAE,OAAOD,QAAA,CAAS,IAAT,EAAeC,QAAf,CAAP,CAAF;AAAA,MAA5G,EADiB;AAAA,KAX2C;AAAA,IA1H3B;AAAA,GAyIzC,SAAST,QAAT,CAAkBU,OAAlB,EAA2B79B,KAA3B,EAAkC;AAAA,IAC9B,IAAIw8B,YAAA,KAAiB,IAArB,EAA2B;AAAA,KACvB,OADuB;AAAA,KADG;AAAA,IAI9BA,YAAA,GAAe,IAAf,CAJ8B;AAAA,IAK9B,IAAItP,IAAA,CAAK4D,MAAL,KAAgB,UAAhB,IAA8BsE,mCAAA,CAAoClI,IAApC,MAA8C,KAAhF,EAAuF;AAAA,KACnF6B,eAAA,CAAgBuO,qBAAA,EAAhB,EAAyC,YAAY;AAAA,MAAE,OAAOK,QAAA,CAASE,OAAT,EAAkB79B,KAAlB,CAAP,CAAF;AAAA,MAArD,EADmF;AAAA,KAAvF,MAGK;AAAA,KACD29B,QAAA,CAASE,OAAT,EAAkB79B,KAAlB,EADC;AAAA,KARyB;AAAA,IAzIO;AAAA,GAqJzC,SAAS29B,QAAT,CAAkBE,OAAlB,EAA2B79B,KAA3B,EAAkC;AAAA,IAC9Bo5B,kCAAA,CAAmCtC,MAAnC,EAD8B;AAAA,IAE9BzF,kCAAA,CAAmCZ,MAAnC,EAF8B;AAAA,IAG9B,IAAI8L,MAAA,KAAWt9B,SAAf,EAA0B;AAAA,KACtBs9B,MAAA,CAAOuB,mBAAP,CAA2B,OAA3B,EAAoCjI,cAApC,EADsB;AAAA,KAHI;AAAA,IAM9B,IAAIgI,OAAJ,EAAa;AAAA,KACT1/C,MAAA,CAAO6hB,KAAP,EADS;AAAA,KAAb,MAGK;AAAA,KACD9hB,OAAA,CAAQ+gB,SAAR,EADC;AAAA,KATyB;AAAA,IArJO;AAAA,GAAtC,CAAP,CAP2F;AAAA,EA11CvE;AAAA,CAsgDxB,IAAI8+B,+BAAA,GAAiD,YAAY;AAAA,EAE7D,SAASA,+BAAT,GAA2C;AAAA,GACvC,MAAM,IAAI/8B,SAAJ,EAAN,CADuC;AAAA,GAFkB;AAAA,EAK7DrgB,MAAA,CAAOwf,cAAP,CAAsB49B,+BAAA,CAAgCj/B,SAAtD,EAAiE,aAAjE,EAAgF;AAAA,GAC5EhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAIk2C,iCAAA,CAAkC,IAAlC,MAA4C,KAAhD,EAAuD;AAAA,KACnD,MAAMC,oCAAA,CAAqC,aAArC,CAAN,CADmD;AAAA,KAD1C;AAAA,IAIb,OAAOC,6CAAA,CAA8C,IAA9C,CAAP,CAJa;AAAA,IAD2D;AAAA,GAO5En7C,UAAA,EAAY,IAPgE;AAAA,GAQ5EC,YAAA,EAAc,IAR8D;AAAA,GAAhF,EAL6D;AAAA,EAe7D+6C,+BAAA,CAAgCj/B,SAAhC,CAA0CgL,KAA1C,GAAkD,YAAY;AAAA,GAC1D,IAAIk0B,iCAAA,CAAkC,IAAlC,MAA4C,KAAhD,EAAuD;AAAA,IACnD,MAAMC,oCAAA,CAAqC,OAArC,CAAN,CADmD;AAAA,IADG;AAAA,GAI1D,IAAIE,gDAAA,CAAiD,IAAjD,MAA2D,KAA/D,EAAsE;AAAA,IAClE,MAAM,IAAIn9B,SAAJ,CAAc,iDAAd,CAAN,CADkE;AAAA,IAJZ;AAAA,GAO1Do9B,oCAAA,CAAqC,IAArC,EAP0D;AAAA,GAA9D,CAf6D;AAAA,EAwB7DL,+BAAA,CAAgCj/B,SAAhC,CAA0Cu/B,OAA1C,GAAoD,UAAUrmC,KAAV,EAAiB;AAAA,GACjE,IAAIgmC,iCAAA,CAAkC,IAAlC,MAA4C,KAAhD,EAAuD;AAAA,IACnD,MAAMC,oCAAA,CAAqC,SAArC,CAAN,CADmD;AAAA,IADU;AAAA,GAIjE,IAAIE,gDAAA,CAAiD,IAAjD,MAA2D,KAA/D,EAAsE;AAAA,IAClE,MAAM,IAAIn9B,SAAJ,CAAc,mDAAd,CAAN,CADkE;AAAA,IAJL;AAAA,GAOjE,OAAOs9B,sCAAA,CAAuC,IAAvC,EAA6CtmC,KAA7C,CAAP,CAPiE;AAAA,GAArE,CAxB6D;AAAA,EAiC7D+lC,+BAAA,CAAgCj/B,SAAhC,CAA0CkB,KAA1C,GAAkD,UAAUgI,CAAV,EAAa;AAAA,GAC3D,IAAIg2B,iCAAA,CAAkC,IAAlC,MAA4C,KAAhD,EAAuD;AAAA,IACnD,MAAMC,oCAAA,CAAqC,OAArC,CAAN,CADmD;AAAA,IADI;AAAA,GAI3DM,oCAAA,CAAqC,IAArC,EAA2Cv2B,CAA3C,EAJ2D;AAAA,GAA/D,CAjC6D;AAAA,EAwC7D+1B,+BAAA,CAAgCj/B,SAAhC,CAA0C+yB,WAA1C,IAAyD,UAAUp0C,MAAV,EAAkB;AAAA,GACvE62C,UAAA,CAAW,IAAX,EADuE;AAAA,GAEvE,IAAIvvC,MAAA,GAAS,KAAKy5C,gBAAL,CAAsB/gD,MAAtB,CAAb,CAFuE;AAAA,GAGvEghD,8CAAA,CAA+C,IAA/C,EAHuE;AAAA,GAIvE,OAAO15C,MAAP,CAJuE;AAAA,GAA3E,CAxC6D;AAAA,EA+C7Dg5C,+BAAA,CAAgCj/B,SAAhC,CAA0CgzB,SAA1C,IAAuD,YAAY;AAAA,GAC/D,IAAIpB,MAAA,GAAS,KAAKgO,yBAAlB,CAD+D;AAAA,GAE/D,IAAI,KAAKxK,MAAL,CAAYv8B,MAAZ,GAAqB,CAAzB,EAA4B;AAAA,IACxB,IAAIK,KAAA,GAAQ+7B,YAAA,CAAa,IAAb,CAAZ,CADwB;AAAA,IAExB,IAAI,KAAK4K,eAAL,KAAyB,IAAzB,IAAiC,KAAKzK,MAAL,CAAYv8B,MAAZ,KAAuB,CAA5D,EAA+D;AAAA,KAC3D8mC,8CAAA,CAA+C,IAA/C,EAD2D;AAAA,KAE3DG,mBAAA,CAAoBlO,MAApB,EAF2D;AAAA,KAA/D,MAIK;AAAA,KACDmO,+CAAA,CAAgD,IAAhD,EADC;AAAA,KANmB;AAAA,IASxB,OAAO7Q,mBAAA,CAAoBsC,8BAAA,CAA+Bt4B,KAA/B,EAAsC,KAAtC,EAA6C04B,MAAA,CAAOG,OAAP,CAAeF,cAA5D,CAApB,CAAP,CATwB;AAAA,IAFmC;AAAA,GAa/D,IAAImO,cAAA,GAAiB7M,4BAAA,CAA6BvB,MAA7B,CAArB,CAb+D;AAAA,GAc/DmO,+CAAA,CAAgD,IAAhD,EAd+D;AAAA,GAe/D,OAAOC,cAAP,CAf+D;AAAA,GAAnE,CA/C6D;AAAA,EAgE7D,OAAOf,+BAAP,CAhE6D;AAAA,EAAZ,EAArD,CAtgDwB;AAAA,CAykDxB,SAASC,iCAAT,CAA2CrsB,CAA3C,EAA8C;AAAA,EAC1C,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADoB;AAAA,EAI1C,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,2BAAxC,CAAL,EAA2E;AAAA,GACvE,OAAO,KAAP,CADuE;AAAA,GAJjC;AAAA,EAO1C,OAAO,IAAP,CAP0C;AAAA,EAzkDtB;AAAA,CAklDxB,SAASktB,+CAAT,CAAyDthC,UAAzD,EAAqE;AAAA,EACjE,IAAIwhC,UAAA,GAAaC,6CAAA,CAA8CzhC,UAA9C,CAAjB,CADiE;AAAA,EAEjE,IAAIwhC,UAAA,KAAe,KAAnB,EAA0B;AAAA,GACtB,OADsB;AAAA,GAFuC;AAAA,EAKjE,IAAIxhC,UAAA,CAAW0hC,QAAX,KAAwB,IAA5B,EAAkC;AAAA,GAC9B1hC,UAAA,CAAW2hC,UAAX,GAAwB,IAAxB,CAD8B;AAAA,GAE9B,OAF8B;AAAA,GAL+B;AAAA,EASjE3hC,UAAA,CAAW0hC,QAAX,GAAsB,IAAtB,CATiE;AAAA,EAUjE,IAAIE,WAAA,GAAc5hC,UAAA,CAAW6hC,cAAX,EAAlB,CAViE;AAAA,EAWjEtQ,WAAA,CAAYqQ,WAAZ,EAAyB,YAAY;AAAA,GACjC5hC,UAAA,CAAW0hC,QAAX,GAAsB,KAAtB,CADiC;AAAA,GAEjC,IAAI1hC,UAAA,CAAW2hC,UAAX,KAA0B,IAA9B,EAAoC;AAAA,IAChC3hC,UAAA,CAAW2hC,UAAX,GAAwB,KAAxB,CADgC;AAAA,IAEhCL,+CAAA,CAAgDthC,UAAhD,EAFgC;AAAA,IAFH;AAAA,GAArC,EAMG,UAAUyK,CAAV,EAAa;AAAA,GACZu2B,oCAAA,CAAqChhC,UAArC,EAAiDyK,CAAjD,EADY;AAAA,GANhB,EAXiE;AAAA,EAllD7C;AAAA,CAumDxB,SAASg3B,6CAAT,CAAuDzhC,UAAvD,EAAmE;AAAA,EAC/D,IAAImzB,MAAA,GAASnzB,UAAA,CAAWmhC,yBAAxB,CAD+D;AAAA,EAE/D,IAAIP,gDAAA,CAAiD5gC,UAAjD,MAAiE,KAArE,EAA4E;AAAA,GACxE,OAAO,KAAP,CADwE;AAAA,GAFb;AAAA,EAK/D,IAAIA,UAAA,CAAWg6B,QAAX,KAAwB,KAA5B,EAAmC;AAAA,GAC/B,OAAO,KAAP,CAD+B;AAAA,GAL4B;AAAA,EAQ/D,IAAI5E,sBAAA,CAAuBjC,MAAvB,MAAmC,IAAnC,IAA2C6B,gCAAA,CAAiC7B,MAAjC,IAA2C,CAA1F,EAA6F;AAAA,GACzF,OAAO,IAAP,CADyF;AAAA,GAR9B;AAAA,EAW/D,IAAI6K,WAAA,GAAc2C,6CAAA,CAA8C3gC,UAA9C,CAAlB,CAX+D;AAAA,EAY/D,IAAIg+B,WAAA,GAAc,CAAlB,EAAqB;AAAA,GACjB,OAAO,IAAP,CADiB;AAAA,GAZ0C;AAAA,EAe/D,OAAO,KAAP,CAf+D;AAAA,EAvmD3C;AAAA,CAwnDxB,SAASkD,8CAAT,CAAwDlhC,UAAxD,EAAoE;AAAA,EAChEA,UAAA,CAAW6hC,cAAX,GAA4BngC,SAA5B,CADgE;AAAA,EAEhE1B,UAAA,CAAWihC,gBAAX,GAA8Bv/B,SAA9B,CAFgE;AAAA,EAGhE1B,UAAA,CAAWg9B,sBAAX,GAAoCt7B,SAApC,CAHgE;AAAA,EAxnD5C;AAAA,CA8nDxB,SAASm/B,oCAAT,CAA8C7gC,UAA9C,EAA0D;AAAA,EACtD,IAAImzB,MAAA,GAASnzB,UAAA,CAAWmhC,yBAAxB,CADsD;AAAA,EAEtDnhC,UAAA,CAAWohC,eAAX,GAA6B,IAA7B,CAFsD;AAAA,EAGtD,IAAIphC,UAAA,CAAW22B,MAAX,CAAkBv8B,MAAlB,KAA6B,CAAjC,EAAoC;AAAA,GAChC8mC,8CAAA,CAA+ClhC,UAA/C,EADgC;AAAA,GAEhCqhC,mBAAA,CAAoBlO,MAApB,EAFgC;AAAA,GAHkB;AAAA,EA9nDlC;AAAA,CAsoDxB,SAAS4N,sCAAT,CAAgD/gC,UAAhD,EAA4DvF,KAA5D,EAAmE;AAAA,EAC/D,IAAI04B,MAAA,GAASnzB,UAAA,CAAWmhC,yBAAxB,CAD+D;AAAA,EAE/D,IAAI/L,sBAAA,CAAuBjC,MAAvB,MAAmC,IAAnC,IAA2C6B,gCAAA,CAAiC7B,MAAjC,IAA2C,CAA1F,EAA6F;AAAA,GACzF4B,gCAAA,CAAiC5B,MAAjC,EAAyC14B,KAAzC,EAAgD,KAAhD,EADyF;AAAA,GAA7F,MAGK;AAAA,GACD,IAAI+hC,SAAA,GAAY,KAAK,CAArB,CADC;AAAA,GAED,IAAI;AAAA,IACAA,SAAA,GAAYx8B,UAAA,CAAWg9B,sBAAX,CAAkCviC,KAAlC,CAAZ,CADA;AAAA,IAAJ,CAGA,OAAO+iC,UAAP,EAAmB;AAAA,IACfwD,oCAAA,CAAqChhC,UAArC,EAAiDw9B,UAAjD,EADe;AAAA,IAEf,MAAMA,UAAN,CAFe;AAAA,IALlB;AAAA,GASD,IAAI;AAAA,IACA3G,oBAAA,CAAqB72B,UAArB,EAAiCvF,KAAjC,EAAwC+hC,SAAxC,EADA;AAAA,IAAJ,CAGA,OAAOmB,QAAP,EAAiB;AAAA,IACbqD,oCAAA,CAAqChhC,UAArC,EAAiD29B,QAAjD,EADa;AAAA,IAEb,MAAMA,QAAN,CAFa;AAAA,IAZhB;AAAA,GAL0D;AAAA,EAsB/D2D,+CAAA,CAAgDthC,UAAhD,EAtB+D;AAAA,EAtoD3C;AAAA,CA8pDxB,SAASghC,oCAAT,CAA8ChhC,UAA9C,EAA0DyK,CAA1D,EAA6D;AAAA,EACzD,IAAI0oB,MAAA,GAASnzB,UAAA,CAAWmhC,yBAAxB,CADyD;AAAA,EAEzD,IAAIhO,MAAA,CAAOI,MAAP,KAAkB,UAAtB,EAAkC;AAAA,GAC9B,OAD8B;AAAA,GAFuB;AAAA,EAKzDwD,UAAA,CAAW/2B,UAAX,EALyD;AAAA,EAMzDkhC,8CAAA,CAA+ClhC,UAA/C,EANyD;AAAA,EAOzD8hC,mBAAA,CAAoB3O,MAApB,EAA4B1oB,CAA5B,EAPyD;AAAA,EA9pDrC;AAAA,CAuqDxB,SAASk2B,6CAAT,CAAuD3gC,UAAvD,EAAmE;AAAA,EAC/D,IAAImzB,MAAA,GAASnzB,UAAA,CAAWmhC,yBAAxB,CAD+D;AAAA,EAE/D,IAAIl5C,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAF+D;AAAA,EAG/D,IAAItrC,KAAA,KAAU,SAAd,EAAyB;AAAA,GACrB,OAAO,IAAP,CADqB;AAAA,GAHsC;AAAA,EAM/D,IAAIA,KAAA,KAAU,QAAd,EAAwB;AAAA,GACpB,OAAO,CAAP,CADoB;AAAA,GANuC;AAAA,EAS/D,OAAO+X,UAAA,CAAWi9B,YAAX,GAA0Bj9B,UAAA,CAAW42B,eAA5C,CAT+D;AAAA,EAvqD3C;AAAA,CAmrDxB,SAASmL,8CAAT,CAAwD/hC,UAAxD,EAAoE;AAAA,EAChE,IAAIyhC,6CAAA,CAA8CzhC,UAA9C,MAA8D,IAAlE,EAAwE;AAAA,GACpE,OAAO,KAAP,CADoE;AAAA,GADR;AAAA,EAIhE,OAAO,IAAP,CAJgE;AAAA,EAnrD5C;AAAA,CAyrDxB,SAAS4gC,gDAAT,CAA0D5gC,UAA1D,EAAsE;AAAA,EAClE,IAAI/X,KAAA,GAAQ+X,UAAA,CAAWmhC,yBAAX,CAAqC5N,MAAjD,CADkE;AAAA,EAElE,IAAIvzB,UAAA,CAAWohC,eAAX,KAA+B,KAA/B,IAAwCn5C,KAAA,KAAU,UAAtD,EAAkE;AAAA,GAC9D,OAAO,IAAP,CAD8D;AAAA,GAFA;AAAA,EAKlE,OAAO,KAAP,CALkE;AAAA,EAzrD9C;AAAA,CAgsDxB,SAAS+5C,oCAAT,CAA8C7O,MAA9C,EAAsDnzB,UAAtD,EAAkEm4B,cAAlE,EAAkF8J,aAAlF,EAAiGC,eAAjG,EAAkHnR,aAAlH,EAAiIuG,aAAjI,EAAgJ;AAAA,EAC5It3B,UAAA,CAAWmhC,yBAAX,GAAuChO,MAAvC,CAD4I;AAAA,EAE5InzB,UAAA,CAAW22B,MAAX,GAAoBj1B,SAApB,CAF4I;AAAA,EAG5I1B,UAAA,CAAW42B,eAAX,GAA6Bl1B,SAA7B,CAH4I;AAAA,EAI5Iq1B,UAAA,CAAW/2B,UAAX,EAJ4I;AAAA,EAK5IA,UAAA,CAAWg6B,QAAX,GAAsB,KAAtB,CAL4I;AAAA,EAM5Ih6B,UAAA,CAAWohC,eAAX,GAA6B,KAA7B,CAN4I;AAAA,EAO5IphC,UAAA,CAAW2hC,UAAX,GAAwB,KAAxB,CAP4I;AAAA,EAQ5I3hC,UAAA,CAAW0hC,QAAX,GAAsB,KAAtB,CAR4I;AAAA,EAS5I1hC,UAAA,CAAWg9B,sBAAX,GAAoC1F,aAApC,CAT4I;AAAA,EAU5It3B,UAAA,CAAWi9B,YAAX,GAA0BlM,aAA1B,CAV4I;AAAA,EAW5I/wB,UAAA,CAAW6hC,cAAX,GAA4BI,aAA5B,CAX4I;AAAA,EAY5IjiC,UAAA,CAAWihC,gBAAX,GAA8BiB,eAA9B,CAZ4I;AAAA,EAa5I/O,MAAA,CAAOwC,yBAAP,GAAmC31B,UAAnC,CAb4I;AAAA,EAc5I,IAAIq9B,WAAA,GAAclF,cAAA,EAAlB,CAd4I;AAAA,EAe5I5G,WAAA,CAAYd,mBAAA,CAAoB4M,WAApB,CAAZ,EAA8C,YAAY;AAAA,GACtDr9B,UAAA,CAAWg6B,QAAX,GAAsB,IAAtB,CADsD;AAAA,GAEtDsH,+CAAA,CAAgDthC,UAAhD,EAFsD;AAAA,GAA1D,EAGG,UAAU7D,CAAV,EAAa;AAAA,GACZ6kC,oCAAA,CAAqChhC,UAArC,EAAiD7D,CAAjD,EADY;AAAA,GAHhB,EAf4I;AAAA,EAhsDxH;AAAA,CAstDxB,SAASgmC,wDAAT,CAAkEhP,MAAlE,EAA0EiP,gBAA1E,EAA4FrR,aAA5F,EAA2GuG,aAA3G,EAA0H;AAAA,EACtH,IAAIt3B,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAcqhD,+BAAA,CAAgCj/B,SAA9C,CAAjB,CADsH;AAAA,EAEtH,SAAS42B,cAAT,GAA0B;AAAA,GACtB,OAAOzH,YAAA,CAAa0R,gBAAb,EAA+B,OAA/B,EAAwC,CAACpiC,UAAD,CAAxC,CAAP,CADsB;AAAA,GAF4F;AAAA,EAKtH,IAAIiiC,aAAA,GAAgB/R,mCAAA,CAAoCkS,gBAApC,EAAsD,MAAtD,EAA8D,CAA9D,EAAiE,CAACpiC,UAAD,CAAjE,CAApB,CALsH;AAAA,EAMtH,IAAIkiC,eAAA,GAAkBhS,mCAAA,CAAoCkS,gBAApC,EAAsD,QAAtD,EAAgE,CAAhE,EAAmE,EAAnE,CAAtB,CANsH;AAAA,EAOtHJ,oCAAA,CAAqC7O,MAArC,EAA6CnzB,UAA7C,EAAyDm4B,cAAzD,EAAyE8J,aAAzE,EAAwFC,eAAxF,EAAyGnR,aAAzG,EAAwHuG,aAAxH,EAPsH;AAAA,EAttDlG;AAAA,CAguDxB,SAASoJ,oCAAT,CAA8Cp9C,IAA9C,EAAoD;AAAA,EAChD,OAAO,IAAImgB,SAAJ,CAAc,+CAA+CngB,IAA/C,GAAsD,wDAApE,CAAP,CADgD;AAAA,EAhuD5B;AAAA,CAouDxB,SAAS++C,iBAAT,CAA2BlP,MAA3B,EAAmCmP,eAAnC,EAAoD;AAAA,EAChD,IAAIpP,MAAA,GAASsB,kCAAA,CAAmCrB,MAAnC,CAAb,CADgD;AAAA,EAEhD,IAAIoP,OAAA,GAAU,KAAd,CAFgD;AAAA,EAGhD,IAAIC,SAAA,GAAY,KAAhB,CAHgD;AAAA,EAIhD,IAAIC,SAAA,GAAY,KAAhB,CAJgD;AAAA,EAKhD,IAAIC,OAAJ,CALgD;AAAA,EAMhD,IAAIC,OAAJ,CANgD;AAAA,EAOhD,IAAIC,OAAJ,CAPgD;AAAA,EAQhD,IAAIC,OAAJ,CARgD;AAAA,EAShD,IAAIC,oBAAJ,CATgD;AAAA,EAUhD,IAAIC,aAAA,GAAgB1R,UAAA,CAAW,UAAU1wC,OAAV,EAAmB;AAAA,GAC9CmiD,oBAAA,GAAuBniD,OAAvB,CAD8C;AAAA,GAA9B,CAApB,CAVgD;AAAA,EAahD,SAASshD,aAAT,GAAyB;AAAA,GACrB,IAAIM,OAAA,KAAY,IAAhB,EAAsB;AAAA,IAClB,OAAO9R,mBAAA,CAAoB/uB,SAApB,CAAP,CADkB;AAAA,IADD;AAAA,GAIrB6gC,OAAA,GAAU,IAAV,CAJqB;AAAA,GAKrB,IAAIS,WAAA,GAActR,oBAAA,CAAqB8D,+BAAA,CAAgCtC,MAAhC,CAArB,EAA8D,UAAU1rC,MAAV,EAAkB;AAAA,IAC9F+6C,OAAA,GAAU,KAAV,CAD8F;AAAA,IAE9F,IAAIh6C,IAAA,GAAOf,MAAA,CAAOe,IAAlB,CAF8F;AAAA,IAG9F,IAAIA,IAAA,KAAS,IAAb,EAAmB;AAAA,KACf,IAAIi6C,SAAA,KAAc,KAAlB,EAAyB;AAAA,MACrB3B,oCAAA,CAAqC+B,OAAA,CAAQjN,yBAA7C,EADqB;AAAA,MADV;AAAA,KAIf,IAAI8M,SAAA,KAAc,KAAlB,EAAyB;AAAA,MACrB5B,oCAAA,CAAqCgC,OAAA,CAAQlN,yBAA7C,EADqB;AAAA,MAJV;AAAA,KAOf,OAPe;AAAA,KAH2E;AAAA,IAY9F,IAAIpwC,KAAA,GAAQiC,MAAA,CAAOjC,KAAnB,CAZ8F;AAAA,IAa9F,IAAI09C,MAAA,GAAS19C,KAAb,CAb8F;AAAA,IAc9F,IAAI29C,MAAA,GAAS39C,KAAb,CAd8F;AAAA,IAoB9F,IAAIi9C,SAAA,KAAc,KAAlB,EAAyB;AAAA,KACrBzB,sCAAA,CAAuC6B,OAAA,CAAQjN,yBAA/C,EAA0EsN,MAA1E,EADqB;AAAA,KApBqE;AAAA,IAuB9F,IAAIR,SAAA,KAAc,KAAlB,EAAyB;AAAA,KACrB1B,sCAAA,CAAuC8B,OAAA,CAAQlN,yBAA/C,EAA0EuN,MAA1E,EADqB;AAAA,KAvBqE;AAAA,IAAhF,CAAlB,CALqB;AAAA,GAgCrBrR,yBAAA,CAA0BmR,WAA1B,EAhCqB;AAAA,GAiCrB,OAAOvS,mBAAA,CAAoB/uB,SAApB,CAAP,CAjCqB;AAAA,GAbuB;AAAA,EAgDhD,SAASyhC,gBAAT,CAA0BjjD,MAA1B,EAAkC;AAAA,GAC9BsiD,SAAA,GAAY,IAAZ,CAD8B;AAAA,GAE9BE,OAAA,GAAUxiD,MAAV,CAF8B;AAAA,GAG9B,IAAIuiD,SAAA,KAAc,IAAlB,EAAwB;AAAA,IACpB,IAAIW,eAAA,GAAkB5T,mBAAA,CAAoB;AAAA,KAACkT,OAAD;AAAA,KAAUC,OAAV;AAAA,KAApB,CAAtB,CADoB;AAAA,IAEpB,IAAIU,YAAA,GAAexP,oBAAA,CAAqBV,MAArB,EAA6BiQ,eAA7B,CAAnB,CAFoB;AAAA,IAGpBN,oBAAA,CAAqBO,YAArB,EAHoB;AAAA,IAHM;AAAA,GAQ9B,OAAON,aAAP,CAR8B;AAAA,GAhDc;AAAA,EA0DhD,SAASO,gBAAT,CAA0BpjD,MAA1B,EAAkC;AAAA,GAC9BuiD,SAAA,GAAY,IAAZ,CAD8B;AAAA,GAE9BE,OAAA,GAAUziD,MAAV,CAF8B;AAAA,GAG9B,IAAIsiD,SAAA,KAAc,IAAlB,EAAwB;AAAA,IACpB,IAAIY,eAAA,GAAkB5T,mBAAA,CAAoB;AAAA,KAACkT,OAAD;AAAA,KAAUC,OAAV;AAAA,KAApB,CAAtB,CADoB;AAAA,IAEpB,IAAIU,YAAA,GAAexP,oBAAA,CAAqBV,MAArB,EAA6BiQ,eAA7B,CAAnB,CAFoB;AAAA,IAGpBN,oBAAA,CAAqBO,YAArB,EAHoB;AAAA,IAHM;AAAA,GAQ9B,OAAON,aAAP,CAR8B;AAAA,GA1Dc;AAAA,EAoEhD,SAAS5K,cAAT,GAA0B;AAAA,GApEsB;AAAA,EAqEhDyK,OAAA,GAAUW,oBAAA,CAAqBpL,cAArB,EAAqC8J,aAArC,EAAoDkB,gBAApD,CAAV,CArEgD;AAAA,EAsEhDN,OAAA,GAAUU,oBAAA,CAAqBpL,cAArB,EAAqC8J,aAArC,EAAoDqB,gBAApD,CAAV,CAtEgD;AAAA,EAuEhD7R,aAAA,CAAcyB,MAAA,CAAOgB,cAArB,EAAqC,UAAU/3B,CAAV,EAAa;AAAA,GAC9C6kC,oCAAA,CAAqC4B,OAAA,CAAQjN,yBAA7C,EAAwEx5B,CAAxE,EAD8C;AAAA,GAE9C6kC,oCAAA,CAAqC6B,OAAA,CAAQlN,yBAA7C,EAAwEx5B,CAAxE,EAF8C;AAAA,GAAlD,EAvEgD;AAAA,EA2EhD,OAAO;AAAA,GAACymC,OAAD;AAAA,GAAUC,OAAV;AAAA,GAAP,CA3EgD;AAAA,EApuD5B;AAAA,CAozDxB,IAAIW,eAAA,GAAkB7pC,MAAA,CAAO2a,SAAP,IAAoB,UAAU/uB,KAAV,EAAiB;AAAA,EACvD,OAAO,OAAOA,KAAP,KAAiB,QAAjB,IACHgvB,QAAA,CAAShvB,KAAT,CADG,IAEH3D,IAAA,CAAK2mB,KAAL,CAAWhjB,KAAX,MAAsBA,KAF1B,CADuD;AAAA,EAA3D,CApzDwB;AAAA,CA0zDxB,IAAIk+C,yBAAA,GAA2C,YAAY;AAAA,EAEvD,SAASA,yBAAT,GAAqC;AAAA,GACjC,MAAM,IAAIhgC,SAAJ,CAAc,mDAAd,CAAN,CADiC;AAAA,GAFkB;AAAA,EAKvDrgB,MAAA,CAAOwf,cAAP,CAAsB6gC,yBAAA,CAA0BliC,SAAhD,EAA2D,MAA3D,EAAmE;AAAA,GAC/DhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAIm5C,2BAAA,CAA4B,IAA5B,MAAsC,KAA1C,EAAiD;AAAA,KAC7C,MAAMC,8BAAA,CAA+B,MAA/B,CAAN,CAD6C;AAAA,KADpC;AAAA,IAIb,OAAO,KAAKC,KAAZ,CAJa;AAAA,IAD8C;AAAA,GAO/Dp+C,UAAA,EAAY,IAPmD;AAAA,GAQ/DC,YAAA,EAAc,IARiD;AAAA,GAAnE,EALuD;AAAA,EAevDg+C,yBAAA,CAA0BliC,SAA1B,CAAoCsiC,OAApC,GAA8C,UAAUC,YAAV,EAAwB;AAAA,GAClE,IAAIJ,2BAAA,CAA4B,IAA5B,MAAsC,KAA1C,EAAiD;AAAA,IAC7C,MAAMC,8BAAA,CAA+B,SAA/B,CAAN,CAD6C;AAAA,IADiB;AAAA,GAIlE,IAAI,KAAKI,uCAAL,KAAiDriC,SAArD,EAAgE;AAAA,IAC5D,MAAM,IAAI+B,SAAJ,CAAc,wCAAd,CAAN,CAD4D;AAAA,IAJE;AAAA,GAOlE,IAAIotB,gBAAA,CAAiB,KAAK+S,KAAL,CAAWhmC,MAA5B,MAAwC,IAA5C,EAPkE;AAAA,GAQlEomC,mCAAA,CAAoC,KAAKD,uCAAzC,EAAkFD,YAAlF,EARkE;AAAA,GAAtE,CAfuD;AAAA,EAyBvDL,yBAAA,CAA0BliC,SAA1B,CAAoC0iC,kBAApC,GAAyD,UAAUC,IAAV,EAAgB;AAAA,GACrE,IAAIR,2BAAA,CAA4B,IAA5B,MAAsC,KAA1C,EAAiD;AAAA,IAC7C,MAAMC,8BAAA,CAA+B,SAA/B,CAAN,CAD6C;AAAA,IADoB;AAAA,GAIrE,IAAI,KAAKI,uCAAL,KAAiDriC,SAArD,EAAgE;AAAA,IAC5D,MAAM,IAAI+B,SAAJ,CAAc,wCAAd,CAAN,CAD4D;AAAA,IAJK;AAAA,GAOrE,IAAI,CAACgT,WAAA,CAAYP,MAAZ,CAAmBguB,IAAnB,CAAL,EAA+B;AAAA,IAC3B,MAAM,IAAIzgC,SAAJ,CAAc,8CAAd,CAAN,CAD2B;AAAA,IAPsC;AAAA,GAUrE,IAAIotB,gBAAA,CAAiBqT,IAAA,CAAKtmC,MAAtB,MAAkC,IAAtC,EAVqE;AAAA,GAWrEumC,8CAAA,CAA+C,KAAKJ,uCAApD,EAA6FG,IAA7F,EAXqE;AAAA,GAAzE,CAzBuD;AAAA,EAsCvD,OAAOT,yBAAP,CAtCuD;AAAA,EAAZ,EAA/C,CA1zDwB;AAAA,CAk2DxB,IAAIW,4BAAA,GAA8C,YAAY;AAAA,EAE1D,SAASA,4BAAT,GAAwC;AAAA,GACpC,MAAM,IAAI3gC,SAAJ,CAAc,kEAAd,CAAN,CADoC;AAAA,GAFkB;AAAA,EAK1DrgB,MAAA,CAAOwf,cAAP,CAAsBwhC,4BAAA,CAA6B7iC,SAAnD,EAA8D,aAA9D,EAA6E;AAAA,GACzEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI85C,8BAAA,CAA+B,IAA/B,MAAyC,KAA7C,EAAoD;AAAA,KAChD,MAAMC,uCAAA,CAAwC,aAAxC,CAAN,CADgD;AAAA,KADvC;AAAA,IAIb,IAAI,KAAKC,YAAL,KAAsB7iC,SAAtB,IAAmC,KAAK8iC,iBAAL,CAAuBpqC,MAAvB,GAAgC,CAAvE,EAA0E;AAAA,KACtE,IAAIqqC,eAAA,GAAkB,KAAKD,iBAAL,CAAuB5R,IAAvB,EAAtB,CADsE;AAAA,KAEtE,IAAIsR,IAAA,GAAO,IAAIpkC,UAAJ,CAAe2kC,eAAA,CAAgB7mC,MAA/B,EAAuC6mC,eAAA,CAAgBC,UAAhB,GAA6BD,eAAA,CAAgBE,WAApF,EAAiGF,eAAA,CAAgBG,UAAhB,GAA6BH,eAAA,CAAgBE,WAA9I,CAAX,CAFsE;AAAA,KAGtE,IAAIE,WAAA,GAAczhD,MAAA,CAAOjE,MAAP,CAAcskD,yBAAA,CAA0BliC,SAAxC,CAAlB,CAHsE;AAAA,KAItEujC,8BAAA,CAA+BD,WAA/B,EAA4C,IAA5C,EAAkDX,IAAlD,EAJsE;AAAA,KAKtE,KAAKK,YAAL,GAAoBM,WAApB,CALsE;AAAA,KAJ7D;AAAA,IAWb,OAAO,KAAKN,YAAZ,CAXa;AAAA,IADwD;AAAA,GAczE/+C,UAAA,EAAY,IAd6D;AAAA,GAezEC,YAAA,EAAc,IAf2D;AAAA,GAA7E,EAL0D;AAAA,EAsB1DrC,MAAA,CAAOwf,cAAP,CAAsBwhC,4BAAA,CAA6B7iC,SAAnD,EAA8D,aAA9D,EAA6E;AAAA,GACzEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI85C,8BAAA,CAA+B,IAA/B,MAAyC,KAA7C,EAAoD;AAAA,KAChD,MAAMC,uCAAA,CAAwC,aAAxC,CAAN,CADgD;AAAA,KADvC;AAAA,IAIb,OAAOS,0CAAA,CAA2C,IAA3C,CAAP,CAJa;AAAA,IADwD;AAAA,GAOzEv/C,UAAA,EAAY,IAP6D;AAAA,GAQzEC,YAAA,EAAc,IAR2D;AAAA,GAA7E,EAtB0D;AAAA,EAgC1D2+C,4BAAA,CAA6B7iC,SAA7B,CAAuCgL,KAAvC,GAA+C,YAAY;AAAA,GACvD,IAAI83B,8BAAA,CAA+B,IAA/B,MAAyC,KAA7C,EAAoD;AAAA,IAChD,MAAMC,uCAAA,CAAwC,OAAxC,CAAN,CADgD;AAAA,IADG;AAAA,GAIvD,IAAI,KAAKlD,eAAL,KAAyB,IAA7B,EAAmC;AAAA,IAC/B,MAAM,IAAI39B,SAAJ,CAAc,4DAAd,CAAN,CAD+B;AAAA,IAJoB;AAAA,GAOvD,IAAIxb,KAAA,GAAQ,KAAK+8C,6BAAL,CAAmCzR,MAA/C,CAPuD;AAAA,GAQvD,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,IACtB,MAAM,IAAIwb,SAAJ,CAAc,oBAAoBxb,KAApB,GAA4B,2DAA1C,CAAN,CADsB;AAAA,IAR6B;AAAA,GAWvDg9C,iCAAA,CAAkC,IAAlC,EAXuD;AAAA,GAA3D,CAhC0D;AAAA,EA6C1Db,4BAAA,CAA6B7iC,SAA7B,CAAuCu/B,OAAvC,GAAiD,UAAUrmC,KAAV,EAAiB;AAAA,GAC9D,IAAI4pC,8BAAA,CAA+B,IAA/B,MAAyC,KAA7C,EAAoD;AAAA,IAChD,MAAMC,uCAAA,CAAwC,SAAxC,CAAN,CADgD;AAAA,IADU;AAAA,GAI9D,IAAI,KAAKlD,eAAL,KAAyB,IAA7B,EAAmC;AAAA,IAC/B,MAAM,IAAI39B,SAAJ,CAAc,8BAAd,CAAN,CAD+B;AAAA,IAJ2B;AAAA,GAO9D,IAAIxb,KAAA,GAAQ,KAAK+8C,6BAAL,CAAmCzR,MAA/C,CAP8D;AAAA,GAQ9D,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,IACtB,MAAM,IAAIwb,SAAJ,CAAc,oBAAoBxb,KAApB,GAA4B,gEAA1C,CAAN,CADsB;AAAA,IARoC;AAAA,GAW9D,IAAI,CAACwuB,WAAA,CAAYP,MAAZ,CAAmBzb,KAAnB,CAAL,EAAgC;AAAA,IAC5B,MAAM,IAAIgJ,SAAJ,CAAc,mFAAd,CAAN,CAD4B;AAAA,IAX8B;AAAA,GAc9D,IAAIotB,gBAAA,CAAiBp2B,KAAA,CAAMmD,MAAvB,MAAmC,IAAvC,EAd8D;AAAA,GAe9DsnC,mCAAA,CAAoC,IAApC,EAA0CzqC,KAA1C,EAf8D;AAAA,GAAlE,CA7C0D;AAAA,EA8D1D2pC,4BAAA,CAA6B7iC,SAA7B,CAAuCkB,KAAvC,GAA+C,UAAUgI,CAAV,EAAa;AAAA,GACxD,IAAI45B,8BAAA,CAA+B,IAA/B,MAAyC,KAA7C,EAAoD;AAAA,IAChD,MAAMC,uCAAA,CAAwC,OAAxC,CAAN,CADgD;AAAA,IADI;AAAA,GAIxDa,iCAAA,CAAkC,IAAlC,EAAwC16B,CAAxC,EAJwD;AAAA,GAA5D,CA9D0D;AAAA,EAqE1D25B,4BAAA,CAA6B7iC,SAA7B,CAAuC+yB,WAAvC,IAAsD,UAAUp0C,MAAV,EAAkB;AAAA,GACpE,IAAI,KAAKskD,iBAAL,CAAuBpqC,MAAvB,GAAgC,CAApC,EAAuC;AAAA,IACnC,IAAIqqC,eAAA,GAAkB,KAAKD,iBAAL,CAAuB5R,IAAvB,EAAtB,CADmC;AAAA,IAEnC6R,eAAA,CAAgBE,WAAhB,GAA8B,CAA9B,CAFmC;AAAA,IAD6B;AAAA,GAKpE5N,UAAA,CAAW,IAAX,EALoE;AAAA,GAMpE,IAAIvvC,MAAA,GAAS,KAAKy5C,gBAAL,CAAsB/gD,MAAtB,CAAb,CANoE;AAAA,GAOpEklD,2CAAA,CAA4C,IAA5C,EAPoE;AAAA,GAQpE,OAAO59C,MAAP,CARoE;AAAA,GAAxE,CArE0D;AAAA,EAgF1D48C,4BAAA,CAA6B7iC,SAA7B,CAAuCgzB,SAAvC,IAAoD,YAAY;AAAA,GAC5D,IAAIpB,MAAA,GAAS,KAAK6R,6BAAlB,CAD4D;AAAA,GAE5D,IAAI,KAAKpO,eAAL,GAAuB,CAA3B,EAA8B;AAAA,IAC1B,IAAInuC,KAAA,GAAQ,KAAKkuC,MAAL,CAAYxO,KAAZ,EAAZ,CAD0B;AAAA,IAE1B,KAAKyO,eAAL,IAAwBnuC,KAAA,CAAMm8C,UAA9B,CAF0B;AAAA,IAG1BS,4CAAA,CAA6C,IAA7C,EAH0B;AAAA,IAI1B,IAAInB,IAAA,GAAO,KAAK,CAAhB,CAJ0B;AAAA,IAK1B,IAAI;AAAA,KACAA,IAAA,GAAO,IAAIpkC,UAAJ,CAAerX,KAAA,CAAMmV,MAArB,EAA6BnV,KAAA,CAAMi8C,UAAnC,EAA+Cj8C,KAAA,CAAMm8C,UAArD,CAAP,CADA;AAAA,KAAJ,CAGA,OAAOU,KAAP,EAAc;AAAA,KACV,OAAO3U,mBAAA,CAAoB2U,KAApB,CAAP,CADU;AAAA,KARY;AAAA,IAW1B,OAAO7U,mBAAA,CAAoBsC,8BAAA,CAA+BmR,IAA/B,EAAqC,KAArC,EAA4C/Q,MAAA,CAAOG,OAAP,CAAeF,cAA3D,CAApB,CAAP,CAX0B;AAAA,IAF8B;AAAA,GAe5D,IAAImS,qBAAA,GAAwB,KAAKC,sBAAjC,CAf4D;AAAA,GAgB5D,IAAID,qBAAA,KAA0B7jC,SAA9B,EAAyC;AAAA,IACrC,IAAI9D,MAAA,GAAS,KAAK,CAAlB,CADqC;AAAA,IAErC,IAAI;AAAA,KACAA,MAAA,GAAS,IAAI6Y,WAAJ,CAAgB8uB,qBAAhB,CAAT,CADA;AAAA,KAAJ,CAGA,OAAOE,OAAP,EAAgB;AAAA,KACZ,OAAO9U,mBAAA,CAAoB8U,OAApB,CAAP,CADY;AAAA,KALqB;AAAA,IAQrC,IAAIC,kBAAA,GAAqB;AAAA,KACrB9nC,MAAA,EAAQA,MADa;AAAA,KAErB8mC,UAAA,EAAY,CAFS;AAAA,KAGrBE,UAAA,EAAYW,qBAHS;AAAA,KAIrBZ,WAAA,EAAa,CAJQ;AAAA,KAKrBgB,WAAA,EAAa,CALQ;AAAA,KAMrBx+C,IAAA,EAAM2Y,UANe;AAAA,KAOrB8lC,UAAA,EAAY,SAPS;AAAA,KAAzB,CARqC;AAAA,IAiBrC,KAAKpB,iBAAL,CAAuBr+B,IAAvB,CAA4Bu/B,kBAA5B,EAjBqC;AAAA,IAhBmB;AAAA,GAmC5D,IAAIvqB,OAAA,GAAUuZ,4BAAA,CAA6BvB,MAA7B,CAAd,CAnC4D;AAAA,GAoC5D0S,4CAAA,CAA6C,IAA7C,EApC4D;AAAA,GAqC5D,OAAO1qB,OAAP,CArC4D;AAAA,GAAhE,CAhF0D;AAAA,EAuH1D,OAAOipB,4BAAP,CAvH0D;AAAA,EAAZ,EAAlD,CAl2DwB;AAAA,CA49DxB,SAASC,8BAAT,CAAwCjwB,CAAxC,EAA2C;AAAA,EACvC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADiB;AAAA,EAIvC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,+BAAxC,CAAL,EAA+E;AAAA,GAC3E,OAAO,KAAP,CAD2E;AAAA,GAJxC;AAAA,EAOvC,OAAO,IAAP,CAPuC;AAAA,EA59DnB;AAAA,CAq+DxB,SAASsvB,2BAAT,CAAqCtvB,CAArC,EAAwC;AAAA,EACpC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADc;AAAA,EAIpC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,yCAAxC,CAAL,EAAyF;AAAA,GACrF,OAAO,KAAP,CADqF;AAAA,GAJrD;AAAA,EAOpC,OAAO,IAAP,CAPoC;AAAA,EAr+DhB;AAAA,CA8+DxB,SAASyxB,4CAAT,CAAsD7lC,UAAtD,EAAkE;AAAA,EAC9D,IAAIwhC,UAAA,GAAasE,0CAAA,CAA2C9lC,UAA3C,CAAjB,CAD8D;AAAA,EAE9D,IAAIwhC,UAAA,KAAe,KAAnB,EAA0B;AAAA,GACtB,OADsB;AAAA,GAFoC;AAAA,EAK9D,IAAIxhC,UAAA,CAAW0hC,QAAX,KAAwB,IAA5B,EAAkC;AAAA,GAC9B1hC,UAAA,CAAW2hC,UAAX,GAAwB,IAAxB,CAD8B;AAAA,GAE9B,OAF8B;AAAA,GAL4B;AAAA,EAS9D3hC,UAAA,CAAW0hC,QAAX,GAAsB,IAAtB,CAT8D;AAAA,EAW9D,IAAIE,WAAA,GAAc5hC,UAAA,CAAW6hC,cAAX,EAAlB,CAX8D;AAAA,EAY9DtQ,WAAA,CAAYqQ,WAAZ,EAAyB,YAAY;AAAA,GACjC5hC,UAAA,CAAW0hC,QAAX,GAAsB,KAAtB,CADiC;AAAA,GAEjC,IAAI1hC,UAAA,CAAW2hC,UAAX,KAA0B,IAA9B,EAAoC;AAAA,IAChC3hC,UAAA,CAAW2hC,UAAX,GAAwB,KAAxB,CADgC;AAAA,IAEhCkE,4CAAA,CAA6C7lC,UAA7C,EAFgC;AAAA,IAFH;AAAA,GAArC,EAMG,UAAUyK,CAAV,EAAa;AAAA,GACZ06B,iCAAA,CAAkCnlC,UAAlC,EAA8CyK,CAA9C,EADY;AAAA,GANhB,EAZ8D;AAAA,EA9+D1C;AAAA,CAogExB,SAASs7B,iDAAT,CAA2D/lC,UAA3D,EAAuE;AAAA,EACnEgmC,iDAAA,CAAkDhmC,UAAlD,EADmE;AAAA,EAEnEA,UAAA,CAAWwkC,iBAAX,GAA+B,IAAIzS,WAAJ,EAA/B,CAFmE;AAAA,EApgE/C;AAAA,CAwgExB,SAASkU,oDAAT,CAA8D9S,MAA9D,EAAsEuS,kBAAtE,EAA0F;AAAA,EACtF,IAAIn9C,IAAA,GAAO,KAAX,CADsF;AAAA,EAEtF,IAAI4qC,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GAC5BhrC,IAAA,GAAO,IAAP,CAD4B;AAAA,GAFsD;AAAA,EAKtF,IAAI29C,UAAA,GAAaC,qDAAA,CAAsDT,kBAAtD,CAAjB,CALsF;AAAA,EAMtF,IAAIA,kBAAA,CAAmBE,UAAnB,KAAkC,SAAtC,EAAiD;AAAA,GAC7C7Q,gCAAA,CAAiC5B,MAAjC,EAAyC+S,UAAzC,EAAqD39C,IAArD,EAD6C;AAAA,GAAjD,MAGK;AAAA,GACD69C,oCAAA,CAAqCjT,MAArC,EAA6C+S,UAA7C,EAAyD39C,IAAzD,EADC;AAAA,GATiF;AAAA,EAxgElE;AAAA,CAqhExB,SAAS49C,qDAAT,CAA+DT,kBAA/D,EAAmF;AAAA,EAC/E,IAAIf,WAAA,GAAce,kBAAA,CAAmBf,WAArC,CAD+E;AAAA,EAE/E,IAAIgB,WAAA,GAAcD,kBAAA,CAAmBC,WAArC,CAF+E;AAAA,EAG/E,OAAO,IAAID,kBAAA,CAAmBv+C,IAAvB,CAA4Bu+C,kBAAA,CAAmB9nC,MAA/C,EAAuD8nC,kBAAA,CAAmBhB,UAA1E,EAAsFC,WAAA,GAAcgB,WAApG,CAAP,CAH+E;AAAA,EArhE3D;AAAA,CA0hExB,SAASU,+CAAT,CAAyDrmC,UAAzD,EAAqEpC,MAArE,EAA6E8mC,UAA7E,EAAyFE,UAAzF,EAAqG;AAAA,EACjG5kC,UAAA,CAAW22B,MAAX,CAAkBxwB,IAAlB,CAAuB;AAAA,GAAEvI,MAAA,EAAQA,MAAV;AAAA,GAAkB8mC,UAAA,EAAYA,UAA9B;AAAA,GAA0CE,UAAA,EAAYA,UAAtD;AAAA,GAAvB,EADiG;AAAA,EAEjG5kC,UAAA,CAAW42B,eAAX,IAA8BgO,UAA9B,CAFiG;AAAA,EA1hE7E;AAAA,CA8hExB,SAAS0B,2DAAT,CAAqEtmC,UAArE,EAAiF0lC,kBAAjF,EAAqG;AAAA,EACjG,IAAIC,WAAA,GAAcD,kBAAA,CAAmBC,WAArC,CADiG;AAAA,EAEjG,IAAIY,mBAAA,GAAsBb,kBAAA,CAAmBf,WAAnB,GAAiCe,kBAAA,CAAmBf,WAAnB,GAAiCgB,WAA5F,CAFiG;AAAA,EAGjG,IAAIa,cAAA,GAAiB5kD,IAAA,CAAKwmB,GAAL,CAASpI,UAAA,CAAW42B,eAApB,EAAqC8O,kBAAA,CAAmBd,UAAnB,GAAgCc,kBAAA,CAAmBf,WAAxF,CAArB,CAHiG;AAAA,EAIjG,IAAI8B,cAAA,GAAiBf,kBAAA,CAAmBf,WAAnB,GAAiC6B,cAAtD,CAJiG;AAAA,EAKjG,IAAIE,eAAA,GAAkBD,cAAA,GAAiBA,cAAA,GAAiBd,WAAxD,CALiG;AAAA,EAMjG,IAAIgB,yBAAA,GAA4BH,cAAhC,CANiG;AAAA,EAOjG,IAAII,KAAA,GAAQ,KAAZ,CAPiG;AAAA,EAQjG,IAAIF,eAAA,GAAkBH,mBAAtB,EAA2C;AAAA,GACvCI,yBAAA,GAA4BD,eAAA,GAAkBhB,kBAAA,CAAmBf,WAAjE,CADuC;AAAA,GAEvCiC,KAAA,GAAQ,IAAR,CAFuC;AAAA,GARsD;AAAA,EAYjG,IAAIzoB,KAAA,GAAQne,UAAA,CAAW22B,MAAvB,CAZiG;AAAA,EAajG,OAAOgQ,yBAAA,GAA4B,CAAnC,EAAsC;AAAA,GAClC,IAAIE,WAAA,GAAc1oB,KAAA,CAAMyU,IAAN,EAAlB,CADkC;AAAA,GAElC,IAAIkU,WAAA,GAAcllD,IAAA,CAAKwmB,GAAL,CAASu+B,yBAAT,EAAoCE,WAAA,CAAYjC,UAAhD,CAAlB,CAFkC;AAAA,GAGlC,IAAImC,SAAA,GAAYrB,kBAAA,CAAmBhB,UAAnB,GAAgCgB,kBAAA,CAAmBf,WAAnE,CAHkC;AAAA,GAIlCjV,eAAA,CAAgBgW,kBAAA,CAAmB9nC,MAAnC,EAA2CmpC,SAA3C,EAAsDF,WAAA,CAAYjpC,MAAlE,EAA0EipC,WAAA,CAAYnC,UAAtF,EAAkGoC,WAAlG,EAJkC;AAAA,GAKlC,IAAID,WAAA,CAAYjC,UAAZ,KAA2BkC,WAA/B,EAA4C;AAAA,IACxC3oB,KAAA,CAAMgK,KAAN,GADwC;AAAA,IAA5C,MAGK;AAAA,IACD0e,WAAA,CAAYnC,UAAZ,IAA0BoC,WAA1B,CADC;AAAA,IAEDD,WAAA,CAAYjC,UAAZ,IAA0BkC,WAA1B,CAFC;AAAA,IAR6B;AAAA,GAYlC9mC,UAAA,CAAW42B,eAAX,IAA8BkQ,WAA9B,CAZkC;AAAA,GAalCE,sDAAA,CAAuDhnC,UAAvD,EAAmE8mC,WAAnE,EAAgFpB,kBAAhF,EAbkC;AAAA,GAclCiB,yBAAA,IAA6BG,WAA7B,CAdkC;AAAA,GAb2D;AAAA,EA6BjG,OAAOF,KAAP,CA7BiG;AAAA,EA9hE7E;AAAA,CA6jExB,SAASI,sDAAT,CAAgEhnC,UAAhE,EAA4EwO,IAA5E,EAAkFk3B,kBAAlF,EAAsG;AAAA,EAClGM,iDAAA,CAAkDhmC,UAAlD,EADkG;AAAA,EAElG0lC,kBAAA,CAAmBf,WAAnB,IAAkCn2B,IAAlC,CAFkG;AAAA,EA7jE9E;AAAA,CAikExB,SAAS62B,4CAAT,CAAsDrlC,UAAtD,EAAkE;AAAA,EAC9D,IAAIA,UAAA,CAAW42B,eAAX,KAA+B,CAA/B,IAAoC52B,UAAA,CAAWohC,eAAX,KAA+B,IAAvE,EAA6E;AAAA,GACzEgE,2CAAA,CAA4CplC,UAA5C,EADyE;AAAA,GAEzEqhC,mBAAA,CAAoBrhC,UAAA,CAAWglC,6BAA/B,EAFyE;AAAA,GAA7E,MAIK;AAAA,GACDa,4CAAA,CAA6C7lC,UAA7C,EADC;AAAA,GALyD;AAAA,EAjkE1C;AAAA,CA0kExB,SAASgmC,iDAAT,CAA2DhmC,UAA3D,EAAuE;AAAA,EACnE,IAAIA,UAAA,CAAWukC,YAAX,KAA4B7iC,SAAhC,EAA2C;AAAA,GACvC,OADuC;AAAA,GADwB;AAAA,EAInE1B,UAAA,CAAWukC,YAAX,CAAwBR,uCAAxB,GAAkEriC,SAAlE,CAJmE;AAAA,EAKnE1B,UAAA,CAAWukC,YAAX,CAAwBX,KAAxB,GAAgCliC,SAAhC,CALmE;AAAA,EAMnE1B,UAAA,CAAWukC,YAAX,GAA0B7iC,SAA1B,CANmE;AAAA,EA1kE/C;AAAA,CAklExB,SAASulC,gEAAT,CAA0EjnC,UAA1E,EAAsF;AAAA,EAClF,OAAOA,UAAA,CAAWwkC,iBAAX,CAA6BpqC,MAA7B,GAAsC,CAA7C,EAAgD;AAAA,GAC5C,IAAI4F,UAAA,CAAW42B,eAAX,KAA+B,CAAnC,EAAsC;AAAA,IAClC,OADkC;AAAA,IADM;AAAA,GAI5C,IAAI8O,kBAAA,GAAqB1lC,UAAA,CAAWwkC,iBAAX,CAA6B5R,IAA7B,EAAzB,CAJ4C;AAAA,GAK5C,IAAI0T,2DAAA,CAA4DtmC,UAA5D,EAAwE0lC,kBAAxE,MAAgG,IAApG,EAA0G;AAAA,IACtGwB,gDAAA,CAAiDlnC,UAAjD,EADsG;AAAA,IAEtGimC,oDAAA,CAAqDjmC,UAAA,CAAWglC,6BAAhE,EAA+FU,kBAA/F,EAFsG;AAAA,IAL9D;AAAA,GADkC;AAAA,EAllE9D;AAAA,CA8lExB,SAASyB,oCAAT,CAA8CnnC,UAA9C,EAA0DkkC,IAA1D,EAAgE;AAAA,EAC5D,IAAI/Q,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAD4D;AAAA,EAE5D,IAAIW,WAAA,GAAc,CAAlB,CAF4D;AAAA,EAG5D,IAAIzB,IAAA,CAAKjlD,WAAL,KAAqBy3B,QAAzB,EAAmC;AAAA,GAC/BivB,WAAA,GAAczB,IAAA,CAAKjlD,WAAL,CAAiBmoD,iBAA/B,CAD+B;AAAA,GAHyB;AAAA,EAM5D,IAAIjgD,IAAA,GAAO+8C,IAAA,CAAKjlD,WAAhB,CAN4D;AAAA,EAO5D,IAAI2e,MAAA,GAASgzB,mBAAA,CAAoBsT,IAAA,CAAKtmC,MAAzB,CAAb,CAP4D;AAAA,EAQ5D,IAAI8nC,kBAAA,GAAqB;AAAA,GACrB9nC,MAAA,EAAQA,MADa;AAAA,GAErB8mC,UAAA,EAAYR,IAAA,CAAKQ,UAFI;AAAA,GAGrBE,UAAA,EAAYV,IAAA,CAAKU,UAHI;AAAA,GAIrBD,WAAA,EAAa,CAJQ;AAAA,GAKrBgB,WAAA,EAAaA,WALQ;AAAA,GAMrBx+C,IAAA,EAAMA,IANe;AAAA,GAOrBy+C,UAAA,EAAY,MAPS;AAAA,GAAzB,CAR4D;AAAA,EAiB5D,IAAI5lC,UAAA,CAAWwkC,iBAAX,CAA6BpqC,MAA7B,GAAsC,CAA1C,EAA6C;AAAA,GACzC4F,UAAA,CAAWwkC,iBAAX,CAA6Br+B,IAA7B,CAAkCu/B,kBAAlC,EADyC;AAAA,GAKzC,OAAO2B,gCAAA,CAAiClU,MAAjC,CAAP,CALyC;AAAA,GAjBe;AAAA,EAwB5D,IAAIA,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GAC5B,IAAI+T,SAAA,GAAY,IAAIngD,IAAJ,CAASu+C,kBAAA,CAAmB9nC,MAA5B,EAAoC8nC,kBAAA,CAAmBhB,UAAvD,EAAmE,CAAnE,CAAhB,CAD4B;AAAA,GAE5B,OAAOjU,mBAAA,CAAoBsC,8BAAA,CAA+BuU,SAA/B,EAA0C,IAA1C,EAAgDnU,MAAA,CAAOG,OAAP,CAAeF,cAA/D,CAApB,CAAP,CAF4B;AAAA,GAxB4B;AAAA,EA4B5D,IAAIpzB,UAAA,CAAW42B,eAAX,GAA6B,CAAjC,EAAoC;AAAA,GAChC,IAAI0P,2DAAA,CAA4DtmC,UAA5D,EAAwE0lC,kBAAxE,MAAgG,IAApG,EAA0G;AAAA,IACtG,IAAIQ,UAAA,GAAaC,qDAAA,CAAsDT,kBAAtD,CAAjB,CADsG;AAAA,IAEtGL,4CAAA,CAA6CrlC,UAA7C,EAFsG;AAAA,IAGtG,OAAOywB,mBAAA,CAAoBsC,8BAAA,CAA+BmT,UAA/B,EAA2C,KAA3C,EAAkD/S,MAAA,CAAOG,OAAP,CAAeF,cAAjE,CAApB,CAAP,CAHsG;AAAA,IAD1E;AAAA,GAMhC,IAAIpzB,UAAA,CAAWohC,eAAX,KAA+B,IAAnC,EAAyC;AAAA,IACrC,IAAI32B,CAAA,GAAI,IAAIhH,SAAJ,CAAc,yDAAd,CAAR,CADqC;AAAA,IAErC0hC,iCAAA,CAAkCnlC,UAAlC,EAA8CyK,CAA9C,EAFqC;AAAA,IAGrC,OAAOkmB,mBAAA,CAAoBlmB,CAApB,CAAP,CAHqC;AAAA,IANT;AAAA,GA5BwB;AAAA,EAwC5DzK,UAAA,CAAWwkC,iBAAX,CAA6Br+B,IAA7B,CAAkCu/B,kBAAlC,EAxC4D;AAAA,EAyC5D,IAAIvqB,OAAA,GAAUksB,gCAAA,CAAiClU,MAAjC,CAAd,CAzC4D;AAAA,EA0C5D0S,4CAAA,CAA6C7lC,UAA7C,EA1C4D;AAAA,EA2C5D,OAAOmb,OAAP,CA3C4D;AAAA,EA9lExC;AAAA,CA2oExB,SAASosB,gDAAT,CAA0DvnC,UAA1D,EAAsEykC,eAAtE,EAAuF;AAAA,EACnFA,eAAA,CAAgB7mC,MAAhB,GAAyBgzB,mBAAA,CAAoB6T,eAAA,CAAgB7mC,MAApC,CAAzB,CADmF;AAAA,EAEnF,IAAIu1B,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAFmF;AAAA,EAGnF,IAAIwC,2BAAA,CAA4BrU,MAA5B,MAAwC,IAA5C,EAAkD;AAAA,GAC9C,OAAOsU,oCAAA,CAAqCtU,MAArC,IAA+C,CAAtD,EAAyD;AAAA,IACrD,IAAIuS,kBAAA,GAAqBwB,gDAAA,CAAiDlnC,UAAjD,CAAzB,CADqD;AAAA,IAErDimC,oDAAA,CAAqD9S,MAArD,EAA6DuS,kBAA7D,EAFqD;AAAA,IADX;AAAA,GAHiC;AAAA,EA3oE/D;AAAA,CAqpExB,SAASgC,kDAAT,CAA4D1nC,UAA5D,EAAwE8jC,YAAxE,EAAsF4B,kBAAtF,EAA0G;AAAA,EACtG,IAAIA,kBAAA,CAAmBf,WAAnB,GAAiCb,YAAjC,GAAgD4B,kBAAA,CAAmBd,UAAvE,EAAmF;AAAA,GAC/E,MAAM,IAAIzY,UAAJ,CAAe,2BAAf,CAAN,CAD+E;AAAA,GADmB;AAAA,EAItG6a,sDAAA,CAAuDhnC,UAAvD,EAAmE8jC,YAAnE,EAAiF4B,kBAAjF,EAJsG;AAAA,EAKtG,IAAIA,kBAAA,CAAmBf,WAAnB,GAAiCe,kBAAA,CAAmBC,WAAxD,EAAqE;AAAA,GAEjE,OAFiE;AAAA,GALiC;AAAA,EAStGuB,gDAAA,CAAiDlnC,UAAjD,EATsG;AAAA,EAUtG,IAAI2nC,aAAA,GAAgBjC,kBAAA,CAAmBf,WAAnB,GAAiCe,kBAAA,CAAmBC,WAAxE,CAVsG;AAAA,EAWtG,IAAIgC,aAAA,GAAgB,CAApB,EAAuB;AAAA,GACnB,IAAIxkD,GAAA,GAAMuiD,kBAAA,CAAmBhB,UAAnB,GAAgCgB,kBAAA,CAAmBf,WAA7D,CADmB;AAAA,GAEnB,IAAIiD,SAAA,GAAYlC,kBAAA,CAAmB9nC,MAAnB,CAA0B4F,KAA1B,CAAgCrgB,GAAA,GAAMwkD,aAAtC,EAAqDxkD,GAArD,CAAhB,CAFmB;AAAA,GAGnBkjD,+CAAA,CAAgDrmC,UAAhD,EAA4D4nC,SAA5D,EAAuE,CAAvE,EAA0EA,SAAA,CAAUhD,UAApF,EAHmB;AAAA,GAX+E;AAAA,EAgBtGc,kBAAA,CAAmB9nC,MAAnB,GAA4BgzB,mBAAA,CAAoB8U,kBAAA,CAAmB9nC,MAAvC,CAA5B,CAhBsG;AAAA,EAiBtG8nC,kBAAA,CAAmBf,WAAnB,IAAkCgD,aAAlC,CAjBsG;AAAA,EAkBtG1B,oDAAA,CAAqDjmC,UAAA,CAAWglC,6BAAhE,EAA+FU,kBAA/F,EAlBsG;AAAA,EAmBtGuB,gEAAA,CAAiEjnC,UAAjE,EAnBsG;AAAA,EArpElF;AAAA,CA0qExB,SAAS6nC,2CAAT,CAAqD7nC,UAArD,EAAiE8jC,YAAjE,EAA+E;AAAA,EAC3E,IAAIW,eAAA,GAAkBzkC,UAAA,CAAWwkC,iBAAX,CAA6B5R,IAA7B,EAAtB,CAD2E;AAAA,EAE3E,IAAIO,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAF2E;AAAA,EAG3E,IAAI7R,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GAC5B,IAAIuQ,YAAA,KAAiB,CAArB,EAAwB;AAAA,IACpB,MAAM,IAAIrgC,SAAJ,CAAc,kEAAd,CAAN,CADoB;AAAA,IADI;AAAA,GAI5B8jC,gDAAA,CAAiDvnC,UAAjD,EAA6DykC,eAA7D,EAJ4B;AAAA,GAAhC,MAMK;AAAA,GACDiD,kDAAA,CAAmD1nC,UAAnD,EAA+D8jC,YAA/D,EAA6EW,eAA7E,EADC;AAAA,GATsE;AAAA,EAY3EoB,4CAAA,CAA6C7lC,UAA7C,EAZ2E;AAAA,EA1qEvD;AAAA,CAwrExB,SAASknC,gDAAT,CAA0DlnC,UAA1D,EAAsE;AAAA,EAClE,IAAIsB,UAAA,GAAatB,UAAA,CAAWwkC,iBAAX,CAA6Brc,KAA7B,EAAjB,CADkE;AAAA,EAElE6d,iDAAA,CAAkDhmC,UAAlD,EAFkE;AAAA,EAGlE,OAAOsB,UAAP,CAHkE;AAAA,EAxrE9C;AAAA,CA6rExB,SAASwkC,0CAAT,CAAoD9lC,UAApD,EAAgE;AAAA,EAC5D,IAAImzB,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAD4D;AAAA,EAE5D,IAAI7R,MAAA,CAAOI,MAAP,KAAkB,UAAtB,EAAkC;AAAA,GAC9B,OAAO,KAAP,CAD8B;AAAA,GAF0B;AAAA,EAK5D,IAAIvzB,UAAA,CAAWohC,eAAX,KAA+B,IAAnC,EAAyC;AAAA,GACrC,OAAO,KAAP,CADqC;AAAA,GALmB;AAAA,EAQ5D,IAAIphC,UAAA,CAAWg6B,QAAX,KAAwB,KAA5B,EAAmC;AAAA,GAC/B,OAAO,KAAP,CAD+B;AAAA,GARyB;AAAA,EAW5D,IAAI/E,8BAAA,CAA+B9B,MAA/B,MAA2C,IAA3C,IAAmD6B,gCAAA,CAAiC7B,MAAjC,IAA2C,CAAlG,EAAqG;AAAA,GACjG,OAAO,IAAP,CADiG;AAAA,GAXzC;AAAA,EAc5D,IAAIqU,2BAAA,CAA4BrU,MAA5B,MAAwC,IAAxC,IAAgDsU,oCAAA,CAAqCtU,MAArC,IAA+C,CAAnG,EAAsG;AAAA,GAClG,OAAO,IAAP,CADkG;AAAA,GAd1C;AAAA,EAiB5D,IAAI6K,WAAA,GAAc+G,0CAAA,CAA2C/kC,UAA3C,CAAlB,CAjB4D;AAAA,EAkB5D,IAAIg+B,WAAA,GAAc,CAAlB,EAAqB;AAAA,GACjB,OAAO,IAAP,CADiB;AAAA,GAlBuC;AAAA,EAqB5D,OAAO,KAAP,CArB4D;AAAA,EA7rExC;AAAA,CAotExB,SAASoH,2CAAT,CAAqDplC,UAArD,EAAiE;AAAA,EAC7DA,UAAA,CAAW6hC,cAAX,GAA4BngC,SAA5B,CAD6D;AAAA,EAE7D1B,UAAA,CAAWihC,gBAAX,GAA8Bv/B,SAA9B,CAF6D;AAAA,EAptEzC;AAAA,CAytExB,SAASujC,iCAAT,CAA2CjlC,UAA3C,EAAuD;AAAA,EACnD,IAAImzB,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CADmD;AAAA,EAEnD,IAAIhlC,UAAA,CAAW42B,eAAX,GAA6B,CAAjC,EAAoC;AAAA,GAChC52B,UAAA,CAAWohC,eAAX,GAA6B,IAA7B,CADgC;AAAA,GAEhC,OAFgC;AAAA,GAFe;AAAA,EAMnD,IAAIphC,UAAA,CAAWwkC,iBAAX,CAA6BpqC,MAA7B,GAAsC,CAA1C,EAA6C;AAAA,GACzC,IAAI0tC,oBAAA,GAAuB9nC,UAAA,CAAWwkC,iBAAX,CAA6B5R,IAA7B,EAA3B,CADyC;AAAA,GAEzC,IAAIkV,oBAAA,CAAqBnD,WAArB,GAAmC,CAAvC,EAA0C;AAAA,IACtC,IAAIl6B,CAAA,GAAI,IAAIhH,SAAJ,CAAc,yDAAd,CAAR,CADsC;AAAA,IAEtC0hC,iCAAA,CAAkCnlC,UAAlC,EAA8CyK,CAA9C,EAFsC;AAAA,IAGtC,MAAMA,CAAN,CAHsC;AAAA,IAFD;AAAA,GANM;AAAA,EAcnD26B,2CAAA,CAA4CplC,UAA5C,EAdmD;AAAA,EAenDqhC,mBAAA,CAAoBlO,MAApB,EAfmD;AAAA,EAztE/B;AAAA,CA0uExB,SAAS+R,mCAAT,CAA6CllC,UAA7C,EAAyDvF,KAAzD,EAAgE;AAAA,EAC5D,IAAI04B,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAD4D;AAAA,EAE5D,IAAIpnC,MAAA,GAASnD,KAAA,CAAMmD,MAAnB,CAF4D;AAAA,EAG5D,IAAI8mC,UAAA,GAAajqC,KAAA,CAAMiqC,UAAvB,CAH4D;AAAA,EAI5D,IAAIE,UAAA,GAAanqC,KAAA,CAAMmqC,UAAvB,CAJ4D;AAAA,EAK5D,IAAImD,iBAAA,GAAoBnX,mBAAA,CAAoBhzB,MAApB,CAAxB,CAL4D;AAAA,EAM5D,IAAIq3B,8BAAA,CAA+B9B,MAA/B,MAA2C,IAA/C,EAAqD;AAAA,GACjD,IAAI6B,gCAAA,CAAiC7B,MAAjC,MAA6C,CAAjD,EAAoD;AAAA,IAChDkT,+CAAA,CAAgDrmC,UAAhD,EAA4D+nC,iBAA5D,EAA+ErD,UAA/E,EAA2FE,UAA3F,EADgD;AAAA,IAApD,MAGK;AAAA,IACD,IAAIoD,eAAA,GAAkB,IAAIloC,UAAJ,CAAeioC,iBAAf,EAAkCrD,UAAlC,EAA8CE,UAA9C,CAAtB,CADC;AAAA,IAED7P,gCAAA,CAAiC5B,MAAjC,EAAyC6U,eAAzC,EAA0D,KAA1D,EAFC;AAAA,IAJ4C;AAAA,GAArD,MASK,IAAIR,2BAAA,CAA4BrU,MAA5B,MAAwC,IAA5C,EAAkD;AAAA,GAEnDkT,+CAAA,CAAgDrmC,UAAhD,EAA4D+nC,iBAA5D,EAA+ErD,UAA/E,EAA2FE,UAA3F,EAFmD;AAAA,GAGnDqC,gEAAA,CAAiEjnC,UAAjE,EAHmD;AAAA,GAAlD,MAKA;AAAA,GACDqmC,+CAAA,CAAgDrmC,UAAhD,EAA4D+nC,iBAA5D,EAA+ErD,UAA/E,EAA2FE,UAA3F,EADC;AAAA,GApBuD;AAAA,EAuB5DiB,4CAAA,CAA6C7lC,UAA7C,EAvB4D;AAAA,EA1uExC;AAAA,CAmwExB,SAASmlC,iCAAT,CAA2CnlC,UAA3C,EAAuDyK,CAAvD,EAA0D;AAAA,EACtD,IAAI0oB,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CADsD;AAAA,EAEtD,IAAI7R,MAAA,CAAOI,MAAP,KAAkB,UAAtB,EAAkC;AAAA,GAC9B,OAD8B;AAAA,GAFoB;AAAA,EAKtDwS,iDAAA,CAAkD/lC,UAAlD,EALsD;AAAA,EAMtD+2B,UAAA,CAAW/2B,UAAX,EANsD;AAAA,EAOtDolC,2CAAA,CAA4CplC,UAA5C,EAPsD;AAAA,EAQtD8hC,mBAAA,CAAoB3O,MAApB,EAA4B1oB,CAA5B,EARsD;AAAA,EAnwElC;AAAA,CA6wExB,SAASs6B,0CAAT,CAAoD/kC,UAApD,EAAgE;AAAA,EAC5D,IAAImzB,MAAA,GAASnzB,UAAA,CAAWglC,6BAAxB,CAD4D;AAAA,EAE5D,IAAI/8C,KAAA,GAAQkrC,MAAA,CAAOI,MAAnB,CAF4D;AAAA,EAG5D,IAAItrC,KAAA,KAAU,SAAd,EAAyB;AAAA,GACrB,OAAO,IAAP,CADqB;AAAA,GAHmC;AAAA,EAM5D,IAAIA,KAAA,KAAU,QAAd,EAAwB;AAAA,GACpB,OAAO,CAAP,CADoB;AAAA,GANoC;AAAA,EAS5D,OAAO+X,UAAA,CAAWi9B,YAAX,GAA0Bj9B,UAAA,CAAW42B,eAA5C,CAT4D;AAAA,EA7wExC;AAAA,CAwxExB,SAASoN,mCAAT,CAA6ChkC,UAA7C,EAAyD8jC,YAAzD,EAAuE;AAAA,EACnEA,YAAA,GAAenqC,MAAA,CAAOmqC,YAAP,CAAf,CADmE;AAAA,EAEnE,IAAIhU,yBAAA,CAA0BgU,YAA1B,MAA4C,KAAhD,EAAuD;AAAA,GACnD,MAAM,IAAI3X,UAAJ,CAAe,+BAAf,CAAN,CADmD;AAAA,GAFY;AAAA,EAKnE0b,2CAAA,CAA4C7nC,UAA5C,EAAwD8jC,YAAxD,EALmE;AAAA,EAxxE/C;AAAA,CA+xExB,SAASK,8CAAT,CAAwDnkC,UAAxD,EAAoEkkC,IAApE,EAA0E;AAAA,EACtE,IAAIO,eAAA,GAAkBzkC,UAAA,CAAWwkC,iBAAX,CAA6B5R,IAA7B,EAAtB,CADsE;AAAA,EAEtE,IAAI6R,eAAA,CAAgBC,UAAhB,GAA6BD,eAAA,CAAgBE,WAA7C,KAA6DT,IAAA,CAAKQ,UAAtE,EAAkF;AAAA,GAC9E,MAAM,IAAIvY,UAAJ,CAAe,yDAAf,CAAN,CAD8E;AAAA,GAFZ;AAAA,EAKtE,IAAIsY,eAAA,CAAgBG,UAAhB,KAA+BV,IAAA,CAAKU,UAAxC,EAAoD;AAAA,GAChD,MAAM,IAAIzY,UAAJ,CAAe,4DAAf,CAAN,CADgD;AAAA,GALkB;AAAA,EAQtEsY,eAAA,CAAgB7mC,MAAhB,GAAyBsmC,IAAA,CAAKtmC,MAA9B,CARsE;AAAA,EAStEiqC,2CAAA,CAA4C7nC,UAA5C,EAAwDkkC,IAAA,CAAKU,UAA7D,EATsE;AAAA,EA/xElD;AAAA,CA0yExB,SAASqD,iCAAT,CAA2C9U,MAA3C,EAAmDnzB,UAAnD,EAA+Dm4B,cAA/D,EAA+E8J,aAA/E,EAA8FC,eAA9F,EAA+GnR,aAA/G,EAA8HwU,qBAA9H,EAAqJ;AAAA,EACjJvlC,UAAA,CAAWglC,6BAAX,GAA2C7R,MAA3C,CADiJ;AAAA,EAEjJnzB,UAAA,CAAW2hC,UAAX,GAAwB,KAAxB,CAFiJ;AAAA,EAGjJ3hC,UAAA,CAAW0hC,QAAX,GAAsB,KAAtB,CAHiJ;AAAA,EAIjJ1hC,UAAA,CAAWukC,YAAX,GAA0B7iC,SAA1B,CAJiJ;AAAA,EAMjJ1B,UAAA,CAAW22B,MAAX,GAAoB32B,UAAA,CAAW42B,eAAX,GAA6Bl1B,SAAjD,CANiJ;AAAA,EAOjJq1B,UAAA,CAAW/2B,UAAX,EAPiJ;AAAA,EAQjJA,UAAA,CAAWohC,eAAX,GAA6B,KAA7B,CARiJ;AAAA,EASjJphC,UAAA,CAAWg6B,QAAX,GAAsB,KAAtB,CATiJ;AAAA,EAUjJh6B,UAAA,CAAWi9B,YAAX,GAA0BnM,iCAAA,CAAkCC,aAAlC,CAA1B,CAViJ;AAAA,EAWjJ/wB,UAAA,CAAW6hC,cAAX,GAA4BI,aAA5B,CAXiJ;AAAA,EAYjJjiC,UAAA,CAAWihC,gBAAX,GAA8BiB,eAA9B,CAZiJ;AAAA,EAajJliC,UAAA,CAAWwlC,sBAAX,GAAoCD,qBAApC,CAbiJ;AAAA,EAcjJvlC,UAAA,CAAWwkC,iBAAX,GAA+B,IAAIzS,WAAJ,EAA/B,CAdiJ;AAAA,EAejJoB,MAAA,CAAOwC,yBAAP,GAAmC31B,UAAnC,CAfiJ;AAAA,EAgBjJ,IAAIq9B,WAAA,GAAclF,cAAA,EAAlB,CAhBiJ;AAAA,EAiBjJ5G,WAAA,CAAYd,mBAAA,CAAoB4M,WAApB,CAAZ,EAA8C,YAAY;AAAA,GACtDr9B,UAAA,CAAWg6B,QAAX,GAAsB,IAAtB,CADsD;AAAA,GAEtD6L,4CAAA,CAA6C7lC,UAA7C,EAFsD;AAAA,GAA1D,EAGG,UAAU7D,CAAV,EAAa;AAAA,GACZgpC,iCAAA,CAAkCnlC,UAAlC,EAA8C7D,CAA9C,EADY;AAAA,GAHhB,EAjBiJ;AAAA,EA1yE7H;AAAA,CAk0ExB,SAAS+rC,qDAAT,CAA+D/U,MAA/D,EAAuEgV,oBAAvE,EAA6FpX,aAA7F,EAA4G;AAAA,EACxG,IAAI/wB,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAcilD,4BAAA,CAA6B7iC,SAA3C,CAAjB,CADwG;AAAA,EAExG,SAAS42B,cAAT,GAA0B;AAAA,GACtB,OAAOzH,YAAA,CAAayX,oBAAb,EAAmC,OAAnC,EAA4C,CAACnoC,UAAD,CAA5C,CAAP,CADsB;AAAA,GAF8E;AAAA,EAKxG,IAAIiiC,aAAA,GAAgB/R,mCAAA,CAAoCiY,oBAApC,EAA0D,MAA1D,EAAkE,CAAlE,EAAqE,CAACnoC,UAAD,CAArE,CAApB,CALwG;AAAA,EAMxG,IAAIkiC,eAAA,GAAkBhS,mCAAA,CAAoCiY,oBAApC,EAA0D,QAA1D,EAAoE,CAApE,EAAuE,EAAvE,CAAtB,CANwG;AAAA,EAOxG,IAAI5C,qBAAA,GAAwB4C,oBAAA,CAAqB5C,qBAAjD,CAPwG;AAAA,EAQxG,IAAIA,qBAAA,KAA0B7jC,SAA9B,EAAyC;AAAA,GACrC6jC,qBAAA,GAAwB5rC,MAAA,CAAO4rC,qBAAP,CAAxB,CADqC;AAAA,GAErC,IAAI/B,eAAA,CAAgB+B,qBAAhB,MAA2C,KAA3C,IAAoDA,qBAAA,IAAyB,CAAjF,EAAoF;AAAA,IAChF,MAAM,IAAIpZ,UAAJ,CAAe,kDAAf,CAAN,CADgF;AAAA,IAF/C;AAAA,GAR+D;AAAA,EAcxG8b,iCAAA,CAAkC9U,MAAlC,EAA0CnzB,UAA1C,EAAsDm4B,cAAtD,EAAsE8J,aAAtE,EAAqFC,eAArF,EAAsGnR,aAAtG,EAAqHwU,qBAArH,EAdwG;AAAA,EAl0EpF;AAAA,CAk1ExB,SAAST,8BAAT,CAAwCrkD,OAAxC,EAAiDuf,UAAjD,EAA6DkkC,IAA7D,EAAmE;AAAA,EAC/DzjD,OAAA,CAAQsjD,uCAAR,GAAkD/jC,UAAlD,CAD+D;AAAA,EAE/Dvf,OAAA,CAAQmjD,KAAR,GAAgBM,IAAhB,CAF+D;AAAA,EAl1E3C;AAAA,CAu1ExB,SAASP,8BAAT,CAAwCrgD,IAAxC,EAA8C;AAAA,EAC1C,OAAO,IAAImgB,SAAJ,CAAc,yCAAyCngB,IAAzC,GAAgD,kDAA9D,CAAP,CAD0C;AAAA,EAv1EtB;AAAA,CA21ExB,SAASghD,uCAAT,CAAiDhhD,IAAjD,EAAuD;AAAA,EACnD,OAAO,IAAImgB,SAAJ,CAAc,4CAA4CngB,IAA5C,GAAmD,qDAAjE,CAAP,CADmD;AAAA,EA31E/B;AAAA,CAg2ExB,SAAS8kD,+BAAT,CAAyCjV,MAAzC,EAAiDH,aAAjD,EAAgE;AAAA,EAC5D,IAAIA,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,KAAhB,CAAF;AAAA,GAD8B;AAAA,EAE5D,IAAIE,MAAA,GAAS,IAAImV,wBAAJ,CAA6BlV,MAA7B,CAAb,CAF4D;AAAA,EAG5DD,MAAA,CAAOE,cAAP,GAAwBJ,aAAxB,CAH4D;AAAA,EAI5D,OAAOE,MAAP,CAJ4D;AAAA,EAh2ExC;AAAA,CAu2ExB,SAASmU,gCAAT,CAA0ClU,MAA1C,EAAkD;AAAA,EAC9C,IAAIhY,OAAA,GAAUkW,UAAA,CAAW,UAAU1wC,OAAV,EAAmBC,MAAnB,EAA2B;AAAA,GAChD,IAAI0nD,eAAA,GAAkB;AAAA,IAClB1T,QAAA,EAAUj0C,OADQ;AAAA,IAElBk0C,OAAA,EAASj0C,MAFS;AAAA,IAAtB,CADgD;AAAA,GAKhDuyC,MAAA,CAAOG,OAAP,CAAeiV,iBAAf,CAAiCpiC,IAAjC,CAAsCmiC,eAAtC,EALgD;AAAA,GAAtC,CAAd,CAD8C;AAAA,EAQ9C,OAAOntB,OAAP,CAR8C;AAAA,EAv2E1B;AAAA,CAi3ExB,SAASirB,oCAAT,CAA8CjT,MAA9C,EAAsD14B,KAAtD,EAA6DlS,IAA7D,EAAmE;AAAA,EAC/D,IAAI2qC,MAAA,GAASC,MAAA,CAAOG,OAApB,CAD+D;AAAA,EAE/D,IAAIgV,eAAA,GAAkBpV,MAAA,CAAOqV,iBAAP,CAAyBpgB,KAAzB,EAAtB,CAF+D;AAAA,EAG/DmgB,eAAA,CAAgB1T,QAAhB,CAAyB7B,8BAAA,CAA+Bt4B,KAA/B,EAAsClS,IAAtC,EAA4C2qC,MAAA,CAAOE,cAAnD,CAAzB,EAH+D;AAAA,EAj3E3C;AAAA,CAs3ExB,SAASqU,oCAAT,CAA8CtU,MAA9C,EAAsD;AAAA,EAClD,OAAOA,MAAA,CAAOG,OAAP,CAAeiV,iBAAf,CAAiCnuC,MAAxC,CADkD;AAAA,EAt3E9B;AAAA,CAy3ExB,SAASotC,2BAAT,CAAqCrU,MAArC,EAA6C;AAAA,EACzC,IAAID,MAAA,GAASC,MAAA,CAAOG,OAApB,CADyC;AAAA,EAEzC,IAAIJ,MAAA,KAAWxxB,SAAf,EAA0B;AAAA,GACtB,OAAO,KAAP,CADsB;AAAA,GAFe;AAAA,EAKzC,IAAI,CAAC8mC,0BAAA,CAA2BtV,MAA3B,CAAL,EAAyC;AAAA,GACrC,OAAO,KAAP,CADqC;AAAA,GALA;AAAA,EAQzC,OAAO,IAAP,CARyC;AAAA,EAz3ErB;AAAA,CAm4ExB,IAAImV,wBAAA,GAA0C,YAAY;AAAA,EACtD,SAASA,wBAAT,CAAkClV,MAAlC,EAA0C;AAAA,GACtC,IAAI,CAACgC,gBAAA,CAAiBhC,MAAjB,CAAL,EAA+B;AAAA,IAC3B,MAAM,IAAI1vB,SAAJ,CAAc,6FAChB,aADE,CAAN,CAD2B;AAAA,IADO;AAAA,GAKtC,IAAI4gC,8BAAA,CAA+BlR,MAAA,CAAOwC,yBAAtC,MAAqE,KAAzE,EAAgF;AAAA,IAC5E,MAAM,IAAIlyB,SAAJ,CAAc,0FAChB,QADE,CAAN,CAD4E;AAAA,IAL1C;AAAA,GAStC,IAAI2xB,sBAAA,CAAuBjC,MAAvB,CAAJ,EAAoC;AAAA,IAChC,MAAM,IAAI1vB,SAAJ,CAAc,6EAAd,CAAN,CADgC;AAAA,IATE;AAAA,GAYtCwvB,qCAAA,CAAsC,IAAtC,EAA4CE,MAA5C,EAZsC;AAAA,GAatC,KAAKoV,iBAAL,GAAyB,IAAIxW,WAAJ,EAAzB,CAbsC;AAAA,GADY;AAAA,EAgBtD3uC,MAAA,CAAOwf,cAAP,CAAsBylC,wBAAA,CAAyB9mC,SAA/C,EAA0D,QAA1D,EAAoE;AAAA,GAChEhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI,CAACi+C,0BAAA,CAA2B,IAA3B,CAAL,EAAuC;AAAA,KACnC,OAAO7X,mBAAA,CAAoB8X,6BAAA,CAA8B,QAA9B,CAApB,CAAP,CADmC;AAAA,KAD1B;AAAA,IAIb,OAAO,KAAKvU,cAAZ,CAJa;AAAA,IAD+C;AAAA,GAOhE1uC,UAAA,EAAY,IAPoD;AAAA,GAQhEC,YAAA,EAAc,IARkD;AAAA,GAApE,EAhBsD;AAAA,EA0BtD4iD,wBAAA,CAAyB9mC,SAAzB,CAAmC+zB,MAAnC,GAA4C,UAAUp1C,MAAV,EAAkB;AAAA,GAC1D,IAAI,CAACsoD,0BAAA,CAA2B,IAA3B,CAAL,EAAuC;AAAA,IACnC,OAAO7X,mBAAA,CAAoB8X,6BAAA,CAA8B,QAA9B,CAApB,CAAP,CADmC;AAAA,IADmB;AAAA,GAI1D,IAAI,KAAKpV,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,QAApB,CAApB,CAAP,CADyC;AAAA,IAJa;AAAA,GAO1D,OAAOL,iCAAA,CAAkC,IAAlC,EAAwC1zC,MAAxC,CAAP,CAP0D;AAAA,GAA9D,CA1BsD;AAAA,EAmCtDmoD,wBAAA,CAAyB9mC,SAAzB,CAAmCg0B,IAAnC,GAA0C,UAAU2O,IAAV,EAAgB;AAAA,GACtD,IAAI,CAACsE,0BAAA,CAA2B,IAA3B,CAAL,EAAuC;AAAA,IACnC,OAAO7X,mBAAA,CAAoB8X,6BAAA,CAA8B,MAA9B,CAApB,CAAP,CADmC;AAAA,IADe;AAAA,GAItD,IAAI,KAAKpV,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OAAOivB,mBAAA,CAAoBsD,mBAAA,CAAoB,WAApB,CAApB,CAAP,CADyC;AAAA,IAJS;AAAA,GAOtD,IAAI,CAACxd,WAAA,CAAYP,MAAZ,CAAmBguB,IAAnB,CAAL,EAA+B;AAAA,IAC3B,OAAOvT,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,mCAAd,CAApB,CAAP,CAD2B;AAAA,IAPuB;AAAA,GAUtD,IAAIotB,gBAAA,CAAiBqT,IAAA,CAAKtmC,MAAtB,MAAkC,IAAtC,EAVsD;AAAA,GAWtD,IAAIsmC,IAAA,CAAKU,UAAL,KAAoB,CAAxB,EAA2B;AAAA,IACvB,OAAOjU,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,oCAAd,CAApB,CAAP,CADuB;AAAA,IAX2B;AAAA,GActD,OAAOilC,4BAAA,CAA6B,IAA7B,EAAmCxE,IAAnC,CAAP,CAdsD;AAAA,GAA1D,CAnCsD;AAAA,EAmDtDmE,wBAAA,CAAyB9mC,SAAzB,CAAmCk0B,WAAnC,GAAiD,YAAY;AAAA,GACzD,IAAI,CAAC+S,0BAAA,CAA2B,IAA3B,CAAL,EAAuC;AAAA,IACnC,MAAMC,6BAAA,CAA8B,aAA9B,CAAN,CADmC;AAAA,IADkB;AAAA,GAIzD,IAAI,KAAKpV,oBAAL,KAA8B3xB,SAAlC,EAA6C;AAAA,IACzC,OADyC;AAAA,IAJY;AAAA,GAOzD,IAAI,KAAK6mC,iBAAL,CAAuBnuC,MAAvB,GAAgC,CAApC,EAAuC;AAAA,IACnC,MAAM,IAAIqJ,SAAJ,CAAc,qFAAd,CAAN,CADmC;AAAA,IAPkB;AAAA,GAUzDqwB,kCAAA,CAAmC,IAAnC,EAVyD;AAAA,GAA7D,CAnDsD;AAAA,EA+DtD,OAAOuU,wBAAP,CA/DsD;AAAA,EAAZ,EAA9C,CAn4EwB;AAAA,CAq8ExB,SAASG,0BAAT,CAAoCp0B,CAApC,EAAuC;AAAA,EACnC,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADa;AAAA,EAInC,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,mBAAxC,CAAL,EAAmE;AAAA,GAC/D,OAAO,KAAP,CAD+D;AAAA,GAJhC;AAAA,EAOnC,OAAO,IAAP,CAPmC;AAAA,EAr8Ef;AAAA,CA88ExB,SAASs0B,4BAAT,CAAsCxV,MAAtC,EAA8CgR,IAA9C,EAAoD;AAAA,EAChD,IAAI/Q,MAAA,GAASD,MAAA,CAAOG,oBAApB,CADgD;AAAA,EAEhDF,MAAA,CAAOuC,UAAP,GAAoB,IAApB,CAFgD;AAAA,EAGhD,IAAIvC,MAAA,CAAOI,MAAP,KAAkB,SAAtB,EAAiC;AAAA,GAC7B,OAAO5C,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CAD6B;AAAA,GAHe;AAAA,EAOhD,OAAOwT,oCAAA,CAAqChU,MAAA,CAAOwC,yBAA5C,EAAuEuO,IAAvE,CAAP,CAPgD;AAAA,EA98E5B;AAAA,CAw9ExB,SAASuE,6BAAT,CAAuCnlD,IAAvC,EAA6C;AAAA,EACzC,OAAO,IAAImgB,SAAJ,CAAc,wCAAwCngB,IAAxC,GAA+C,iDAA7D,CAAP,CADyC;AAAA,EAx9ErB;AAAA,CA49ExB,IAAIqlD,cAAA,GAAgC,YAAY;AAAA,EAC5C,SAASA,cAAT,CAAwBvG,gBAAxB,EAA0ChL,QAA1C,EAAoD;AAAA,GAChD,IAAIgL,gBAAA,KAAqB,KAAK,CAA9B,EAAiC;AAAA,IAAEA,gBAAA,GAAmB,EAAnB,CAAF;AAAA,IADe;AAAA,GAEhD,IAAIhL,QAAA,KAAa,KAAK,CAAtB,EAAyB;AAAA,IAAEA,QAAA,GAAW,EAAX,CAAF;AAAA,IAFuB;AAAA,GAGhDwR,wBAAA,CAAyB,IAAzB,EAHgD;AAAA,GAIhD,IAAIp6B,IAAA,GAAO4oB,QAAA,CAAS5oB,IAApB,CAJgD;AAAA,GAKhD,IAAIuiB,aAAA,GAAgBqG,QAAA,CAASrG,aAA7B,CALgD;AAAA,GAMhD,IAAI5qC,IAAA,GAAOi8C,gBAAA,CAAiBj8C,IAA5B,CANgD;AAAA,GAOhD,IAAI0iD,UAAA,GAAavuC,MAAA,CAAOnU,IAAP,CAAjB,CAPgD;AAAA,GAQhD,IAAI0iD,UAAA,KAAe,OAAnB,EAA4B;AAAA,IACxB,IAAIr6B,IAAA,KAAS9M,SAAb,EAAwB;AAAA,KACpB,MAAM,IAAIyqB,UAAJ,CAAe,4DAAf,CAAN,CADoB;AAAA,KADA;AAAA,IAIxB,IAAI4E,aAAA,KAAkBrvB,SAAtB,EAAiC;AAAA,KAC7BqvB,aAAA,GAAgB,CAAhB,CAD6B;AAAA,KAJT;AAAA,IAOxBA,aAAA,GAAgBD,iCAAA,CAAkCC,aAAlC,CAAhB,CAPwB;AAAA,IAQxBmX,qDAAA,CAAsD,IAAtD,EAA4D9F,gBAA5D,EAA8ErR,aAA9E,EARwB;AAAA,IAA5B,MAUK,IAAI5qC,IAAA,KAASub,SAAb,EAAwB;AAAA,IACzB,IAAI41B,aAAA,GAAgBtG,iCAAA,CAAkCxiB,IAAlC,CAApB,CADyB;AAAA,IAEzB,IAAIuiB,aAAA,KAAkBrvB,SAAtB,EAAiC;AAAA,KAC7BqvB,aAAA,GAAgB,CAAhB,CAD6B;AAAA,KAFR;AAAA,IAKzBA,aAAA,GAAgBD,iCAAA,CAAkCC,aAAlC,CAAhB,CALyB;AAAA,IAMzBoR,wDAAA,CAAyD,IAAzD,EAA+DC,gBAA/D,EAAiFrR,aAAjF,EAAgGuG,aAAhG,EANyB;AAAA,IAAxB,MAQA;AAAA,IACD,MAAM,IAAInL,UAAJ,CAAe,2BAAf,CAAN,CADC;AAAA,IA1B2C;AAAA,GADR;AAAA,EA+B5C/oC,MAAA,CAAOwf,cAAP,CAAsB+lC,cAAA,CAAepnC,SAArC,EAAgD,QAAhD,EAA0D;AAAA,GACtDhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAI4qC,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,KAClC,MAAM2T,2BAAA,CAA4B,QAA5B,CAAN,CADkC;AAAA,KADzB;AAAA,IAIb,OAAO1T,sBAAA,CAAuB,IAAvB,CAAP,CAJa;AAAA,IADqC;AAAA,GAOtD5vC,UAAA,EAAY,IAP0C;AAAA,GAQtDC,YAAA,EAAc,IARwC;AAAA,GAA1D,EA/B4C;AAAA,EAyC5CkjD,cAAA,CAAepnC,SAAf,CAAyB+zB,MAAzB,GAAkC,UAAUp1C,MAAV,EAAkB;AAAA,GAChD,IAAIi1C,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,OAAOxE,mBAAA,CAAoBmY,2BAAA,CAA4B,QAA5B,CAApB,CAAP,CADkC;AAAA,IADU;AAAA,GAIhD,IAAI1T,sBAAA,CAAuB,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,OAAOzE,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,kDAAd,CAApB,CAAP,CADuC;AAAA,IAJK;AAAA,GAOhD,OAAOowB,oBAAA,CAAqB,IAArB,EAA2B3zC,MAA3B,CAAP,CAPgD;AAAA,GAApD,CAzC4C;AAAA,EAkD5CyoD,cAAA,CAAepnC,SAAf,CAAyBwnC,SAAzB,GAAqC,UAAUnT,EAAV,EAAc;AAAA,GAC/C,IAAIvvB,IAAA,GAAQ,CAAAuvB,EAAA,KAAO,KAAK,CAAZ,GAAgB,EAAhB,GAAqBA,EAArB,CAAD,CAA0BvvB,IAArC,CAD+C;AAAA,GAE/C,IAAI8uB,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,MAAM2T,2BAAA,CAA4B,WAA5B,CAAN,CADkC;AAAA,IAFS;AAAA,GAK/C,IAAIziC,IAAA,KAAS3E,SAAb,EAAwB;AAAA,IACpB,OAAO8yB,kCAAA,CAAmC,IAAnC,EAAyC,IAAzC,CAAP,CADoB;AAAA,IALuB;AAAA,GAQ/CnuB,IAAA,GAAO/L,MAAA,CAAO+L,IAAP,CAAP,CAR+C;AAAA,GAS/C,IAAIA,IAAA,KAAS,MAAb,EAAqB;AAAA,IACjB,OAAO+hC,+BAAA,CAAgC,IAAhC,EAAsC,IAAtC,CAAP,CADiB;AAAA,IAT0B;AAAA,GAY/C,MAAM,IAAIjc,UAAJ,CAAe,2BAAf,CAAN,CAZ+C;AAAA,GAAnD,CAlD4C;AAAA,EAgE5Cwc,cAAA,CAAepnC,SAAf,CAAyBynC,WAAzB,GAAuC,UAAUpT,EAAV,EAAcqT,EAAd,EAAkB;AAAA,GACrD,IAAIvjD,QAAA,GAAWkwC,EAAA,CAAGlwC,QAAlB,EAA4BwjD,QAAA,GAAWtT,EAAA,CAAGsT,QAA1C,CADqD;AAAA,GAErD,IAAIC,EAAA,GAAKF,EAAA,KAAO,KAAK,CAAZ,GAAgB,EAAhB,GAAqBA,EAA9B,EAAkCnK,YAAA,GAAeqK,EAAA,CAAGrK,YAApD,EAAkEC,YAAA,GAAeoK,EAAA,CAAGpK,YAApF,EAAkGzI,aAAA,GAAgB6S,EAAA,CAAG7S,aAArH,EAAoI0I,MAAA,GAASmK,EAAA,CAAGnK,MAAhJ,CAFqD;AAAA,GAGrD,IAAI7J,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,MAAM2T,2BAAA,CAA4B,aAA5B,CAAN,CADkC;AAAA,IAHe;AAAA,GAMrD,IAAItR,gBAAA,CAAiB9xC,QAAjB,MAA+B,KAAnC,EAA0C;AAAA,IACtC,MAAM,IAAI+d,SAAJ,CAAc,2DAAd,CAAN,CADsC;AAAA,IANW;AAAA,GASrD,IAAI0xB,gBAAA,CAAiB+T,QAAjB,MAA+B,KAAnC,EAA0C;AAAA,IACtC,MAAM,IAAIzlC,SAAJ,CAAc,2DAAd,CAAN,CADsC;AAAA,IATW;AAAA,GAYrDq7B,YAAA,GAAevI,OAAA,CAAQuI,YAAR,CAAf,CAZqD;AAAA,GAarDC,YAAA,GAAexI,OAAA,CAAQwI,YAAR,CAAf,CAbqD;AAAA,GAcrDzI,aAAA,GAAgBC,OAAA,CAAQD,aAAR,CAAhB,CAdqD;AAAA,GAerD,IAAI0I,MAAA,KAAWt9B,SAAX,IAAwB,CAACy8B,aAAA,CAAca,MAAd,CAA7B,EAAoD;AAAA,IAChD,MAAM,IAAIv7B,SAAJ,CAAc,8EAAd,CAAN,CADgD;AAAA,IAfC;AAAA,GAkBrD,IAAI2xB,sBAAA,CAAuB,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,MAAM,IAAI3xB,SAAJ,CAAc,gFAAd,CAAN,CADuC;AAAA,IAlBU;AAAA,GAqBrD,IAAIi0B,sBAAA,CAAuBhyC,QAAvB,MAAqC,IAAzC,EAA+C;AAAA,IAC3C,MAAM,IAAI+d,SAAJ,CAAc,gFAAd,CAAN,CAD2C;AAAA,IArBM;AAAA,GAwBrD,IAAI0X,OAAA,GAAU0jB,oBAAA,CAAqB,IAArB,EAA2Bn5C,QAA3B,EAAqCo5C,YAArC,EAAmDC,YAAnD,EAAiEzI,aAAjE,EAAgF0I,MAAhF,CAAd,CAxBqD;AAAA,GAyBrDnN,yBAAA,CAA0B1W,OAA1B,EAzBqD;AAAA,GA0BrD,OAAO+tB,QAAP,CA1BqD;AAAA,GAAzD,CAhE4C;AAAA,EA4F5CP,cAAA,CAAepnC,SAAf,CAAyB6nC,MAAzB,GAAkC,UAAUzZ,IAAV,EAAgBiG,EAAhB,EAAoB;AAAA,GAClD,IAAIqT,EAAA,GAAKrT,EAAA,KAAO,KAAK,CAAZ,GAAgB,EAAhB,GAAqBA,EAA9B,EAAkCkJ,YAAA,GAAemK,EAAA,CAAGnK,YAApD,EAAkEC,YAAA,GAAekK,EAAA,CAAGlK,YAApF,EAAkGzI,aAAA,GAAgB2S,EAAA,CAAG3S,aAArH,EAAoI0I,MAAA,GAASiK,EAAA,CAAGjK,MAAhJ,CADkD;AAAA,GAElD,IAAI7J,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,OAAOxE,mBAAA,CAAoBmY,2BAAA,CAA4B,QAA5B,CAApB,CAAP,CADkC;AAAA,IAFY;AAAA,GAKlD,IAAItR,gBAAA,CAAiB7H,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,OAAOgB,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,4EAAd,CAApB,CAAP,CADkC;AAAA,IALY;AAAA,GAQlDq7B,YAAA,GAAevI,OAAA,CAAQuI,YAAR,CAAf,CARkD;AAAA,GASlDC,YAAA,GAAexI,OAAA,CAAQwI,YAAR,CAAf,CATkD;AAAA,GAUlDzI,aAAA,GAAgBC,OAAA,CAAQD,aAAR,CAAhB,CAVkD;AAAA,GAWlD,IAAI0I,MAAA,KAAWt9B,SAAX,IAAwB,CAACy8B,aAAA,CAAca,MAAd,CAA7B,EAAoD;AAAA,IAChD,OAAOrO,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,yEAAd,CAApB,CAAP,CADgD;AAAA,IAXF;AAAA,GAclD,IAAI2xB,sBAAA,CAAuB,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,OAAOzE,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,2EAAd,CAApB,CAAP,CADuC;AAAA,IAdO;AAAA,GAiBlD,IAAIi0B,sBAAA,CAAuB/H,IAAvB,MAAiC,IAArC,EAA2C;AAAA,IACvC,OAAOgB,mBAAA,CAAoB,IAAIltB,SAAJ,CAAc,2EAAd,CAApB,CAAP,CADuC;AAAA,IAjBO;AAAA,GAoBlD,OAAOo7B,oBAAA,CAAqB,IAArB,EAA2BlP,IAA3B,EAAiCmP,YAAjC,EAA+CC,YAA/C,EAA6DzI,aAA7D,EAA4E0I,MAA5E,CAAP,CApBkD;AAAA,GAAtD,CA5F4C;AAAA,EAkH5C2J,cAAA,CAAepnC,SAAf,CAAyB8nC,GAAzB,GAA+B,YAAY;AAAA,GACvC,IAAIlU,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,MAAM2T,2BAAA,CAA4B,KAA5B,CAAN,CADkC;AAAA,IADC;AAAA,GAIvC,IAAIQ,QAAA,GAAWjH,iBAAA,CAAkB,IAAlB,CAAf,CAJuC;AAAA,GAKvC,OAAO7S,mBAAA,CAAoB8Z,QAApB,CAAP,CALuC;AAAA,GAA3C,CAlH4C;AAAA,EAyH5CX,cAAA,CAAepnC,SAAf,CAAyBorB,WAAzB,GAAuC,UAAUiJ,EAAV,EAAc;AAAA,GACjD,IAAIqT,EAAA,GAAM,CAAArT,EAAA,KAAO,KAAK,CAAZ,GAAgB,EAAhB,GAAqBA,EAArB,CAAD,CAA0BU,aAAnC,EAAkDA,aAAA,GAAgB2S,EAAA,KAAO,KAAK,CAAZ,GAAgB,KAAhB,GAAwBA,EAA1F,CADiD;AAAA,GAEjD,IAAI9T,gBAAA,CAAiB,IAAjB,MAA2B,KAA/B,EAAsC;AAAA,IAClC,MAAM2T,2BAAA,CAA4B,aAA5B,CAAN,CADkC;AAAA,IAFW;AAAA,GAKjD,OAAOzS,kCAAA,CAAmC,IAAnC,EAAyCC,aAAzC,CAAP,CALiD;AAAA,GAArD,CAzH4C;AAAA,EAgI5C,OAAOqS,cAAP,CAhI4C;AAAA,EAAZ,EAApC,CA59EwB;AAAA,CA8lFxB,IAAI,OAAOzZ,cAAA,CAAe4G,aAAtB,KAAwC,QAA5C,EAAsD;AAAA,EAClD1yC,MAAA,CAAOwf,cAAP,CAAsB+lC,cAAA,CAAepnC,SAArC,EAAgD2tB,cAAA,CAAe4G,aAA/D,EAA8E;AAAA,GAC1EvwC,KAAA,EAAOojD,cAAA,CAAepnC,SAAf,CAAyBorB,WAD0C;AAAA,GAE1EnnC,UAAA,EAAY,KAF8D;AAAA,GAG1EE,QAAA,EAAU,IAHgE;AAAA,GAI1ED,YAAA,EAAc,IAJ4D;AAAA,GAA9E,EADkD;AAAA,EA9lF9B;AAAA,CAwmFxB,SAAS89C,oBAAT,CAA8BpL,cAA9B,EAA8C8J,aAA9C,EAA6DC,eAA7D,EAA8EnR,aAA9E,EAA6FuG,aAA7F,EAA4G;AAAA,EACxG,IAAIvG,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,CAAhB,CAAF;AAAA,GAD0E;AAAA,EAExG,IAAIuG,aAAA,KAAkB,KAAK,CAA3B,EAA8B;AAAA,GAAEA,aAAA,GAAgB,YAAY;AAAA,IAAE,OAAO,CAAP,CAAF;AAAA,IAA5B,CAAF;AAAA,GAF0E;AAAA,EAGxG,IAAInE,MAAA,GAAS/vC,MAAA,CAAOjE,MAAP,CAAcwpD,cAAA,CAAepnC,SAA7B,CAAb,CAHwG;AAAA,EAIxGqnC,wBAAA,CAAyBzV,MAAzB,EAJwG;AAAA,EAKxG,IAAInzB,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAcqhD,+BAAA,CAAgCj/B,SAA9C,CAAjB,CALwG;AAAA,EAMxGygC,oCAAA,CAAqC7O,MAArC,EAA6CnzB,UAA7C,EAAyDm4B,cAAzD,EAAyE8J,aAAzE,EAAwFC,eAAxF,EAAyGnR,aAAzG,EAAwHuG,aAAxH,EANwG;AAAA,EAOxG,OAAOnE,MAAP,CAPwG;AAAA,EAxmFpF;AAAA,CAinFxB,SAASyV,wBAAT,CAAkCzV,MAAlC,EAA0C;AAAA,EACtCA,MAAA,CAAOI,MAAP,GAAgB,UAAhB,CADsC;AAAA,EAEtCJ,MAAA,CAAOG,OAAP,GAAiB5xB,SAAjB,CAFsC;AAAA,EAGtCyxB,MAAA,CAAOQ,YAAP,GAAsBjyB,SAAtB,CAHsC;AAAA,EAItCyxB,MAAA,CAAOuC,UAAP,GAAoB,KAApB,CAJsC;AAAA,EAjnFlB;AAAA,CAunFxB,SAASP,gBAAT,CAA0B/gB,CAA1B,EAA6B;AAAA,EACzB,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADG;AAAA,EAIzB,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,2BAAxC,CAAL,EAA2E;AAAA,GACvE,OAAO,KAAP,CADuE;AAAA,GAJlD;AAAA,EAOzB,OAAO,IAAP,CAPyB;AAAA,EAvnFL;AAAA,CAgoFxB,SAASghB,sBAAT,CAAgCjC,MAAhC,EAAwC;AAAA,EACpC,IAAIA,MAAA,CAAOG,OAAP,KAAmB5xB,SAAvB,EAAkC;AAAA,GAC9B,OAAO,KAAP,CAD8B;AAAA,GADE;AAAA,EAIpC,OAAO,IAAP,CAJoC;AAAA,EAhoFhB;AAAA,CAuoFxB,SAASmyB,oBAAT,CAA8BV,MAA9B,EAAsCjzC,MAAtC,EAA8C;AAAA,EAC1CizC,MAAA,CAAOuC,UAAP,GAAoB,IAApB,CAD0C;AAAA,EAE1C,IAAIvC,MAAA,CAAOI,MAAP,KAAkB,QAAtB,EAAgC;AAAA,GAC5B,OAAO9C,mBAAA,CAAoB/uB,SAApB,CAAP,CAD4B;AAAA,GAFU;AAAA,EAK1C,IAAIyxB,MAAA,CAAOI,MAAP,KAAkB,SAAtB,EAAiC;AAAA,GAC7B,OAAO5C,mBAAA,CAAoBwC,MAAA,CAAOQ,YAA3B,CAAP,CAD6B;AAAA,GALS;AAAA,EAQ1C0N,mBAAA,CAAoBlO,MAApB,EAR0C;AAAA,EAS1C,IAAIoW,mBAAA,GAAsBpW,MAAA,CAAOwC,yBAAP,CAAiCrB,WAAjC,EAA8Cp0C,MAA9C,CAA1B,CAT0C;AAAA,EAU1C,OAAOwxC,oBAAA,CAAqB6X,mBAArB,EAA0Cna,IAA1C,CAAP,CAV0C;AAAA,EAvoFtB;AAAA,CAmpFxB,SAASiS,mBAAT,CAA6BlO,MAA7B,EAAqC;AAAA,EACjCA,MAAA,CAAOI,MAAP,GAAgB,QAAhB,CADiC;AAAA,EAEjC,IAAIL,MAAA,GAASC,MAAA,CAAOG,OAApB,CAFiC;AAAA,EAGjC,IAAIJ,MAAA,KAAWxxB,SAAf,EAA0B;AAAA,GACtB,OADsB;AAAA,GAHO;AAAA,EAMjC,IAAIwzB,6BAAA,CAA8BhC,MAA9B,CAAJ,EAA2C;AAAA,GACvCA,MAAA,CAAO4B,aAAP,CAAqB7hB,OAArB,CAA6B,UAAU0hB,WAAV,EAAuB;AAAA,IAChDA,WAAA,CAAYC,QAAZ,CAAqB7B,8BAAA,CAA+BrxB,SAA/B,EAA0C,IAA1C,EAAgDwxB,MAAA,CAAOE,cAAvD,CAArB,EADgD;AAAA,IAApD,EADuC;AAAA,GAIvCF,MAAA,CAAO4B,aAAP,GAAuB,IAAI/C,WAAJ,EAAvB,CAJuC;AAAA,GANV;AAAA,EAYjCsC,iCAAA,CAAkCnB,MAAlC,EAZiC;AAAA,EAnpFb;AAAA,CAiqFxB,SAAS4O,mBAAT,CAA6B3O,MAA7B,EAAqC1oB,CAArC,EAAwC;AAAA,EACpC0oB,MAAA,CAAOI,MAAP,GAAgB,SAAhB,CADoC;AAAA,EAEpCJ,MAAA,CAAOQ,YAAP,GAAsBlpB,CAAtB,CAFoC;AAAA,EAGpC,IAAIyoB,MAAA,GAASC,MAAA,CAAOG,OAApB,CAHoC;AAAA,EAIpC,IAAIJ,MAAA,KAAWxxB,SAAf,EAA0B;AAAA,GACtB,OADsB;AAAA,GAJU;AAAA,EAOpC,IAAIwzB,6BAAA,CAA8BhC,MAA9B,CAAJ,EAA2C;AAAA,GACvCA,MAAA,CAAO4B,aAAP,CAAqB7hB,OAArB,CAA6B,UAAU0hB,WAAV,EAAuB;AAAA,IAChDA,WAAA,CAAYE,OAAZ,CAAoBpqB,CAApB,EADgD;AAAA,IAApD,EADuC;AAAA,GAIvCyoB,MAAA,CAAO4B,aAAP,GAAuB,IAAI/C,WAAJ,EAAvB,CAJuC;AAAA,GAA3C,MAMK;AAAA,GACDmB,MAAA,CAAOqV,iBAAP,CAAyBt1B,OAAzB,CAAiC,UAAUq1B,eAAV,EAA2B;AAAA,IACxDA,eAAA,CAAgBzT,OAAhB,CAAwBpqB,CAAxB,EADwD;AAAA,IAA5D,EADC;AAAA,GAIDyoB,MAAA,CAAOqV,iBAAP,GAA2B,IAAIxW,WAAJ,EAA3B,CAJC;AAAA,GAb+B;AAAA,EAmBpCgC,gCAAA,CAAiCb,MAAjC,EAAyCzoB,CAAzC,EAnBoC;AAAA,EAjqFhB;AAAA,CAurFxB,SAASq+B,2BAAT,CAAqCxlD,IAArC,EAA2C;AAAA,EACvC,OAAO,IAAImgB,SAAJ,CAAc,8BAA8BngB,IAA9B,GAAqC,uCAAnD,CAAP,CADuC;AAAA,EAvrFnB;AAAA,CA2rFxB,IAAIkmD,yBAAA,GAA2C,YAAY;AAAA,EACvD,SAASA,yBAAT,CAAmC5T,EAAnC,EAAuC;AAAA,GACnC,IAAI7E,aAAA,GAAgB6E,EAAA,CAAG7E,aAAvB,CADmC;AAAA,GAEnC,KAAKA,aAAL,GAAqBA,aAArB,CAFmC;AAAA,GADgB;AAAA,EAKvDyY,yBAAA,CAA0BjoC,SAA1B,CAAoCiN,IAApC,GAA2C,UAAU/T,KAAV,EAAiB;AAAA,GACxD,OAAOA,KAAA,CAAMmqC,UAAb,CADwD;AAAA,GAA5D,CALuD;AAAA,EAQvD,OAAO4E,yBAAP,CARuD;AAAA,EAAZ,EAA/C,CA3rFwB;AAAA,CAssFxB,IAAIC,oBAAA,GAAsC,YAAY;AAAA,EAClD,SAASA,oBAAT,CAA8B7T,EAA9B,EAAkC;AAAA,GAC9B,IAAI7E,aAAA,GAAgB6E,EAAA,CAAG7E,aAAvB,CAD8B;AAAA,GAE9B,KAAKA,aAAL,GAAqBA,aAArB,CAF8B;AAAA,GADgB;AAAA,EAKlD0Y,oBAAA,CAAqBloC,SAArB,CAA+BiN,IAA/B,GAAsC,YAAY;AAAA,GAC9C,OAAO,CAAP,CAD8C;AAAA,GAAlD,CALkD;AAAA,EAQlD,OAAOi7B,oBAAP,CARkD;AAAA,EAAZ,EAA1C,CAtsFwB;AAAA,CAktFxB,IAAIC,eAAA,GAAiC,YAAY;AAAA,EAC7C,SAASA,eAAT,CAAyBC,WAAzB,EAAsCC,gBAAtC,EAAwDC,gBAAxD,EAA0E;AAAA,GACtE,IAAIF,WAAA,KAAgB,KAAK,CAAzB,EAA4B;AAAA,IAAEA,WAAA,GAAc,EAAd,CAAF;AAAA,IAD0C;AAAA,GAEtE,IAAIC,gBAAA,KAAqB,KAAK,CAA9B,EAAiC;AAAA,IAAEA,gBAAA,GAAmB,EAAnB,CAAF;AAAA,IAFqC;AAAA,GAGtE,IAAIC,gBAAA,KAAqB,KAAK,CAA9B,EAAiC;AAAA,IAAEA,gBAAA,GAAmB,EAAnB,CAAF;AAAA,IAHqC;AAAA,GAItE,IAAIC,oBAAA,GAAuBF,gBAAA,CAAiBp7B,IAA5C,CAJsE;AAAA,GAKtE,IAAIu7B,qBAAA,GAAwBH,gBAAA,CAAiB7Y,aAA7C,CALsE;AAAA,GAMtE,IAAIiZ,oBAAA,GAAuBH,gBAAA,CAAiBr7B,IAA5C,CANsE;AAAA,GAOtE,IAAIy7B,qBAAA,GAAwBJ,gBAAA,CAAiB9Y,aAA7C,CAPsE;AAAA,GAQtE,IAAImZ,YAAA,GAAeP,WAAA,CAAYO,YAA/B,CARsE;AAAA,GAStE,IAAIA,YAAA,KAAiBxoC,SAArB,EAAgC;AAAA,IAC5B,MAAM,IAAIyqB,UAAJ,CAAe,iCAAf,CAAN,CAD4B;AAAA,IATsC;AAAA,GAYtE,IAAIge,qBAAA,GAAwBnZ,iCAAA,CAAkC8Y,oBAAlC,CAA5B,CAZsE;AAAA,GAatE,IAAIC,qBAAA,KAA0BroC,SAA9B,EAAyC;AAAA,IACrCqoC,qBAAA,GAAwB,CAAxB,CADqC;AAAA,IAb6B;AAAA,GAgBtEA,qBAAA,GAAwBjZ,iCAAA,CAAkCiZ,qBAAlC,CAAxB,CAhBsE;AAAA,GAiBtE,IAAIK,YAAA,GAAeT,WAAA,CAAYS,YAA/B,CAjBsE;AAAA,GAkBtE,IAAIA,YAAA,KAAiB1oC,SAArB,EAAgC;AAAA,IAC5B,MAAM,IAAIyqB,UAAJ,CAAe,iCAAf,CAAN,CAD4B;AAAA,IAlBsC;AAAA,GAqBtE,IAAIke,qBAAA,GAAwBrZ,iCAAA,CAAkCgZ,oBAAlC,CAA5B,CArBsE;AAAA,GAsBtE,IAAIC,qBAAA,KAA0BvoC,SAA9B,EAAyC;AAAA,IACrCuoC,qBAAA,GAAwB,CAAxB,CADqC;AAAA,IAtB6B;AAAA,GAyBtEA,qBAAA,GAAwBnZ,iCAAA,CAAkCmZ,qBAAlC,CAAxB,CAzBsE;AAAA,GA0BtE,IAAIK,oBAAJ,CA1BsE;AAAA,GA2BtE,IAAIhN,YAAA,GAAejM,UAAA,CAAW,UAAU1wC,OAAV,EAAmB;AAAA,IAC7C2pD,oBAAA,GAAuB3pD,OAAvB,CAD6C;AAAA,IAA9B,CAAnB,CA3BsE;AAAA,GA8BtE4pD,yBAAA,CAA0B,IAA1B,EAAgCjN,YAAhC,EAA8CyM,qBAA9C,EAAqEI,qBAArE,EAA4FF,qBAA5F,EAAmHI,qBAAnH,EA9BsE;AAAA,GA+BtEG,oDAAA,CAAqD,IAArD,EAA2Db,WAA3D,EA/BsE;AAAA,GAgCtE,IAAItM,WAAA,GAAc3M,YAAA,CAAaiZ,WAAb,EAA0B,OAA1B,EAAmC,CAAC,KAAKc,0BAAN,CAAnC,CAAlB,CAhCsE;AAAA,GAiCtEH,oBAAA,CAAqBjN,WAArB,EAjCsE;AAAA,GAD7B;AAAA,EAoC7Cj6C,MAAA,CAAOwf,cAAP,CAAsB8mC,eAAA,CAAgBnoC,SAAtC,EAAiD,UAAjD,EAA6D;AAAA,GACzDhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAImgD,iBAAA,CAAkB,IAAlB,MAA4B,KAAhC,EAAuC;AAAA,KACnC,MAAMC,2BAAA,CAA4B,UAA5B,CAAN,CADmC;AAAA,KAD1B;AAAA,IAIb,OAAO,KAAKC,SAAZ,CAJa;AAAA,IADwC;AAAA,GAOzDplD,UAAA,EAAY,IAP6C;AAAA,GAQzDC,YAAA,EAAc,IAR2C;AAAA,GAA7D,EApC6C;AAAA,EA8C7CrC,MAAA,CAAOwf,cAAP,CAAsB8mC,eAAA,CAAgBnoC,SAAtC,EAAiD,UAAjD,EAA6D;AAAA,GACzDhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAImgD,iBAAA,CAAkB,IAAlB,MAA4B,KAAhC,EAAuC;AAAA,KACnC,MAAMC,2BAAA,CAA4B,UAA5B,CAAN,CADmC;AAAA,KAD1B;AAAA,IAIb,OAAO,KAAKE,SAAZ,CAJa;AAAA,IADwC;AAAA,GAOzDrlD,UAAA,EAAY,IAP6C;AAAA,GAQzDC,YAAA,EAAc,IAR2C;AAAA,GAA7D,EA9C6C;AAAA,EAwD7C,OAAOikD,eAAP,CAxD6C;AAAA,EAAZ,EAArC,CAltFwB;AAAA,CA4wFxB,SAASa,yBAAT,CAAmCpX,MAAnC,EAA2CmK,YAA3C,EAAyDyM,qBAAzD,EAAgFI,qBAAhF,EAAuGF,qBAAvG,EAA8HI,qBAA9H,EAAqJ;AAAA,EACjJ,SAASlS,cAAT,GAA0B;AAAA,GACtB,OAAOmF,YAAP,CADsB;AAAA,GADuH;AAAA,EAIjJ,SAASlF,cAAT,CAAwB39B,KAAxB,EAA+B;AAAA,GAC3B,OAAOqwC,wCAAA,CAAyC3X,MAAzC,EAAiD14B,KAAjD,CAAP,CAD2B;AAAA,GAJkH;AAAA,EAOjJ,SAAS69B,cAAT,CAAwBp4C,MAAxB,EAAgC;AAAA,GAC5B,OAAO6qD,wCAAA,CAAyC5X,MAAzC,EAAiDjzC,MAAjD,CAAP,CAD4B;AAAA,GAPiH;AAAA,EAUjJ,SAASm4C,cAAT,GAA0B;AAAA,GACtB,OAAO2S,wCAAA,CAAyC7X,MAAzC,CAAP,CADsB;AAAA,GAVuH;AAAA,EAajJA,MAAA,CAAO0X,SAAP,GAAmB3S,oBAAA,CAAqBC,cAArB,EAAqCC,cAArC,EAAqDC,cAArD,EAAqEC,cAArE,EAAqFyR,qBAArF,EAA4GI,qBAA5G,CAAnB,CAbiJ;AAAA,EAcjJ,SAASlI,aAAT,GAAyB;AAAA,GACrB,OAAOgJ,yCAAA,CAA0C9X,MAA1C,CAAP,CADqB;AAAA,GAdwH;AAAA,EAiBjJ,SAAS+O,eAAT,CAAyBhiD,MAAzB,EAAiC;AAAA,GAC7BgrD,2CAAA,CAA4C/X,MAA5C,EAAoDjzC,MAApD,EAD6B;AAAA,GAE7B,OAAOuwC,mBAAA,CAAoB/uB,SAApB,CAAP,CAF6B;AAAA,GAjBgH;AAAA,EAqBjJyxB,MAAA,CAAOyX,SAAP,GAAmBrH,oBAAA,CAAqBpL,cAArB,EAAqC8J,aAArC,EAAoDC,eAApD,EAAqE+H,qBAArE,EAA4FI,qBAA5F,CAAnB,CArBiJ;AAAA,EAuBjJlX,MAAA,CAAO6F,aAAP,GAAuBt3B,SAAvB,CAvBiJ;AAAA,EAwBjJyxB,MAAA,CAAOgY,0BAAP,GAAoCzpC,SAApC,CAxBiJ;AAAA,EAyBjJyxB,MAAA,CAAOiY,kCAAP,GAA4C1pC,SAA5C,CAzBiJ;AAAA,EA0BjJ2pC,8BAAA,CAA+BlY,MAA/B,EAAuC,IAAvC,EA1BiJ;AAAA,EA4BjJA,MAAA,CAAOsX,0BAAP,GAAoC/oC,SAApC,CA5BiJ;AAAA,EA5wF7H;AAAA,CA0yFxB,SAASgpC,iBAAT,CAA2Bt2B,CAA3B,EAA8B;AAAA,EAC1B,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADI;AAAA,EAI1B,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,4BAAxC,CAAL,EAA4E;AAAA,GACxE,OAAO,KAAP,CADwE;AAAA,GAJlD;AAAA,EAO1B,OAAO,IAAP,CAP0B;AAAA,EA1yFN;AAAA,CAozFxB,SAASk3B,oBAAT,CAA8BnY,MAA9B,EAAsC1oB,CAAtC,EAAyC;AAAA,EACrCu2B,oCAAA,CAAqC7N,MAAA,CAAOyX,SAAP,CAAiBjV,yBAAtD,EAAiFlrB,CAAjF,EADqC;AAAA,EAErCygC,2CAAA,CAA4C/X,MAA5C,EAAoD1oB,CAApD,EAFqC;AAAA,EApzFjB;AAAA,CAwzFxB,SAASygC,2CAAT,CAAqD/X,MAArD,EAA6D1oB,CAA7D,EAAgE;AAAA,EAC5D8gC,+CAAA,CAAgDpY,MAAA,CAAOsX,0BAAvD,EAD4D;AAAA,EAE5DhN,4CAAA,CAA6CtK,MAAA,CAAO0X,SAAP,CAAiBnS,yBAA9D,EAAyFjuB,CAAzF,EAF4D;AAAA,EAG5D,IAAI0oB,MAAA,CAAO6F,aAAP,KAAyB,IAA7B,EAAmC;AAAA,GAI/BqS,8BAAA,CAA+BlY,MAA/B,EAAuC,KAAvC,EAJ+B;AAAA,GAHyB;AAAA,EAxzFxC;AAAA,CAk0FxB,SAASkY,8BAAT,CAAwClY,MAAxC,EAAgD0H,YAAhD,EAA8D;AAAA,EAE1D,IAAI1H,MAAA,CAAOgY,0BAAP,KAAsCzpC,SAA1C,EAAqD;AAAA,GACjDyxB,MAAA,CAAOiY,kCAAP,GADiD;AAAA,GAFK;AAAA,EAK1DjY,MAAA,CAAOgY,0BAAP,GAAoC9Z,UAAA,CAAW,UAAU1wC,OAAV,EAAmB;AAAA,GAC9DwyC,MAAA,CAAOiY,kCAAP,GAA4CzqD,OAA5C,CAD8D;AAAA,GAA9B,CAApC,CAL0D;AAAA,EAQ1DwyC,MAAA,CAAO6F,aAAP,GAAuB6B,YAAvB,CAR0D;AAAA,EAl0FtC;AAAA,CA40FxB,IAAI2Q,gCAAA,GAAkD,YAAY;AAAA,EAE9D,SAASA,gCAAT,GAA4C;AAAA,GACxC,MAAM,IAAI/nC,SAAJ,CAAc,uEAAd,CAAN,CADwC;AAAA,GAFkB;AAAA,EAK9DrgB,MAAA,CAAOwf,cAAP,CAAsB4oC,gCAAA,CAAiCjqC,SAAvD,EAAkE,aAAlE,EAAiF;AAAA,GAC7EhX,GAAA,EAAK,YAAY;AAAA,IACb,IAAIkhD,kCAAA,CAAmC,IAAnC,MAA6C,KAAjD,EAAwD;AAAA,KACpD,MAAMC,sCAAA,CAAuC,aAAvC,CAAN,CADoD;AAAA,KAD3C;AAAA,IAIb,IAAIC,kBAAA,GAAqB,KAAKC,0BAAL,CAAgChB,SAAhC,CAA0CjV,yBAAnE,CAJa;AAAA,IAKb,OAAOgL,6CAAA,CAA8CgL,kBAA9C,CAAP,CALa;AAAA,IAD4D;AAAA,GAQ7EnmD,UAAA,EAAY,IARiE;AAAA,GAS7EC,YAAA,EAAc,IAT+D;AAAA,GAAjF,EAL8D;AAAA,EAgB9D+lD,gCAAA,CAAiCjqC,SAAjC,CAA2Cu/B,OAA3C,GAAqD,UAAUrmC,KAAV,EAAiB;AAAA,GAClE,IAAIgxC,kCAAA,CAAmC,IAAnC,MAA6C,KAAjD,EAAwD;AAAA,IACpD,MAAMC,sCAAA,CAAuC,SAAvC,CAAN,CADoD;AAAA,IADU;AAAA,GAIlEG,uCAAA,CAAwC,IAAxC,EAA8CpxC,KAA9C,EAJkE;AAAA,GAAtE,CAhB8D;AAAA,EAsB9D+wC,gCAAA,CAAiCjqC,SAAjC,CAA2CkB,KAA3C,GAAmD,UAAUviB,MAAV,EAAkB;AAAA,GACjE,IAAIurD,kCAAA,CAAmC,IAAnC,MAA6C,KAAjD,EAAwD;AAAA,IACpD,MAAMC,sCAAA,CAAuC,OAAvC,CAAN,CADoD;AAAA,IADS;AAAA,GAIjEI,qCAAA,CAAsC,IAAtC,EAA4C5rD,MAA5C,EAJiE;AAAA,GAArE,CAtB8D;AAAA,EA4B9DsrD,gCAAA,CAAiCjqC,SAAjC,CAA2CwqC,SAA3C,GAAuD,YAAY;AAAA,GAC/D,IAAIN,kCAAA,CAAmC,IAAnC,MAA6C,KAAjD,EAAwD;AAAA,IACpD,MAAMC,sCAAA,CAAuC,WAAvC,CAAN,CADoD;AAAA,IADO;AAAA,GAI/DM,yCAAA,CAA0C,IAA1C,EAJ+D;AAAA,GAAnE,CA5B8D;AAAA,EAkC9D,OAAOR,gCAAP,CAlC8D;AAAA,EAAZ,EAAtD,CA50FwB;AAAA,CAi3FxB,SAASC,kCAAT,CAA4Cr3B,CAA5C,EAA+C;AAAA,EAC3C,IAAI,CAACmb,YAAA,CAAanb,CAAb,CAAL,EAAsB;AAAA,GAClB,OAAO,KAAP,CADkB;AAAA,GADqB;AAAA,EAI3C,IAAI,CAAChxB,MAAA,CAAOme,SAAP,CAAiBwC,cAAjB,CAAgCrB,IAAhC,CAAqC0R,CAArC,EAAwC,4BAAxC,CAAL,EAA4E;AAAA,GACxE,OAAO,KAAP,CADwE;AAAA,GAJjC;AAAA,EAO3C,OAAO,IAAP,CAP2C;AAAA,EAj3FvB;AAAA,CA03FxB,SAAS63B,qCAAT,CAA+C9Y,MAA/C,EAAuDnzB,UAAvD,EAAmEksC,kBAAnE,EAAuFC,cAAvF,EAAuG;AAAA,EACnGnsC,UAAA,CAAW4rC,0BAAX,GAAwCzY,MAAxC,CADmG;AAAA,EAEnGA,MAAA,CAAOsX,0BAAP,GAAoCzqC,UAApC,CAFmG;AAAA,EAGnGA,UAAA,CAAWosC,mBAAX,GAAiCF,kBAAjC,CAHmG;AAAA,EAInGlsC,UAAA,CAAWqsC,eAAX,GAA6BF,cAA7B,CAJmG;AAAA,EA13F/E;AAAA,CAg4FxB,SAAS3B,oDAAT,CAA8DrX,MAA9D,EAAsEwW,WAAtE,EAAmF;AAAA,EAC/E,IAAI3pC,UAAA,GAAa5c,MAAA,CAAOjE,MAAP,CAAcqsD,gCAAA,CAAiCjqC,SAA/C,CAAjB,CAD+E;AAAA,EAE/E,IAAI2qC,kBAAA,GAAqB,UAAUzxC,KAAV,EAAiB;AAAA,GACtC,IAAI;AAAA,IACAoxC,uCAAA,CAAwC7rC,UAAxC,EAAoDvF,KAApD,EADA;AAAA,IAEA,OAAOg2B,mBAAA,CAAoB/uB,SAApB,CAAP,CAFA;AAAA,IAAJ,CAIA,OAAO4qC,gBAAP,EAAyB;AAAA,IACrB,OAAO3b,mBAAA,CAAoB2b,gBAApB,CAAP,CADqB;AAAA,IALa;AAAA,GAA1C,CAF+E;AAAA,EAW/E,IAAIC,eAAA,GAAkB5C,WAAA,CAAYx2C,SAAlC,CAX+E;AAAA,EAY/E,IAAIo5C,eAAA,KAAoB7qC,SAAxB,EAAmC;AAAA,GAC/B,IAAI,OAAO6qC,eAAP,KAA2B,UAA/B,EAA2C;AAAA,IACvC,MAAM,IAAI9oC,SAAJ,CAAc,2BAAd,CAAN,CADuC;AAAA,IADZ;AAAA,GAI/ByoC,kBAAA,GAAqB,UAAUzxC,KAAV,EAAiB;AAAA,IAAE,OAAO81B,WAAA,CAAYgc,eAAZ,EAA6B5C,WAA7B,EAA0C;AAAA,KAAClvC,KAAD;AAAA,KAAQuF,UAAR;AAAA,KAA1C,CAAP,CAAF;AAAA,IAAtC,CAJ+B;AAAA,GAZ4C;AAAA,EAkB/E,IAAImsC,cAAA,GAAiBjc,mCAAA,CAAoCyZ,WAApC,EAAiD,OAAjD,EAA0D,CAA1D,EAA6D,CAAC3pC,UAAD,CAA7D,CAArB,CAlB+E;AAAA,EAmB/EisC,qCAAA,CAAsC9Y,MAAtC,EAA8CnzB,UAA9C,EAA0DksC,kBAA1D,EAA8EC,cAA9E,EAnB+E;AAAA,EAh4F3D;AAAA,CAq5FxB,SAASZ,+CAAT,CAAyDvrC,UAAzD,EAAqE;AAAA,EACjEA,UAAA,CAAWosC,mBAAX,GAAiC1qC,SAAjC,CADiE;AAAA,EAEjE1B,UAAA,CAAWqsC,eAAX,GAA6B3qC,SAA7B,CAFiE;AAAA,EAr5F7C;AAAA,CAy5FxB,SAASmqC,uCAAT,CAAiD7rC,UAAjD,EAA6DvF,KAA7D,EAAoE;AAAA,EAChE,IAAI04B,MAAA,GAASnzB,UAAA,CAAW4rC,0BAAxB,CADgE;AAAA,EAEhE,IAAID,kBAAA,GAAqBxY,MAAA,CAAOyX,SAAP,CAAiBjV,yBAA1C,CAFgE;AAAA,EAGhE,IAAIiL,gDAAA,CAAiD+K,kBAAjD,MAAyE,KAA7E,EAAoF;AAAA,GAChF,MAAM,IAAIloC,SAAJ,CAAc,sDAAd,CAAN,CADgF;AAAA,GAHpB;AAAA,EAQhE,IAAI;AAAA,GACAs9B,sCAAA,CAAuC4K,kBAAvC,EAA2DlxC,KAA3D,EADA;AAAA,GAAJ,CAGA,OAAOgQ,CAAP,EAAU;AAAA,GAENygC,2CAAA,CAA4C/X,MAA5C,EAAoD1oB,CAApD,EAFM;AAAA,GAGN,MAAM0oB,MAAA,CAAOyX,SAAP,CAAiBjX,YAAvB,CAHM;AAAA,GAXsD;AAAA,EAgBhE,IAAIkH,YAAA,GAAekH,8CAAA,CAA+C4J,kBAA/C,CAAnB,CAhBgE;AAAA,EAiBhE,IAAI9Q,YAAA,KAAiB1H,MAAA,CAAO6F,aAA5B,EAA2C;AAAA,GACvCqS,8BAAA,CAA+BlY,MAA/B,EAAuC,IAAvC,EADuC;AAAA,GAjBqB;AAAA,EAz5F5C;AAAA,CA86FxB,SAAS2Y,qCAAT,CAA+C9rC,UAA/C,EAA2DyK,CAA3D,EAA8D;AAAA,EAC1D6gC,oBAAA,CAAqBtrC,UAAA,CAAW4rC,0BAAhC,EAA4DnhC,CAA5D,EAD0D;AAAA,EA96FtC;AAAA,CAi7FxB,SAAS+hC,gDAAT,CAA0DxsC,UAA1D,EAAsEvF,KAAtE,EAA6E;AAAA,EACzE,IAAIgyC,gBAAA,GAAmBzsC,UAAA,CAAWosC,mBAAX,CAA+B3xC,KAA/B,CAAvB,CADyE;AAAA,EAEzE,OAAOi3B,oBAAA,CAAqB+a,gBAArB,EAAuC/qC,SAAvC,EAAkD,UAAUvF,CAAV,EAAa;AAAA,GAClEmvC,oBAAA,CAAqBtrC,UAAA,CAAW4rC,0BAAhC,EAA4DzvC,CAA5D,EADkE;AAAA,GAElE,MAAMA,CAAN,CAFkE;AAAA,GAA/D,CAAP,CAFyE;AAAA,EAj7FrD;AAAA,CAw7FxB,SAAS6vC,yCAAT,CAAmDhsC,UAAnD,EAA+D;AAAA,EAC3D,IAAImzB,MAAA,GAASnzB,UAAA,CAAW4rC,0BAAxB,CAD2D;AAAA,EAE3D,IAAID,kBAAA,GAAqBxY,MAAA,CAAOyX,SAAP,CAAiBjV,yBAA1C,CAF2D;AAAA,EAG3D,IAAIiL,gDAAA,CAAiD+K,kBAAjD,MAAyE,IAA7E,EAAmF;AAAA,GAC/E9K,oCAAA,CAAqC8K,kBAArC,EAD+E;AAAA,GAHxB;AAAA,EAM3D,IAAIlpC,KAAA,GAAQ,IAAIgB,SAAJ,CAAc,4BAAd,CAAZ,CAN2D;AAAA,EAO3DynC,2CAAA,CAA4C/X,MAA5C,EAAoD1wB,KAApD,EAP2D;AAAA,EAx7FvC;AAAA,CAk8FxB,SAASqoC,wCAAT,CAAkD3X,MAAlD,EAA0D14B,KAA1D,EAAiE;AAAA,EAC7D,IAAIuF,UAAA,GAAamzB,MAAA,CAAOsX,0BAAxB,CAD6D;AAAA,EAE7D,IAAItX,MAAA,CAAO6F,aAAP,KAAyB,IAA7B,EAAmC;AAAA,GAC/B,IAAI0T,yBAAA,GAA4BvZ,MAAA,CAAOgY,0BAAvC,CAD+B;AAAA,GAE/B,OAAOzZ,oBAAA,CAAqBgb,yBAArB,EAAgD,YAAY;AAAA,IAC/D,IAAIhnD,QAAA,GAAWytC,MAAA,CAAO0X,SAAtB,CAD+D;AAAA,IAE/D,IAAI5iD,KAAA,GAAQvC,QAAA,CAAS6tC,MAArB,CAF+D;AAAA,IAG/D,IAAItrC,KAAA,KAAU,UAAd,EAA0B;AAAA,KACtB,MAAMvC,QAAA,CAASiuC,YAAf,CADsB;AAAA,KAHqC;AAAA,IAM/D,OAAO6Y,gDAAA,CAAiDxsC,UAAjD,EAA6DvF,KAA7D,CAAP,CAN+D;AAAA,IAA5D,CAAP,CAF+B;AAAA,GAF0B;AAAA,EAa7D,OAAO+xC,gDAAA,CAAiDxsC,UAAjD,EAA6DvF,KAA7D,CAAP,CAb6D;AAAA,EAl8FzC;AAAA,CAi9FxB,SAASswC,wCAAT,CAAkD5X,MAAlD,EAA0DjzC,MAA1D,EAAkE;AAAA,EAG9DorD,oBAAA,CAAqBnY,MAArB,EAA6BjzC,MAA7B,EAH8D;AAAA,EAI9D,OAAOuwC,mBAAA,CAAoB/uB,SAApB,CAAP,CAJ8D;AAAA,EAj9F1C;AAAA,CAu9FxB,SAASspC,wCAAT,CAAkD7X,MAAlD,EAA0D;AAAA,EAEtD,IAAI+V,QAAA,GAAW/V,MAAA,CAAOyX,SAAtB,CAFsD;AAAA,EAGtD,IAAI5qC,UAAA,GAAamzB,MAAA,CAAOsX,0BAAxB,CAHsD;AAAA,EAItD,IAAIkC,YAAA,GAAe3sC,UAAA,CAAWqsC,eAAX,EAAnB,CAJsD;AAAA,EAKtDd,+CAAA,CAAgDvrC,UAAhD,EALsD;AAAA,EAOtD,OAAO0xB,oBAAA,CAAqBib,YAArB,EAAmC,YAAY;AAAA,GAClD,IAAIzD,QAAA,CAAS3V,MAAT,KAAoB,SAAxB,EAAmC;AAAA,IAC/B,MAAM2V,QAAA,CAASvV,YAAf,CAD+B;AAAA,IADe;AAAA,GAIlD,IAAIgY,kBAAA,GAAqBzC,QAAA,CAASvT,yBAAlC,CAJkD;AAAA,GAKlD,IAAIiL,gDAAA,CAAiD+K,kBAAjD,MAAyE,IAA7E,EAAmF;AAAA,IAC/E9K,oCAAA,CAAqC8K,kBAArC,EAD+E;AAAA,IALjC;AAAA,GAA/C,EAQJ,UAAUxvC,CAAV,EAAa;AAAA,GACZmvC,oBAAA,CAAqBnY,MAArB,EAA6Bh3B,CAA7B,EADY;AAAA,GAEZ,MAAM+sC,QAAA,CAASvV,YAAf,CAFY;AAAA,GART,CAAP,CAPsD;AAAA,EAv9FlC;AAAA,CA4+FxB,SAASsX,yCAAT,CAAmD9X,MAAnD,EAA2D;AAAA,EAEvDkY,8BAAA,CAA+BlY,MAA/B,EAAuC,KAAvC,EAFuD;AAAA,EAIvD,OAAOA,MAAA,CAAOgY,0BAAd,CAJuD;AAAA,EA5+FnC;AAAA,CAm/FxB,SAASO,sCAAT,CAAgDpoD,IAAhD,EAAsD;AAAA,EAClD,OAAO,IAAImgB,SAAJ,CAAc,gDAAgDngB,IAAhD,GAAuD,yDAArE,CAAP,CADkD;AAAA,EAn/F9B;AAAA,CAu/FxB,SAASqnD,2BAAT,CAAqCrnD,IAArC,EAA2C;AAAA,EACvC,OAAO,IAAImgB,SAAJ,CAAc,+BAA+BngB,IAA/B,GAAsC,wCAApD,CAAP,CADuC;AAAA,EAv/FnB;AAAA,CA2/FxB4C,OAAA,CAAQsjD,yBAAR,GAAoCA,yBAApC,CA3/FwB;AAAA,CA4/FxBtjD,OAAA,CAAQujD,oBAAR,GAA+BA,oBAA/B,CA5/FwB;AAAA,CA6/FxBvjD,OAAA,CAAQyiD,cAAR,GAAyBA,cAAzB,CA7/FwB;AAAA,CA8/FxBziD,OAAA,CAAQwjD,eAAR,GAA0BA,eAA1B,CA9/FwB;AAAA,CA+/FxBxjD,OAAA,CAAQgxC,cAAR,GAAyBA,cAAzB,CA//FwB;AAAA,CAigGxB9zC,MAAA,CAAOwf,cAAP,CAAsB1c,OAAtB,EAA+B,YAA/B,EAA6C,EAAEX,KAAA,EAAO,IAAT,EAA7C,EAjgGwB;AAAA,CAJ3B,CAAD,E;;;;;;ACHA/G,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,EAAR,EAFA;AAGAA,mBAAA,CAAQ,GAAR,EAHA;AAIA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAJA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK2lC,GAAtB,C;;;;;;;ACNa;AACb,IAAIC,UAAA,GAAaruD,mBAAA,CAAQ,GAAR,CAAjB,CADA;AAEA,IAAIsuD,gBAAA,GAAmBtuD,mBAAA,CAAQ,GAAR,CAAvB,CAFA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB2mD,UAAA,CAAW,KAAX,EAAkB,UAAUze,IAAV,EAAgB;AAAA,CACjD,OAAO,SAASwe,GAAT,GAAe;AAAA,EAAE,OAAOxe,IAAA,CAAK,IAAL,EAAW5uB,SAAA,CAAUpF,MAAV,GAAmBoF,SAAA,CAAU,CAAV,CAAnB,GAAkCkC,SAA7C,CAAP,CAAF;AAAA,EAAtB,CADiD;AAAA,CAAlC,EAEdorC,gBAFc,CAAjB,C;;;;;;;ACNa;AACb,IAAI3sC,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CAFA;AAGA,IAAImiB,QAAA,GAAWniB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CAJA;AAKA,IAAIuuD,sBAAA,GAAyBvuD,mBAAA,CAAQ,GAAR,CAA7B,CALA;AAMA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CANA;AAOA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CAPA;AAQA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CARA;AASA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CATA;AAUA,IAAI0yB,2BAAA,GAA8B1yB,mBAAA,CAAQ,EAAR,CAAlC,CAVA;AAWA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CAXA;AAYA,IAAIwuD,iBAAA,GAAoBxuD,mBAAA,CAAQ,GAAR,CAAxB,CAZA;AAcAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAUw3B,gBAAV,EAA4BV,OAA5B,EAAqCiwB,MAArC,EAA6C;AAAA,CAC5D,IAAIC,MAAA,GAASxvB,gBAAA,CAAiBlW,OAAjB,CAAyB,KAAzB,MAAoC,CAAC,CAAlD,CAD4D;AAAA,CAE5D,IAAI2lC,OAAA,GAAUzvB,gBAAA,CAAiBlW,OAAjB,CAAyB,MAAzB,MAAqC,CAAC,CAApD,CAF4D;AAAA,CAG5D,IAAI4lC,KAAA,GAAQF,MAAA,GAAS,KAAT,GAAiB,KAA7B,CAH4D;AAAA,CAI5D,IAAIG,iBAAA,GAAoBjtC,MAAA,CAAOsd,gBAAP,CAAxB,CAJ4D;AAAA,CAK5D,IAAI4vB,eAAA,GAAkBD,iBAAA,IAAqBA,iBAAA,CAAkB9rC,SAA7D,CAL4D;AAAA,CAM5D,IAAIoc,WAAA,GAAc0vB,iBAAlB,CAN4D;AAAA,CAO5D,IAAIE,QAAA,GAAW,EAAf,CAP4D;AAAA,CAS5D,IAAIC,SAAA,GAAY,UAAUj9B,GAAV,EAAe;AAAA,EAC7B,IAAIk9B,YAAA,GAAeH,eAAA,CAAgB/8B,GAAhB,CAAnB,CAD6B;AAAA,EAE7B/P,QAAA,CAAS8sC,eAAT,EAA0B/8B,GAA1B,EACEA,GAAA,IAAO,KAAP,GAAe,SAASm9B,GAAT,CAAanoD,KAAb,EAAoB;AAAA,GACjCkoD,YAAA,CAAa/qC,IAAb,CAAkB,IAAlB,EAAwBnd,KAAA,KAAU,CAAV,GAAc,CAAd,GAAkBA,KAA1C,EADiC;AAAA,GAEjC,OAAO,IAAP,CAFiC;AAAA,GAAnC,GAGIgrB,GAAA,IAAO,QAAP,GAAkB,UAAU1nB,GAAV,EAAe;AAAA,GACnC,OAAOskD,OAAA,IAAW,CAACzpC,QAAA,CAAS7a,GAAT,CAAZ,GAA4B,KAA5B,GAAoC4kD,YAAA,CAAa/qC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAA,KAAQ,CAAR,GAAY,CAAZ,GAAgBA,GAAxC,CAA3C,CADmC;AAAA,GAAjC,GAEA0nB,GAAA,IAAO,KAAP,GAAe,SAAShmB,GAAT,CAAa1B,GAAb,EAAkB;AAAA,GACnC,OAAOskD,OAAA,IAAW,CAACzpC,QAAA,CAAS7a,GAAT,CAAZ,GAA4B6Y,SAA5B,GAAwC+rC,YAAA,CAAa/qC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAA,KAAQ,CAAR,GAAY,CAAZ,GAAgBA,GAAxC,CAA/C,CADmC;AAAA,GAAjC,GAEA0nB,GAAA,IAAO,KAAP,GAAe,SAASnO,GAAT,CAAavZ,GAAb,EAAkB;AAAA,GACnC,OAAOskD,OAAA,IAAW,CAACzpC,QAAA,CAAS7a,GAAT,CAAZ,GAA4B,KAA5B,GAAoC4kD,YAAA,CAAa/qC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAA,KAAQ,CAAR,GAAY,CAAZ,GAAgBA,GAAxC,CAA3C,CADmC;AAAA,GAAjC,GAEA,SAAS0c,GAAT,CAAa1c,GAAb,EAAkBtD,KAAlB,EAAyB;AAAA,GAC3BkoD,YAAA,CAAa/qC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAA,KAAQ,CAAR,GAAY,CAAZ,GAAgBA,GAAxC,EAA6CtD,KAA7C,EAD2B;AAAA,GAE3B,OAAO,IAAP,CAF2B;AAAA,GAV/B,EAF6B;AAAA,EAA/B,CAT4D;AAAA,CA6B5D,IAAIob,QAAA,CAAS+c,gBAAT,EAA2B,OAAO2vB,iBAAP,IAA4B,UAA5B,IAA0C,CAAE,CAAAF,OAAA,IAAWG,eAAA,CAAgBr6B,OAAhB,IAA2B,CAACtQ,KAAA,CAAM,YAAY;AAAA,GAClI,IAAI0qC,iBAAJ,GAAwBr9B,OAAxB,GAAkClnB,IAAlC,GADkI;AAAA,GAAlB,CAAvC,CAAvE,CAAJ,EAEM;AAAA,EAEJ60B,WAAA,GAAcsvB,MAAA,CAAOU,cAAP,CAAsB3wB,OAAtB,EAA+BU,gBAA/B,EAAiDwvB,MAAjD,EAAyDE,KAAzD,CAAd,CAFI;AAAA,EAGJL,sBAAA,CAAuB39C,QAAvB,GAAkC,IAAlC,CAHI;AAAA,EAFN,MAMO,IAAIuR,QAAA,CAAS+c,gBAAT,EAA2B,IAA3B,CAAJ,EAAsC;AAAA,EAC3C,IAAIkwB,QAAA,GAAW,IAAIjwB,WAAJ,EAAf,CAD2C;AAAA,EAG3C,IAAIkwB,cAAA,GAAiBD,QAAA,CAASR,KAAT,EAAgBD,OAAA,GAAU,EAAV,GAAe,CAAC,CAAhC,EAAmC,CAAnC,KAAyCS,QAA9D,CAH2C;AAAA,EAK3C,IAAIE,oBAAA,GAAuBnrC,KAAA,CAAM,YAAY;AAAA,GAAEirC,QAAA,CAASxrC,GAAT,CAAa,CAAb,EAAF;AAAA,GAAlB,CAA3B,CAL2C;AAAA,EAQ3C,IAAI2rC,gBAAA,GAAmB78B,2BAAA,CAA4B,UAAUloB,QAAV,EAAoB;AAAA,GAAE,IAAIqkD,iBAAJ,CAAsBrkD,QAAtB,EAAF;AAAA,GAAhD,CAAvB,CAR2C;AAAA,EAU3C,IAAIglD,UAAA,GAAa,CAACb,OAAD,IAAYxqC,KAAA,CAAM,YAAY;AAAA,GAE7C,IAAIsrC,SAAA,GAAY,IAAIZ,iBAAJ,EAAhB,CAF6C;AAAA,GAG7C,IAAIplC,KAAA,GAAQ,CAAZ,CAH6C;AAAA,GAI7C,OAAOA,KAAA,EAAP;AAAA,IAAgBgmC,SAAA,CAAUb,KAAV,EAAiBnlC,KAAjB,EAAwBA,KAAxB,EAJ6B;AAAA,GAK7C,OAAO,CAACgmC,SAAA,CAAU7rC,GAAV,CAAc,CAAC,CAAf,CAAR,CAL6C;AAAA,GAAlB,CAA7B,CAV2C;AAAA,EAkB3C,IAAI,CAAC2rC,gBAAL,EAAuB;AAAA,GACrBpwB,WAAA,GAAcX,OAAA,CAAQ,UAAUkxB,KAAV,EAAiBllD,QAAjB,EAA2B;AAAA,IAC/CqwB,UAAA,CAAW60B,KAAX,EAAkBvwB,WAAlB,EAA+BD,gBAA/B,EAD+C;AAAA,IAE/C,IAAI9T,IAAA,GAAOojC,iBAAA,CAAkB,IAAIK,iBAAJ,EAAlB,EAA2Ca,KAA3C,EAAkDvwB,WAAlD,CAAX,CAF+C;AAAA,IAG/C,IAAI30B,QAAA,IAAY0Y,SAAhB;AAAA,KAA2B+R,OAAA,CAAQzqB,QAAR,EAAkB4gB,IAAA,CAAKwjC,KAAL,CAAlB,EAA+BxjC,IAA/B,EAAqCsjC,MAArC,EAHoB;AAAA,IAI/C,OAAOtjC,IAAP,CAJ+C;AAAA,IAAnC,CAAd,CADqB;AAAA,GAOrB+T,WAAA,CAAYpc,SAAZ,GAAwB+rC,eAAxB,CAPqB;AAAA,GAQrBA,eAAA,CAAgBruD,WAAhB,GAA8B0+B,WAA9B,CARqB;AAAA,GAlBoB;AAAA,EA6B3C,IAAImwB,oBAAA,IAAwBE,UAA5B,EAAwC;AAAA,GACtCR,SAAA,CAAU,QAAV,EADsC;AAAA,GAEtCA,SAAA,CAAU,KAAV,EAFsC;AAAA,GAGtCN,MAAA,IAAUM,SAAA,CAAU,KAAV,CAAV,CAHsC;AAAA,GA7BG;AAAA,EAmC3C,IAAIQ,UAAA,IAAcH,cAAlB;AAAA,GAAkCL,SAAA,CAAUJ,KAAV,EAnCS;AAAA,EAsC3C,IAAID,OAAA,IAAWG,eAAA,CAAgBvvB,KAA/B;AAAA,GAAsC,OAAOuvB,eAAA,CAAgBvvB,KAAvB,CAtCK;AAAA,EAnCe;AAAA,CA4E5DwvB,QAAA,CAAS7vB,gBAAT,IAA6BC,WAA7B,CA5E4D;AAAA,CA6E5Dxd,CAAA,CAAE;AAAA,EAAEC,MAAA,EAAQ,IAAV;AAAA,EAAgBqB,MAAA,EAAQkc,WAAA,IAAe0vB,iBAAvC;AAAA,EAAF,EAA8DE,QAA9D,EA7E4D;AAAA,CA+E5Dz+B,cAAA,CAAe6O,WAAf,EAA4BD,gBAA5B,EA/E4D;AAAA,CAiF5D,IAAI,CAACyvB,OAAL;AAAA,EAAcF,MAAA,CAAOkB,SAAP,CAAiBxwB,WAAjB,EAA8BD,gBAA9B,EAAgDwvB,MAAhD,EAjF8C;AAAA,CAmF5D,OAAOvvB,WAAP,CAnF4D;AAAA,CAA9D,C;;;;;;ACdA,IAAItY,UAAA,GAAa7mB,mBAAA,CAAQ,EAAR,CAAjB;AACA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CAFA;AAGA,IAAIokB,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE,CAHA;AAIA,IAAI2F,GAAA,GAAMznB,mBAAA,CAAQ,EAAR,CAAV,CAJA;AAKA,IAAI4vD,QAAA,GAAW5vD,mBAAA,CAAQ,GAAR,CAAf,CALA;AAOA,IAAI6vD,QAAA,GAAWpoC,GAAA,CAAI,MAAJ,CAAf,CAPA;AAQA,IAAIM,EAAA,GAAK,CAAT,CARA;AAUA,IAAI+nC,YAAA,GAAelrD,MAAA,CAAOkrD,YAAP,IAAuB,YAAY;AAAA,CACpD,OAAO,IAAP,CADoD;AAAA,CAAtD,CAVA;AAcA,IAAIC,WAAA,GAAc,UAAU1sC,EAAV,EAAc;AAAA,CAC9Be,cAAA,CAAef,EAAf,EAAmBwsC,QAAnB,EAA6B;AAAA,EAAE9oD,KAAA,EAAO;AAAA,GACpCipD,QAAA,EAAU,MAAM,EAAEjoC,EADkB;AAAA,GAEpCkoC,QAAA,EAAU,EAF0B;AAAA,GAAT;AAAA,EAA7B,EAD8B;AAAA,CAAhC,CAdA;AAqBA,IAAIC,OAAA,GAAU,UAAU7sC,EAAV,EAAc1iB,MAAd,EAAsB;AAAA,CAElC,IAAI,CAACukB,QAAA,CAAS7B,EAAT,CAAL;AAAA,EAAmB,OAAO,OAAOA,EAAP,IAAa,QAAb,GAAwBA,EAAxB,GAA8B,QAAOA,EAAP,IAAa,QAAb,GAAwB,GAAxB,GAA8B,GAA9B,CAAD,GAAsCA,EAA1E,CAFe;AAAA,CAGlC,IAAI,CAACO,GAAA,CAAIP,EAAJ,EAAQwsC,QAAR,CAAL,EAAwB;AAAA,EAEtB,IAAI,CAACC,YAAA,CAAazsC,EAAb,CAAL;AAAA,GAAuB,OAAO,GAAP,CAFD;AAAA,EAItB,IAAI,CAAC1iB,MAAL;AAAA,GAAa,OAAO,GAAP,CAJS;AAAA,EAMtBovD,WAAA,CAAY1sC,EAAZ,EANsB;AAAA,EAHU;AAAA,CAWhC,OAAOA,EAAA,CAAGwsC,QAAH,EAAaG,QAApB,CAXgC;AAAA,CAApC,CArBA;AAmCA,IAAIG,WAAA,GAAc,UAAU9sC,EAAV,EAAc1iB,MAAd,EAAsB;AAAA,CACtC,IAAI,CAACijB,GAAA,CAAIP,EAAJ,EAAQwsC,QAAR,CAAL,EAAwB;AAAA,EAEtB,IAAI,CAACC,YAAA,CAAazsC,EAAb,CAAL;AAAA,GAAuB,OAAO,IAAP,CAFD;AAAA,EAItB,IAAI,CAAC1iB,MAAL;AAAA,GAAa,OAAO,KAAP,CAJS;AAAA,EAMtBovD,WAAA,CAAY1sC,EAAZ,EANsB;AAAA,EADc;AAAA,CASpC,OAAOA,EAAA,CAAGwsC,QAAH,EAAaI,QAApB,CAToC;AAAA,CAAxC,CAnCA;AAgDA,IAAIG,QAAA,GAAW,UAAU/sC,EAAV,EAAc;AAAA,CAC3B,IAAIusC,QAAA,IAAYS,IAAA,CAAKz/C,QAAjB,IAA6Bk/C,YAAA,CAAazsC,EAAb,CAA7B,IAAiD,CAACO,GAAA,CAAIP,EAAJ,EAAQwsC,QAAR,CAAtD;AAAA,EAAyEE,WAAA,CAAY1sC,EAAZ,EAD9C;AAAA,CAE3B,OAAOA,EAAP,CAF2B;AAAA,CAA7B,CAhDA;AAqDA,IAAIgtC,IAAA,GAAO9pD,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAC1BkJ,QAAA,EAAU,KADgB;AAAA,CAE1Bs/C,OAAA,EAASA,OAFiB;AAAA,CAG1BC,WAAA,EAAaA,WAHa;AAAA,CAI1BC,QAAA,EAAUA,QAJgB;AAAA,CAA5B,CArDA;AA4DAvpC,UAAA,CAAWgpC,QAAX,IAAuB,IAAvB,C;;;;;;AC5DA,IAAI1rC,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AAEAuG,MAAA,CAAOmB,OAAP,GAAiB,CAACyc,KAAA,CAAM,YAAY;AAAA,CAClC,OAAOvf,MAAA,CAAOkrD,YAAP,CAAoBlrD,MAAA,CAAO0rD,iBAAP,CAAyB,EAAzB,CAApB,CAAP,CADkC;AAAA,CAAlB,CAAlB,C;;;;;;ACFA,IAAIprC,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAIqwB,cAAA,GAAiBrwB,mBAAA,CAAQ,EAAR,CAArB,CADA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB,UAAU4hB,KAAV,EAAiBomC,KAAjB,EAAwBa,OAAxB,EAAiC;AAAA,CAChD,IAAIC,SAAJ,EAAeC,kBAAf,CADgD;AAAA,CAEhD,IAEEpgC,cAAA,IAEA,OAAQ,CAAAmgC,SAAA,GAAYd,KAAA,CAAMjvD,WAAlB,CAAR,IAA0C,UAF1C,IAGA+vD,SAAA,KAAcD,OAHd,IAIArrC,QAAA,CAASurC,kBAAA,GAAqBD,SAAA,CAAUztC,SAAxC,CAJA,IAKA0tC,kBAAA,KAAuBF,OAAA,CAAQxtC,SAPjC;AAAA,EAQEsN,cAAA,CAAe/G,KAAf,EAAsBmnC,kBAAtB,EAV8C;AAAA,CAWhD,OAAOnnC,KAAP,CAXgD;AAAA,CAAlD,C;;;;;;;ACJa;AACb,IAAIlF,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE,CADA;AAEA,IAAInhB,MAAA,GAASX,mBAAA,CAAQ,EAAR,CAAb,CAFA;AAGA,IAAI26B,WAAA,GAAc36B,mBAAA,CAAQ,GAAR,CAAlB,CAHA;AAIA,IAAIksB,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX,CAJA;AAKA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CALA;AAMA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CANA;AAOA,IAAIwvB,cAAA,GAAiBxvB,mBAAA,CAAQ,EAAR,CAArB,CAPA;AAQA,IAAI46B,UAAA,GAAa56B,mBAAA,CAAQ,GAAR,CAAjB,CARA;AASA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CATA;AAUA,IAAIkwD,OAAA,GAAUlwD,mBAAA,CAAQ,GAAR,EAA0CkwD,OAAxD,CAVA;AAWA,IAAInqC,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAXA;AAaA,IAAI0vB,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CAbA;AAcA,IAAI2pC,sBAAA,GAAyB3qC,mBAAA,CAAoBiB,SAAjD,CAdA;AAgBAzgB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfynD,cAAA,EAAgB,UAAU3wB,OAAV,EAAmBU,gBAAnB,EAAqCwvB,MAArC,EAA6CE,KAA7C,EAAoD;AAAA,EAClE,IAAI37B,CAAA,GAAIuL,OAAA,CAAQ,UAAUpT,IAAV,EAAgB5gB,QAAhB,EAA0B;AAAA,GACxCqwB,UAAA,CAAWzP,IAAX,EAAiB6H,CAAjB,EAAoBiM,gBAApB,EADwC;AAAA,GAExCxP,gBAAA,CAAiBtE,IAAjB,EAAuB;AAAA,IACrBzjB,IAAA,EAAMu3B,gBADe;AAAA,IAErBzV,KAAA,EAAO9oB,MAAA,CAAO,IAAP,CAFc;AAAA,IAGrBwd,KAAA,EAAO+E,SAHc;AAAA,IAIrBoe,IAAA,EAAMpe,SAJe;AAAA,IAKrB8M,IAAA,EAAM,CALe;AAAA,IAAvB,EAFwC;AAAA,GASxC,IAAI,CAACzM,WAAL;AAAA,IAAkB6H,IAAA,CAAK4E,IAAL,GAAY,CAAZ,CATsB;AAAA,GAUxC,IAAIxlB,QAAA,IAAY0Y,SAAhB;AAAA,IAA2B+R,OAAA,CAAQzqB,QAAR,EAAkB4gB,IAAA,CAAKwjC,KAAL,CAAlB,EAA+BxjC,IAA/B,EAAqCsjC,MAArC,EAVa;AAAA,GAAlC,CAAR,CADkE;AAAA,EAclE,IAAI1oC,gBAAA,GAAmB0qC,sBAAA,CAAuBxxB,gBAAvB,CAAvB,CAdkE;AAAA,EAgBlE,IAAI93B,MAAA,GAAS,UAAUgkB,IAAV,EAAgB/gB,GAAhB,EAAqBtD,KAArB,EAA4B;AAAA,GACvC,IAAI0C,KAAA,GAAQuc,gBAAA,CAAiBoF,IAAjB,CAAZ,CADuC;AAAA,GAEvC,IAAInhB,KAAA,GAAQ0mD,QAAA,CAASvlC,IAAT,EAAe/gB,GAAf,CAAZ,CAFuC;AAAA,GAGvC,IAAIumD,QAAJ,EAAcnnC,KAAd,CAHuC;AAAA,GAKvC,IAAIxf,KAAJ,EAAW;AAAA,IACTA,KAAA,CAAMlD,KAAN,GAAcA,KAAd,CADS;AAAA,IAAX,MAGO;AAAA,IACL0C,KAAA,CAAM63B,IAAN,GAAar3B,KAAA,GAAQ;AAAA,KACnBwf,KAAA,EAAOA,KAAA,GAAQymC,OAAA,CAAQ7lD,GAAR,EAAa,IAAb,CADI;AAAA,KAEnBA,GAAA,EAAKA,GAFc;AAAA,KAGnBtD,KAAA,EAAOA,KAHY;AAAA,KAInB6pD,QAAA,EAAUA,QAAA,GAAWnnD,KAAA,CAAM63B,IAJR;AAAA,KAKnBh3B,IAAA,EAAM4Y,SALa;AAAA,KAMnB2tC,OAAA,EAAS,KANU;AAAA,KAArB,CADK;AAAA,IASL,IAAI,CAACpnD,KAAA,CAAM0U,KAAX;AAAA,KAAkB1U,KAAA,CAAM0U,KAAN,GAAclU,KAAd,CATb;AAAA,IAUL,IAAI2mD,QAAJ;AAAA,KAAcA,QAAA,CAAStmD,IAAT,GAAgBL,KAAhB,CAVT;AAAA,IAWL,IAAIsZ,WAAJ;AAAA,KAAiB9Z,KAAA,CAAMumB,IAAN,GAAjB;AAAA;AAAA,KACK5E,IAAA,CAAK4E,IAAL,GAZA;AAAA,IAcL,IAAIvG,KAAA,KAAU,GAAd;AAAA,KAAmBhgB,KAAA,CAAMggB,KAAN,CAAYA,KAAZ,IAAqBxf,KAArB,CAdd;AAAA,IARgC;AAAA,GAuBrC,OAAOmhB,IAAP,CAvBqC;AAAA,GAAzC,CAhBkE;AAAA,EA0ClE,IAAIulC,QAAA,GAAW,UAAUvlC,IAAV,EAAgB/gB,GAAhB,EAAqB;AAAA,GAClC,IAAIZ,KAAA,GAAQuc,gBAAA,CAAiBoF,IAAjB,CAAZ,CADkC;AAAA,GAGlC,IAAI3B,KAAA,GAAQymC,OAAA,CAAQ7lD,GAAR,CAAZ,CAHkC;AAAA,GAIlC,IAAIJ,KAAJ,CAJkC;AAAA,GAKlC,IAAIwf,KAAA,KAAU,GAAd;AAAA,IAAmB,OAAOhgB,KAAA,CAAMggB,KAAN,CAAYA,KAAZ,CAAP,CALe;AAAA,GAOlC,KAAKxf,KAAA,GAAQR,KAAA,CAAM0U,KAAnB,EAA0BlU,KAA1B,EAAiCA,KAAA,GAAQA,KAAA,CAAMK,IAA/C,EAAqD;AAAA,IACnD,IAAIL,KAAA,CAAMI,GAAN,IAAaA,GAAjB;AAAA,KAAsB,OAAOJ,KAAP,CAD6B;AAAA,IAPnB;AAAA,GAApC,CA1CkE;AAAA,EAsDlE0wB,WAAA,CAAY1H,CAAA,CAAElQ,SAAd,EAAyB;AAAA,GAGvBwc,KAAA,EAAO,SAASA,KAAT,GAAiB;AAAA,IACtB,IAAInU,IAAA,GAAO,IAAX,CADsB;AAAA,IAEtB,IAAI3hB,KAAA,GAAQuc,gBAAA,CAAiBoF,IAAjB,CAAZ,CAFsB;AAAA,IAGtB,IAAI9O,IAAA,GAAO7S,KAAA,CAAMggB,KAAjB,CAHsB;AAAA,IAItB,IAAIxf,KAAA,GAAQR,KAAA,CAAM0U,KAAlB,CAJsB;AAAA,IAKtB,OAAOlU,KAAP,EAAc;AAAA,KACZA,KAAA,CAAM4mD,OAAN,GAAgB,IAAhB,CADY;AAAA,KAEZ,IAAI5mD,KAAA,CAAM2mD,QAAV;AAAA,MAAoB3mD,KAAA,CAAM2mD,QAAN,GAAiB3mD,KAAA,CAAM2mD,QAAN,CAAetmD,IAAf,GAAsB4Y,SAAvC,CAFR;AAAA,KAGZ,OAAO5G,IAAA,CAAKrS,KAAA,CAAMwf,KAAX,CAAP,CAHY;AAAA,KAIZxf,KAAA,GAAQA,KAAA,CAAMK,IAAd,CAJY;AAAA,KALQ;AAAA,IAWtBb,KAAA,CAAM0U,KAAN,GAAc1U,KAAA,CAAM63B,IAAN,GAAape,SAA3B,CAXsB;AAAA,IAYtB,IAAIK,WAAJ;AAAA,KAAiB9Z,KAAA,CAAMumB,IAAN,GAAa,CAAb,CAAjB;AAAA;AAAA,KACK5E,IAAA,CAAK4E,IAAL,GAAY,CAAZ,CAbiB;AAAA,IAHD;AAAA,GAoBvB,UAAU,UAAU3lB,GAAV,EAAe;AAAA,IACvB,IAAI+gB,IAAA,GAAO,IAAX,CADuB;AAAA,IAEvB,IAAI3hB,KAAA,GAAQuc,gBAAA,CAAiBoF,IAAjB,CAAZ,CAFuB;AAAA,IAGvB,IAAInhB,KAAA,GAAQ0mD,QAAA,CAASvlC,IAAT,EAAe/gB,GAAf,CAAZ,CAHuB;AAAA,IAIvB,IAAIJ,KAAJ,EAAW;AAAA,KACT,IAAIK,IAAA,GAAOL,KAAA,CAAMK,IAAjB,CADS;AAAA,KAET,IAAIwmD,IAAA,GAAO7mD,KAAA,CAAM2mD,QAAjB,CAFS;AAAA,KAGT,OAAOnnD,KAAA,CAAMggB,KAAN,CAAYxf,KAAA,CAAMwf,KAAlB,CAAP,CAHS;AAAA,KAITxf,KAAA,CAAM4mD,OAAN,GAAgB,IAAhB,CAJS;AAAA,KAKT,IAAIC,IAAJ;AAAA,MAAUA,IAAA,CAAKxmD,IAAL,GAAYA,IAAZ,CALD;AAAA,KAMT,IAAIA,IAAJ;AAAA,MAAUA,IAAA,CAAKsmD,QAAL,GAAgBE,IAAhB,CAND;AAAA,KAOT,IAAIrnD,KAAA,CAAM0U,KAAN,IAAelU,KAAnB;AAAA,MAA0BR,KAAA,CAAM0U,KAAN,GAAc7T,IAAd,CAPjB;AAAA,KAQT,IAAIb,KAAA,CAAM63B,IAAN,IAAcr3B,KAAlB;AAAA,MAAyBR,KAAA,CAAM63B,IAAN,GAAawvB,IAAb,CARhB;AAAA,KAST,IAAIvtC,WAAJ;AAAA,MAAiB9Z,KAAA,CAAMumB,IAAN,GAAjB;AAAA;AAAA,MACK5E,IAAA,CAAK4E,IAAL,GAVI;AAAA,KAJY;AAAA,IAerB,OAAO,CAAC,CAAC/lB,KAAT,CAfqB;AAAA,IApBF;AAAA,GAuCvBwqB,OAAA,EAAS,SAASA,OAAT,CAAiBs8B,UAAjB,EAAsD;AAAA,IAC7D,IAAItnD,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CAD6D;AAAA,IAE7D,IAAIuP,aAAA,GAAgBrJ,IAAA,CAAK6kC,UAAL,EAAiB/vC,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAAvD,EAAkE,CAAlE,CAApB,CAF6D;AAAA,IAG7D,IAAIjZ,KAAJ,CAH6D;AAAA,IAI7D,OAAOA,KAAA,GAAQA,KAAA,GAAQA,KAAA,CAAMK,IAAd,GAAqBb,KAAA,CAAM0U,KAA1C,EAAiD;AAAA,KAC/CoX,aAAA,CAActrB,KAAA,CAAMlD,KAApB,EAA2BkD,KAAA,CAAMI,GAAjC,EAAsC,IAAtC,EAD+C;AAAA,KAG/C,OAAOJ,KAAA,IAASA,KAAA,CAAM4mD,OAAtB;AAAA,MAA+B5mD,KAAA,GAAQA,KAAA,CAAM2mD,QAAd,CAHgB;AAAA,KAJY;AAAA,IAvCxC;AAAA,GAmDvBhtC,GAAA,EAAK,SAASA,GAAT,CAAavZ,GAAb,EAAkB;AAAA,IACrB,OAAO,CAAC,CAACsmD,QAAA,CAAS,IAAT,EAAetmD,GAAf,CAAT,CADqB;AAAA,IAnDA;AAAA,GAAzB,EAtDkE;AAAA,EA8GlEswB,WAAA,CAAY1H,CAAA,CAAElQ,SAAd,EAAyB2rC,MAAA,GAAS;AAAA,GAEhC3iD,GAAA,EAAK,SAASA,GAAT,CAAa1B,GAAb,EAAkB;AAAA,IACrB,IAAIJ,KAAA,GAAQ0mD,QAAA,CAAS,IAAT,EAAetmD,GAAf,CAAZ,CADqB;AAAA,IAErB,OAAOJ,KAAA,IAASA,KAAA,CAAMlD,KAAtB,CAFqB;AAAA,IAFS;AAAA,GAOhCggB,GAAA,EAAK,SAASA,GAAT,CAAa1c,GAAb,EAAkBtD,KAAlB,EAAyB;AAAA,IAC5B,OAAOK,MAAA,CAAO,IAAP,EAAaiD,GAAA,KAAQ,CAAR,GAAY,CAAZ,GAAgBA,GAA7B,EAAkCtD,KAAlC,CAAP,CAD4B;AAAA,IAPE;AAAA,GAAT,GAUrB;AAAA,GAEFmoD,GAAA,EAAK,SAASA,GAAT,CAAanoD,KAAb,EAAoB;AAAA,IACvB,OAAOK,MAAA,CAAO,IAAP,EAAaL,KAAA,GAAQA,KAAA,KAAU,CAAV,GAAc,CAAd,GAAkBA,KAAvC,EAA8CA,KAA9C,CAAP,CADuB;AAAA,IAFvB;AAAA,GAVJ,EA9GkE;AAAA,EA8HlE,IAAIwc,WAAJ;AAAA,GAAiBa,cAAA,CAAe6O,CAAA,CAAElQ,SAAjB,EAA4B,MAA5B,EAAoC;AAAA,IACnDhX,GAAA,EAAK,YAAY;AAAA,KACf,OAAOia,gBAAA,CAAiB,IAAjB,EAAuBgK,IAA9B,CADe;AAAA,KADkC;AAAA,IAApC,EA9HiD;AAAA,EAmIlE,OAAOiD,CAAP,CAnIkE;AAAA,EADrD;AAAA,CAsIf08B,SAAA,EAAW,UAAU18B,CAAV,EAAaiM,gBAAb,EAA+BwvB,MAA/B,EAAuC;AAAA,EAChD,IAAIsC,aAAA,GAAgB9xB,gBAAA,GAAmB,WAAvC,CADgD;AAAA,EAEhD,IAAI+xB,0BAAA,GAA6BP,sBAAA,CAAuBxxB,gBAAvB,CAAjC,CAFgD;AAAA,EAGhD,IAAIsP,wBAAA,GAA2BkiB,sBAAA,CAAuBM,aAAvB,CAA/B,CAHgD;AAAA,EAMhDxhC,cAAA,CAAeyD,CAAf,EAAkBiM,gBAAlB,EAAoC,UAAUvP,QAAV,EAAoBoF,IAApB,EAA0B;AAAA,GAC5DrF,gBAAA,CAAiB,IAAjB,EAAuB;AAAA,IACrB/nB,IAAA,EAAMqpD,aADe;AAAA,IAErBzuC,MAAA,EAAQoN,QAFa;AAAA,IAGrBlmB,KAAA,EAAOwnD,0BAAA,CAA2BthC,QAA3B,CAHc;AAAA,IAIrBoF,IAAA,EAAMA,IAJe;AAAA,IAKrBuM,IAAA,EAAMpe,SALe;AAAA,IAAvB,EAD4D;AAAA,GAA9D,EAQG,YAAY;AAAA,GACb,IAAIzZ,KAAA,GAAQ+kC,wBAAA,CAAyB,IAAzB,CAAZ,CADa;AAAA,GAEb,IAAIzZ,IAAA,GAAOtrB,KAAA,CAAMsrB,IAAjB,CAFa;AAAA,GAGb,IAAI9qB,KAAA,GAAQR,KAAA,CAAM63B,IAAlB,CAHa;AAAA,GAKb,OAAOr3B,KAAA,IAASA,KAAA,CAAM4mD,OAAtB;AAAA,IAA+B5mD,KAAA,GAAQA,KAAA,CAAM2mD,QAAd,CALlB;AAAA,GAOb,IAAI,CAACnnD,KAAA,CAAM8Y,MAAP,IAAiB,CAAE,CAAA9Y,KAAA,CAAM63B,IAAN,GAAar3B,KAAA,GAAQA,KAAA,GAAQA,KAAA,CAAMK,IAAd,GAAqBb,KAAA,CAAMA,KAAN,CAAY0U,KAAtD,CAAvB,EAAqF;AAAA,IAEnF1U,KAAA,CAAM8Y,MAAN,GAAeW,SAAf,CAFmF;AAAA,IAGnF,OAAO;AAAA,KAAEnc,KAAA,EAAOmc,SAAT;AAAA,KAAoBnZ,IAAA,EAAM,IAA1B;AAAA,KAAP,CAHmF;AAAA,IAPxE;AAAA,GAab,IAAIgrB,IAAA,IAAQ,MAAZ;AAAA,IAAoB,OAAO;AAAA,KAAEhuB,KAAA,EAAOkD,KAAA,CAAMI,GAAf;AAAA,KAAoBN,IAAA,EAAM,KAA1B;AAAA,KAAP,CAbP;AAAA,GAcb,IAAIgrB,IAAA,IAAQ,QAAZ;AAAA,IAAsB,OAAO;AAAA,KAAEhuB,KAAA,EAAOkD,KAAA,CAAMlD,KAAf;AAAA,KAAsBgD,IAAA,EAAM,KAA5B;AAAA,KAAP,CAdT;AAAA,GAeb,OAAO;AAAA,IAAEhD,KAAA,EAAO;AAAA,KAACkD,KAAA,CAAMI,GAAP;AAAA,KAAYJ,KAAA,CAAMlD,KAAlB;AAAA,KAAT;AAAA,IAAmCgD,IAAA,EAAM,KAAzC;AAAA,IAAP,CAfa;AAAA,GARf,EAwBG2kD,MAAA,GAAS,SAAT,GAAqB,QAxBxB,EAwBkC,CAACA,MAxBnC,EAwB2C,IAxB3C,EANgD;AAAA,EAiChD9zB,UAAA,CAAWsE,gBAAX,EAjCgD;AAAA,EAtInC;AAAA,CAAjB,C;;;;;;AChBAl/B,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,EAAR,EAFA;AAGAA,mBAAA,CAAQ,GAAR,EAHA;AAIA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAJA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKyoC,GAAtB,C;;;;;;;ACNa;AACb,IAAI7C,UAAA,GAAaruD,mBAAA,CAAQ,GAAR,CAAjB,CADA;AAEA,IAAIsuD,gBAAA,GAAmBtuD,mBAAA,CAAQ,GAAR,CAAvB,CAFA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB2mD,UAAA,CAAW,KAAX,EAAkB,UAAUze,IAAV,EAAgB;AAAA,CACjD,OAAO,SAASshB,GAAT,GAAe;AAAA,EAAE,OAAOthB,IAAA,CAAK,IAAL,EAAW5uB,SAAA,CAAUpF,MAAV,GAAmBoF,SAAA,CAAU,CAAV,CAAnB,GAAkCkC,SAA7C,CAAP,CAAF;AAAA,EAAtB,CADiD;AAAA,CAAlC,EAEdorC,gBAFc,CAAjB,C;;;;;;ACNAtuD,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,GAAR,EAFA;AAGA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK3B,OAAtB,C;;;;;;;ACLa;AACb,IAAIlF,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CADA;AAEA,IAAI26B,WAAA,GAAc36B,mBAAA,CAAQ,GAAR,CAAlB,CAFA;AAGA,IAAIuuD,sBAAA,GAAyBvuD,mBAAA,CAAQ,GAAR,CAA7B,CAHA;AAIA,IAAIquD,UAAA,GAAaruD,mBAAA,CAAQ,GAAR,CAAjB,CAJA;AAKA,IAAImxD,cAAA,GAAiBnxD,mBAAA,CAAQ,GAAR,CAArB,CALA;AAMA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAOA,IAAIoxD,mBAAA,GAAsBpxD,mBAAA,CAAQ,EAAR,EAAuCkmB,OAAjE,CAPA;AAQA,IAAIQ,eAAA,GAAkB1mB,mBAAA,CAAQ,EAAR,CAAtB,CARA;AAUA,IAAIqxD,OAAA,GAAU,CAACzvC,MAAA,CAAOmN,aAAR,IAAyB,mBAAmBnN,MAA1D,CAVA;AAWA,IAAIkuC,YAAA,GAAelrD,MAAA,CAAOkrD,YAA1B,CAXA;AAYA,IAAIwB,eAAJ,CAZA;AAcA,IAAI9yB,OAAA,GAAU,UAAUoR,IAAV,EAAgB;AAAA,CAC5B,OAAO,SAAS9oB,OAAT,GAAmB;AAAA,EACxB,OAAO8oB,IAAA,CAAK,IAAL,EAAW5uB,SAAA,CAAUpF,MAAV,GAAmBoF,SAAA,CAAU,CAAV,CAAnB,GAAkCkC,SAA7C,CAAP,CADwB;AAAA,EAA1B,CAD4B;AAAA,CAA9B,CAdA;AAsBA,IAAIquC,QAAA,GAAWhrD,MAAA,CAAOmB,OAAP,GAAiB2mD,UAAA,CAAW,SAAX,EAAsB7vB,OAAtB,EAA+B2yB,cAA/B,CAAhC,CAtBA;AA2BA,IAAIzqC,eAAA,IAAmB2qC,OAAvB,EAAgC;AAAA,CAC9BC,eAAA,GAAkBH,cAAA,CAAehC,cAAf,CAA8B3wB,OAA9B,EAAuC,SAAvC,EAAkD,IAAlD,CAAlB,CAD8B;AAAA,CAE9B+vB,sBAAA,CAAuB39C,QAAvB,GAAkC,IAAlC,CAF8B;AAAA,CAG9B,IAAI4gD,gBAAA,GAAmBD,QAAA,CAASxuC,SAAhC,CAH8B;AAAA,CAI9B,IAAI0uC,YAAA,GAAeD,gBAAA,CAAiB,QAAjB,CAAnB,CAJ8B;AAAA,CAK9B,IAAIE,SAAA,GAAYF,gBAAA,CAAiB5tC,GAAjC,CAL8B;AAAA,CAM9B,IAAI+tC,SAAA,GAAYH,gBAAA,CAAiBzlD,GAAjC,CAN8B;AAAA,CAO9B,IAAI6lD,SAAA,GAAYJ,gBAAA,CAAiBzqC,GAAjC,CAP8B;AAAA,CAQ9B4T,WAAA,CAAY62B,gBAAZ,EAA8B;AAAA,EAC5B,UAAU,UAAUnnD,GAAV,EAAe;AAAA,GACvB,IAAI6a,QAAA,CAAS7a,GAAT,KAAiB,CAACylD,YAAA,CAAazlD,GAAb,CAAtB,EAAyC;AAAA,IACvC,IAAIZ,KAAA,GAAQ2nD,mBAAA,CAAoB,IAApB,CAAZ,CADuC;AAAA,IAEvC,IAAI,CAAC3nD,KAAA,CAAMooD,MAAX;AAAA,KAAmBpoD,KAAA,CAAMooD,MAAN,GAAe,IAAIP,eAAJ,EAAf,CAFoB;AAAA,IAGvC,OAAOG,YAAA,CAAavtC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAxB,KAAgCZ,KAAA,CAAMooD,MAAN,CAAa,QAAb,EAAuBxnD,GAAvB,CAAvC,CAHuC;AAAA,IADlB;AAAA,GAKrB,OAAOonD,YAAA,CAAavtC,IAAb,CAAkB,IAAlB,EAAwB7Z,GAAxB,CAAP,CALqB;AAAA,GADG;AAAA,EAQ5BuZ,GAAA,EAAK,SAASA,GAAT,CAAavZ,GAAb,EAAkB;AAAA,GACrB,IAAI6a,QAAA,CAAS7a,GAAT,KAAiB,CAACylD,YAAA,CAAazlD,GAAb,CAAtB,EAAyC;AAAA,IACvC,IAAIZ,KAAA,GAAQ2nD,mBAAA,CAAoB,IAApB,CAAZ,CADuC;AAAA,IAEvC,IAAI,CAAC3nD,KAAA,CAAMooD,MAAX;AAAA,KAAmBpoD,KAAA,CAAMooD,MAAN,GAAe,IAAIP,eAAJ,EAAf,CAFoB;AAAA,IAGvC,OAAOI,SAAA,CAAUxtC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,KAA6BZ,KAAA,CAAMooD,MAAN,CAAajuC,GAAb,CAAiBvZ,GAAjB,CAApC,CAHuC;AAAA,IADpB;AAAA,GAKnB,OAAOqnD,SAAA,CAAUxtC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,CAAP,CALmB;AAAA,GARK;AAAA,EAe5B0B,GAAA,EAAK,SAASA,GAAT,CAAa1B,GAAb,EAAkB;AAAA,GACrB,IAAI6a,QAAA,CAAS7a,GAAT,KAAiB,CAACylD,YAAA,CAAazlD,GAAb,CAAtB,EAAyC;AAAA,IACvC,IAAIZ,KAAA,GAAQ2nD,mBAAA,CAAoB,IAApB,CAAZ,CADuC;AAAA,IAEvC,IAAI,CAAC3nD,KAAA,CAAMooD,MAAX;AAAA,KAAmBpoD,KAAA,CAAMooD,MAAN,GAAe,IAAIP,eAAJ,EAAf,CAFoB;AAAA,IAGvC,OAAOI,SAAA,CAAUxtC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,IAA4BsnD,SAAA,CAAUztC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,CAA5B,GAAwDZ,KAAA,CAAMooD,MAAN,CAAa9lD,GAAb,CAAiB1B,GAAjB,CAA/D,CAHuC;AAAA,IADpB;AAAA,GAKnB,OAAOsnD,SAAA,CAAUztC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,CAAP,CALmB;AAAA,GAfK;AAAA,EAsB5B0c,GAAA,EAAK,SAASA,GAAT,CAAa1c,GAAb,EAAkBtD,KAAlB,EAAyB;AAAA,GAC5B,IAAIme,QAAA,CAAS7a,GAAT,KAAiB,CAACylD,YAAA,CAAazlD,GAAb,CAAtB,EAAyC;AAAA,IACvC,IAAIZ,KAAA,GAAQ2nD,mBAAA,CAAoB,IAApB,CAAZ,CADuC;AAAA,IAEvC,IAAI,CAAC3nD,KAAA,CAAMooD,MAAX;AAAA,KAAmBpoD,KAAA,CAAMooD,MAAN,GAAe,IAAIP,eAAJ,EAAf,CAFoB;AAAA,IAGvCI,SAAA,CAAUxtC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,IAA4BunD,SAAA,CAAU1tC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,EAA0BtD,KAA1B,CAA5B,GAA+D0C,KAAA,CAAMooD,MAAN,CAAa9qC,GAAb,CAAiB1c,GAAjB,EAAsBtD,KAAtB,CAA/D,CAHuC;AAAA,IAAzC;AAAA,IAIO6qD,SAAA,CAAU1tC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,EAA0BtD,KAA1B,EALqB;AAAA,GAM5B,OAAO,IAAP,CAN4B;AAAA,GAtBF;AAAA,EAA9B,EAR8B;AAAA,C;;;;;;;AC3BnB;AACb,IAAI4zB,WAAA,GAAc36B,mBAAA,CAAQ,GAAR,CAAlB,CADA;AAEA,IAAImwD,WAAA,GAAcnwD,mBAAA,CAAQ,GAAR,EAA0CmwD,WAA5D,CAFA;AAGA,IAAIxqC,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAJA;AAKA,IAAI66B,UAAA,GAAa76B,mBAAA,CAAQ,GAAR,CAAjB,CALA;AAMA,IAAIi1B,OAAA,GAAUj1B,mBAAA,CAAQ,GAAR,CAAd,CANA;AAOA,IAAI8xD,oBAAA,GAAuB9xD,mBAAA,CAAQ,GAAR,CAA3B,CAPA;AAQA,IAAI+xD,IAAA,GAAO/xD,mBAAA,CAAQ,EAAR,CAAX,CARA;AASA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CATA;AAWA,IAAI0vB,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CAXA;AAYA,IAAI2pC,sBAAA,GAAyB3qC,mBAAA,CAAoBiB,SAAjD,CAZA;AAaA,IAAIgoB,IAAA,GAAO8iB,oBAAA,CAAqB9iB,IAAhC,CAbA;AAcA,IAAIgjB,SAAA,GAAYF,oBAAA,CAAqBE,SAArC,CAdA;AAeA,IAAIjqC,EAAA,GAAK,CAAT,CAfA;AAkBA,IAAIkqC,mBAAA,GAAsB,UAAU1rC,KAAV,EAAiB;AAAA,CACzC,OAAOA,KAAA,CAAMsrC,MAAN,IAAiB,CAAAtrC,KAAA,CAAMsrC,MAAN,GAAe,IAAIK,mBAAJ,EAAf,CAAxB,CADyC;AAAA,CAA3C,CAlBA;AAsBA,IAAIA,mBAAA,GAAsB,YAAY;AAAA,CACpC,KAAK1gC,OAAL,GAAe,EAAf,CADoC;AAAA,CAAtC,CAtBA;AA0BA,IAAI2gC,kBAAA,GAAqB,UAAU5rC,KAAV,EAAiBlc,GAAjB,EAAsB;AAAA,CAC7C,OAAO2kC,IAAA,CAAKzoB,KAAA,CAAMiL,OAAX,EAAoB,UAAUnO,EAAV,EAAc;AAAA,EACvC,OAAOA,EAAA,CAAG,CAAH,MAAUhZ,GAAjB,CADuC;AAAA,EAAlC,CAAP,CAD6C;AAAA,CAA/C,CA1BA;AAgCA6nD,mBAAA,CAAoBnvC,SAApB,GAAgC;AAAA,CAC9BhX,GAAA,EAAK,UAAU1B,GAAV,EAAe;AAAA,EAClB,IAAIJ,KAAA,GAAQkoD,kBAAA,CAAmB,IAAnB,EAAyB9nD,GAAzB,CAAZ,CADkB;AAAA,EAElB,IAAIJ,KAAJ;AAAA,GAAW,OAAOA,KAAA,CAAM,CAAN,CAAP,CAFO;AAAA,EADU;AAAA,CAK9B2Z,GAAA,EAAK,UAAUvZ,GAAV,EAAe;AAAA,EAClB,OAAO,CAAC,CAAC8nD,kBAAA,CAAmB,IAAnB,EAAyB9nD,GAAzB,CAAT,CADkB;AAAA,EALU;AAAA,CAQ9B0c,GAAA,EAAK,UAAU1c,GAAV,EAAetD,KAAf,EAAsB;AAAA,EACzB,IAAIkD,KAAA,GAAQkoD,kBAAA,CAAmB,IAAnB,EAAyB9nD,GAAzB,CAAZ,CADyB;AAAA,EAEzB,IAAIJ,KAAJ;AAAA,GAAWA,KAAA,CAAM,CAAN,IAAWlD,KAAX,CAAX;AAAA;AAAA,GACK,KAAKyqB,OAAL,CAAa7J,IAAb,CAAkB;AAAA,IAACtd,GAAD;AAAA,IAAMtD,KAAN;AAAA,IAAlB,EAHoB;AAAA,EARG;AAAA,CAa9B,UAAU,UAAUsD,GAAV,EAAe;AAAA,EACvB,IAAIof,KAAA,GAAQuoC,SAAA,CAAU,KAAKxgC,OAAf,EAAwB,UAAUnO,EAAV,EAAc;AAAA,GAChD,OAAOA,EAAA,CAAG,CAAH,MAAUhZ,GAAjB,CADgD;AAAA,GAAtC,CAAZ,CADuB;AAAA,EAIvB,IAAI,CAACof,KAAL;AAAA,GAAY,KAAK+H,OAAL,CAAaye,MAAb,CAAoBxmB,KAApB,EAA2B,CAA3B,EAJW;AAAA,EAKvB,OAAO,CAAC,CAAC,CAACA,KAAV,CALuB;AAAA,EAbK;AAAA,CAAhC,CAhCA;AAsDAljB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CACfynD,cAAA,EAAgB,UAAU3wB,OAAV,EAAmBU,gBAAnB,EAAqCwvB,MAArC,EAA6CE,KAA7C,EAAoD;AAAA,EAClE,IAAI37B,CAAA,GAAIuL,OAAA,CAAQ,UAAUpT,IAAV,EAAgB5gB,QAAhB,EAA0B;AAAA,GACxCqwB,UAAA,CAAWzP,IAAX,EAAiB6H,CAAjB,EAAoBiM,gBAApB,EADwC;AAAA,GAExCxP,gBAAA,CAAiBtE,IAAjB,EAAuB;AAAA,IACrBzjB,IAAA,EAAMu3B,gBADe;AAAA,IAErBnX,EAAA,EAAIA,EAAA,EAFiB;AAAA,IAGrB8pC,MAAA,EAAQ3uC,SAHa;AAAA,IAAvB,EAFwC;AAAA,GAOxC,IAAI1Y,QAAA,IAAY0Y,SAAhB;AAAA,IAA2B+R,OAAA,CAAQzqB,QAAR,EAAkB4gB,IAAA,CAAKwjC,KAAL,CAAlB,EAA+BxjC,IAA/B,EAAqCsjC,MAArC,EAPa;AAAA,GAAlC,CAAR,CADkE;AAAA,EAWlE,IAAI1oC,gBAAA,GAAmB0qC,sBAAA,CAAuBxxB,gBAAvB,CAAvB,CAXkE;AAAA,EAalE,IAAI93B,MAAA,GAAS,UAAUgkB,IAAV,EAAgB/gB,GAAhB,EAAqBtD,KAArB,EAA4B;AAAA,GACvC,IAAI0C,KAAA,GAAQuc,gBAAA,CAAiBoF,IAAjB,CAAZ,CADuC;AAAA,GAEvC,IAAI9O,IAAA,GAAO6zC,WAAA,CAAYxqC,QAAA,CAAStb,GAAT,CAAZ,EAA2B,IAA3B,CAAX,CAFuC;AAAA,GAGvC,IAAIiS,IAAA,KAAS,IAAb;AAAA,IAAmB21C,mBAAA,CAAoBxoD,KAApB,EAA2Bsd,GAA3B,CAA+B1c,GAA/B,EAAoCtD,KAApC,EAAnB;AAAA;AAAA,IACKuV,IAAA,CAAK7S,KAAA,CAAMse,EAAX,IAAiBhhB,KAAjB,CAJkC;AAAA,GAKvC,OAAOqkB,IAAP,CALuC;AAAA,GAAzC,CAbkE;AAAA,EAqBlEuP,WAAA,CAAY1H,CAAA,CAAElQ,SAAd,EAAyB;AAAA,GAGvB,UAAU,UAAU1Y,GAAV,EAAe;AAAA,IACvB,IAAIZ,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CADuB;AAAA,IAEvB,IAAI,CAACd,QAAA,CAAS7a,GAAT,CAAL;AAAA,KAAoB,OAAO,KAAP,CAFG;AAAA,IAGvB,IAAIiS,IAAA,GAAO6zC,WAAA,CAAY9lD,GAAZ,CAAX,CAHuB;AAAA,IAIvB,IAAIiS,IAAA,KAAS,IAAb;AAAA,KAAmB,OAAO21C,mBAAA,CAAoBxoD,KAApB,EAA2B,QAA3B,EAAqCY,GAArC,CAAP,CAJI;AAAA,IAKvB,OAAOiS,IAAA,IAAQy1C,IAAA,CAAKz1C,IAAL,EAAW7S,KAAA,CAAMse,EAAjB,CAAR,IAAgC,OAAOzL,IAAA,CAAK7S,KAAA,CAAMse,EAAX,CAA9C,CALuB;AAAA,IAHF;AAAA,GAYvBnE,GAAA,EAAK,SAASA,GAAT,CAAavZ,GAAb,EAAkB;AAAA,IACrB,IAAIZ,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CADqB;AAAA,IAErB,IAAI,CAACd,QAAA,CAAS7a,GAAT,CAAL;AAAA,KAAoB,OAAO,KAAP,CAFC;AAAA,IAGrB,IAAIiS,IAAA,GAAO6zC,WAAA,CAAY9lD,GAAZ,CAAX,CAHqB;AAAA,IAIrB,IAAIiS,IAAA,KAAS,IAAb;AAAA,KAAmB,OAAO21C,mBAAA,CAAoBxoD,KAApB,EAA2Bma,GAA3B,CAA+BvZ,GAA/B,CAAP,CAJE;AAAA,IAKrB,OAAOiS,IAAA,IAAQy1C,IAAA,CAAKz1C,IAAL,EAAW7S,KAAA,CAAMse,EAAjB,CAAf,CALqB;AAAA,IAZA;AAAA,GAAzB,EArBkE;AAAA,EA0ClE4S,WAAA,CAAY1H,CAAA,CAAElQ,SAAd,EAAyB2rC,MAAA,GAAS;AAAA,GAEhC3iD,GAAA,EAAK,SAASA,GAAT,CAAa1B,GAAb,EAAkB;AAAA,IACrB,IAAIZ,KAAA,GAAQuc,gBAAA,CAAiB,IAAjB,CAAZ,CADqB;AAAA,IAErB,IAAId,QAAA,CAAS7a,GAAT,CAAJ,EAAmB;AAAA,KACjB,IAAIiS,IAAA,GAAO6zC,WAAA,CAAY9lD,GAAZ,CAAX,CADiB;AAAA,KAEjB,IAAIiS,IAAA,KAAS,IAAb;AAAA,MAAmB,OAAO21C,mBAAA,CAAoBxoD,KAApB,EAA2BsC,GAA3B,CAA+B1B,GAA/B,CAAP,CAFF;AAAA,KAGjB,OAAOiS,IAAA,GAAOA,IAAA,CAAK7S,KAAA,CAAMse,EAAX,CAAP,GAAwB7E,SAA/B,CAHiB;AAAA,KAFE;AAAA,IAFS;AAAA,GAWhC6D,GAAA,EAAK,SAASA,GAAT,CAAa1c,GAAb,EAAkBtD,KAAlB,EAAyB;AAAA,IAC5B,OAAOK,MAAA,CAAO,IAAP,EAAaiD,GAAb,EAAkBtD,KAAlB,CAAP,CAD4B;AAAA,IAXE;AAAA,GAAT,GAcrB;AAAA,GAEFmoD,GAAA,EAAK,SAASA,GAAT,CAAanoD,KAAb,EAAoB;AAAA,IACvB,OAAOK,MAAA,CAAO,IAAP,EAAaL,KAAb,EAAoB,IAApB,CAAP,CADuB;AAAA,IAFvB;AAAA,GAdJ,EA1CkE;AAAA,EA+DlE,OAAOksB,CAAP,CA/DkE;AAAA,EADrD;AAAA,CAAjB,C;;;;;;ACtDA,IAAI/G,IAAA,GAAOlsB,mBAAA,CAAQ,EAAR,CAAX;AACA,IAAI2kB,aAAA,GAAgB3kB,mBAAA,CAAQ,EAAR,CAApB,CADA;AAEA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CAFA;AAGA,IAAIkpB,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CAHA;AAIA,IAAIoyD,kBAAA,GAAqBpyD,mBAAA,CAAQ,GAAR,CAAzB,CAJA;AAMA,IAAI2nB,IAAA,GAAO,GAAGA,IAAd,CANA;AASA,IAAIyB,YAAA,GAAe,UAAUnC,IAAV,EAAgB;AAAA,CACjC,IAAIynC,MAAA,GAASznC,IAAA,IAAQ,CAArB,CADiC;AAAA,CAEjC,IAAIorC,SAAA,GAAYprC,IAAA,IAAQ,CAAxB,CAFiC;AAAA,CAGjC,IAAIqrC,OAAA,GAAUrrC,IAAA,IAAQ,CAAtB,CAHiC;AAAA,CAIjC,IAAIsrC,QAAA,GAAWtrC,IAAA,IAAQ,CAAvB,CAJiC;AAAA,CAKjC,IAAIurC,aAAA,GAAgBvrC,IAAA,IAAQ,CAA5B,CALiC;AAAA,CAMjC,IAAIwrC,QAAA,GAAWxrC,IAAA,IAAQ,CAAR,IAAaurC,aAA5B,CANiC;AAAA,CAOjC,OAAO,UAAUlpC,KAAV,EAAiBynC,UAAjB,EAA6B3lC,IAA7B,EAAmCsnC,cAAnC,EAAmD;AAAA,EACxD,IAAI3uC,CAAA,GAAImO,QAAA,CAAS5I,KAAT,CAAR,CADwD;AAAA,EAExD,IAAIhG,IAAA,GAAOqB,aAAA,CAAcZ,CAAd,CAAX,CAFwD;AAAA,EAGxD,IAAIwR,aAAA,GAAgBrJ,IAAA,CAAK6kC,UAAL,EAAiB3lC,IAAjB,EAAuB,CAAvB,CAApB,CAHwD;AAAA,EAIxD,IAAIxP,MAAA,GAASsN,QAAA,CAAS5F,IAAA,CAAK1H,MAAd,CAAb,CAJwD;AAAA,EAKxD,IAAI6N,KAAA,GAAQ,CAAZ,CALwD;AAAA,EAMxD,IAAI9oB,MAAA,GAAS+xD,cAAA,IAAkBN,kBAA/B,CANwD;AAAA,EAOxD,IAAI7vC,MAAA,GAASmsC,MAAA,GAAS/tD,MAAA,CAAO2oB,KAAP,EAAc1N,MAAd,CAAT,GAAiCy2C,SAAA,GAAY1xD,MAAA,CAAO2oB,KAAP,EAAc,CAAd,CAAZ,GAA+BpG,SAA7E,CAPwD;AAAA,EAQxD,IAAInc,KAAJ,EAAWiC,MAAX,CARwD;AAAA,EASxD,OAAM4S,MAAA,GAAS6N,KAAf,EAAsBA,KAAA,EAAtB;AAAA,GAA+B,IAAIgpC,QAAA,IAAYhpC,KAAA,IAASnG,IAAzB,EAA+B;AAAA,IAC5Dvc,KAAA,GAAQuc,IAAA,CAAKmG,KAAL,CAAR,CAD4D;AAAA,IAE5DzgB,MAAA,GAASusB,aAAA,CAAcxuB,KAAd,EAAqB0iB,KAArB,EAA4B1F,CAA5B,CAAT,CAF4D;AAAA,IAG5D,IAAIkD,IAAJ,EAAU;AAAA,KACR,IAAIynC,MAAJ;AAAA,MAAYnsC,MAAA,CAAOkH,KAAP,IAAgBzgB,MAAhB,CAAZ;AAAA,UACK,IAAIA,MAAJ;AAAA,MAAY,QAAQie,IAAR;AAAA,MACf,KAAK,CAAL;AAAA,OAAQ,OAAO,IAAP,CADO;AAAA,MAEf,KAAK,CAAL;AAAA,OAAQ,OAAOlgB,KAAP,CAFO;AAAA,MAGf,KAAK,CAAL;AAAA,OAAQ,OAAO0iB,KAAP,CAHO;AAAA,MAIf,KAAK,CAAL;AAAA,OAAQ9B,IAAA,CAAKzD,IAAL,CAAU3B,MAAV,EAAkBxb,KAAlB,EAJO;AAAA,OAAZ;AAAA,UAKE,IAAIwrD,QAAJ;AAAA,MAAc,OAAO,KAAP,CAPb;AAAA,KAHkD;AAAA,IATN;AAAA,EAsBxD,OAAOC,aAAA,GAAgB,CAAC,CAAjB,GAAqBF,OAAA,IAAWC,QAAX,GAAsBA,QAAtB,GAAiChwC,MAA7D,CAtBwD;AAAA,EAA1D,CAPiC;AAAA,CAAnC,CATA;AA0CAhc,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAGf+sB,OAAA,EAASrL,YAAA,CAAa,CAAb,CAHM;AAAA,CAMfy3B,GAAA,EAAKz3B,YAAA,CAAa,CAAb,CANU;AAAA,CASfupC,MAAA,EAAQvpC,YAAA,CAAa,CAAb,CATO;AAAA,CAYfwpC,IAAA,EAAMxpC,YAAA,CAAa,CAAb,CAZS;AAAA,CAefypC,KAAA,EAAOzpC,YAAA,CAAa,CAAb,CAfQ;AAAA,CAkBf4lB,IAAA,EAAM5lB,YAAA,CAAa,CAAb,CAlBS;AAAA,CAqBf4oC,SAAA,EAAW5oC,YAAA,CAAa,CAAb,CArBI;AAAA,CAAjB,C;;;;;;AC1CA,IAAIlE,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf;AACA,IAAI8yD,OAAA,GAAU9yD,mBAAA,CAAQ,GAAR,CAAd,CADA;AAEA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAIA,IAAIm4B,OAAA,GAAU5M,eAAA,CAAgB,SAAhB,CAAd,CAJA;AAQAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAUqrD,aAAV,EAAyBn3C,MAAzB,EAAiC;AAAA,CAChD,IAAIqX,CAAJ,CADgD;AAAA,CAEhD,IAAI6/B,OAAA,CAAQC,aAAR,CAAJ,EAA4B;AAAA,EAC1B9/B,CAAA,GAAI8/B,aAAA,CAActyD,WAAlB,CAD0B;AAAA,EAG1B,IAAI,OAAOwyB,CAAP,IAAY,UAAZ,IAA2B,CAAAA,CAAA,KAAM5R,KAAN,IAAeyxC,OAAA,CAAQ7/B,CAAA,CAAElQ,SAAV,CAAf,CAA/B;AAAA,GAAqEkQ,CAAA,GAAI/P,SAAJ,CAArE;AAAA,OACK,IAAIgC,QAAA,CAAS+N,CAAT,CAAJ,EAAiB;AAAA,GACpBA,CAAA,GAAIA,CAAA,CAAEkF,OAAF,CAAJ,CADoB;AAAA,GAEpB,IAAIlF,CAAA,KAAM,IAAV;AAAA,IAAgBA,CAAA,GAAI/P,SAAJ,CAFI;AAAA,GAJI;AAAA,EAFoB;AAAA,CAU9C,OAAO,IAAK,CAAA+P,CAAA,KAAM/P,SAAN,GAAkB7B,KAAlB,GAA0B4R,CAA1B,CAAL,CAAkCrX,MAAA,KAAW,CAAX,GAAe,CAAf,GAAmBA,MAArD,CAAP,CAV8C;AAAA,CAAlD,C;;;;;;ACRA,IAAIiJ,OAAA,GAAU7kB,mBAAA,CAAQ,EAAR,CAAd;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB2Z,KAAA,CAAMyxC,OAAN,IAAiB,SAASA,OAAT,CAAiBlrD,GAAjB,EAAsB;AAAA,CACtD,OAAOid,OAAA,CAAQjd,GAAR,KAAgB,OAAvB,CADsD;AAAA,CAAxD,C;;;;;;ACJA5H,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,GAAR,EAFA;AAGA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAHA;AAKAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKuqC,OAAtB,C;;;;;;;ACLa;AACb,IAAI3E,UAAA,GAAaruD,mBAAA,CAAQ,GAAR,CAAjB,CADA;AAEA,IAAImxD,cAAA,GAAiBnxD,mBAAA,CAAQ,GAAR,CAArB,CAFA;AAMAquD,UAAA,CAAW,SAAX,EAAsB,UAAUze,IAAV,EAAgB;AAAA,CACpC,OAAO,SAASojB,OAAT,GAAmB;AAAA,EAAE,OAAOpjB,IAAA,CAAK,IAAL,EAAW5uB,SAAA,CAAUpF,MAAV,GAAmBoF,SAAA,CAAU,CAAV,CAAnB,GAAkCkC,SAA7C,CAAP,CAAF;AAAA,EAA1B,CADoC;AAAA,CAAtC,EAEGiuC,cAFH,E;;;;;;ACNAnxD,mBAAA,CAAQ,GAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,aAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAIkwB,MAAA,GAASlwB,mBAAA,CAAQ,EAAR,EAAyCkwB,MAAtD,CAFA;AAMAvO,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAF,EAAqC;AAAA,CACnC+nC,WAAA,EAAa,SAASA,WAAT,CAAqB52C,GAArB,EAA0B;AAAA,EACrC,OAAO6T,MAAA,CAAO,IAAP,EAAa7T,GAAb,CAAP,CADqC;AAAA,EADJ;AAAA,CAArC,E;;;;;;ACNArc,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK3M,MAAL,CAAYo3C,aAA7B,C;;;;;;ACHA,IAAIvxC,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAImpB,eAAA,GAAkBnpB,mBAAA,CAAQ,EAAR,CAAtB,CADA;AAGA,IAAI0sC,YAAA,GAAe5wB,MAAA,CAAO4wB,YAA1B,CAHA;AAIA,IAAIymB,mBAAA,GAAsBr3C,MAAA,CAAOo3C,aAAjC,CAJA;AAOA,IAAIE,gBAAA,GAAmB,CAAC,CAACD,mBAAF,IAAyBA,mBAAA,CAAoBv3C,MAApB,IAA8B,CAA9E,CAPA;AAWA+F,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAgCO,MAAA,EAAQmwC,gBAAxC;AAAA,CAAF,EAA8D;AAAA,CAC5DF,aAAA,EAAe,SAASA,aAAT,CAAuBt9B,CAAvB,EAA0B;AAAA,EACvC,IAAIqb,QAAA,GAAW,EAAf,CADuC;AAAA,EAEvC,IAAIr1B,MAAA,GAASoF,SAAA,CAAUpF,MAAvB,CAFuC;AAAA,EAGvC,IAAIlR,CAAA,GAAI,CAAR,CAHuC;AAAA,EAIvC,IAAIiU,IAAJ,CAJuC;AAAA,EAKvC,OAAO/C,MAAA,GAASlR,CAAhB,EAAmB;AAAA,GACjBiU,IAAA,GAAO,CAACqC,SAAA,CAAUtW,CAAA,EAAV,CAAR,CADiB;AAAA,GAEjB,IAAIye,eAAA,CAAgBxK,IAAhB,EAAsB,QAAtB,MAAoCA,IAAxC;AAAA,IAA8C,MAAMgvB,UAAA,CAAWhvB,IAAA,GAAO,4BAAlB,CAAN,CAF7B;AAAA,GAGjBsyB,QAAA,CAAStpB,IAAT,CAAchJ,IAAA,GAAO,OAAP,GACV+tB,YAAA,CAAa/tB,IAAb,CADU,GAEV+tB,YAAA,CAAc,CAAC,CAAA/tB,IAAA,IAAQ,OAAR,CAAD,IAAqB,EAArB,CAAD,GAA4B,MAAzC,EAAiDA,IAAA,GAAO,KAAP,GAAe,MAAhE,CAFJ,EAHiB;AAAA,GALoB;AAAA,EAYrC,OAAOsyB,QAAA,CAAS3qB,IAAT,CAAc,EAAd,CAAP,CAZqC;AAAA,EADmB;AAAA,CAA9D,E;;;;;;ACXAtmB,mBAAA,CAAQ,GAAR;AACAA,mBAAA,CAAQ,GAAR,EADA;AAEAA,mBAAA,CAAQ,GAAR,EAFA;AAGAA,mBAAA,CAAQ,GAAR,EAHA;AAIAA,mBAAA,CAAQ,GAAR,EAJA;AAKAA,mBAAA,CAAQ,GAAR,EALA;AAMAA,mBAAA,CAAQ,GAAR,EANA;AAOAA,mBAAA,CAAQ,GAAR,EAPA;AAQAA,mBAAA,CAAQ,GAAR,EARA;AASAA,mBAAA,CAAQ,GAAR,EATA;AAUAA,mBAAA,CAAQ,GAAR,EAVA;AAWAA,mBAAA,CAAQ,GAAR,EAXA;AAYAA,mBAAA,CAAQ,GAAR,EAZA;AAaAA,mBAAA,CAAQ,GAAR,EAbA;AAcAA,mBAAA,CAAQ,GAAR,EAdA;AAeAA,mBAAA,CAAQ,GAAR,EAfA;AAgBAA,mBAAA,CAAQ,GAAR,EAhBA;AAiBAA,mBAAA,CAAQ,GAAR,EAjBA;AAkBAA,mBAAA,CAAQ,GAAR,EAlBA;AAmBA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CAnBA;AAqBAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAKmD,MAAtB,C;;;;;;;ACrBa;AACb,IAAIjK,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CAFA;AAGA,IAAI8yD,OAAA,GAAU9yD,mBAAA,CAAQ,GAAR,CAAd,CAHA;AAIA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAJA;AAKA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CALA;AAMA,IAAIkpB,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CANA;AAOA,IAAI8yB,cAAA,GAAiB9yB,mBAAA,CAAQ,EAAR,CAArB,CAPA;AAQA,IAAIoyD,kBAAA,GAAqBpyD,mBAAA,CAAQ,GAAR,CAAzB,CARA;AASA,IAAIqzD,4BAAA,GAA+BrzD,mBAAA,CAAQ,GAAR,CAAnC,CATA;AAUA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CAVA;AAWA,IAAIo7B,UAAA,GAAap7B,mBAAA,CAAQ,GAAR,CAAjB,CAXA;AAaA,IAAIszD,oBAAA,GAAuB/nC,eAAA,CAAgB,oBAAhB,CAA3B,CAbA;AAcA,IAAIgoC,gBAAA,GAAmB,gBAAvB,CAdA;AAeA,IAAIC,8BAAA,GAAiC,gCAArC,CAfA;AAoBA,IAAIC,4BAAA,GAA+Br4B,UAAA,IAAc,EAAd,IAAoB,CAACjX,KAAA,CAAM,YAAY;AAAA,CACxE,IAAIuvC,KAAA,GAAQ,EAAZ,CADwE;AAAA,CAExEA,KAAA,CAAMJ,oBAAN,IAA8B,KAA9B,CAFwE;AAAA,CAGxE,OAAOI,KAAA,CAAMlrC,MAAN,GAAe,CAAf,MAAsBkrC,KAA7B,CAHwE;AAAA,CAAlB,CAAxD,CApBA;AA0BA,IAAIC,eAAA,GAAkBN,4BAAA,CAA6B,QAA7B,CAAtB,CA1BA;AA4BA,IAAIO,kBAAA,GAAqB,UAAU7vC,CAAV,EAAa;AAAA,CACpC,IAAI,CAACmB,QAAA,CAASnB,CAAT,CAAL;AAAA,EAAkB,OAAO,KAAP,CADkB;AAAA,CAEpC,IAAI8vC,UAAA,GAAa9vC,CAAA,CAAEuvC,oBAAF,CAAjB,CAFoC;AAAA,CAGpC,OAAOO,UAAA,KAAe3wC,SAAf,GAA2B,CAAC,CAAC2wC,UAA7B,GAA0Cf,OAAA,CAAQ/uC,CAAR,CAAjD,CAHoC;AAAA,CAAtC,CA5BA;AAkCA,IAAIpB,MAAA,GAAS,CAAC8wC,4BAAD,IAAiC,CAACE,eAA/C,CAlCA;AAuCAhyC,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,OAAV;AAAA,CAAmB2I,KAAA,EAAO,IAA1B;AAAA,CAAgCjI,MAAA,EAAQN,MAAxC;AAAA,CAAF,EAAoD;AAAA,CAClD6F,MAAA,EAAQ,SAASA,MAAT,CAAgB5gB,GAAhB,EAAqB;AAAA,EAC3B,IAAImc,CAAA,GAAImO,QAAA,CAAS,IAAT,CAAR,CAD2B;AAAA,EAE3B,IAAImC,CAAA,GAAI+9B,kBAAA,CAAmBruC,CAAnB,EAAsB,CAAtB,CAAR,CAF2B;AAAA,EAG3B,IAAIspB,CAAA,GAAI,CAAR,CAH2B;AAAA,EAI3B,IAAI3iC,CAAJ,EAAOwqB,CAAP,EAAUtZ,MAAV,EAAkB6Q,GAAlB,EAAuBqnC,CAAvB,CAJ2B;AAAA,EAK3B,KAAKppD,CAAA,GAAI,CAAC,CAAL,EAAQkR,MAAA,GAASoF,SAAA,CAAUpF,MAAhC,EAAwClR,CAAA,GAAIkR,MAA5C,EAAoDlR,CAAA,EAApD,EAAyD;AAAA,GACvDopD,CAAA,GAAIppD,CAAA,KAAM,CAAC,CAAP,GAAWqZ,CAAX,GAAe/C,SAAA,CAAUtW,CAAV,CAAnB,CADuD;AAAA,GAEvD,IAAIkpD,kBAAA,CAAmBE,CAAnB,CAAJ,EAA2B;AAAA,IACzBrnC,GAAA,GAAMvD,QAAA,CAAS4qC,CAAA,CAAEl4C,MAAX,CAAN,CADyB;AAAA,IAEzB,IAAIyxB,CAAA,GAAI5gB,GAAJ,GAAU8mC,gBAAd;AAAA,KAAgC,MAAMtuC,SAAA,CAAUuuC,8BAAV,CAAN,CAFP;AAAA,IAGzB,KAAKt+B,CAAA,GAAI,CAAT,EAAYA,CAAA,GAAIzI,GAAhB,EAAqByI,CAAA,IAAKmY,CAAA,EAA1B;AAAA,KAA+B,IAAInY,CAAA,IAAK4+B,CAAT;AAAA,MAAYhhC,cAAA,CAAeuB,CAAf,EAAkBgZ,CAAlB,EAAqBymB,CAAA,CAAE5+B,CAAF,CAArB,EAHlB;AAAA,IAA3B,MAIO;AAAA,IACL,IAAImY,CAAA,IAAKkmB,gBAAT;AAAA,KAA2B,MAAMtuC,SAAA,CAAUuuC,8BAAV,CAAN,CADtB;AAAA,IAEL1gC,cAAA,CAAeuB,CAAf,EAAkBgZ,CAAA,EAAlB,EAAuBymB,CAAvB,EAFK;AAAA,IANgD;AAAA,GAL9B;AAAA,EAgB3Bz/B,CAAA,CAAEzY,MAAF,GAAWyxB,CAAX,CAhB2B;AAAA,EAiB3B,OAAOhZ,CAAP,CAjB2B;AAAA,EADqB;AAAA,CAApD,E;;;;;;ACvCA,IAAIlQ,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ;AACA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CADA;AAEA,IAAIo7B,UAAA,GAAap7B,mBAAA,CAAQ,GAAR,CAAjB,CAFA;AAIA,IAAIm4B,OAAA,GAAU5M,eAAA,CAAgB,SAAhB,CAAd,CAJA;AAMAhlB,MAAA,CAAOmB,OAAP,GAAiB,UAAUqkB,WAAV,EAAuB;AAAA,CAItC,OAAOqP,UAAA,IAAc,EAAd,IAAoB,CAACjX,KAAA,CAAM,YAAY;AAAA,EAC5C,IAAIuvC,KAAA,GAAQ,EAAZ,CAD4C;AAAA,EAE5C,IAAIjzD,WAAA,GAAcizD,KAAA,CAAMjzD,WAAN,GAAoB,EAAtC,CAF4C;AAAA,EAG5CA,WAAA,CAAY03B,OAAZ,IAAuB,YAAY;AAAA,GACjC,OAAO,EAAE47B,GAAA,EAAK,CAAP,EAAP,CADiC;AAAA,GAAnC,CAH4C;AAAA,EAM5C,OAAOL,KAAA,CAAM3nC,WAAN,EAAmBgsB,OAAnB,EAA4Bgc,GAA5B,KAAoC,CAA3C,CAN4C;AAAA,EAAlB,CAA5B,CAJsC;AAAA,CAAxC,C;;;;;;;ACNa;AACb,IAAIpyC,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CAFA;AAGA,IAAIooB,UAAA,GAAapoB,mBAAA,CAAQ,EAAR,CAAjB,CAHA;AAIA,IAAI0nB,OAAA,GAAU1nB,mBAAA,CAAQ,EAAR,CAAd,CAJA;AAKA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CALA;AAMA,IAAIyrB,aAAA,GAAgBzrB,mBAAA,CAAQ,EAAR,CAApB,CANA;AAOA,IAAI0rB,iBAAA,GAAoB1rB,mBAAA,CAAQ,EAAR,CAAxB,CAPA;AAQA,IAAImkB,KAAA,GAAQnkB,mBAAA,CAAQ,EAAR,CAAZ,CARA;AASA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CATA;AAUA,IAAI8yD,OAAA,GAAU9yD,mBAAA,CAAQ,GAAR,CAAd,CAVA;AAWA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAXA;AAYA,IAAI2lB,QAAA,GAAW3lB,mBAAA,CAAQ,EAAR,CAAf,CAZA;AAaA,IAAIkyB,QAAA,GAAWlyB,mBAAA,CAAQ,EAAR,CAAf,CAbA;AAcA,IAAI0jB,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB,CAdA;AAeA,IAAI2jB,WAAA,GAAc3jB,mBAAA,CAAQ,EAAR,CAAlB,CAfA;AAgBA,IAAIyjB,wBAAA,GAA2BzjB,mBAAA,CAAQ,EAAR,CAA/B,CAhBA;AAiBA,IAAIg0D,kBAAA,GAAqBh0D,mBAAA,CAAQ,EAAR,CAAzB,CAjBA;AAkBA,IAAIivB,UAAA,GAAajvB,mBAAA,CAAQ,EAAR,CAAjB,CAlBA;AAmBA,IAAIqoB,yBAAA,GAA4BroB,mBAAA,CAAQ,EAAR,CAAhC,CAnBA;AAoBA,IAAIi0D,2BAAA,GAA8Bj0D,mBAAA,CAAQ,GAAR,CAAlC,CApBA;AAqBA,IAAIsoB,2BAAA,GAA8BtoB,mBAAA,CAAQ,EAAR,CAAlC,CArBA;AAsBA,IAAImoB,8BAAA,GAAiCnoB,mBAAA,CAAQ,EAAR,CAArC,CAtBA;AAuBA,IAAIylB,oBAAA,GAAuBzlB,mBAAA,CAAQ,EAAR,CAA3B,CAvBA;AAwBA,IAAIwjB,0BAAA,GAA6BxjB,mBAAA,CAAQ,EAAR,CAAjC,CAxBA;AAyBA,IAAI+hB,2BAAA,GAA8B/hB,mBAAA,CAAQ,EAAR,CAAlC,CAzBA;AA0BA,IAAIgiB,QAAA,GAAWhiB,mBAAA,CAAQ,EAAR,CAAf,CA1BA;AA2BA,IAAIwnB,MAAA,GAASxnB,mBAAA,CAAQ,EAAR,CAAb,CA3BA;AA4BA,IAAI4mB,SAAA,GAAY5mB,mBAAA,CAAQ,EAAR,CAAhB,CA5BA;AA6BA,IAAI6mB,UAAA,GAAa7mB,mBAAA,CAAQ,EAAR,CAAjB,CA7BA;AA8BA,IAAIynB,GAAA,GAAMznB,mBAAA,CAAQ,EAAR,CAAV,CA9BA;AA+BA,IAAIurB,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB,CA/BA;AAgCA,IAAIk0D,4BAAA,GAA+Bl0D,mBAAA,CAAQ,GAAR,CAAnC,CAhCA;AAiCA,IAAIm0D,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B,CAjCA;AAkCA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CAlCA;AAmCA,IAAI+lB,mBAAA,GAAsB/lB,mBAAA,CAAQ,EAAR,CAA1B,CAnCA;AAoCA,IAAIo0D,QAAA,GAAWp0D,mBAAA,CAAQ,GAAR,EAAwCy0B,OAAvD,CApCA;AAsCA,IAAItkB,MAAA,GAASyW,SAAA,CAAU,QAAV,CAAb,CAtCA;AAuCA,IAAIytC,MAAA,GAAS,QAAb,CAvCA;AAwCA,IAAI/mC,SAAA,GAAY,WAAhB,CAxCA;AAyCA,IAAIgnC,YAAA,GAAe/oC,eAAA,CAAgB,aAAhB,CAAnB,CAzCA;AA0CA,IAAImE,gBAAA,GAAmB3J,mBAAA,CAAoBgB,GAA3C,CA1CA;AA2CA,IAAIf,gBAAA,GAAmBD,mBAAA,CAAoBiB,SAApB,CAA8BqtC,MAA9B,CAAvB,CA3CA;AA4CA,IAAIjiC,eAAA,GAAkBxtB,MAAA,CAAO0oB,SAAP,CAAtB,CA5CA;AA6CA,IAAI3mB,OAAA,GAAUib,MAAA,CAAOgK,MAArB,CA7CA;AA8CA,IAAI2oC,UAAA,GAAansC,UAAA,CAAW,MAAX,EAAmB,WAAnB,CAAjB,CA9CA;AA+CA,IAAItE,8BAAA,GAAiCqE,8BAAA,CAA+BrG,CAApE,CA/CA;AAgDA,IAAI8D,oBAAA,GAAuBH,oBAAA,CAAqB3D,CAAhD,CAhDA;AAiDA,IAAI0yC,yBAAA,GAA4BP,2BAAA,CAA4BnyC,CAA5D,CAjDA;AAkDA,IAAIwC,0BAAA,GAA6Bd,0BAAA,CAA2B1B,CAA5D,CAlDA;AAmDA,IAAI2yC,UAAA,GAAajtC,MAAA,CAAO,SAAP,CAAjB,CAnDA;AAoDA,IAAIktC,sBAAA,GAAyBltC,MAAA,CAAO,YAAP,CAA7B,CApDA;AAqDA,IAAImtC,sBAAA,GAAyBntC,MAAA,CAAO,2BAAP,CAA7B,CArDA;AAsDA,IAAIotC,sBAAA,GAAyBptC,MAAA,CAAO,2BAAP,CAA7B,CAtDA;AAuDA,IAAImE,qBAAA,GAAwBnE,MAAA,CAAO,KAAP,CAA5B,CAvDA;AAwDA,IAAIqtC,OAAA,GAAUjzC,MAAA,CAAOizC,OAArB,CAxDA;AA0DA,IAAIC,UAAA,GAAa,CAACD,OAAD,IAAY,CAACA,OAAA,CAAQvnC,SAAR,CAAb,IAAmC,CAACunC,OAAA,CAAQvnC,SAAR,EAAmBynC,SAAxE,CA1DA;AA6DA,IAAIC,mBAAA,GAAsBzxC,WAAA,IAAeY,KAAA,CAAM,YAAY;AAAA,CACzD,OAAO6vC,kBAAA,CAAmBpuC,oBAAA,CAAqB,EAArB,EAAyB,GAAzB,EAA8B;AAAA,EACtD7Z,GAAA,EAAK,YAAY;AAAA,GAAE,OAAO6Z,oBAAA,CAAqB,IAArB,EAA2B,GAA3B,EAAgC,EAAE7e,KAAA,EAAO,CAAT,EAAhC,EAA8CiX,CAArD,CAAF;AAAA,GADqC;AAAA,EAA9B,CAAnB,EAEHA,CAFG,IAEE,CAFT,CADyD;AAAA,CAAlB,CAAf,GAIrB,UAAU+F,CAAV,EAAaC,CAAb,EAAgB6B,UAAhB,EAA4B;AAAA,CAC/B,IAAIovC,yBAAA,GAA4BnxC,8BAAA,CAA+BsO,eAA/B,EAAgDpO,CAAhD,CAAhC,CAD+B;AAAA,CAE/B,IAAIixC,yBAAJ;AAAA,EAA+B,OAAO7iC,eAAA,CAAgBpO,CAAhB,CAAP,CAFA;AAAA,CAG/B4B,oBAAA,CAAqB7B,CAArB,EAAwBC,CAAxB,EAA2B6B,UAA3B,EAH+B;AAAA,CAI/B,IAAIovC,yBAAA,IAA6BlxC,CAAA,KAAMqO,eAAvC,EAAwD;AAAA,EACtDxM,oBAAA,CAAqBwM,eAArB,EAAsCpO,CAAtC,EAAyCixC,yBAAzC,EADsD;AAAA,EAJzB;AAAA,CAJP,GAWtBrvC,oBAXJ,CA7DA;AA0EA,IAAIpc,IAAA,GAAO,UAAUoqB,GAAV,EAAe+c,WAAf,EAA4B;AAAA,CACrC,IAAIpc,MAAA,GAASkgC,UAAA,CAAW7gC,GAAX,IAAkBogC,kBAAA,CAAmBrtD,OAAA,CAAQ2mB,SAAR,CAAnB,CAA/B,CADqC;AAAA,CAErCoC,gBAAA,CAAiB6E,MAAjB,EAAyB;AAAA,EACvB5sB,IAAA,EAAM0sD,MADiB;AAAA,EAEvBzgC,GAAA,EAAKA,GAFkB;AAAA,EAGvB+c,WAAA,EAAaA,WAHU;AAAA,EAAzB,EAFqC;AAAA,CAOrC,IAAI,CAACptB,WAAL;AAAA,EAAkBgR,MAAA,CAAOoc,WAAP,GAAqBA,WAArB,CAPmB;AAAA,CAQrC,OAAOpc,MAAP,CARqC;AAAA,CAAvC,CA1EA;AAqFA,IAAI2gC,QAAA,GAAWxpC,iBAAA,GAAoB,UAAUrI,EAAV,EAAc;AAAA,CAC/C,OAAO,OAAOA,EAAP,IAAa,QAApB,CAD+C;AAAA,CAAlC,GAEX,UAAUA,EAAV,EAAc;AAAA,CAChB,OAAOze,MAAA,CAAOye,EAAP,aAAsB1c,OAA7B,CADgB;AAAA,CAFlB,CArFA;AA2FA,IAAIwuD,eAAA,GAAkB,SAAS/wC,cAAT,CAAwBL,CAAxB,EAA2BC,CAA3B,EAA8B6B,UAA9B,EAA0C;AAAA,CAC9D,IAAI9B,CAAA,KAAMqO,eAAV;AAAA,EAA2B+iC,eAAA,CAAgBT,sBAAhB,EAAwC1wC,CAAxC,EAA2C6B,UAA3C,EADmC;AAAA,CAE9DF,QAAA,CAAS5B,CAAT,EAF8D;AAAA,CAG9D,IAAI1Z,GAAA,GAAMsZ,WAAA,CAAYK,CAAZ,EAAe,IAAf,CAAV,CAH8D;AAAA,CAI9D2B,QAAA,CAASE,UAAT,EAJ8D;AAAA,CAK9D,IAAIjC,GAAA,CAAI6wC,UAAJ,EAAgBpqD,GAAhB,CAAJ,EAA0B;AAAA,EACxB,IAAI,CAACwb,UAAA,CAAW7e,UAAhB,EAA4B;AAAA,GAC1B,IAAI,CAAC4c,GAAA,CAAIG,CAAJ,EAAO5T,MAAP,CAAL;AAAA,IAAqByV,oBAAA,CAAqB7B,CAArB,EAAwB5T,MAAxB,EAAgCsT,wBAAA,CAAyB,CAAzB,EAA4B,EAA5B,CAAhC,EADK;AAAA,GAE1BM,CAAA,CAAE5T,MAAF,EAAU9F,GAAV,IAAiB,IAAjB,CAF0B;AAAA,GAA5B,MAGO;AAAA,GACL,IAAIuZ,GAAA,CAAIG,CAAJ,EAAO5T,MAAP,KAAkB4T,CAAA,CAAE5T,MAAF,EAAU9F,GAAV,CAAtB;AAAA,IAAsC0Z,CAAA,CAAE5T,MAAF,EAAU9F,GAAV,IAAiB,KAAjB,CADjC;AAAA,GAELwb,UAAA,GAAamuC,kBAAA,CAAmBnuC,UAAnB,EAA+B,EAAE7e,UAAA,EAAYyc,wBAAA,CAAyB,CAAzB,EAA4B,KAA5B,CAAd,EAA/B,CAAb,CAFK;AAAA,GAJiB;AAAA,EAOtB,OAAOuxC,mBAAA,CAAoBjxC,CAApB,EAAuB1Z,GAAvB,EAA4Bwb,UAA5B,CAAP,CAPsB;AAAA,EALoC;AAAA,CAa5D,OAAOD,oBAAA,CAAqB7B,CAArB,EAAwB1Z,GAAxB,EAA6Bwb,UAA7B,CAAP,CAb4D;AAAA,CAAhE,CA3FA;AA2GA,IAAIuvC,iBAAA,GAAoB,SAASnoC,gBAAT,CAA0BlJ,CAA1B,EAA6BiL,UAA7B,EAAyC;AAAA,CAC/DrJ,QAAA,CAAS5B,CAAT,EAD+D;AAAA,CAE/D,IAAIsxC,UAAA,GAAa3xC,eAAA,CAAgBsL,UAAhB,CAAjB,CAF+D;AAAA,CAG/D,IAAI5kB,IAAA,GAAO6kB,UAAA,CAAWomC,UAAX,EAAuB7sC,MAAvB,CAA8B8sC,sBAAA,CAAuBD,UAAvB,CAA9B,CAAX,CAH+D;AAAA,CAI/DjB,QAAA,CAAShqD,IAAT,EAAe,UAAUC,GAAV,EAAe;AAAA,EAC5B,IAAI,CAACkZ,WAAD,IAAgBgyC,qBAAA,CAAsBrxC,IAAtB,CAA2BmxC,UAA3B,EAAuChrD,GAAvC,CAApB;AAAA,GAAiE8qD,eAAA,CAAgBpxC,CAAhB,EAAmB1Z,GAAnB,EAAwBgrD,UAAA,CAAWhrD,GAAX,CAAxB,EADrC;AAAA,EAA9B,EAJ+D;AAAA,CAO/D,OAAO0Z,CAAP,CAP+D;AAAA,CAAjE,CA3GA;AAqHA,IAAIyxC,OAAA,GAAU,SAAS70D,MAAT,CAAgBojB,CAAhB,EAAmBiL,UAAnB,EAA+B;AAAA,CAC3C,OAAOA,UAAA,KAAe9L,SAAf,GAA2B8wC,kBAAA,CAAmBjwC,CAAnB,CAA3B,GAAmDqxC,iBAAA,CAAkBpB,kBAAA,CAAmBjwC,CAAnB,CAAlB,EAAyCiL,UAAzC,CAA1D,CAD2C;AAAA,CAA7C,CArHA;AAyHA,IAAIumC,qBAAA,GAAwB,SAAShxC,oBAAT,CAA8BE,CAA9B,EAAiC;AAAA,CAC3D,IAAIT,CAAA,GAAIL,WAAA,CAAYc,CAAZ,EAAe,IAAf,CAAR,CAD2D;AAAA,CAE3D,IAAIzd,UAAA,GAAasd,0BAAA,CAA2BJ,IAA3B,CAAgC,IAAhC,EAAsCF,CAAtC,CAAjB,CAF2D;AAAA,CAG3D,IAAI,SAASoO,eAAT,IAA4BxO,GAAA,CAAI6wC,UAAJ,EAAgBzwC,CAAhB,CAA5B,IAAkD,CAACJ,GAAA,CAAI8wC,sBAAJ,EAA4B1wC,CAA5B,CAAvD;AAAA,EAAuF,OAAO,KAAP,CAH5B;AAAA,CAI3D,OAAOhd,UAAA,IAAc,CAAC4c,GAAA,CAAI,IAAJ,EAAUI,CAAV,CAAf,IAA+B,CAACJ,GAAA,CAAI6wC,UAAJ,EAAgBzwC,CAAhB,CAAhC,IAAsDJ,GAAA,CAAI,IAAJ,EAAUzT,MAAV,KAAqB,KAAKA,MAAL,EAAa6T,CAAb,CAA3E,GAA6Fhd,UAA7F,GAA0G,IAAjH,CAJ2D;AAAA,CAA7D,CAzHA;AAgIA,IAAIyuD,yBAAA,GAA4B,SAAS5zC,wBAAT,CAAkCkC,CAAlC,EAAqCC,CAArC,EAAwC;AAAA,CACtE,IAAIX,EAAA,GAAKK,eAAA,CAAgBK,CAAhB,CAAT,CADsE;AAAA,CAEtE,IAAI1Z,GAAA,GAAMsZ,WAAA,CAAYK,CAAZ,EAAe,IAAf,CAAV,CAFsE;AAAA,CAGtE,IAAIX,EAAA,KAAO+O,eAAP,IAA0BxO,GAAA,CAAI6wC,UAAJ,EAAgBpqD,GAAhB,CAA1B,IAAkD,CAACuZ,GAAA,CAAI8wC,sBAAJ,EAA4BrqD,GAA5B,CAAvD;AAAA,EAAyF,OAHnB;AAAA,CAItE,IAAIyY,UAAA,GAAagB,8BAAA,CAA+BT,EAA/B,EAAmChZ,GAAnC,CAAjB,CAJsE;AAAA,CAKtE,IAAIyY,UAAA,IAAcc,GAAA,CAAI6wC,UAAJ,EAAgBpqD,GAAhB,CAAd,IAAsC,CAAE,CAAAuZ,GAAA,CAAIP,EAAJ,EAAQlT,MAAR,KAAmBkT,EAAA,CAAGlT,MAAH,EAAW9F,GAAX,CAAnB,CAA5C,EAAiF;AAAA,EAC/EyY,UAAA,CAAW9b,UAAX,GAAwB,IAAxB,CAD+E;AAAA,EALX;AAAA,CAQtE,OAAO8b,UAAP,CARsE;AAAA,CAAxE,CAhIA;AA2IA,IAAI4yC,oBAAA,GAAuB,SAAS3sC,mBAAT,CAA6BhF,CAA7B,EAAgC;AAAA,CACzD,IAAIkF,KAAA,GAAQurC,yBAAA,CAA0B9wC,eAAA,CAAgBK,CAAhB,CAA1B,CAAZ,CADyD;AAAA,CAEzD,IAAI/a,MAAA,GAAS,EAAb,CAFyD;AAAA,CAGzDorD,QAAA,CAASnrC,KAAT,EAAgB,UAAU5e,GAAV,EAAe;AAAA,EAC7B,IAAI,CAACuZ,GAAA,CAAI6wC,UAAJ,EAAgBpqD,GAAhB,CAAD,IAAyB,CAACuZ,GAAA,CAAIiD,UAAJ,EAAgBxc,GAAhB,CAA9B;AAAA,GAAoDrB,MAAA,CAAO2e,IAAP,CAAYtd,GAAZ,EADvB;AAAA,EAA/B,EAHyD;AAAA,CAMzD,OAAOrB,MAAP,CANyD;AAAA,CAA3D,CA3IA;AAoJA,IAAIssD,sBAAA,GAAyB,SAAS/sC,qBAAT,CAA+BxE,CAA/B,EAAkC;AAAA,CAC7D,IAAI4xC,mBAAA,GAAsB5xC,CAAA,KAAMqO,eAAhC,CAD6D;AAAA,CAE7D,IAAInJ,KAAA,GAAQurC,yBAAA,CAA0BmB,mBAAA,GAAsBjB,sBAAtB,GAA+ChxC,eAAA,CAAgBK,CAAhB,CAAzE,CAAZ,CAF6D;AAAA,CAG7D,IAAI/a,MAAA,GAAS,EAAb,CAH6D;AAAA,CAI7DorD,QAAA,CAASnrC,KAAT,EAAgB,UAAU5e,GAAV,EAAe;AAAA,EAC7B,IAAIuZ,GAAA,CAAI6wC,UAAJ,EAAgBpqD,GAAhB,KAAyB,EAACsrD,mBAAD,IAAwB/xC,GAAA,CAAIwO,eAAJ,EAAqB/nB,GAArB,CAAxB,CAA7B,EAAiF;AAAA,GAC/ErB,MAAA,CAAO2e,IAAP,CAAY8sC,UAAA,CAAWpqD,GAAX,CAAZ,EAD+E;AAAA,GADpD;AAAA,EAA/B,EAJ6D;AAAA,CAS7D,OAAOrB,MAAP,CAT6D;AAAA,CAA/D,CApJA;AAkKA,IAAI,CAACyiB,aAAL,EAAoB;AAAA,CAClB9kB,OAAA,GAAU,SAASilB,MAAT,GAAkB;AAAA,EAC1B,IAAI,gBAAgBjlB,OAApB;AAAA,GAA6B,MAAMse,SAAA,CAAU,6BAAV,CAAN,CADH;AAAA,EAE1B,IAAI0rB,WAAA,GAAc,CAAC3vB,SAAA,CAAUpF,MAAX,IAAqBoF,SAAA,CAAU,CAAV,MAAiBkC,SAAtC,GAAkDA,SAAlD,GAA8DpH,MAAA,CAAOkF,SAAA,CAAU,CAAV,CAAP,CAAhF,CAF0B;AAAA,EAG1B,IAAI4S,GAAA,GAAMnM,GAAA,CAAIkpB,WAAJ,CAAV,CAH0B;AAAA,EAI1B,IAAIne,MAAA,GAAS,UAAUzrB,KAAV,EAAiB;AAAA,GAC5B,IAAI,SAASqrB,eAAb;AAAA,IAA8BI,MAAA,CAAOtO,IAAP,CAAYwwC,sBAAZ,EAAoC3tD,KAApC,EADF;AAAA,GAE5B,IAAI6c,GAAA,CAAI,IAAJ,EAAUzT,MAAV,KAAqByT,GAAA,CAAI,KAAKzT,MAAL,CAAJ,EAAkByjB,GAAlB,CAAzB;AAAA,IAAiD,KAAKzjB,MAAL,EAAayjB,GAAb,IAAoB,KAApB,CAFrB;AAAA,GAG5BohC,mBAAA,CAAoB,IAApB,EAA0BphC,GAA1B,EAA+BnQ,wBAAA,CAAyB,CAAzB,EAA4B1c,KAA5B,CAA/B,EAH4B;AAAA,GAA9B,CAJ0B;AAAA,EAS1B,IAAIwc,WAAA,IAAeuxC,UAAnB;AAAA,GAA+BE,mBAAA,CAAoB5iC,eAApB,EAAqCwB,GAArC,EAA0C;AAAA,IAAE3sB,YAAA,EAAc,IAAhB;AAAA,IAAsB8f,GAAA,EAAKyL,MAA3B;AAAA,IAA1C,EATL;AAAA,EAU1B,OAAOhpB,IAAA,CAAKoqB,GAAL,EAAU+c,WAAV,CAAP,CAV0B;AAAA,EAA5B,CADkB;AAAA,CAclB3uB,QAAA,CAASrb,OAAA,CAAQ2mB,SAAR,CAAT,EAA6B,UAA7B,EAAyC,SAASvI,QAAT,GAAoB;AAAA,EAC3D,OAAOiB,gBAAA,CAAiB,IAAjB,EAAuB4N,GAA9B,CAD2D;AAAA,EAA7D,EAdkB;AAAA,CAkBlB5R,QAAA,CAASrb,OAAT,EAAkB,eAAlB,EAAmC,UAAUgqC,WAAV,EAAuB;AAAA,EACxD,OAAOnnC,IAAA,CAAKie,GAAA,CAAIkpB,WAAJ,CAAL,EAAuBA,WAAvB,CAAP,CADwD;AAAA,EAA1D,EAlBkB;AAAA,CAsBlBntB,0BAAA,CAA2B1B,CAA3B,GAA+ByzC,qBAA/B,CAtBkB;AAAA,CAuBlB9vC,oBAAA,CAAqB3D,CAArB,GAAyBqzC,eAAzB,CAvBkB;AAAA,CAwBlBhtC,8BAAA,CAA+BrG,CAA/B,GAAmC2zC,yBAAnC,CAxBkB;AAAA,CAyBlBptC,yBAAA,CAA0BvG,CAA1B,GAA8BmyC,2BAAA,CAA4BnyC,CAA5B,GAAgC4zC,oBAA9D,CAzBkB;AAAA,CA0BlBptC,2BAAA,CAA4BxG,CAA5B,GAAgCwzC,sBAAhC,CA1BkB;AAAA,CA4BlBpB,4BAAA,CAA6BpyC,CAA7B,GAAiC,UAAUhd,IAAV,EAAgB;AAAA,EAC/C,OAAO0E,IAAA,CAAK+hB,eAAA,CAAgBzmB,IAAhB,CAAL,EAA4BA,IAA5B,CAAP,CAD+C;AAAA,EAAjD,CA5BkB;AAAA,CAgClB,IAAIye,WAAJ,EAAiB;AAAA,EAEfqC,oBAAA,CAAqBjf,OAAA,CAAQ2mB,SAAR,CAArB,EAAyC,aAAzC,EAAwD;AAAA,GACtDrmB,YAAA,EAAc,IADwC;AAAA,GAEtD8E,GAAA,EAAK,SAAS4kC,WAAT,GAAuB;AAAA,IAC1B,OAAO3qB,gBAAA,CAAiB,IAAjB,EAAuB2qB,WAA9B,CAD0B;AAAA,IAF0B;AAAA,GAAxD,EAFe;AAAA,EAQf,IAAI,CAACjpB,OAAL,EAAc;AAAA,GACZ1F,QAAA,CAASoQ,eAAT,EAA0B,sBAA1B,EAAkDmjC,qBAAlD,EAAyE,EAAEnvC,MAAA,EAAQ,IAAV,EAAzE,EADY;AAAA,GARC;AAAA,EAhCC;AAAA,CAlKpB;AAgNAzE,CAAA,CAAE;AAAA,CAAEC,MAAA,EAAQ,IAAV;AAAA,CAAgBpY,IAAA,EAAM,IAAtB;AAAA,CAA4ByZ,MAAA,EAAQ,CAACwI,aAArC;AAAA,CAAoDtI,IAAA,EAAM,CAACsI,aAA3D;AAAA,CAAF,EAA8E,EAC5EG,MAAA,EAAQjlB,OADoE,EAA9E,EAhNA;AAoNAytD,QAAA,CAASnlC,UAAA,CAAWtD,qBAAX,CAAT,EAA4C,UAAU7mB,IAAV,EAAgB;AAAA,CAC1DqvD,qBAAA,CAAsBrvD,IAAtB,EAD0D;AAAA,CAA5D,EApNA;AAwNA6c,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ8xC,MAAV;AAAA,CAAkB3xC,IAAA,EAAM,IAAxB;AAAA,CAA8BO,MAAA,EAAQ,CAACwI,aAAvC;AAAA,CAAF,EAA0D;AAAA,CAGxD,OAAO,UAAUphB,GAAV,EAAe;AAAA,EACpB,IAAImgB,MAAA,GAAS1O,MAAA,CAAOzR,GAAP,CAAb,CADoB;AAAA,EAEpB,IAAIuZ,GAAA,CAAI+wC,sBAAJ,EAA4BnqC,MAA5B,CAAJ;AAAA,GAAyC,OAAOmqC,sBAAA,CAAuBnqC,MAAvB,CAAP,CAFrB;AAAA,EAGpB,IAAI+J,MAAA,GAAS5tB,OAAA,CAAQ6jB,MAAR,CAAb,CAHoB;AAAA,EAIpBmqC,sBAAA,CAAuBnqC,MAAvB,IAAiC+J,MAAjC,CAJoB;AAAA,EAKpBqgC,sBAAA,CAAuBrgC,MAAvB,IAAiC/J,MAAjC,CALoB;AAAA,EAMpB,OAAO+J,MAAP,CANoB;AAAA,EAHkC;AAAA,CAaxDqhC,MAAA,EAAQ,SAASA,MAAT,CAAgBC,GAAhB,EAAqB;AAAA,EAC3B,IAAI,CAACX,QAAA,CAASW,GAAT,CAAL;AAAA,GAAoB,MAAM5wC,SAAA,CAAU4wC,GAAA,GAAM,kBAAhB,CAAN,CADO;AAAA,EAE3B,IAAIjyC,GAAA,CAAIgxC,sBAAJ,EAA4BiB,GAA5B,CAAJ;AAAA,GAAsC,OAAOjB,sBAAA,CAAuBiB,GAAvB,CAAP,CAFX;AAAA,EAb2B;AAAA,CAiBxDC,SAAA,EAAW,YAAY;AAAA,EAAEhB,UAAA,GAAa,IAAb,CAAF;AAAA,EAjBiC;AAAA,CAkBxDiB,SAAA,EAAW,YAAY;AAAA,EAAEjB,UAAA,GAAa,KAAb,CAAF;AAAA,EAlBiC;AAAA,CAA1D,EAxNA;AA6OAnzC,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAgCO,MAAA,EAAQ,CAACwI,aAAzC;AAAA,CAAwDtI,IAAA,EAAM,CAACI,WAA/D;AAAA,CAAF,EAAgF;AAAA,CAG9E5iB,MAAA,EAAQ60D,OAHsE;AAAA,CAM9EpxC,cAAA,EAAgB+wC,eAN8D;AAAA,CAS9EloC,gBAAA,EAAkBmoC,iBAT4D;AAAA,CAY9EvzC,wBAAA,EAA0B4zC,yBAZoD;AAAA,CAAhF,EA7OA;AA4PA9zC,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAgCO,MAAA,EAAQ,CAACwI,aAAzC;AAAA,CAAF,EAA4D;AAAA,CAG1D1C,mBAAA,EAAqB2sC,oBAHqC;AAAA,CAM1DntC,qBAAA,EAAuB+sC,sBANmC;AAAA,CAA5D,EA5PA;AAuQA3zC,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAgCO,MAAA,EAAQkB,KAAA,CAAM,YAAY;AAAA,EAAEmE,2BAAA,CAA4BxG,CAA5B,CAA8B,CAA9B,EAAF;AAAA,EAAlB,CAAxC;AAAA,CAAF,EAAsG;AAAA,CACpGyG,qBAAA,EAAuB,SAASA,qBAAT,CAA+BlF,EAA/B,EAAmC;AAAA,EACxD,OAAOiF,2BAAA,CAA4BxG,CAA5B,CAA8BoQ,QAAA,CAAS7O,EAAT,CAA9B,CAAP,CADwD;AAAA,EAD0C;AAAA,CAAtG,EAvQA;AA+QA,IAAIkxC,UAAJ,EAAgB;AAAA,CACd,IAAIyB,qBAAA,GAAwB,CAACvqC,aAAD,IAAkBtH,KAAA,CAAM,YAAY;AAAA,EAC9D,IAAIoQ,MAAA,GAAS5tB,OAAA,EAAb,CAD8D;AAAA,EAG9D,OAAO4tD,UAAA,CAAW,CAAChgC,MAAD,CAAX,KAAwB,QAAxB,IAEFggC,UAAA,CAAW,EAAEv2C,CAAA,EAAGuW,MAAL,EAAX,KAA6B,IAF3B,IAIFggC,UAAA,CAAW3vD,MAAA,CAAO2vB,MAAP,CAAX,KAA8B,IAJnC,CAH8D;AAAA,EAAlB,CAA9C,CADc;AAAA,CAWd5S,CAAA,CAAE;AAAA,EAAEY,MAAA,EAAQ,MAAV;AAAA,EAAkBG,IAAA,EAAM,IAAxB;AAAA,EAA8BO,MAAA,EAAQ+yC,qBAAtC;AAAA,EAAF,EAAiE;AAAA,EAE/DC,SAAA,EAAW,SAASA,SAAT,CAAmB5yC,EAAnB,EAAuB4rB,QAAvB,EAAiCinB,KAAjC,EAAwC;AAAA,GACjD,IAAI90C,IAAA,GAAO,CAACiC,EAAD,CAAX,CADiD;AAAA,GAEjD,IAAIoG,KAAA,GAAQ,CAAZ,CAFiD;AAAA,GAGjD,IAAI0sC,SAAJ,CAHiD;AAAA,GAIjD,OAAOn1C,SAAA,CAAUpF,MAAV,GAAmB6N,KAA1B;AAAA,IAAiCrI,IAAA,CAAKuG,IAAL,CAAU3G,SAAA,CAAUyI,KAAA,EAAV,CAAV,EAJgB;AAAA,GAKjD0sC,SAAA,GAAYlnB,QAAZ,CALiD;AAAA,GAMjD,IAAI,CAAC/pB,QAAA,CAAS+pB,QAAT,CAAD,IAAuB5rB,EAAA,KAAOH,SAA9B,IAA2CgyC,QAAA,CAAS7xC,EAAT,CAA/C;AAAA,IAA6D,OANZ;AAAA,GAOjD,IAAI,CAACyvC,OAAA,CAAQ7jB,QAAR,CAAL;AAAA,IAAwBA,QAAA,GAAW,UAAU5kC,GAAV,EAAetD,KAAf,EAAsB;AAAA,KACvD,IAAI,OAAOovD,SAAP,IAAoB,UAAxB;AAAA,MAAoCpvD,KAAA,GAAQovD,SAAA,CAAUjyC,IAAV,CAAe,IAAf,EAAqB7Z,GAArB,EAA0BtD,KAA1B,CAAR,CADmB;AAAA,KAEvD,IAAI,CAACmuD,QAAA,CAASnuD,KAAT,CAAL;AAAA,MAAsB,OAAOA,KAAP,CAFiC;AAAA,KAAjC,CAPyB;AAAA,GAWjDqa,IAAA,CAAK,CAAL,IAAU6tB,QAAV,CAXiD;AAAA,GAYjD,OAAOslB,UAAA,CAAWloC,KAAX,CAAiB,IAAjB,EAAuBjL,IAAvB,CAAP,CAZiD;AAAA,GAFY;AAAA,EAAjE,EAXc;AAAA,CA/QhB;AA+SA,IAAI,CAACza,OAAA,CAAQ2mB,SAAR,EAAmBgnC,YAAnB,CAAL,EAAuC;AAAA,CACrCvyC,2BAAA,CAA4Bpb,OAAA,CAAQ2mB,SAAR,CAA5B,EAAgDgnC,YAAhD,EAA8D3tD,OAAA,CAAQ2mB,SAAR,EAAmBhI,OAAjF,EADqC;AAAA,CA/SvC;AAoTAgL,cAAA,CAAe3pB,OAAf,EAAwB0tD,MAAxB,EApTA;AAsTAxtC,UAAA,CAAW1W,MAAX,IAAqB,IAArB,C;;;;;;ACtTA,IAAIuT,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB;AACA,IAAIw0D,yBAAA,GAA4Bx0D,mBAAA,CAAQ,EAAR,EAAsD8hB,CAAtF,CADA;AAGA,IAAIiD,QAAA,GAAW,GAAGA,QAAlB,CAHA;AAKA,IAAIqxC,WAAA,GAAc,OAAOl1C,MAAP,IAAiB,QAAjB,IAA6BA,MAA7B,IAAuCtc,MAAA,CAAOmkB,mBAA9C,GACdnkB,MAAA,CAAOmkB,mBAAP,CAA2B7H,MAA3B,CADc,GACuB,EADzC,CALA;AAQA,IAAIm1C,cAAA,GAAiB,UAAUhzC,EAAV,EAAc;AAAA,CACjC,IAAI;AAAA,EACF,OAAOmxC,yBAAA,CAA0BnxC,EAA1B,CAAP,CADE;AAAA,EAAJ,CAEE,OAAOY,KAAP,EAAc;AAAA,EACd,OAAOmyC,WAAA,CAAYpxC,KAAZ,EAAP,CADc;AAAA,EAHiB;AAAA,CAAnC,CARA;AAiBAze,MAAA,CAAOmB,OAAP,CAAeoa,CAAf,GAAmB,SAASiH,mBAAT,CAA6B1F,EAA7B,EAAiC;AAAA,CAClD,OAAO+yC,WAAA,IAAerxC,QAAA,CAASb,IAAT,CAAcb,EAAd,KAAqB,iBAApC,GACHgzC,cAAA,CAAehzC,EAAf,CADG,GAEHmxC,yBAAA,CAA0B9wC,eAAA,CAAgBL,EAAhB,CAA1B,CAFJ,CADkD;AAAA,CAApD,C;;;;;;ACjBA,IAAIkI,eAAA,GAAkBvrB,mBAAA,CAAQ,EAAR,CAAtB;AAEA0H,OAAA,CAAQoa,CAAR,GAAYyJ,eAAZ,C;;;;;;ACFA,IAAI9C,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX;AACA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CADA;AAEA,IAAIk0D,4BAAA,GAA+Bl0D,mBAAA,CAAQ,GAAR,CAAnC,CAFA;AAGA,IAAIokB,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE,CAHA;AAKAvb,MAAA,CAAOmB,OAAP,GAAiB,UAAUspB,IAAV,EAAgB;AAAA,CAC/B,IAAIpF,MAAA,GAASnD,IAAA,CAAKmD,MAAL,IAAgB,CAAAnD,IAAA,CAAKmD,MAAL,GAAc,EAAd,CAA7B,CAD+B;AAAA,CAE/B,IAAI,CAAChI,GAAA,CAAIgI,MAAJ,EAAYoF,IAAZ,CAAL;AAAA,EAAwB5M,cAAA,CAAewH,MAAf,EAAuBoF,IAAvB,EAA6B,EACnDjqB,KAAA,EAAOmtD,4BAAA,CAA6BpyC,CAA7B,CAA+BkP,IAA/B,CAD4C,EAA7B,EAFO;AAAA,CAAjC,C;;;;;;ACLA,IAAImjC,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,eAAtB,E;;;;;;;ACJA;AAGA,IAAIxyC,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CAHA;AAIA,IAAIujB,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB,CAJA;AAKA,IAAI4hB,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb,CALA;AAMA,IAAI4jB,GAAA,GAAM5jB,mBAAA,CAAQ,EAAR,CAAV,CANA;AAOA,IAAIklB,QAAA,GAAWllB,mBAAA,CAAQ,EAAR,CAAf,CAPA;AAQA,IAAIokB,cAAA,GAAiBpkB,mBAAA,CAAQ,EAAR,EAA+C8hB,CAApE,CARA;AASA,IAAII,yBAAA,GAA4BliB,mBAAA,CAAQ,EAAR,CAAhC,CATA;AAWA,IAAIs2D,YAAA,GAAe10C,MAAA,CAAOgK,MAA1B,CAXA;AAaA,IAAIrI,WAAA,IAAe,OAAO+yC,YAAP,IAAuB,UAAtC,IAAqD,EAAE,kBAAiBA,YAAA,CAAavzC,SAA9B,CAAF,IAEvDuzC,YAAA,GAAe3lB,WAAf,KAA+BztB,SAFwB,CAAzD,EAGG;AAAA,CACD,IAAIqzC,2BAAA,GAA8B,EAAlC,CADC;AAAA,CAGD,IAAIC,aAAA,GAAgB,SAAS5qC,MAAT,GAAkB;AAAA,EACpC,IAAI+kB,WAAA,GAAc3vB,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,IAAwBoF,SAAA,CAAU,CAAV,MAAiBkC,SAAzC,GAAqDA,SAArD,GAAiEpH,MAAA,CAAOkF,SAAA,CAAU,CAAV,CAAP,CAAnF,CADoC;AAAA,EAEpC,IAAIhY,MAAA,GAAS,gBAAgBwtD,aAAhB,GACT,IAAIF,YAAJ,CAAiB3lB,WAAjB,CADS,GAGTA,WAAA,KAAgBztB,SAAhB,GAA4BozC,YAAA,EAA5B,GAA6CA,YAAA,CAAa3lB,WAAb,CAHjD,CAFoC;AAAA,EAMpC,IAAIA,WAAA,KAAgB,EAApB;AAAA,GAAwB4lB,2BAAA,CAA4BvtD,MAA5B,IAAsC,IAAtC,CANY;AAAA,EAOpC,OAAOA,MAAP,CAPoC;AAAA,EAAtC,CAHC;AAAA,CAYDkZ,yBAAA,CAA0Bs0C,aAA1B,EAAyCF,YAAzC,EAZC;AAAA,CAaD,IAAIG,eAAA,GAAkBD,aAAA,CAAczzC,SAAd,GAA0BuzC,YAAA,CAAavzC,SAA7D,CAbC;AAAA,CAcD0zC,eAAA,CAAgBh2D,WAAhB,GAA8B+1D,aAA9B,CAdC;AAAA,CAgBD,IAAIE,cAAA,GAAiBD,eAAA,CAAgB1xC,QAArC,CAhBC;AAAA,CAiBD,IAAI4xC,MAAA,GAAS76C,MAAA,CAAOw6C,YAAA,CAAa,MAAb,CAAP,KAAgC,cAA7C,CAjBC;AAAA,CAkBD,IAAItqC,MAAA,GAAS,uBAAb,CAlBC;AAAA,CAmBD5H,cAAA,CAAeqyC,eAAf,EAAgC,aAAhC,EAA+C;AAAA,EAC7CxvD,YAAA,EAAc,IAD+B;AAAA,EAE7C8E,GAAA,EAAK,SAAS4kC,WAAT,GAAuB;AAAA,GAC1B,IAAIpc,MAAA,GAASrP,QAAA,CAAS,IAAT,IAAiB,KAAKI,OAAL,EAAjB,GAAkC,IAA/C,CAD0B;AAAA,GAE1B,IAAIkF,MAAA,GAASksC,cAAA,CAAexyC,IAAf,CAAoBqQ,MAApB,CAAb,CAF0B;AAAA,GAG1B,IAAI3Q,GAAA,CAAI2yC,2BAAJ,EAAiChiC,MAAjC,CAAJ;AAAA,IAA8C,OAAO,EAAP,CAHpB;AAAA,GAI1B,IAAIqiC,IAAA,GAAOD,MAAA,GAASnsC,MAAA,CAAOxF,KAAP,CAAa,CAAb,EAAgB,CAAC,CAAjB,CAAT,GAA+BwF,MAAA,CAAOC,OAAP,CAAeuB,MAAf,EAAuB,IAAvB,CAA1C,CAJ0B;AAAA,GAK1B,OAAO4qC,IAAA,KAAS,EAAT,GAAc1zC,SAAd,GAA0B0zC,IAAjC,CAL0B;AAAA,GAFiB;AAAA,EAA/C,EAnBC;AAAA,CA8BDj1C,CAAA,CAAE;AAAA,EAAEC,MAAA,EAAQ,IAAV;AAAA,EAAgBqB,MAAA,EAAQ,IAAxB;AAAA,EAAF,EAAkC,EAChC2I,MAAA,EAAQ4qC,aADwB,EAAlC,EA9BC;AAAA,C;;;;;;AChBH,IAAIrC,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,aAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,oBAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,UAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,OAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAGAm0D,qBAAA,CAAsB,UAAtB,E;;;;;;ACHA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,SAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,QAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,SAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,OAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,aAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,aAAtB,E;;;;;;ACJA,IAAIA,qBAAA,GAAwBn0D,mBAAA,CAAQ,GAAR,CAA5B;AAIAm0D,qBAAA,CAAsB,aAAtB,E;;;;;;ACJA,IAAI7jC,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB;AAIAswB,cAAA,CAAeltB,IAAf,EAAqB,MAArB,EAA6B,IAA7B,E;;;;;;ACJA,IAAIwe,MAAA,GAAS5hB,mBAAA,CAAQ,EAAR,CAAb;AACA,IAAIswB,cAAA,GAAiBtwB,mBAAA,CAAQ,EAAR,CAArB,CADA;AAKAswB,cAAA,CAAe1O,MAAA,CAAOi1C,IAAtB,EAA4B,MAA5B,EAAoC,IAApC,E;;;;;;ACLA72D,mBAAA,CAAQ,GAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,UAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI82D,SAAA,GAAY92D,mBAAA,CAAQ,GAAR,EAAmCkF,KAAnD,CAFA;AAGA,IAAI6xD,UAAA,GAAa/2D,mBAAA,CAAQ,GAAR,CAAjB,CAHA;AAOA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAiCjI,MAAA,EAAQ8zC,UAAzC;AAAA,CAAF,EAAyD;AAAA,CACvDC,QAAA,EAAU,SAASA,QAAT,CAAkBnxB,SAAlB,EAAsD;AAAA,EAC9D,OAAOixB,SAAA,CAAU,IAAV,EAAgBjxB,SAAhB,EAA2B7kB,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAAjE,CAAP,CAD8D;AAAA,EADT;AAAA,CAAzD,E;;;;;;ACNA,IAAIgG,QAAA,GAAWlpB,mBAAA,CAAQ,EAAR,CAAf,CADA;AAEA,IAAIi3D,MAAA,GAASj3D,mBAAA,CAAQ,GAAR,CAAb,CAFA;AAGA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CAHA;AAKA,IAAI8pB,IAAA,GAAO1mB,IAAA,CAAK0mB,IAAhB,CALA;AAQA,IAAIV,YAAA,GAAe,UAAU8tC,MAAV,EAAkB;AAAA,CACnC,OAAO,UAAU5tC,KAAV,EAAiBuc,SAAjB,EAA4BsxB,UAA5B,EAAwC;AAAA,EAC7C,IAAIrnC,CAAA,GAAIhU,MAAA,CAAO8I,sBAAA,CAAuB0E,KAAvB,CAAP,CAAR,CAD6C;AAAA,EAE7C,IAAI8tC,YAAA,GAAetnC,CAAA,CAAElU,MAArB,CAF6C;AAAA,EAG7C,IAAIy7C,OAAA,GAAUF,UAAA,KAAej0C,SAAf,GAA2B,GAA3B,GAAiCpH,MAAA,CAAOq7C,UAAP,CAA/C,CAH6C;AAAA,EAI7C,IAAIG,YAAA,GAAepuC,QAAA,CAAS2c,SAAT,CAAnB,CAJ6C;AAAA,EAK7C,IAAI0xB,OAAJ,EAAaC,YAAb,CAL6C;AAAA,EAM7C,IAAIF,YAAA,IAAgBF,YAAhB,IAAgCC,OAAA,IAAW,EAA/C;AAAA,GAAmD,OAAOvnC,CAAP,CANN;AAAA,EAO7CynC,OAAA,GAAUD,YAAA,GAAeF,YAAzB,CAP6C;AAAA,EAQ7CI,YAAA,GAAeP,MAAA,CAAO/yC,IAAP,CAAYmzC,OAAZ,EAAqBvtC,IAAA,CAAKytC,OAAA,GAAUF,OAAA,CAAQz7C,MAAvB,CAArB,CAAf,CAR6C;AAAA,EAS7C,IAAI47C,YAAA,CAAa57C,MAAb,GAAsB27C,OAA1B;AAAA,GAAmCC,YAAA,GAAeA,YAAA,CAAaxyC,KAAb,CAAmB,CAAnB,EAAsBuyC,OAAtB,CAAf,CATU;AAAA,EAU7C,OAAOL,MAAA,GAASpnC,CAAA,GAAI0nC,YAAb,GAA4BA,YAAA,GAAe1nC,CAAlD,CAV6C;AAAA,EAA/C,CADmC;AAAA,CAArC,CARA;AAuBAvpB,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAGfxC,KAAA,EAAOkkB,YAAA,CAAa,KAAb,CAHQ;AAAA,CAMfzkB,GAAA,EAAKykB,YAAA,CAAa,IAAb,CANU;AAAA,CAAjB,C;;;;;;;ACvBa;AACb,IAAIO,SAAA,GAAY3pB,mBAAA,CAAQ,EAAR,CAAhB,CADA;AAEA,IAAI4kB,sBAAA,GAAyB5kB,mBAAA,CAAQ,EAAR,CAA7B,CAFA;AAMAuG,MAAA,CAAOmB,OAAP,GAAiB,GAAGuvD,MAAH,IAAa,SAASA,MAAT,CAAgBQ,KAAhB,EAAuB;AAAA,CACnD,IAAI/7C,GAAA,GAAMI,MAAA,CAAO8I,sBAAA,CAAuB,IAAvB,CAAP,CAAV,CADmD;AAAA,CAEnD,IAAI5b,MAAA,GAAS,EAAb,CAFmD;AAAA,CAGnD,IAAIqkC,CAAA,GAAI1jB,SAAA,CAAU8tC,KAAV,CAAR,CAHmD;AAAA,CAInD,IAAIpqB,CAAA,GAAI,CAAJ,IAASA,CAAA,IAAKmE,QAAlB;AAAA,EAA4B,MAAM7D,UAAA,CAAW,6BAAX,CAAN,CAJuB;AAAA,CAKnD,OAAMN,CAAA,GAAI,CAAV,EAAc,CAAAA,CAAA,MAAO,CAAP,CAAD,IAAe,CAAA3xB,GAAA,IAAOA,GAAP,CAA5B;AAAA,EAAyC,IAAI2xB,CAAA,GAAI,CAAR;AAAA,GAAWrkC,MAAA,IAAU0S,GAAV,CALD;AAAA,CAMnD,OAAO1S,MAAP,CANmD;AAAA,CAArD,C;;;;;;ACLA,IAAIqX,SAAA,GAAYrgB,mBAAA,CAAQ,GAAR,CAAhB,CADA;AAIAuG,MAAA,CAAOmB,OAAP,GAAiB,mDAAmD6f,IAAnD,CAAwDlH,SAAxD,CAAjB,C;;;;;;ACJArgB,mBAAA,CAAQ,GAAR;AACA,IAAI2qB,WAAA,GAAc3qB,mBAAA,CAAQ,EAAR,CAAlB,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiBijB,WAAA,CAAY,QAAZ,EAAsB,QAAtB,CAAjB,C;;;;;;;ACHa;AACb,IAAIhJ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR,CADA;AAEA,IAAI03D,OAAA,GAAU13D,mBAAA,CAAQ,GAAR,EAAmC2E,GAAjD,CAFA;AAGA,IAAIoyD,UAAA,GAAa/2D,mBAAA,CAAQ,GAAR,CAAjB,CAHA;AAOA2hB,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoB2I,KAAA,EAAO,IAA3B;AAAA,CAAiCjI,MAAA,EAAQ8zC,UAAzC;AAAA,CAAF,EAAyD;AAAA,CACvDY,MAAA,EAAQ,SAASA,MAAT,CAAgB9xB,SAAhB,EAAoD;AAAA,EAC1D,OAAO6xB,OAAA,CAAQ,IAAR,EAAc7xB,SAAd,EAAyB7kB,SAAA,CAAUpF,MAAV,GAAmB,CAAnB,GAAuBoF,SAAA,CAAU,CAAV,CAAvB,GAAsCkC,SAA/D,CAAP,CAD0D;AAAA,EADL;AAAA,CAAzD,E;;;;;;ACPAljB,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK7jB,MAAL,CAAY0D,MAA7B,C;;;;;;ACHA,IAAIqZ,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAI43D,OAAA,GAAU53D,mBAAA,CAAQ,GAAR,EAAwCsI,MAAtD,CADA;AAKAqZ,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAF,EAAoC;AAAA,CAClCpa,MAAA,EAAQ,SAASA,MAAT,CAAgByb,CAAhB,EAAmB;AAAA,EACzB,OAAO6zC,OAAA,CAAQ7zC,CAAR,CAAP,CADyB;AAAA,EADO;AAAA,CAApC,E;;;;;;ACLA,IAAIR,WAAA,GAAcvjB,mBAAA,CAAQ,EAAR,CAAlB;AACA,IAAIivB,UAAA,GAAajvB,mBAAA,CAAQ,EAAR,CAAjB,CADA;AAEA,IAAI0jB,eAAA,GAAkB1jB,mBAAA,CAAQ,EAAR,CAAtB,CAFA;AAGA,IAAIukB,oBAAA,GAAuBvkB,mBAAA,CAAQ,EAAR,EAAsD8hB,CAAjF,CAHA;AAMA,IAAIsH,YAAA,GAAe,UAAUyuC,UAAV,EAAsB;AAAA,CACvC,OAAO,UAAUx0C,EAAV,EAAc;AAAA,EACnB,IAAIU,CAAA,GAAIL,eAAA,CAAgBL,EAAhB,CAAR,CADmB;AAAA,EAEnB,IAAIjZ,IAAA,GAAO6kB,UAAA,CAAWlL,CAAX,CAAX,CAFmB;AAAA,EAGnB,IAAInI,MAAA,GAASxR,IAAA,CAAKwR,MAAlB,CAHmB;AAAA,EAInB,IAAIlR,CAAA,GAAI,CAAR,CAJmB;AAAA,EAKnB,IAAI1B,MAAA,GAAS,EAAb,CALmB;AAAA,EAMnB,IAAIqB,GAAJ,CANmB;AAAA,EAOnB,OAAOuR,MAAA,GAASlR,CAAhB,EAAmB;AAAA,GACjBL,GAAA,GAAMD,IAAA,CAAKM,CAAA,EAAL,CAAN,CADiB;AAAA,GAEjB,IAAI,CAAC6Y,WAAD,IAAgBgB,oBAAA,CAAqBL,IAArB,CAA0BH,CAA1B,EAA6B1Z,GAA7B,CAApB,EAAuD;AAAA,IACrDrB,MAAA,CAAO2e,IAAP,CAAYkwC,UAAA,GAAa;AAAA,KAACxtD,GAAD;AAAA,KAAM0Z,CAAA,CAAE1Z,GAAF,CAAN;AAAA,KAAb,GAA6B0Z,CAAA,CAAE1Z,GAAF,CAAzC,EADqD;AAAA,IAFtC;AAAA,GAPA;AAAA,EAanB,OAAOrB,MAAP,CAbmB;AAAA,EAArB,CADuC;AAAA,CAAzC,CANA;AAwBAzC,MAAA,CAAOmB,OAAP,GAAiB;AAAA,CAGf8pB,OAAA,EAASpI,YAAA,CAAa,IAAb,CAHM;AAAA,CAMf9gB,MAAA,EAAQ8gB,YAAA,CAAa,KAAb,CANO;AAAA,CAAjB,C;;;;;;ACxBAppB,mBAAA,CAAQ,GAAR;AACA,IAAIyoB,IAAA,GAAOzoB,mBAAA,CAAQ,EAAR,CAAX,CADA;AAGAuG,MAAA,CAAOmB,OAAP,GAAiB+gB,IAAA,CAAK7jB,MAAL,CAAY4sB,OAA7B,C;;;;;;ACHA,IAAI7P,CAAA,GAAI3hB,mBAAA,CAAQ,EAAR,CAAR;AACA,IAAI83D,QAAA,GAAW93D,mBAAA,CAAQ,GAAR,EAAwCwxB,OAAvD,CADA;AAKA7P,CAAA,CAAE;AAAA,CAAEY,MAAA,EAAQ,QAAV;AAAA,CAAoBG,IAAA,EAAM,IAA1B;AAAA,CAAF,EAAoC;AAAA,CAClC8O,OAAA,EAAS,SAASA,OAAT,CAAiBzN,CAAjB,EAAoB;AAAA,EAC3B,OAAO+zC,QAAA,CAAS/zC,CAAT,CAAP,CAD2B;AAAA,EADK;AAAA,CAApC,E;;;;;;;;;;;;;;;;;;ACeA;;AAmBA;;AASA;;AACA;;AAjDA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,IAAMg0C,2BA7DN,KA6DA;AACA,IAAMC,8BA9DN,GA8DA;AAEA,IAAMC,uBACJ,oDAjEF,+BAgEA;AAIA,IAAMC,2BACJ,wDArEF,mCAoEA;AAkBA,IAtFA,sBAsFA;;AAWA,6DAA6D;AAC3DC,2BAD2D,uBAC3DA;AAlGF;;AA+MA,0BAA0B;AACxB,MAAMr9B,OAAO,IADW,sBACX,EAAb;AAEA,MAHwB,MAGxB;;AACA,MAAI,eAAJ,UAA6B;AAC3BzY,aAAS;AAAE9gB,WADgB;AAClB,KAAT8gB;AADF,SAEO,IAAI+1C,yBAAJ,GAAIA,CAAJ,EAAwB;AAC7B/1C,aAAS;AAAE/F,YADkB;AACpB,KAAT+F;AADK,SAEA,IAAIoM,eAAJ,uBAA0C;AAC/CpM,aAAS;AAAEg2C,aADoC;AACtC,KAATh2C;AADK,SAEA;AACL,QAAI,iBAAJ,UAA6B;AAC3B,YAAM,UACJ,uCAFyB,sDACrB,CAAN;AAFG;;AAOL,QAAI,CAACoM,IAAD,OAAY,CAACA,IAAb,QAAyB,CAACA,IAA9B,OAAyC;AACvC,YAAM,UADiC,6DACjC,CAAN;AARG;;AAYLpM,aAZK,GAYLA;AAtBsB;;AAwBxB,MAAMliB,SAASyE,cAxBS,IAwBTA,CAAf;AACA,MAAI0zD,iBAAJ;AAAA,MACEC,SA1BsB,IAyBxB;;AAGA,0BAA0B;AACxB,QAAIluD,iBAAiB,kBAArB,aAAoD;AAElDlK,oBAAc,QAAQkiB,OAAR,GAAQA,CAAR,EAAqBnB,OAArB,UAFoC,IAElD/gB;AAFkD;AAApD,WAIO,IAAIkK,QAAJ,SAAqB;AAC1BiuD,uBAAiBj2C,OADS,GACTA,CAAjBi2C;AAD0B;AAArB,WAGA,IAAIjuD,QAAJ,UAAsB;AAC3BkuD,eAASl2C,OADkB,GAClBA,CAATk2C;AAD2B;AAAtB,WAGA,IAAIluD,kBAAkB,EAAE,uBAAxB,UAAsB,CAAtB,EAA4D;AAEjE,UAAMmuD,WAAWn2C,OAFgD,GAEhDA,CAAjB;;AACA,UAAI,oBAAJ,UAAkC;AAChCliB,sBAAc6B,yBADkB,QAClBA,CAAd7B;AADF,aAEO,IACL,kCACAq4D,aADA,QAEA,CAAC/tD,MAAM+tD,SAHF,MAGJ/tD,CAHI,EAIL;AACAtK,sBAAc,eADd,QACc,CAAdA;AALK,aAMA,IAAIi4D,yBAAJ,QAAIA,CAAJ,EAA6B;AAClCj4D,sBAAc,eADoB,QACpB,CAAdA;AADK,aAEA;AACL,cAAM,UACJ,sGAFG,gBACC,CAAN;AAd+D;;AAAA;AAX3C;;AAiCxBA,kBAAckiB,OAjCU,GAiCVA,CAAdliB;AA7DsB;;AAgExBA,0BAAwBA,yBAhEA,wBAgExBA;AACAA,6BACEA,4BAlEsB,wBAiExBA;AAEAA,wBAAsBA,wBAnEE,IAmExBA;AACAA,+BAA6BA,+BApEL,IAoExBA;AACAA,kBAAgBA,kBArEQ,IAqExBA;;AAEA,MAAI,CAACgb,iBAAiBhb,OAAtB,YAAKgb,CAAL,EAA4C;AAC1Chb,0BAAsB,CADoB,CAC1CA;AAxEsB;;AA0ExB,MAAI,OAAOA,OAAP,oBAAJ,WAAiD;AAC/CA,6BAD+C,IAC/CA;AA3EsB;;AA6ExB,MAAI,OAAOA,OAAP,oBAAJ,WAAiD;AAC/CA,6BAAyBs4D,6DADsB,KAC/Ct4D;AA9EsB;;AAgFxB,MAAI,OAAOA,OAAP,kBAAJ,aAAiD;AAC/CA,2BAAuBe,WADwB,QAC/Cf;AAjFsB;;AAoFxB,MAAI,OAAOA,OAAP,iBAAJ,WAA8C;AAC5CA,0BAD4C,KAC5CA;AArFsB;;AAuFxB,MAAI,OAAOA,OAAP,kBAAJ,WAA+C;AAC7CA,2BAD6C,KAC7CA;AAxFsB;;AA0FxB,MAAI,OAAOA,OAAP,qBAAJ,WAAkD;AAChDA,8BADgD,KAChDA;AA3FsB;;AA+FxBu4D,+BAAkBv4D,OA/FM,SA+FxBu4D;;AAEA,MAAI,CAAJ,QAAa;AACX,QAAMC,eAAe;AACnBz9C,iBAAW/a,OADQ;AAEnB4/B,YAAM64B,oCAFa;AAAA,KAArB;AAMAL,aAASI,oBACLE,mBADKF,YACLE,CADKF,GAEL,cATO,YASP,CAFJJ;AAGAz9B,mBAVW,MAUXA;AA3GsB;;AA6GxB,MAAMg+B,QAAQh+B,KA7GU,KA6GxB;AACAy9B,sBACQ,YAAY;AAChB,QAAIz9B,KAAJ,WAAoB;AAClB,YAAM,UADY,iBACZ,CAAN;AAFc;;AAKhB,QAAMi+B,kBAAkBC,+CALR,KAKQA,CAAxB;;AAMA,QAAMC,uBAAuB,YAAY,mBAAmB;AAC1D,UAD0D,aAC1D;;AACA,0BAAoB;AAClBC,wBAAgB,6CACd;AACEt9C,kBAAQzb,OADV;AAEEg5D,uBAAah5D,OAFf;AAGEi5D,2BAAiBj5D,OAHnB;AAIEk5D,wBAAcl5D,OAJhB;AAKEm5D,yBAAen5D,OALjB;AAAA,SADc,EADE,cACF,CAAhB+4D;AADF,aAWO,IAAI,CAAC/4D,OAAL,MAAkB;AACvB+4D,wBAAgB,uBAAuB;AACrC33D,eAAKpB,OADgC;AAErCyb,kBAAQzb,OAF6B;AAGrCo5D,uBAAap5D,OAHwB;AAIrCq5D,2BAAiBr5D,OAJoB;AAKrCs5D,0BAAgBt5D,OALqB;AAMrCk5D,wBAAcl5D,OANuB;AAOrCm5D,yBAAen5D,OAPsB;AAAA,SAAvB,CAAhB+4D;AAdwD;;AAwB1D/2D,cAxB0D,aAwB1DA;AAnCc,KAWa,CAA7B;AA2BA,WAAO,YAAY,uCAAZ,OACL,gBAAqC;AAAA;AAAA,UAA3B,QAA2B;AAAA,UAArC,aAAqC;;AACnC,UAAI24B,KAAJ,WAAoB;AAClB,cAAM,UADY,iBACZ,CAAN;AAFiC;;AAKnC,UAAM4+B,iBAAiB,qDAGrBnB,OARiC,IAKZ,CAAvB;AAKAmB,4CAAsCnB,OAVH,oBAUnCmB;AACA,UAAMC,YAAY,yDAXiB,MAWjB,CAAlB;AAMA7+B,wBAjBmC,SAiBnCA;AACA4+B,mCAlBmC,IAkBnCA;AAzDY,KAsCT,CAAP;AAvCJnB,cA8DSz9B,iBA5Ke,MA8GxBy9B;AAgEA,SA9KwB,IA8KxB;AA7XF;;AA2YA,sEAAsE;AACpE,MAAIA,OAAJ,WAAsB;AACpB,WAAOlgC,eAAe,UADF,sBACE,CAAfA,CAAP;AAFkE;;AAKpE,6BAA2B;AACzBhW,oBAAgBu3C,sBADS,MACzBv3C;AACAA,yBAAqBu3C,sBAFI,WAEzBv3C;AACAA,6BAAyBu3C,sBAHA,eAGzBv3C;AARkE;;AAUpE,SAAO,uDAC6B;AAChCy2C,SADgC,EAChCA,KADgC;AAEhCe,gBAFgC;AAOhCx3C,YAAQ;AACN/F,YAAM+F,OADA;AAEN9gB,WAAK8gB,OAFC;AAGN2kB,gBAAU3kB,OAHJ;AAINy3C,wBAAkBz3C,OAJZ;AAKNo3C,sBAAgBp3C,OALV;AAMNzG,cAAQyG,OANF;AAAA,KAPwB;AAehC03C,kBAAc13C,OAfkB;AAgBhC23C,qBAAiB33C,OAhBe;AAiBhC43C,0BAAsB1B,OAjBU;AAkBhC2B,gBAAY73C,OAlBoB;AAmBhC83C,kBAAc93C,OAnBkB;AAoBhCtF,qBAAiBsF,OApBe;AAqBhC+3C,yBAAqB/3C,OArBW;AAAA,GAD7B,OAwBC,oBAAoB;AACxB,QAAIk2C,OAAJ,WAAsB;AACpB,YAAM,UADc,sBACd,CAAN;AAFsB;;AAIxB,WAJwB,QAIxB;AAtCgE,GAU7D,CAAP;AArZF;;AAmdA,IAAM8B,yBAA0B,yCAAyC;AACvE,MAAIC,iBADmE,CACvE;;AADuE,MASvE,sBATuE;AAUrE75D,sCAAc;AAAA;;AACZ,yBADY,oCACZ;AACA,wBAFY,IAEZ;AACA,qBAHY,IAGZ;AAMA,mBAAa,MAAM65D,cATP,EASZ;AAMA,uBAfY,KAeZ;AAQA,wBAvBY,IAuBZ;AASA,wBAhCY,IAgCZ;AAOA,kCAvCY,IAuCZ;AAxCyB;;AAT0C;AAAA;AAAA,gCAgE3D;AAAA;;AACR,yBADQ,IACR;AAEA,YAAMC,qBAAqB,CAAC,KAAD,aACvBliC,QADuB,OACvBA,EADuB,GAEvB,gBALI,OAKJ,EAFJ;AAGA,eAAO,wBAAwB,YAAM;AACnC,6BADmC,IACnC;;AACA,cAAI,MAAJ,SAAkB;AAChB,0BADgB,OAChB;;AACA,4BAFgB,IAEhB;AAJiC;AAN7B,SAMD,CAAP;AA7DyB;AAT0C;AAAA;AAAA,0BAwDvD;AACZ,eAAO,iBADK,OACZ;AAhDyB;AAT0C;;AAAA;AAAA;;AA+EvE,SA/EuE,sBA+EvE;AAliBF,CAmdgC,EAAhC;;IAqFA,qB;AAME53B,sDAA0D;AAAA,QAAzB24D,eAAyB,uEAA1D34D,KAA0D;;AAAA;;AACxD,kBADwD,MACxD;AACA,uBAFwD,WAExD;AACA,2BAHwD,eAGxD;AAEA,2BALwD,EAKxD;AACA,8BANwD,EAMxD;AACA,qCAPwD,EAOxD;AACA,qCARwD,EAQxD;AACA,4BATwD,oCASxD;AAfwB;;;;qCAkB1B+5D,Q,EAA2B;AACzB,gCADyB,QACzB;AAnBwB;;;wCAsB1BC,Q,EAA8B;AAC5B,mCAD4B,QAC5B;AAvBwB;;;+CA0B1BC,Q,EAAqC;AACnC,0CADmC,QACnC;AA3BwB;;;+CA8B1BC,Q,EAAqC;AACnC,0CADmC,QACnC;AA/BwB;;;gCAkC1BC,K,EAAAA,K,EAA0B;AAAA,iDACD,KAAvB,eADwB;AAAA;;AAAA;AACxB,4DAA6C;AAAA,cAA7C,QAA6C;AAC3C16B,0BAD2C,KAC3CA;AAFsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAlCA;;;mCAwC1B26B,M,EAAAA,K,EAA8B;AAAA;;AAC5B,yCAAmC,YAAM;AAAA,oDAChB,OAAvB,kBADuC;AAAA;;AAAA;AACvC,iEAAgD;AAAA,gBAAhD,QAAgD;AAC9C36B,6BAD8C,KAC9CA;AAFqC;AAAA;AAAA;AAAA;AAAA;AAAA;AADb,OAC5B;AAzCwB;;;0CAgD1B46B,K,EAA6B;AAAA;;AAC3B,yCAAmC,YAAM;AAAA,oDAChB,OAAvB,yBADuC;AAAA;;AAAA;AACvC,iEAAuD;AAAA,gBAAvD,QAAuD;AACrD56B,qBADqD,KACrDA;AAFqC;AAAA;AAAA;AAAA;AAAA;AAAA;AADd,OAC3B;AAjDwB;;;4CAwDF;AAAA;;AACtB,yCAAmC,YAAM;AAAA,oDAChB,OAAvB,yBADuC;AAAA;;AAAA;AACvC,iEAAuD;AAAA,gBAAvD,QAAuD;AACrDA,oBADqD;AADhB;AAAA;AAAA;AAAA;AAAA;AAAA;AADnB,OACtB;AAzDwB;;;qCAgET;AACf,4BADe,OACf;AAjEwB;;;qCAoE1B66B,K,EAAAA,G,EAA6B;AAC3Br6D,6BAD2B,wDAC3BA;AArEwB;;;4BAwElB,CAxEkB;;;;;;;;IA8E5B,gB;AACED,gDAAgC;AAAA;;AAC9B,oBAD8B,OAC9B;AACA,sBAF8B,SAE9B;AAHmB;;;;4BAgCrBu6D,U,EAAoB;AAClB,aAAO,wBADW,UACX,CAAP;AAjCmB;;;iCA2CrBC,G,EAAkB;AAChB,aAAO,6BADS,GACT,CAAP;AA5CmB;;;sCAqDH;AAChB,aAAO,gBADS,eACT,EAAP;AAtDmB;;;mCA8DrBC,E,EAAmB;AACjB,aAAO,+BADU,EACV,CAAP;AA/DmB;;;oCAuEL;AACd,aAAO,gBADO,aACP,EAAP;AAxEmB;;;oCA+EL;AACd,aAAO,gBADO,aACP,EAAP;AAhFmB;;;kCAuFP;AACZ,aAAO,gBADK,WACL,EAAP;AAxFmB;;;2CAgGE;AACrB,aAAO,gBADc,oBACd,EAAP;AAjGmB;;;oCAyGL;AACd,aAAO,gBADO,aACP,EAAP;AA1GmB;;;qCAiHJ;AACf,aAAO,gBADQ,cACR,EAAP;AAlHmB;;;oCA0HL;AACd,aAAO,gBADO,aACP,EAAP;AA3HmB;;;iCAiJR;AACX,aAAO,gBADI,UACJ,EAAP;AAlJmB;;;+CA0JM;AACzB,aAAO,gBADkB,wBAClB,EAAP;AA3JmB;;;qCAmKJ;AACf,aAAO,gBADQ,cACR,EAAP;AApKmB;;;kCA8KP;AACZ,aAAO,gBADK,WACL,EAAP;AA/KmB;;;8BAsLX;AACR,aAAO,gBADC,OACD,EAAP;AAvLmB;;;sCA+LH;AAChB,aAAO,uCADS,OAChB;AAhMmB;;;+BAwMV;AACT,aAAO,gBADE,QACF,EAAP;AAzMmB;;;8BAqNX;AACR,aAAO,gBADC,YACD,EAAP;AAtNmB;;;8BA4NX;AACR,aAAO,iBADC,OACD,EAAP;AA7NmB;;;iCAsPrBC,iB,EAAgC;AAC9B,aAAO,6BADuB,iBACvB,CAAP;AAvPmB;;;wBASG;AACtB,aAAOv+C,6CAAkC,IADnB,qCACmB,EAAlCA,CAAP;AAVmB;;;wBAgBN;AACb,aAAO,cADM,QACb;AAjBmB;;;wBAuBH;AAChB,aAAO,cADS,WAChB;AAxBmB;;;wBAqOD;AAClB,aAAO,gBADW,aAClB;AAtOmB;;;wBA4OH;AAChB,aAAO,gBADS,WAChB;AA7OmB;;;;;;;;IA0WvB,Y;AACEnc,uEAA2E;AAAA,QAAhB26D,MAAgB,uEAA3E36D,KAA2E;;AAAA;;AACzE,sBADyE,SACzE;AACA,qBAFyE,QAEzE;AACA,0BAHyE,aAGzE;AACA,sBAJyE,SAIzE;AACA,kBAAc26D,SAAS,IAATA,wBAAS,EAATA,GAL2D,IAKzE;AACA,mBANyE,MAMzE;AACA,sBAAkBzB,UAPuD,UAOzE;AACA,gBAAY,IAR6D,UAQ7D,EAAZ;AAEA,8BAVyE,KAUzE;AACA,0BAXyE,KAWzE;AACA,yBAAqB,IAZoD,GAYpD,EAArB;AACA,qBAbyE,KAazE;AAde;;;;kCAiET;AAAA,sFANR0B,EAMQ;AAAA,UANI,KAMJ,SANI,KAMJ;AAAA,iCAJNv4D,QAIM;AAAA,UAJNA,QAIM,+BAJK,KAFD,MAMJ;AAAA,gCAHNN,OAGM;AAAA,UAHNA,OAGM,8BANI,CAMJ;AAAA,gCAFNC,OAEM;AAAA,UAFNA,OAEM,8BANI,CAMJ;AAAA,iCADNC,QACM;AAAA,UADNA,QACM,+BANI,KAMJ;;AACN,aAAO,gCAAiB;AACtBE,iBAAS,KADa;AAEtBW,aAFsB,EAEtBA,KAFsB;AAGtBT,gBAHsB,EAGtBA,QAHsB;AAItBN,eAJsB,EAItBA,OAJsB;AAKtBC,eALsB,EAKtBA,OALsB;AAMtBC,gBANsB,EAMtBA;AANsB,OAAjB,CAAP;AAlEe;;;qCAiFsB;AAAA,sFAAvC44D,EAAuC;AAAA,+BAAtBC,MAAsB;AAAA,UAAtBA,MAAsB,6BAAxB,IAAwB;;AACrC,UAAI,CAAC,KAAD,sBAA4B,2BAAhC,QAAmE;AACjE,kCAA0B,+BACxB,KADwB,YADuC,MACvC,CAA1B;AAIA,iCALiE,MAKjE;AANmC;;AAQrC,aAAO,KAR8B,kBAQrC;AAzFe;;;kCA+Gd;AAAA;;AAAA,UAZI,aAYJ,SAZI,aAYJ;AAAA,UAZI,QAYJ,SAZI,QAYJ;AAAA,+BATDA,MASC;AAAA,UATDA,MASC,6BAZI,SAYJ;AAAA,oCARDC,WAQC;AAAA,UARDA,WAQC,kCAZI,KAYJ;AAAA,wCAPDC,sBAOC;AAAA,UAPDA,sBAOC,sCAZI,KAYJ;AAAA,kCAND9mD,SAMC;AAAA,UANDA,SAMC,gCAZI,IAYJ;AAAA,mCALD+mD,UAKC;AAAA,UALDA,UAKC,iCAZI,IAYJ;AAAA,sCAJDC,aAIC;AAAA,UAJDA,aAIC,oCAZI,IAYJ;AAAA,mCAHDC,UAGC;AAAA,UAHDA,UAGC,iCAZI,IAYJ;AAAA,wCAFDC,iBAEC;AAAA,UAFDA,iBAEC,sCAZI,IAYJ;AAAA,wCADDC,4BACC;AAAA,UADDA,4BACC,sCAZHC,IAYG;;AACD,UAAI,KAAJ,QAAiB;AACf,yBADe,SACf;AAFD;;AAKD,UAAMC,kBAAkBT,+BALvB,SAKD;AAGA,4BARC,KAQD;;AAEA,UAAI,CAAJ,8BAAmC;AACjCO,uCAA+B,gBADE,wBACF,EAA/BA;AAXD;;AAcD,UAAIG,cAAc,uBAdjB,eAciB,CAAlB;;AACA,UAAI,CAAJ,aAAkB;AAChBA,sBAAcr3D,cADE,IACFA,CAAdq3D;;AACA,gDAFgB,WAEhB;AAjBD;;AAqBD,UAAIA,YAAJ,2BAA2C;AACzCC,qBAAaD,YAD4B,yBACzCC;AACAD,gDAFyC,IAEzCA;AAvBD;;AA0BD,UAAME,wBACJR,iBACA,yBAAyB;AAAE16D,uBAAe,KA5B3C;AA4B0B,OAAzB,CAFF;AAGA,UAAMm7D,eAAe,wBAAiB;AACpCC,gBA9BD;AA6BqC,OAAjB,CAArB;;AAMA,UAAI,CAACJ,YAAL,wBAAyC;AACvCA,6CADuC,oCACvCA;AACAA,mCAA2B;AACzBK,mBADyB;AAEzBC,qBAFyB;AAGzBC,qBAHyB;AAAA,SAA3BP;;AAMA,YAAI,KAAJ,QAAiB;AACf,2BADe,cACf;AATqC;;AAWvC,+BAAuB;AACrBQ,qBAAW,KADU;AAErBlB,kBAFqB;AAGrBE,kCAAwBA,2BAHH;AAIrBI,6BACGA,qBAAqBA,kBAAtB,MAAsBA,EAArBA,IALkB;AAAA,SAAvB;AA9CD;;AAuDD,UAAMxwD,WAAW4Y,SAAX5Y,QAAW4Y,QAAS;AACxB,YAAMvZ,IAAIuxD,gCADc,kBACdA,CAAV;;AACA,YAAIvxD,KAAJ,GAAY;AACVuxD,4CADU,CACVA;AAHsB;;AAQxB,YAAI,6BAA2BD,oBAA/B,SAA4D;AAC1D,kCAD0D,IAC1D;AATsB;;AAWxB,eAXwB,WAWxB;;AAEA,mBAAW;AACTU,+CADS,KACTA;;AAEA,oCAAwB;AACtBT,uBADsB,EACtBA,WADsB;AAEtBv6D,oBAFsB;AAAA,WAAxB;AAHF,eAOO;AACLg7D,wCADK,OACLA;AArBsB;;AAuBxB,YAAI,OAAJ,QAAiB;AACf,gCADe,WACf;;AACA,gCAFe,SAEf;AAzBsB;AAvDzB,OAuDD;;AA6BA,UAAMA,qBAAqB,uBAAuB;AAChDpsB,kBADgD;AAGhDnwC,gBAAQ;AACNw8D,uBADM,EACNA,aADM;AAENC,kBAFM,EAENA,QAFM;AAGNjoD,mBAHM,EAGNA,SAHM;AAIN+mD,oBAJM,EAINA,UAJM;AAKNE,oBALM,EAKNA;AALM,SAHwC;AAUhDiB,cAAM,KAV0C;AAWhDC,oBAAY,KAXoC;AAYhDC,sBAAcd,YAZkC;AAahDQ,mBAAW,KAbqC;AAchDd,uBAdgD;AAehDS,oBAfgD,EAehDA,YAfgD;AAgBhDY,kCAA0BhB,oBAhBsB;AAiBhDZ,gBAAQ,KAjBwC;AAAA,OAAvB,CAA3B;;AAoBA,UAAI,CAACa,YAAL,aAA8B;AAC5BA,kCAD4B,EAC5BA;AAzGD;;AA2GDA,mCA3GC,kBA2GDA;AACA,UAAMgB,aAAaP,mBA5GlB,IA4GD;AAEArkC,kBAAY,CACV4jC,mCADU,sCAAZ5jC,OAIQ,iBAA2C;AAAA;AAAA,YAA1C,YAA0C;AAAA,YAA3C,qBAA2C;;AAC/C,YAAI,OAAJ,gBAAyB;AACvBhtB,kBADuB;AAAA;AADsB;;AAK/C,YAAI,OAAJ,QAAiB;AACf,6BADe,WACf;AAN6C;;AAQ/CqxD,8CAAsC;AACpCQ,sBADoC,EACpCA,YADoC;AAEpCC,+BAFoC,EAEpCA;AAFoC,SAAtCT;AAIAA,2BAZ+C,mBAY/CA;AAhBJrkC,kBA9GC,QA8GDA;AAoBA,aAlIC,UAkID;AAjPe;;;sCAwPC;AAChB,qCAA+B;AAC7B,YAAI4jC,yBAAJ,WAAwC;AACtCA,mDAAyCA,YADH,YACtCA;AAEA,cAAMvxD,IAAIuxD,gCAH4B,UAG5BA,CAAV;;AACA,cAAIvxD,KAAJ,GAAY;AACVuxD,8CADU,CACVA;AALoC;AADX;AADf;;AAYhB,UAAMD,kBAZU,QAYhB;;AACA,UAAIC,cAAc,uBAbF,eAaE,CAAlB;;AACA,UAAI,CAAJ,aAAkB;AAChBA,sBAAcr3D,cADE,IACFA,CAAdq3D;;AACA,gDAFgB,WAEhB;AAhBc;;AAkBhB,UAlBgB,UAkBhB;;AAEA,UAAI,CAACA,YAAL,sBAAuC;AACrCmB,qBAAax4D,cADwB,IACxBA,CAAbw4D;AACAA,yCAFqC,mBAErCA;AACAnB,2CAHqC,oCAGrCA;AACAA,kCAJqC,EAIrCA;AACAA,qCALqC,UAKrCA;AACAA,mCAA2B;AACzBK,mBADyB;AAEzBC,qBAFyB;AAGzBC,qBAHyB;AAAA,SAA3BP;;AAMA,YAAI,KAAJ,QAAiB;AACf,2BADe,cACf;AAbmC;;AAerC,+BAAuB;AACrBQ,qBAAW,KADU;AAErBlB,kBAFqB;AAAA,SAAvB;AAnCc;;AAwChB,aAAOU,iCAxCS,OAwChB;AAhSe;;;wCA0ST;AAAA,sFAHRoB,EAGQ;AAAA,wCAFNC,mBAEM;AAAA,UAFNA,mBAEM,sCAHU,KAGV;AAAA,wCADNC,uBACM;AAAA,UADNA,uBACM,sCAHU,KAGV;;AACN,UAAMC,0BADA,GACN;AAEA,aAAO,gEAEL;AACEf,mBAAW,KADb;AAEEa,6BAAqBA,wBAFvB;AAGEG,0BAAkBF,4BAHpB;AAAA,OAFK,EAOL;AACEhrB,uBADF;AAEEviB,YAFF,gBAEEA,WAFF,EAEoB;AAChB,iBAAO0tC,kBADS,MAChB;AAHJ;AAAA,OAPK,CAAP;AA7Se;;;qCAkUW;AAAA,UAAbv9D,MAAa,uEAA5Bw9D,EAA4B;AAC1B,UAAMC,iBAAiB,uBADG,MACH,CAAvB;AAEA,aAAO,YAAY,2BAA2B;AAC5C,wBAAgB;AACdlpB,6BAAmB,iBAA2B;AAAA;;AAAA,gBAAjB,KAAiB,SAAjB,KAAiB;AAAA,gBAA3B,IAA2B,SAA3B,IAA2B;;AAC5C,sBAAU;AACRvyC,sBADQ,WACRA;AADQ;AADkC;;AAK5CyC,0BAAc84D,YAAd94D,QAAkCmC,MALU,MAK5CnC;;AACA84D,uGAA0B32D,MANkB,KAM5C22D;;AACAG,gBAP4C;AAA9CnpB,aADc,MACdA;AAF0C;;AAa5C,YAAMA,SAASkpB,eAb6B,SAa7BA,EAAf;AACA,YAAMF,cAAc;AAClBI,iBADkB;AAElBC,kBAAQn5D,cAFU,IAEVA;AAFU,SAApB;AAIAi5D,YAlB4C;AAHpB,OAGnB,CAAP;AArUe;;;+BA+VN;AACT,uBADS,IACT;AACA,gCAA0B,KAA1B,cAFS,IAET;AAEA,UAAMG,SAJG,EAIT;;AAJS,kDAK2B,KAApC,aALS;AAAA;;AAAA;AAKT,+DAAwD;AAAA;AAAA,cAA7C,MAA6C;AAAA,cAAxD,WAAwD;;AACtD,kCAAwB;AACtB/B,uBADsB,EACtBA,WADsB;AAEtBv6D,oBAAQ,UAFc,qBAEd,CAFc;AAGtBqf,mBAHsB;AAAA,WAAxB;;AAMA,cAAIw6C,WAAJ,UAAyB;AAAA;AAP6B;;AAAA,sDAWrBU,YAAjC,WAXsD;AAAA;;AAAA;AAWtD,mEAA0D;AAAA,kBAA1D,kBAA0D;AACxD+B,0BAAYtB,mBAD4C,SACxDsB;AACAtB,iCAFwD,MAExDA;AAboD;AAAA;AAAA;AAAA;AAAA;AAAA;AAL/C;AAAA;AAAA;AAAA;AAAA;AAAA;;AAqBT,gBArBS,KAqBT;AACA,gCAtBS,IAsBT;AACA,4BAvBS,KAuBT;AACA,aAAOrkC,YAxBE,MAwBFA,CAAP;AAvXe;;;8BAiYW;AAAA,UAApB4lC,UAAoB,uEAA5BC,KAA4B;AAC1B,4BAD0B,IAC1B;AACA,aAAO,iBAFmB,UAEnB,CAAP;AAnYe;;;kCA0Ye;AAAA,UAApBD,UAAoB,uEAAhCE,KAAgC;;AAC9B,UAAI,CAAC,KAAL,gBAA0B;AACxB,eADwB,KACxB;AAF4B;;AAAA,kDAIc,mBAA5C,MAA4C,EAJd;AAAA;;AAAA;AAI9B,+DAAyE;AAAA;AAAA,cAA9D,WAA8D,gBAA9D,WAA8D;AAAA,cAAzE,YAAyE,gBAAzE,YAAyE;;AACvE,cAAIC,4BAA4B,CAACrB,aAAjC,WAAyD;AACvD,mBADuD,KACvD;AAFqE;AAJ3C;AAAA;AAAA;AAAA;AAAA;AAAA;;AAU9B,yBAV8B,KAU9B;;AACA,gBAX8B,KAW9B;AACA,gCAZ8B,IAY9B;;AACA,UAAIkB,cAAc,KAAlB,QAA+B;AAC7B,sBAAc,IADe,wBACf,EAAd;AAd4B;;AAgB9B,4BAhB8B,KAgB9B;AACA,aAjB8B,IAiB9B;AA3Ze;;;qCAiajBI,Y,EAAAA,M,EAAuC;AACrC,UAAMpC,cAAc,uBADiB,MACjB,CAApB;;AACA,UAAI,CAAJ,aAAkB;AAAA;AAFmB;;AAKrC,UAAI,KAAJ,QAAiB;AACf,4BADe,cACf;AANmC;;AAUrC,UAAIA,YAAJ,wBAAwC;AACtCA,mDADsC,YACtCA;AAXmC;AAjatB;;;qCAmbjBqC,iB,EAAAA,W,EAAiD;AAE/C,WAAK,IAAI5zD,IAAJ,GAAWkV,KAAK2+C,kBAArB,QAA+C7zD,IAA/C,IAAuDA,CAAvD,IAA4D;AAC1DuxD,8CAAsCsC,0BADoB,CACpBA,CAAtCtC;AACAA,gDAAwCsC,4BAFkB,CAElBA,CAAxCtC;AAJ6C;;AAM/CA,2CAAqCsC,kBANU,SAM/CtC;;AAGA,WAAK,IAAIvxD,MAAT,GAAgBA,MAAIuxD,wBAApB,QAAoDvxD,GAApD,IAAyD;AACvDuxD,qCADuD,mBACvDA;AAV6C;;AAa/C,UAAIsC,kBAAJ,WAAiC;AAC/B,aAD+B,WAC/B;AAd6C;AAnbhC;;;sCAwcjBC,I,EAAwB;AAAA;;AACtBn8D,wBACE+e,KADF/e,QADsB,6DACtBA;;AAKA,UAAMu7D,iBAAiB,iEAND,IAMC,CAAvB;;AAIA,UAAMlpB,SAASkpB,eAVO,SAUPA,EAAf;;AAEA,UAAM3B,cAAc,uBAAuB76C,KAZrB,MAYF,CAApB;;AACA66C,iCAbsB,MAatBA;;AAEA,UAAM4B,OAAO,SAAPA,IAAO,GAAM;AACjBnpB,2BACE,kBAAqB;AAAA,cAApB,KAAoB,UAApB,KAAoB;AAAA,cAArB,IAAqB,UAArB,IAAqB;;AACnB,oBAAU;AACRunB,uCADQ,IACRA;AADQ;AADS;;AAKnB,cAAI,kBAAJ,WAA+B;AAAA;AALZ;;AAQnB,yCARmB,WAQnB;;AACA4B,cATmB;AADvBnpB,WAYEhzC,kBAAU;AACRu6D,qCADQ,IACRA;;AAEA,cAAI,kBAAJ,WAA+B;AAAA;AAHvB;;AAMR,cAAIA,YAAJ,cAA8B;AAE5BA,iDAF4B,IAE5BA;;AAEA,iBAAK,IAAIvxD,IAAT,GAAgBA,IAAIuxD,wBAApB,QAAoDvxD,CAApD,IAAyD;AACvDuxD,yCADuD,mBACvDA;AAL0B;;AAO5B,mBAP4B,WAO5B;AAbM;;AAgBR,cAAIA,YAAJ,wBAAwC;AACtCA,sDADsC,MACtCA;AADF,iBAEO,IAAIA,YAAJ,sBAAsC;AAC3CA,oDAD2C,MAC3CA;AADK,iBAEA;AACL,kBADK,MACL;AArBM;AAbK,SACjBvnB;AAhBoB,OAetB;;AAuCAmpB,UAtDsB;AAxcP;;;+CAogB0C;AAAA;;AAAA,UAAxC,WAAwC,UAAxC,WAAwC;AAAA,UAAxC,MAAwC,UAAxC,MAAwC;AAAA,gCAAjB98C,KAAiB;AAAA,UAAjBA,KAAiB,6BAA3D09C,KAA2D;AACzDp8D,wBACEX,2BACG,gCAA8BA,WAFnCW,MADyD,8DACzDA;;AAMA,UAAI,CAAC45D,YAAL,cAA+B;AAAA;AAP0B;;AAUzD,UAAI,CAAJ,OAAY;AAGV,YAAIA,mCAAJ,GAA0C;AAAA;AAHhC;;AASV,YAAIv6D,kBAAJ,4CAAmD;AACjDu6D,kDAAwC,WAAW,YAAM;AACvD,sCAAwB;AAAEA,yBAAF,EAAEA,WAAF;AAAev6D,oBAAf,EAAeA,MAAf;AAAuBqf,qBAAvB;AAAA,aAAxB;;AACAk7C,oDAFuD,IAEvDA;AAFsC,aADS,2BACT,CAAxCA;AADiD;AATzC;AAV6C;;AA2BzDA,sCACE,yBAAmBv6D,UAAUA,OA5B0B,OA4BvD,CADFu6D;AAGAA,iCA9ByD,IA8BzDA;;AAEA,UAAI,gBAAJ,WAA+B;AAAA;AAhC0B;;AAAA,kDAqClB,KAAvC,aArCyD;AAAA;;AAAA;AAqCzD,+DAA2D;AAAA;AAAA,cAAhD,MAAgD;AAAA,cAA3D,cAA2D;;AACzD,cAAIyC,mBAAJ,aAAoC;AAClC,yCADkC,MAClC;;AADkC;AADqB;AArCF;AAAA;AAAA;AAAA;AAAA;AAAA;;AA4CzD,WA5CyD,OA4CzD;AAhjBe;;;wBAoBA;AACf,aAAO,kBADQ,CACf;AArBe;;;wBA2BJ;AACX,aAAO,eADI,MACX;AA5Be;;;wBAmCP;AACR,aAAO,eADC,GACR;AApCe;;;wBA0CF;AACb,aAAO,eADM,QACb;AA3Ce;;;wBAkDN;AACT,aAAO,eADE,IACT;AAnDe;;;wBAsjBL;AACV,aAAO,KADG,MACV;AAvjBe;;;;;;;;IA2jBnB,Y;AACEj+D,0BAA0B;AAAA,QAAdo/B,KAAc,uEAA1Bp/B,IAA0B;;AAAA;;AACxB,sBADwB,EACxB;AACA,kBAFwB,KAExB;AACA,qBAAiB43B,gBAHO,SAGPA,CAAjB;AAJe;;;;gCAOjB+H,G,EAAAA,S,EAA4B;AAAA;;AAC1B,iCAA2B;AAGzB,YAAI,+BAA6Br5B,UAAjC,MAAiD;AAC/C,iBAD+C,KAC/C;AAJuB;;AAMzB,YAAI43D,WAAJ,KAAIA,CAAJ,EAAuB;AAErB,iBAAOA,WAFc,KAEdA,CAAP;AARuB;;AAUzB,oBAVyB,MAUzB;;AACA,YAAK,UAAS53D,MAAV,MAAC,KAA0BqxD,yBAA/B,MAA+BA,CAA/B,EAAsD;AAEpD,cAAMwG,eAAeC,aAAaA,mBAFkB,MAElBA,CAAlC;;AACA,4BAAkB;AAChB71D,qBAAS,IAAIjC,MAAJ,oBAEPA,MAFO,YAGPA,MAJc,UACP,CAATiC;AADF,iBAMO;AACLA,qBAAS,IAAIjC,MAAJ,YADJ,KACI,CAATiC;AAVkD;;AAYpD21D,4BAZoD,MAYpDA;AACA,iBAboD,MAapD;AAxBuB;;AA0BzB31D,iBAASqY,4BA1BgB,EA0BzBrY;AACA21D,0BA3ByB,MA2BzBA;;AAGA,6BAAuB;AACrB,cAAI/H,IAAJ;AAAA,cACEx5C,IAFmB,KACrB;;AAEA,iBAAO,EAAE,OAAOxY,mCAAhB,CAAgBA,CAAT,CAAP,EAAwD;AACtDwY,gBAAIxY,sBADkD,CAClDA,CAAJwY;AAJmB;;AAMrB,cAAI,OAAOw5C,KAAP,UAAJ,aAAuC;AAAA;AANlB;;AASrB,cAAI,OAAOA,KAAP,UAAJ,YAAsC;AACpC,gBAAI7vD,wBAAwBA,qBAA5B,CAA4BA,CAA5B,EAAqD;AACnD,oBAAM,6DACwCA,MAFK,CAELA,CADxC,EAAN;AAFkC;;AAAA;AATjB;;AAiBrBiC,sBAAY81D,WAAWlI,KAjBF,KAiBTkI,CAAZ91D;AA/CuB;;AAiDzB,eAjDyB,MAiDzB;AAlDwB;;AAqD1B,UAAI,CAAC,KAAL,QAAkB;AAChB,gCAAwBk3B,oBAAY;AAClCA,gCAAoB;AAAE5jB,kBADY;AACd,WAApB4jB;AAFc,SAChB;;AADgB;AArDQ;;AA4D1B,UAAMy+B,SAAS,IA5DW,OA4DX,EAAf;AACA,UAAM1yC,IAAI;AAAE3P,cAAMwiD,WA7DQ,GA6DRA;AAAR,OAAV;;AACA,0BAAoB,YAAM;AACxB,kCAAwB5+B,oBAAY;AAClCA,gCADkC,CAClCA;AAFsB,SACxB;AA/DwB,OA8D1B;AArEe;;;qCA4EjBS,I,EAAAA,Q,EAAiC;AAC/B,2BAD+B,QAC/B;AA7Ee;;;wCAgFjBohB,I,EAAAA,Q,EAAoC;AAClC,UAAMr3C,IAAI,wBADwB,QACxB,CAAV;;AACA,gCAFkC,CAElC;AAlFe;;;gCAqFL;AACV,+BADU,CACV;AAtFe;;;;;;;;AAmGnB,IAAMmuD,YAAa,4BAA4B;AAC7C,MAAMkG,iBAAiB,IADsB,OACtB,EAAvB;AACA,MAAIC,mBAFyC,KAE7C;AACA,MAH6C,iBAG7C;AACA,MAAIC,mBAJyC,CAI7C;AACA,MAL6C,oBAK7C;;AAIE,MAAIx9C,qBAAY,mBAAhB,YAA+D;AAE7Du9C,uBAF6D,IAE7DA;AAKEE,wBAP2D,iBAO3DA;AAPJ,SASO,IAAI,oFAAgC,mBAApC,UAAiE;AACtE,QAAMC,gBACJt9D,0BAA0BA,uBAF0C,GACtE;;AAEA,uBAAmB;AACjBq9D,0BAAoBC,mDADH,aACGA,CAApBD;AAJoE;AAlB7B;;AA8B7C,2BAAwB;AACtB,QAAItG,oCAAJ,WAAmC;AACjC,aAAOA,oCAD0B,SACjC;AAFoB;;AAItB,QAAI,6BAAJ,aAA8C;AAC5C,UAAI,CAAJ,mBAAe;AACbwG,uCADa,+CACbA;AAF0C;;AAI5C,aAJ4C,iBAI5C;AARoB;;AAUtB,UAAM,UAVgB,+CAUhB,CAAN;AAxC2C;;AA2C7C,+CAA6C;AAC3C,QAD2C,wBAC3C;;AACA,QAAI;AACFC,iCACEn+D,0BAA0BA,uBAF1B,oBACFm+D;AADF,MAGE,WAAW,CAL8B;;AAQ3C,WAAOA,4BARoC,IAQ3C;AAnD2C;;AAuD7C,mCAAiC;AAC/B,8BAA0B;AACxB,aAAOC,qBADiB,OACxB;AAF6B;;AAI/BA,2BAJ+B,oCAI/BA;;AAEA,QAAMC;AAAAA,gFAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AACPF,wCADO,GACoBG,iCADF,EAAlB;;AAAA,qBAGb,wBAHa;AAAA;AAAA;AAAA;;AAAA,iDAGiB,wBAHjB;;AAAA;AAAA,sBAiBX,qBAGA,mBAJF,UAhBa;AAAA;AAAA;AAAA;;AAmCLjH,sBAnCK,GAmCIkH,gBAAgBC,aAd/B,EAceD,CAnCJ;AAAA,iDAoCJlH,OAfP,oBArBW;;AAAA;AAAA;AAAA,uBAsCPoH,+BAAWD,aAtCc,EAsCzBC,CAtCO;;AAAA;AAAA,iDAuCNz+C,mBAvCwB,oBAAlB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAATq+C;;AAAAA;AAAAA;AAAAA;AAAAA,OAAN;;AAyCAA,kBAAcD,qBAAdC,SAA4CD,qBA/Cb,MA+C/BC;AAEA,WAAOD,qBAjDwB,OAiD/B;AAxG2C;;AA2G7C,iCAA+B;AAI7B,QAAM9gC,UAAU,0BAJa,KAI7B;AACA,WAAO9e,oBAAoB,SAAS,CALP,OAKO,CAAT,CAApBA,CAAP;AAhH2C;;AAAA,MA0H7C,SA1H6C;AA8H3Cjf,yBAIQ;AAAA,uFAJRA,EAIQ;AAAA,+BAHNqE,IAGM;AAAA,UAHNA,IAGM,4BAJI,IAIJ;AAAA,+BAFNi7B,IAEM;AAAA,UAFNA,IAEM,4BAJI,IAIJ;AAAA,oCADN7kB,SACM;AAAA,UADNA,SACM,iCAJI,8BAIJ;;AAAA;;AACN,UAAI6kB,QAAQg/B,mBAAZ,IAAYA,CAAZ,EAAsC;AACpC,cAAM,UAD8B,6CAC9B,CAAN;AAFI;;AAKN,kBALM,IAKN;AACA,uBANM,KAMN;AACA,kCAPM,IAON;AACA,uBARM,SAQN;AAEA,8BAVM,oCAUN;AACA,mBAXM,IAWN;AACA,wBAZM,IAYN;AACA,6BAbM,IAaN;;AAEA,gBAAU;AACRA,iCADQ,IACRA;;AACA,iCAFQ,IAER;;AAFQ;AAfJ;;AAoBN,WApBM,WAoBN;AA5BY;;AA1H6B;AAAA;AAAA,0CAqK3Ca,IArK2C,EAqKjB;AACxB,qBADwB,IACxB;AACA,+BAAuB,sDAFC,IAED,CAAvB;;AACA,yCAAiC,YAAY,CAHrB,CAGxB;;AAIA,8BAPwB,OAOxB;AAlDY;AA1H6B;AAAA;AAAA,oCA+K7B;AAAA;;AAMZ,YACE,iCACA,CADA,oBAEA,CAACJ,iCAHH,IAIE;AACA,cAAIK,YAAYH,aADhB,EACA;;AAEA,cAAI;AAGF,gBAGE,CAACI,wBAAa5+C,gBAAb4+C,MAHH,SAGGA,CAHH,EAIE;AACAD,0BAAYE,iBACV,mBAAmB7+C,OAAnB,UAFF,IACY6+C,CAAZF;AARA;;AAeF,gBAAMtH,SAAS,WAfb,SAea,CAAf;AACA,gBAAMmB,iBAAiB,sDAhBrB,MAgBqB,CAAvB;;AACA,gBAAMsG,iBAAiB,SAAjBA,cAAiB,GAAM;AAC3BzH,kDAD2B,aAC3BA;AACAmB,6BAF2B,OAE3BA;AACAnB,qBAH2B,SAG3BA;;AACA,kBAAI,OAAJ,WAAoB;AAClB,+CAA6B,UADX,sBACW,CAA7B;AADF,qBAEO;AAGL,uBAHK,gBAGL;AATyB;AAjB3B,aAiBF;;AAaA,gBAAM0H,gBAAgB,SAAhBA,aAAgB,GAAM;AAC1B,kBAAI,CAAC,OAAL,YAAsB;AAGpBD,8BAHoB;AADI;AA9B1B,aA8BF;;AAOAzH,6CArCE,aAqCFA;AAEAmB,sCAA0Bp9C,gBAAQ;AAChCi8C,kDADgC,aAChCA;;AACA,kBAAI,OAAJ,WAAoB;AAClByH,8BADkB;AAAA;AAFY;;AAMhC,wBAAU;AAER,yCAFQ,cAER;AACA,+BAHQ,MAGR;AACA,oCAJQ,MAIR;;AACA,oBAAI,CAAC1jD,KAAL,kBAA4B;AAC1B,gDAD0B,KAC1B;AANM;;AAQR,wCARQ,OAQR;;AAEAo9C,iDAAiC;AAC/Bx+C,6BAAW,OAXL;AAUyB,iBAAjCw+C;AAVF,qBAaO;AACL,uBADK,gBACL;;AACAA,+BAFK,OAELA;AACAnB,uBAHK,SAGLA;AAtB8B;AAvChC,aAuCFmB;AA0BAA,uCAA2Bp9C,gBAAQ;AACjCi8C,kDADiC,aACjCA;;AACA,kBAAI,OAAJ,WAAoB;AAClByH,8BADkB;AAAA;AAFa;;AAMjC,kBAAI;AACFE,wBADE;AAAJ,gBAEE,UAAU;AAEV,uBAFU,gBAEV;AAV+B;AAjEjC,aAiEFxG;;AAcA,gBAAMwG,WAAW,SAAXA,QAAW,GAAM;AACrB,kBAAMC,UAAU,eAAe,CAC7B,oCAFmB,CACU,CAAf,CAAhB;;AAKA,kBAAI;AACFzG,qDAAqC,CAACyG,QADpC,MACmC,CAArCzG;AADF,gBAEE,WAAW;AACX30D,gCADW,mCACXA;AACAo7D,6BAFW,CAEXA;AACAzG,4CAHW,OAGXA;AAXmB;AA/ErB,aA+EF;;AAmBAwG,oBAlGE;AAAA;AAAJ,YAoGE,UAAU;AACVl2D,4BADU,+BACVA;AAxGF;AAVU;;AAuHZ,aAvHY,gBAuHZ;AA5KY;AA1H6B;AAAA;AAAA,yCAySxB;AAAA;;AACjB,YAAI,CAAJ,kBAAuB;AACrBjF,0BADqB,yBACrBA;AACAi6D,6BAFqB,IAErBA;AAHe;;AAMjBoB,qCACQC,gCAAwB;AAC5B,cAAI,QAAJ,WAAoB;AAClB,4CAA6B,UADX,sBACW,CAA7B;;AADkB;AADQ;;AAK5B,cAAMtgC,OAAO,IALe,YAKf,EAAb;AACA,0BAN4B,IAM5B;AAGA,cAAMhY,KAAK,SAASk3C,gBATQ,EAS5B;AAIA,cAAMqB,gBAAgB,oCAAmBv4C,KAAnB,eAbM,IAaN,CAAtB;AACAs4C,oDAd4B,IAc5BA;AAEA,cAAM3G,iBAAiB,wCAAuB3xC,KAAvB,WAhBK,IAgBL,CAAvB;AACA,oCAjB4B,cAiB5B;;AACA,mCAlB4B,OAkB5B;;AAEA2xC,2CAAiC;AAC/Bx+C,uBAAW,QArBe;AAoBK,WAAjCw+C;AArBJ0G,oBAyBS1+D,kBAAU;AACf,0CACE,qDAA6CA,OAFhC,OAEb,SADF;AAhCa,SAMjB0+D;AArLY;AA1H6B;AAAA;AAAA,gCAkVjC;AACR,yBADQ,IACR;;AACA,YAAI,KAAJ,YAAqB;AAEnB,0BAFmB,SAEnB;;AACA,4BAHmB,IAGnB;AALM;;AAORrB,iCAAsB,KAPd,KAORA;AACA,qBARQ,IAQR;;AACA,YAAI,KAAJ,iBAA0B;AACxB,+BADwB,OACxB;;AACA,iCAFwB,IAExB;AAXM;AAxNI;AA1H6B;AAAA;AAAA,0BAyJ7B;AACZ,eAAO,sBADK,OACZ;AAhCY;AA1H6B;AAAA;AAAA,0BA6JhC;AACT,eAAO,KADE,KACT;AApCY;AA1H6B;AAAA;AAAA,0BAiKtB;AACnB,eAAO,KADY,eACnB;AAxCY;AA1H6B;AAAA;AAAA,+BAqW3C,MArW2C,EAqWnB;AACtB,YAAI,WAAW,CAAC5+D,OAAhB,MAA6B;AAC3B,gBAAM,UADqB,gDACrB,CAAN;AAFoB;;AAItB,YAAI4+D,mBAAmB5+D,OAAvB,IAAI4+D,CAAJ,EAAqC;AACnC,iBAAOA,mBAAmB5+D,OADS,IAC5B4+D,CAAP;AALoB;;AAOtB,eAAO,cAPe,MAOf,CAAP;AAlPY;AA1H6B;AAAA;AAAA,qCA+WrB;AACpB,eAAOW,aADa,EACpB;AAtPY;AA1H6B;;AAAA;AAAA;;AAmX7C,SAnX6C,SAmX7C;AAj/DF,CA8nDmB,EAAnB;;;;IA0XA,e;AACEj/D,+EAAgE;AAAA;;AAC9D,0BAD8D,cAC9D;AACA,uBAF8D,WAE9D;AACA,sBAAkB,IAH4C,UAG5C,EAAlB;AACA,sBAAkB,4BAAe;AAC/Bq4D,aAAOyH,YADwB;AAE/BC,4BAAsB,gCAFS,IAET,CAFS;AAG/Bv/D,qBAAed,OAHgB;AAAA,KAAf,CAAlB;AAKA,mBAT8D,MAS9D;AACA,6BAAyB,IAAIA,OAAJ,kBAA6B;AACpDkB,eAASlB,OAD2C;AAEpDmB,oBAAcnB,OAFsC;AAAA,KAA7B,CAAzB;AAKA,qBAf8D,KAe9D;AACA,6BAhB8D,IAgB9D;AACA,+BAjB8D,IAiB9D;AAEA,0BAnB8D,aAmB9D;AACA,uBApB8D,IAoB9D;AACA,yBArB8D,IAqB9D;AAEA,qBAvB8D,EAuB9D;AACA,wBAxB8D,EAwB9D;AACA,kCAzB8D,oCAyB9D;AAEA,SA3B8D,mBA2B9D;AA5BkB;;;;8BA+BV;AAAA;;AACR,UAAI,KAAJ,mBAA4B;AAC1B,eAAO,uBADmB,OAC1B;AAFM;;AAKR,uBALQ,IAKR;AACA,+BANQ,oCAMR;;AAEA,UAAI,KAAJ,qBAA8B;AAC5B,wCACE,UAF0B,iDAE1B,CADF;AATM;;AAcR,UAAM69D,SAdE,EAcR;AAGA,6BAAuB,gBAAgB;AACrC,kBAAU;AACRA,sBAAYyC,KADJ,QACIA,EAAZzC;AAFmC;AAjB/B,OAiBR;AAKA,8BAtBQ,CAsBR;AACA,iCAvBQ,CAuBR;AAEA,UAAM0C,aAAa,iDAzBX,IAyBW,CAAnB;AACA1C,kBA1BQ,UA0BRA;AACA3lC,+BAAyB,YAAM;AAC7B,2BAD6B,KAC7B;;AACA,YAAI,QAAJ,gBAAyB;AACvB,mDACE,yBAFqB,wBAErB,CADF;AAH2B;;AAQ7B,YAAI,QAAJ,gBAAyB;AACvB,iCADuB,OACvB;;AACA,mCAFuB,IAEvB;AAV2B;;AAY7B,kCAZ6B,OAY7B;AAZFA,SAaG,uBAxCK,MA2BRA;AAcA,aAAO,uBAzCC,OAyCR;AAxEkB;;;0CA2EE;AAAA;;AAAA,UACd,cADc,QACd,cADc;AAAA,UACd,WADc,QACd,WADc;AAGpBqhC,qCAA+B,sBAAgB;AAC7Cr3D,0BACE,QADFA,gBAD6C,iDAC7CA;AAIA,8BAAmB,uBAL0B,aAK1B,EAAnB;;AACA,yCAA8Bs+D,eAAO;AACnC,kCAAqB;AACnBC,oBAAQD,IADW;AAEnBE,mBAAOF,IAFY;AAAA,WAArB;AAP2C,SAM7C;;AAMAG,sBAAc,YAAM;AAClB,0CAEQ,kBAA2B;AAAA,gBAAjB,KAAiB,UAAjB,KAAiB;AAAA,gBAA3B,IAA2B,UAA3B,IAA2B;;AAC/B,sBAAU;AACRA,mBADQ,KACRA;AADQ;AADqB;;AAK/Bz+D,8BACE+1D,yBADF/1D,KACE+1D,CADF/1D,EAL+B,sCAK/BA;AAMAy+D,yBAAa,eAAbA,KAAa,CAAbA,KAAuC,CAXR,KAWQ,CAAvCA;AAbJ,sBAeSp/D,kBAAU;AACfo/D,uBADe,MACfA;AAjBc,WAClB;AAb2C,SAY7CA;;AAqBAA,wBAAgBp/D,kBAAU;AACxB,qCADwB,MACxB;;AAEAo/D,8BAAiBC,uBAAe;AAC9B,gBAAI,QAAJ,WAAoB;AAAA;AADU;;AAI9B,kBAJ8B,WAI9B;AAPsB,WAGxBD;AApC2C,SAiC7CA;AApCkB,OAGpBpH;AA6CAA,8CAAwCp9C,gBAAQ;AAC9C,YAAM0kD,oBADwC,oCAC9C;AACA,YAAMC,aAAa,QAF2B,WAE9C;AACAA,qCAA6B,YAAM;AAGjC,cAAI,CAACA,WAAD,wBAAoC,CAACA,WAAzC,kBAAsE;AACpE,gBAAI,yBAAsBV,YAA1B,YAAkD;AAChDA,qCAAuB,QADyB,aAChDA;AAFkE;;AAIpEU,oCAAwBN,eAAO;AAC7B,kBAAIJ,YAAJ,YAA4B;AAC1BA,uCAAuB;AACrBK,0BAAQD,IADa;AAErBE,yBAAOF,IAFc;AAAA,iBAAvBJ;AAF2B;AAJqC,aAIpEU;AAP+B;;AAiBjCD,oCAA0B;AACxBE,kCAAsBD,WADE;AAExBE,8BAAkBF,WAFM;AAGxBG,2BAAeH,WAHS;AAAA,WAA1BD;AAjBFC,WAsBGD,kBAzB2C,MAG9CC;AAwBA,eAAOD,kBA3BuC,OA2B9C;AA3EkB,OAgDpBtH;AA8BAA,0CAAoC,sBAAgB;AAClDr3D,0BACE,QADFA,gBADkD,sDAClDA;;AAIA,YAAMg/D,cAAc,sCAClB/kD,KADkB,OAElBA,KAPgD,GAK9B,CAApB;;AAeA,YAAI,CAAJ,aAAkB;AAChBwkD,eADgB,KAChBA;AADgB;AApBgC;;AAyBlDA,sBAAc,YAAM;AAClBO,kCAEQ,kBAA2B;AAAA,gBAAjB,KAAiB,UAAjB,KAAiB;AAAA,gBAA3B,IAA2B,UAA3B,IAA2B;;AAC/B,sBAAU;AACRP,mBADQ,KACRA;AADQ;AADqB;;AAK/Bz+D,8BACE+1D,yBADF/1D,KACE+1D,CADF/1D,EAL+B,2CAK/BA;AAIAy+D,yBAAa,eAAbA,KAAa,CAAbA,KAAuC,CATR,KASQ,CAAvCA;AAXJO,sBAaS3/D,kBAAU;AACfo/D,uBADe,MACfA;AAfc,WAClBO;AA1BgD,SAyBlDP;;AAmBAA,wBAAgBp/D,kBAAU;AACxB2/D,6BADwB,MACxBA;AAEAP,8BAAiBC,uBAAe;AAC9B,gBAAI,QAAJ,WAAoB;AAAA;AADU;;AAI9B,kBAJ8B,WAI9B;AAPsB,WAGxBD;AA/CgD,SA4ClDA;AA1HkB,OA8EpBpH;AAwDAA,kCAA4B,kBAAiB;AAAA,YAAjB,OAAiB,UAAjB,OAAiB;AAC3C,4BAAiB4H,QAD0B,QAC3C;;AACAf,wCAAgC,8BAFW,OAEX,CAAhCA;AAxIkB,OAsIpB7G;AAKAA,wCAAkC,cAAc;AAC9C,YAD8C,MAC9C;;AACA,gBAAQ6H,GAAR;AACE;AACE7/D,qBAAS,4BAAsB6/D,GAAtB,SAAkCA,GAD7C,IACW,CAAT7/D;AAFJ;;AAIE;AACEA,qBAAS,8BAAwB6/D,GADnC,OACW,CAAT7/D;AALJ;;AAOE;AACEA,qBAAS,8BAAwB6/D,GADnC,OACW,CAAT7/D;AARJ;;AAUE;AACEA,qBAAS,sCAAgC6/D,GAAhC,SAA4CA,GADvD,MACW,CAAT7/D;AAXJ;;AAaE;AACEA,qBAAS,gCAA0B6/D,GAA1B,SAAsCA,GADjD,OACW,CAAT7/D;AAdJ;AAAA;;AAiBA,YAAI,EAAE,kBAAN,KAAI,CAAJ,EAAgC;AAC9B,cAAM8/D,MADwB,wCAC9B;AAOEz8D,0BAR4B,GAQ5BA;AA3B0C;;AA8B9Cw7D,uCA9B8C,MA8B9CA;AAzKkB,OA2IpB7G;AAiCAA,2CAAqC+H,qBAAa;AAChD,sCADgD,oCAChD;;AAEA,YAAIlB,YAAJ,YAA4B;AAC1B,cAAMmB,iBAAiB16B,SAAjB06B,cAAiB16B,WAAY;AACjC,gDAAiC;AAC/BA,sBAF+B,EAE/BA;AAD+B,aAAjC;AAFwB,WAC1B;;AAKA,cAAI;AACFu5B,mDAAuCkB,UADrC,IACFlB;AADF,YAEE,WAAW;AACX,+CADW,EACX;AATwB;AAA5B,eAWO;AACL,6CACE,4BAAsBkB,UAAtB,SAAyCA,UAFtC,IAEH,CADF;AAf8C;;AAmBhD,eAAO,4BAnByC,OAmBhD;AA/LkB,OA4KpB/H;AAsBAA,sCAAgCp9C,gBAAQ;AAGtC,YAAIikD,YAAJ,YAA4B;AAC1BA,iCAAuB;AACrBK,oBAAQtkD,KADa;AAErBukD,mBAAOvkD,KAFc;AAAA,WAAvBikD;AAJoC;;AAStC,+CATsC,IAStC;AA3MkB,OAkMpB7G;AAYAA,2CAAqCp9C,gBAAQ;AAC3C,YAAI,QAAJ,WAAoB;AAAA;AADuB;;AAK3C,YAAMmkD,OAAO,kBAAenkD,KALe,SAK9B,CAAb;;AACAmkD,8BAAsBnkD,KAAtBmkD,cAAyCnkD,KANE,MAM3CmkD;AApNkB,OA8MpB/G;AASAA,qCAA+Bp9C,gBAAQ;AACrC,YAAI,QAAJ,WAAoB;AAAA;AADiB;;AAAA;AAAA,YAK/B,EAL+B;AAAA,YAK/B,IAL+B;AAAA,YAK/B,YAL+B;;AAMrC,YAAI,uBAAJ,EAAI,CAAJ,EAA6B;AAAA;AANQ;;AAUrC;AACE;AACE,gBAAMnc,SAAS,QADjB,OACE;;AAEA,gBAAI,WAAJ,cAA6B;AAC3B,kBAAMwhE,gBAAgBC,aADK,KAC3B;AACA78D,mEAF2B,aAE3BA;;AACA,6CAH2B,aAG3B;;AAH2B;AAH/B;;AAUE,gBAAI88D,eAVN,IAUE;;AACA,gBACE1hE,iBACAe,WADAf,iBAEAe,yBAHF,SAIE;AACA2gE,6BAAe;AACbC,4BADa,wBACbA,IADa,EACbA,GADa,EACW;AACtB5gE,2DADsB,GACtBA;AAFW;AAAA,eAAf2gE;AAhBJ;;AAsBE,gBAAM5nD,OAAO,8CAAiC;AAC5C8C,+BAAiB5c,OAD2B;AAE5C65D,+BAAiB75D,OAF2B;AAG5Cg6D,4BAAch6D,OAH8B;AAI5CqgE,oCAAsB,mCAJsB,OAItB,CAJsB;AAK5CqB,0BAL4C,EAK5CA;AAL4C,aAAjC,CAAb;;AAQA,mDAESngE,kBAAU;AACf,qBAAOg4D,+CAA+C;AAAE3xC,kBADzC,EACyCA;AAAF,eAA/C2xC,CAAP;AAHJ,0BAKW,YAAM;AACb,kBAAI,CAACv5D,OAAD,uBAA+B8Z,KAAnC,MAA8C;AAM5CA,4BAN4C,IAM5CA;AAPW;;AASb,6CATa,IASb;AA5CN,aA8BE;;AA/BJ;;AAgDE,eAhDF,UAgDE;AACA;AACE,2CADF,YACE;;AAlDJ;;AAoDE;AACE,kBAAM,mDArDV,IAqDU,EAAN;AArDJ;AAjOkB,OAuNpBy/C;AAmEAA,+BAAyBp9C,gBAAQ;AAC/B,YAAI,QAAJ,WAAoB;AAElB,iBAFkB,SAElB;AAH6B;;AAAA;AAAA,YAMzB,EANyB;AAAA,YAMzB,SANyB;AAAA,YAMzB,IANyB;AAAA,YAMzB,SANyB;;AAO/B,YAAMylD,YAAY,kBAPa,SAOb,CAAlB;;AACA,YAAIA,mBAAJ,EAAIA,CAAJ,EAA4B;AAC1B,iBAD0B,SAC1B;AAT6B;;AAY/B;AACE;AACEA,uCADF,SACEA;AAGA,gBAAMC,0BAJR,OAIE;;AACA,gBACEC,aACA,UADAA,aAEAA,wBAHF,yBAIE;AACAF,6CADA,IACAA;AAVJ;;AADF;;AAcE;AACE,kBAAM,4CAfV,IAeU,EAAN;AAfJ;;AAiBA,eA7B+B,SA6B/B;AAvTkB,OA0RpBrI;AAgCAA,uCAAiCp9C,gBAAQ;AACvC,YAAI,QAAJ,WAAoB;AAAA;AADmB;;AAKvC,YAAIikD,YAAJ,YAA4B;AAC1BA,iCAAuB;AACrBK,oBAAQtkD,KADa;AAErBukD,mBAAOvkD,KAFc;AAAA,WAAvBikD;AANqC;AA1TrB,OA0TpB7G;AAaAA,8CAEE,gCAzUkB,IAyUlB,CAFFA;AAKAA,4CAAsC,sBAAgB;AACpD,YAAI,QAAJ,WAAoB;AAClBoH,qBAAW,UADO,sBACP,CAAXA;AADkB;AADgC;;AAKpD,YAAIoB,UALgD,KAKpD;;AAEApB,sBAAc,YAAM;AAClB,uBAAa;AACXA,iBADW,KACXA;AADW;AADK;;AAKlBoB,oBALkB,IAKlBA;;AAEA,qDACQ,uBAAuB;AAC3BpB,yCAA6B,CAACqB,qBADH,MACE,CAA7BrB;AAFJ,sBAIS,kBAAkB;AACvBA,uBADuB,MACvBA;AAZc,WAOlB;AAdkD,SAOpDA;AAnVkB,OA4UpBpH;AAvZkB;;;kDAgbiB;AAAA,UAArC0I,SAAqC,UAArCA,SAAqC;;AACnC,UAAI,KAAJ,WAAoB;AAAA;AADe;;AAInC,UAAI,iBAAJ,sBAA2C;AACzC,8CADyC,SACzC;AALiC;AAhbjB;;;8BAybV;AACR,aAAO,+CADC,IACD,CAAP;AA1bkB;;;4BA6bpBpH,U,EAAoB;AAAA;;AAClB,UACE,CAAC7/C,iBAAD,UAACA,CAAD,IACAknD,cADA,KAEAA,aAAa,KAHf,WAIE;AACA,eAAOhqC,eAAe,UADtB,sBACsB,CAAfA,CAAP;AANgB;;AASlB,UAAMokC,YAAY4F,aATA,CASlB;;AACA,UAAI5F,aAAa,KAAjB,cAAoC;AAClC,eAAO,kBAD2B,SAC3B,CAAP;AAXgB;;AAalB,UAAM9/B,UAAU,+CACc;AAC1B8/B,iBAFY,EAEZA;AAD0B,OADd,OAIR6F,oBAAY;AAChB,YAAI,QAAJ,WAAoB;AAClB,gBAAM,UADY,qBACZ,CAAN;AAFc;;AAIhB,YAAM7B,OAAO,+CAIX,gBAJW,eAKX,gBATc,MAIH,CAAb;AAOA,uCAXgB,IAWhB;AACA,eAZgB,IAYhB;AA7Bc,OAaF,CAAhB;AAkBA,qCA/BkB,OA+BlB;AACA,aAhCkB,OAgClB;AA7dkB;;;iCAgepBxF,G,EAAkB;AAChB,aAAO,oDAC4B;AAC/BsH,WAFG,EAEHA;AAD+B,OAD5B,WAIE,kBAAkB;AACvB,eAAOlqC,eAAe,UADC,MACD,CAAfA,CAAP;AANY,OACT,CAAP;AAjekB;;;mCA0epBijC,S,EAAAA,M,EAAkC;AAChC,aAAO,sDAAsD;AAC3DmB,iBAD2D,EAC3DA,SAD2D;AAE3DlB,cAF2D,EAE3DA;AAF2D,OAAtD,CAAP;AA3ekB;;;iCAifpBJ,iB,EAAgC;AAC9B,aAAO,oDAC4B;AAC/BqH,kBAAU,KADqB;AAE/B3G,2BACGA,qBAAqBA,kBAAtB,MAAsBA,EAArBA,IAH4B;AAI/B4G,kBAAU,mBAAmB,iBAAnB,WAJqB;AAAA,OAD5B,aAOI,YAAM;AACb,+BAAuB;AACrB5G,4BADqB,aACrBA;AAFW;AARa,OACvB,CAAP;AAlfkB;;;sCAggBF;AAChB,aAAO,uDADS,IACT,CAAP;AAjgBkB;;;mCAogBpBX,E,EAAmB;AACjB,UAAI,cAAJ,UAA4B;AAC1B,eAAO7iC,eAAe,UADI,8BACJ,CAAfA,CAAP;AAFe;;AAIjB,aAAO,sDAAsD;AAC3DtQ,UALe,EAKfA;AAD2D,OAAtD,CAAP;AAxgBkB;;;oCA6gBJ;AACd,aAAO,qDADO,IACP,CAAP;AA9gBkB;;;oCAihBJ;AACd,aAAO,qDADO,IACP,CAAP;AAlhBkB;;;kCAqhBN;AACZ,aAAO,mDADK,IACL,CAAP;AAthBkB;;;2CAyhBG;AACrB,aAAO,4DADc,IACd,CAAP;AA1hBkB;;;oCA6hBJ;AACd,aAAO,qDADO,IACP,CAAP;AA9hBkB;;;qCAiiBH;AACf,aAAO,sDADQ,IACR,CAAP;AAliBkB;;;oCAqiBJ;AACd,aAAO,qDADO,IACP,CAAP;AAtiBkB;;;iCAyiBP;AACX,aAAO,kDADI,IACJ,CAAP;AA1iBkB;;;+CA6iBO;AACzB,aAAO,2EAEC26C,mBAAW;AACf,eAAO,mDADQ,OACR,CAAP;AAJqB,OAClB,CAAP;AA9iBkB;;;qCAqjBH;AACf,aAAO,sDADQ,IACR,CAAP;AAtjBkB;;;kCAyjBN;AAAA;;AACZ,aAAO,8DAECA,mBAAW;AACf,eAAO;AACL14D,gBAAM04D,QADD,CACCA,CADD;AAELr7C,oBAAUq7C,aAAa,uBAAaA,QAA1BA,CAA0BA,CAAb,CAAbA,GAFL;AAGLC,sCAA4B,sBACxB,oBADwB,WAHvB;AAAA,SAAP;AAJQ,OACL,CAAP;AA1jBkB;;;+BAukBT;AACT,aAAO,gDADE,IACF,CAAP;AAxkBkB;;;mCA2kBL;AAAA;;AACb,aAAO,0DAA0D,YAAM;AACrE,aAAK,IAAIj4D,IAAJ,GAAWkV,KAAK,kBAArB,QAA4ClV,IAA5C,IAAoDA,CAApD,IAAyD;AACvD,cAAM+1D,OAAO,kBAD0C,CAC1C,CAAb;;AACA,oBAAU;AACR,gBAAMmC,oBAAoBnC,KADlB,OACkBA,EAA1B;;AAEA,gBAAI,CAAJ,mBAAwB;AACtB,oBAAM,uCACkB/1D,IAFF,CAChB,8BAAN;AAJM;AAF6C;AADY;;AAarE,2BAbqE,KAarE;;AACA,2BAdqE,KAcrE;AAfW,OACN,CAAP;AA5kBkB;;;wBA8lBA;AAClB,UAAMvK,SAAS,KADG,OAClB;AACA,aAAO,yCAA8B;AACnC25D,0BAAkB35D,OADiB;AAEnC65D,yBAAiB75D,OAFkB;AAAA,OAA9B,CAAP;AAhmBkB;;;;;;IA6mBtB,U;AACEM,wBAAc;AAAA;;AACZ,iBAAamE,cADD,IACCA,CAAb;AAFa;;;;+BASfi+D,K,EAAkB;AAChB,UAAI,WAAJ,KAAI,CAAJ,EAAuB;AACrB,eAAO,WADc,KACd,CAAP;AAFc;;AAIhB,aAAQ,oBAAoB;AAC1BxjD,oBAD0B;AAE1B/C,cAF0B;AAG1BwmD,kBAH0B;AAAA,OAA5B;AAba;;;wBA4Bf/2D,K,EAA4B;AAAA,UAAjBukC,QAAiB,uEAA5BvkC,IAA4B;;AAG1B,oBAAc;AACZ,uDADY,QACZ;;AACA,eAFY,IAEZ;AALwB;;AAS1B,UAAM5E,MAAM,WATc,KASd,CAAZ;;AAGA,UAAI,QAAQ,CAACA,IAAb,UAA2B;AACzB,cAAM,8DADmB,KACnB,OAAN;AAbwB;;AAe1B,aAAOA,IAfmB,IAe1B;AA3Ca;;;wBA8Cfyc,K,EAAW;AACT,UAAMzc,MAAM,WADH,KACG,CAAZ;AACA,aAAOA,MAAMA,IAANA,WAFE,KAET;AAhDa;;;4BAsDfhF,K,EAAAA,I,EAAqB;AACnB,UAAMgF,MAAM,gBADO,KACP,CAAZ;;AAEAA,qBAHmB,IAGnBA;AACAA,iBAJmB,IAInBA;AACAA,6BALmB,IAKnBA;AA3Da;;;4BA8DP;AACN,mBAAavC,cADP,IACOA,CAAb;AA/Da;;;;;;IAsEjB,U;AACEnE,0CAAgC;AAAA;;AAC9B,+BAD8B,kBAC9B;AAQA,sBAT8B,IAS9B;AAVa;;;;6BA0BN;AACP,+BADO,MACP;AA3Ba;;;wBAiBD;AACZ,aAAO,oCADK,OACZ;AAlBa;;;;;;AAmCjB,IAAMsiE,qBAAsB,qCAAqC;AAC/D,MAAMC,oBAAoB,IADqC,OACrC,EAA1B;;AAD+D,MAI/D,kBAJ+D;AAK7DviE,wCAWG;AAAA,UAXS,QAWT,UAXS,QAWT;AAAA,UAXS,MAWT,UAXS,MAWT;AAAA,UAXS,IAWT,UAXS,IAWT;AAAA,UAXS,UAWT,UAXS,UAWT;AAAA,UAXS,YAWT,UAXS,YAWT;AAAA,UAXS,SAWT,UAXS,SAWT;AAAA,UAXS,aAWT,UAXS,aAWT;AAAA,UAXS,YAWT,UAXS,YAWT;AAAA,yCAFDu8D,wBAEC;AAAA,UAFDA,wBAEC,sCAXS,KAWT;AAAA,iCADD5B,MACC;AAAA,UADDA,MACC,8BAXH36D,KAWG;;AAAA;;AACD,sBADC,QACD;AACA,oBAFC,MAED;AACA,kBAHC,IAGD;AACA,wBAJC,UAID;AACA,6BALC,IAKD;AACA,0BANC,YAMD;AACA,wBAPC,SAOD;AACA,2BARC,aAQD;AACA,0BATC,YASD;AACA,qBAVC,MAUD;AAEA,qBAZC,KAYD;AACA,mCAbC,IAaD;AACA,2BAdC,KAcD;AACA,uCACEu8D,qCAAqC,kBAhBtC,WAeD;AAEA,uBAjBC,KAiBD;AACA,wBAlBC,oCAkBD;AACA,kBAAY,eAnBX,IAmBW,CAAZ;AAEA,4BAAsB,oBArBrB,IAqBqB,CAAtB;AACA,gCAA0B,wBAtBzB,IAsByB,CAA1B;AACA,wBAAkB,gBAvBjB,IAuBiB,CAAlB;AACA,qBAAe78D,qBAxBd,MAwBD;AApCqB;;AAJsC;AAAA;AAAA,iDAkDO;AAAA,yCAA/C+8D,YAA+C;AAAA,YAA/CA,YAA+C,oCAAjD,KAAiD;AAAA,YAApE+F,qBAAoE,UAApEA,qBAAoE;;AAClE,YAAI,KAAJ,WAAoB;AAAA;AAD8C;;AAIlE,YAAI,KAAJ,SAAkB;AAChB,cAAID,sBAAsB,KAA1B,OAAIA,CAAJ,EAAyC;AACvC,kBAAM,UACJ,kIAFqC,yBACjC,CAAN;AAFc;;AAQhBA,gCAAsB,KARN,OAQhBA;AAZgE;;AAelE,YACE,gBACA9hE,WADA,kBAEAA,0BAHF,SAIE;AACA,yBAAeA,iCAAiC,KADhD,UACeA,CAAf;AACA,4BAAkB,KAFlB,YAEA;AACA,wCAA8B,aAH9B,iBAG8B,EAA9B;AAtBgE;;AAAA,2BA8B9D,KA9B8D;AAAA,YAwB5D,aAxB4D,gBAwB5D,aAxB4D;AAAA,YAwB5D,QAxB4D,gBAwB5D,QAxB4D;AAAA,YAwB5D,SAxB4D,gBAwB5D,SAxB4D;AAAA,YAwB5D,UAxB4D,gBAwB5D,UAxB4D;AAAA,YAwB5D,UAxB4D,gBAwB5D,UAxB4D;AAgClE,mBAAW,0CAET,KAFS,YAGT,KAHS,MAIT,KAJS,eAKT,KALS,0BAhCuD,qBAgCvD,CAAX;AASA,8BAAsB;AACpByT,mBADoB,EACpBA,SADoB;AAEpBioD,kBAFoB,EAEpBA,QAFoB;AAGpBM,sBAHoB,EAGpBA,YAHoB;AAIpBtB,oBAJoB,EAIpBA;AAJoB,SAAtB;AAMA,+BA/CkE,CA+ClE;AACA,6BAhDkE,IAgDlE;;AACA,YAAI,KAAJ,uBAAgC;AAC9B,eAD8B,qBAC9B;AAlDgE;AA9C7C;AAJsC;AAAA;AAAA,+BAwGxC;AAAA,YAAd33C,KAAc,uEAArB6yB,IAAqB;AACnB,uBADmB,KACnB;AACA,yBAFmB,IAEnB;;AACA,YAAI,KAAJ,KAAc;AACZ,mBADY,UACZ;AAJiB;;AAMnB,YAAI,KAAJ,SAAkB;AAChBksB,sCAAyB,KADT,OAChBA;AAPiB;;AASnB,sBACE/+C,SACE,mFAC+B,kBAD/B,IAXe,QAWf,CAFJ;AA7GqB;AAJsC;AAAA;AAAA,4CA0HvC;AACpB,YAAI,CAAC,KAAL,eAAyB;AACvB,cAAI,CAAC,KAAL,uBAAiC;AAC/B,yCAA6B,KADE,cAC/B;AAFqB;;AAAA;AADL;;AAQpB,YAAI,KAAJ,SAAkB;AAChB,0CAAgC,KADhB,YAChB;AATkB;;AAYpB,YAAI,KAAJ,SAAkB;AAAA;AAZE;;AAepB,aAfoB,SAepB;AArIqB;AAJsC;AAAA;AAAA,kCA4IjD;AACV,uBADU,IACV;;AACA,YAAI,KAAJ,WAAoB;AAAA;AAFV;;AAKV,YAAI,UAAJ,YAA0B;AACxB,+BAAqB,KADG,kBACxB;AADF,eAEO;AACL,eADK,aACL;AARQ;AAxIW;AAJsC;AAAA;AAAA,sCAwJ7C;AAAA;;AACd,YAAI,KAAJ,2BAAoC;AAClC/C,uCAA6B,YAAM;AACjC,0CAAwB,oBADS,OACT,CAAxB;AAFgC,WAClCA;AADF,eAIO;AACLmX,iCAAuB,KAAvBA,qBAA8C,iBADzC,IACyC,CAA9CA;AANY;AApJO;AAJsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAmKvD,KAAJ,SAnK2D;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAsK3D,yCAAuB,6BACrB,KADqB,cAErB,KAFqB,iBAGrB,KAHqB,gBAIrB,KARU,OAIW,CAAvB;;AAMA,sBAAI,yBAAyB,4BAA7B,QAAiE;AAC/D,mCAD+D,KAC/D;;AACA,wBAAI,kBAAJ,WAAiC;AAC/B,+BAD+B,UAC/B;;AACA,0BAAI,KAAJ,SAAkB;AAChB2qC,oDAAyB,KADT,OAChBA;AAH6B;;AAK/B,2BAL+B,QAK/B;AAP6D;AAVrD;;AAlK+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,0BA2C7C;AACd,eAAO,iCAA8B,YAAY,CADnC,CACP,CAAP;AAxCqB;AAJsC;;AAAA;AAAA;;AAwL/D,SAxL+D,kBAwL/D;AAt4FF,CA8sF4B,EAA5B;;AA4LA,IAAMp7C,UA14FN,SA04FA;;AAGA,IAAMs7C,QA74FN,UA64FA;;;;;;;;;;;;;;;;;AC93FA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWA,c;AACEziE,gCAIG;AAAA,QAJS,KAIT,QAJS,KAIT;AAAA,QAJS,oBAIT,QAJS,oBAIT;AAAA,kCADDQ,aACC;AAAA,QADDA,aACC,mCADeC,WAHlBT,QAIG;;AAAA;;AACD,QAAI,qBAAJ,gBAAyC;AACvCC,6BADuC,mCACvCA;AAFD;;AAID,iBAJC,KAID;AACA,iCALC,oBAKD;AACA,qBANC,aAMD;AAEA,2BARC,EAQD;AACA,wBATC,IASD;AAdiB;;;;sCAiBnByiE,c,EAAkC;AAChC,gCADgC,cAChC;;AACA,+BAFgC,cAEhC;AAnBiB;;;+BAsBnBC,I,EAAiB;AACf,UAAIC,eAAe,KADJ,YACf;;AACA,UAAI,CAAJ,cAAmB;AACjBA,uBAAe,oBAAoB,6BADlB,OACkB,CAAnCA;AACAA,yDAA0C,KAFzB,KAEjBA;;AACA,mFAHiB,YAGjB;AALa;;AAUf,UAAMC,aAAaD,aAVJ,KAUf;AACAC,kCAA4BA,oBAXb,MAWfA;AAjCiB;;;4BAoCX;AAAA;;AACN,mCAA6BC,0BAAkB;AAC7C,wCAD6C,cAC7C;AAFI,OACN;AAGA,oCAJM,CAIN;;AAEA,UAAI,KAAJ,cAAuB;AAErB,0BAFqB,MAErB;AACA,4BAHqB,IAGrB;AATI;AApCW;;;;gGAiDnB,I;;;;;;;;sBAEMtpD,iBAAiBA,KAArB,W;;;;;;;;AAGAA,gCALe,IAKfA;;qBAEI,KAAJ,yB;;;;;AACQspD,8B,GAAiBtpD,KADW,oBACXA,E;;qBACvB,c;;;;;AACE,uCADkB,cAClB;;;uBAEQspD,eADJ,M;;;;;;;;;;AAGF,2CAA2B;AACzBC,6BAAW7pD,2BAFF;AACgB,iBAA3B;;AAGA5U,+DAA6Bw+D,eAJlB,MAIXx+D;AAGAkV,uCAPW,IAOXA;;;;;;;AAQAwpD,oB,GAAOxpD,KA5BE,kBA4BFA,E;;qBACb,I;;;;;AACE,gCADQ,IACR;;qBAEI,KAAJ,0B;;;;;;;;;uBAGM,YAAY9X,mBAAW;AAC3B,sBAAMF,UAAU,6BADW,OACX,CAAhB;;AACA,+CAA2B,CAA3B,IAA2B,CAA3B,EAAmC,CAAnC,IAAmC,CAAnC,EAF2B,OAE3B;AARM,iBAMF,C;;;;;;;;;;;;;;;;;;0CAQVyhE,Q,EAAgC;AAC9BhjE,6BAD8B,0CAC9BA;AA7FiB;;;0CAgHnBijE,K,EAAAA,W,EAAAA,O,EAAmD;AACjDjjE,6BADiD,0CACjDA;AAjHiB;;;wBAgGa;AAC9B,UAAMkjE,YACJ,OAAO,KAAP,6BAAyC,CAAC,CAAC,eAFf,KAC9B;AAEA,aAAOhnD,qDAHuB,SAGvBA,CAAP;AAnGiB;;;wBAuGc;AAC/Blc,6BAD+B,+CAC/BA;AAxGiB;;;wBA4GC;AAClBA,6BADkB,kCAClBA;AA7GiB;;;;;;AAqHrB,IA/IA,UA+IA;;AAOO;AAGLmjE;AAAAA;;AAAAA;;AACEpjE,uCAAoB;AAAA;;AAAA;;AAClB,iCADkB,MAClB;AACA,8BAAsB;AACpBqjE,kBADoB;AAEpBC,uBAFoB;AAAA,OAAtB;AAIA,8BANkB,CAMlB;AANkB;AADsC;;AAA5DF;AAAAA;AAAAA,4CA+BEH,QA/BFG,EA+BkC;AAC9B,mCAA2B;AACzBxhE,4BAAO,CAACJ,QAARI,MADyB,2CACzBA;AACAJ,yBAFyB,IAEzBA;;AAGA,iBAAOb,+BAA+BA,oBAAtC,MAAgE;AAC9D,gBAAM4iE,eAAe5iE,iBADyC,KACzCA,EAArB;AACA0/B,uBAAWkjC,aAAXljC,UAF8D,CAE9DA;AAPuB;AADG;;AAY9B,YAAM1/B,UAAU,KAZc,cAY9B;AACA,YAAMa,UAAU;AACd8lB,2CAA0B3mB,QADZ,aACYA,EAA1B2mB,CADc;AAEdhe,gBAFc;AAGdsB,oBAHc;AAIdilC,kBAJc,EAIdA;AAJc,SAAhB;AAMAlvC,8BAnB8B,OAmB9BA;AACA,eApB8B,OAoB9B;AAnDwD;AAA5DyiE;AAAAA;AAAAA,4CAsFEF,KAtFFE,EAsFEF,KAtFFE,EAsFEF,OAtFFE,EAsF+C;AAAA;;AAO3C,qCAA6B;AAC3B,iBACGvnD,2BAAD,EAACA,GACAA,gBAAgB2nD,SAAhB3nD,MADD,EAACA,GAEAA,gBAAgB2nD,SAAhB3nD,MAFD,CAACA,GAGAA,gBAAgB2nD,SAAhB3nD,KALwB,IAC3B;AARyC;;AAe3C,yDAAiD;AAC/C,cAAM4nD,SAASC,eADgC,MAChCA,CAAf;AACA,cAAMC,SAASD,YAAYF,SAFoB,MAEhCE,CAAf;AACA,iBAAOD,kBAHwC,MAG/C;AAlByC;;AAoB3C,eApB2C,EAoB3C;;AAGA,YAAM/iE,SAAS,6BAvB4B,QAuB5B,CAAf;;AACAA,uBAxB2C,CAwB3CA;AACAA,wBAzB2C,CAyB3CA;AACA,YAAMkjE,MAAMljE,kBA1B+B,IA0B/BA,CAAZ;AAEA,YAAI4yB,SA5BuC,CA4B3C;;AACA,6CAAqC;AACnCA,gBADmC;;AAGnC,cAAIA,SAAJ,IAAiB;AACfhvB,4BADe,8BACfA;AACAurC,oBAFe;AAAA;AAHkB;;AAQnC+zB,qBAAW,UARwB,IAQnCA;AACAA,+BATmC,EASnCA;AACA,cAAMpC,YAAYoC,0BAViB,CAUjBA,CAAlB;;AACA,cAAIpC,oBAAJ,GAA2B;AACzB3xB,oBADyB;AAAA;AAXQ;;AAenCxP,qBAAWwjC,6BAfwB,QAexBA,CAAXxjC;AA5CyC;;AA+C3C,YAAMyjC,6BAAsBv/D,KAAL,GAAKA,EAAtBu/D,SAAmC,KA/CE,cA+CF,EAAnCA,CAAN;AAMA,YAAIjoD,OAAO,KArDgC,aAqD3C;AACA,YAAMkoD,iBAtDqC,GAsD3C;AACAloD,eAAOmoD,mCAGLF,eAHKE,QAvDoC,cAuDpCA,CAAPnoD;AAOA,YAAMooD,sBA9DqC,EA8D3C;AACA,YAAMC,aA/DqC,UA+D3C;AACA,YAAIC,WAAWC,YAhE4B,mBAgE5BA,CAAf;;AACA,aAAKn6D,OAAOkV,KAAK2kD,wBAAjB,GAA4C75D,IAA5C,IAAoDA,KAApD,GAA4D;AAC1Dk6D,qBAAYA,wBAAwBC,sBAAzB,CAAyBA,CAAxBD,GAD8C,CAC1DA;AAlEyC;;AAoE3C,YAAIl6D,IAAI65D,eAAR,QAA+B;AAE7BK,qBACGA,wBAAwBC,MAAMN,iBAANM,OAAzB,CAAyBA,CAAxBD,GAH0B,CAE7BA;AAtEyC;;AAyE3CtoD,eAAOmoD,2CAA2CK,oBAzEP,QAyEOA,CAA3CL,CAAPnoD;AAEA,YAAM/a,8CAAuCwjE,KA3EF,IA2EEA,CAAvCxjE,OAAN;AACA,YAAMkiE,2CAAO,cAAPA,oBA5EqC,GA4ErCA,MAAN;AACA,wBA7E2C,IA6E3C;AAEA,YAAMx6C,QA/EqC,EA+E3C;;AACA,aAAKve,OAAOkV,KAAKolD,MAAjB,QAA+Bt6D,IAA/B,IAAuCA,CAAvC,IAA4C;AAC1Cue,qBAAW+7C,SAD+B,UAC1C/7C;AAjFyC;;AAmF3CA,mBAnF2C,cAmF3CA;;AAEA,YAAMvI,MAAM,6BArF+B,KAqF/B,CAAZ;;AACAA,+BAtF2C,QAsF3CA;AACAA,0BAAkBA,mBAvFyB,MAuF3CA;AACAA,6BAxF2C,UAwF3CA;AACAA,wBAAgBA,iBAzF2B,KAyF3CA;;AAEA,aAAKhW,OAAOkV,KAAKqJ,MAAjB,QAA+Bve,IAA/B,IAAuC,EAAvC,GAA4C;AAC1C,cAAMu6D,OAAO,6BAD6B,MAC7B,CAAb;;AACAA,6BAF0C,IAE1CA;AACAA,kCAAwBh8C,MAHkB,CAGlBA,CAAxBg8C;AACAvkD,0BAJ0C,IAI1CA;AA/FyC;;AAiG3C,wCAjG2C,GAiG3C;;AAEA4jD,oCAA4B,YAAM;AAChC,4CADgC,GAChC;;AACAriE,kBAFgC,QAEhCA;AArGyC,SAmG3CqiE;AAzLwD;AAA5DT;AAAAA;AAAAA,0BAUmC;AAC/B,YAAID,YAD2B,KAC/B;;AAEE,YAAI,qBAAJ,aAAsC;AAEpCA,sBAFoC,IAEpCA;AAFF,eAGO;AAGL,cAAMvmD,IAAI,wCACRiD,UAJG,SAGK,CAAV;;AAGA,cAAIjD,KAAKA,QAAT,IAAqB;AACnBumD,wBADmB,IACnBA;AAPG;AANsB;;AAkB/B,eAAOhnD,sDAlBwB,SAkBxBA,CAAP;AA5BwD;AAA5DinD;AAAAA;AAAAA,0BAsDsB;AAClB,YAAMqB,kBAAkB,SAAlBA,eAAkB,GAAY;AAGlC,iBAAOC,KACL,6/CAJgC,sEAG3BA,CAAP;AAJgB,SAClB;;AA4BA,eAAOvoD,yCAA8BsoD,eA7BnB,EA6BXtoD,CAAP;AAnFwD;AAA5DinD;;AAAAA;AAAAA,IAAa,cAAbA;AAzJF;;IA2VA,c;AACEpjE,iDASE;AAAA,sCANEsc,eAMF;AAAA,QANEA,eAMF,sCAPA,IAOA;AAAA,sCALEi9C,eAKF;AAAA,QALEA,eAKF,sCAPA,KAOA;AAAA,mCAJEG,YAIF;AAAA,QAJEA,YAIF,mCAPA,KAOA;AAAA,sCAHEqG,oBAGF;AAAA,QAHEA,oBAGF,sCAPA,IAOA;AAAA,mCAFEqB,YAEF;AAAA,QAFEA,YAEF,mCATFphE,IASE;;AAAA;;AACA,0BAAsBmE,cADtB,IACsBA,CAAtB;;AAEA,kCAAgC;AAC9B,gBAAUwgE,eADoB,CACpBA,CAAV;AAJF;;AAMA,2BAAuBroD,oBANvB,KAMA;AACA,2BAAuBi9C,oBAPvB,IAOA;AACA,wBAAoBG,iBARpB,IAQA;AACA,iCATA,oBASA;AACA,wBAVA,YAUA;AApBiB;;;;2CAuBI;AACrB,UAAI,CAAC,KAAD,QAAc,KAAlB,iBAAwC;AACtC,eADsC,IACtC;AAFmB;;AAIrB,UAAMoJ,iBAAiB,aAAa,KAAb,YAA8B,KAA9B,MAJF,EAIE,CAAvB;;AAEA,UAAI,KAAJ,cAAuB;AACrB,uCADqB,IACrB;AAPmB;;AASrB,aATqB,cASrB;AAhCiB;;;yCAmCE;AACnB,UAAI,CAAC,KAAD,QAAc,KAAlB,iBAAwC;AACtC,eADsC,IACtC;AAFiB;;AAInB,UAAMjnD,OAAO+oD,yBAAc,eAAe,KAJvB,IAIQ,CAAdA,CAAb;AAEA,UAAM9jE,yBAAkB,KAAZ,QAANA,qBAA0CwjE,KAN7B,IAM6BA,CAA1CxjE,OAAN;AACA,UAAMkiE,2CAAmC,KAA5B,UAAPA,oBAPa,GAObA,MAAN;;AAEA,UAAI,KAAJ,cAAuB;AACrB,6CADqB,GACrB;AAViB;;AAYnB,aAZmB,IAYnB;AA/CiB;;;qCAkDnB6B,I,EAAAA,S,EAAkC;AAChC,UAAI,mCAAJ,WAAkD;AAChD,eAAO,oBADyC,SACzC,CAAP;AAF8B;;AAKhC,gBALgC,OAKhC;;AACA,UAAI;AACFC,eAAO1I,SAAS,6BADd,SACKA,CAAP0I;AADF,QAEE,WAAW;AACX,YAAI,CAAC,KAAL,cAAwB;AACtB,gBADsB,EACtB;AAFS;;AAIX,YAAI,KAAJ,uBAAgC;AAC9B,qCAA2B;AACzB/B,uBAAW7pD,2BAFiB;AACH,WAA3B;AALS;;AASX5U,2EATW,EASXA;AAEA,eAAQ,iCAAiC,mBAAmB,CAXjD,CAWX;AAnB8B;;AAyBhC,UAAI,wBAAwB+X,4BAA5B,OAAyD;AACvD;AAAA,YACE0oD,KAFqD,EACvD;;AAEA,aAAK,IAAI96D,IAAJ,GAAWkV,KAAK2lD,KAArB,QAAkC76D,IAAlC,IAA0CA,CAA1C,IAA+C;AAC7C+6D,oBAAUF,KADmC,CACnCA,CAAVE;;AAEA,cAAIA,iBAAJ,WAAgC;AAC9BrkD,mBAAOqkD,kBADuB,GACvBA,CAAPrkD;AADF,iBAEO;AACLA,mBADK,EACLA;AAN2C;;AAQ7CokD,gBAAM,OAAOC,QAAP,mBARuC,MAQ7CD;AAXqD;;AAcvD,eAAQ,iCAAiC,0BAdc,EAcd,CAAzC;AAvC8B;;AA2ChC,aAAQ,iCAAiC,mBAAmB;AAC1D,aAAK,IAAI96D,KAAJ,GAAWkV,MAAK2lD,KAArB,QAAkC76D,KAAlC,KAA0CA,EAA1C,IAA+C;AAC7C+6D,oBAAUF,KADmC,EACnCA,CAAVE;;AAEA,cAAIA,gBAAJ,SAA6B;AAC3BA,2BAAe,OAAO,CAAP,KAAfA;AAJ2C;;AAM7CvnD,YAAEunD,QAAFvnD,cAAwBunD,QANqB,IAM7CvnD;AAPwD;AA3C5B,OA2ChC;AA7FiB;;;;;;;;;;;;;;;;;;;;AC1UrB;;AAjBA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAIwnD,oBACFjlE,6BAAc;AAAA;;AACZC,yBADY,oCACZA;AAF0B,CAA9B;;;;AAMA,IAAIilE,wBACFllE,iCAAc;AAAA;;AACZC,yBADY,wCACZA;AAF8B,CAAlC;;;;AAMA,uBAA+E;AAC7EglE;AAAAA;;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA,6BACE/kE,KADF+kE,EACE/kE,MADF+kE,EACwB;AACpB,YAAI5kE,cAAcC,UAAlB,GAA+B;AAC7B,gBAAM,UADuB,qBACvB,CAAN;AAFkB;;AAIpB,YAAM6kE,SAASC,QAJK,QAILA,CAAf;;AACA,YAAM1kE,SAASykE,2BALK,MAKLA,CAAf;AACA,eAAO;AACLzkE,gBADK,EACLA,MADK;AAELC,mBAASD,kBAFJ,IAEIA;AAFJ,SAAP;AAPgD;AAApDukE;;AAAAA;AAAAA,IAAoB,gCAApBA;;AAcAC;AAAAA;;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA,iCACEhkE,GADFgkE,EACEhkE,eADFgkE,EACmC;AAC/B,eAAO,YAAY,2BAAqB;AACtC,cAAMG,KAAKD,QAD2B,IAC3BA,CAAX;;AACAC,2BAAiB,uBAAiB;AAChC,gBAAI7hD,SAAS,CAAb,MAAoB;AAClB7hB,qBAAO,UADW,KACX,CAAPA;AADkB;AADY;;AAKhCD,oBAAQ;AAAEJ,wBAAU,eAAZ,IAAY,CAAZ;AAAkCP,6BAAlC,EAAkCA;AAAlC,aAARW;AAPoC,WAEtC2jE;AAH6B,SACxB,CAAP;AAFwD;AAA5DH;;AAAAA;AAAAA,IAAwB,oCAAxBA;AAhDF,C;;;;;;;;;;;;;;;;;;;;ICkBA,iB;AACEllE,+BAAc;AAAA;;AACZ,oBAAgB,IADJ,GACI,EAAhB;AACA,qBAFY,KAEZ;AAMA,yBARY,IAQZ;AACA,2BATY,IASZ;AAVoB;;;;qCAuBtBslE,G,EAAAA,Y,EAAoC;AAClC,UAAI,kBAAJ,GAAI,CAAJ,EAA4B;AAC1B,eAAO,kBADmB,GACnB,CAAP;AAFgC;;AAKlC,6BALkC,YAKlC;;AACA,aANkC,YAMlC;AA7BoB;;;6BAwCtBC,G,EAAAA,K,EAAqB;AACnB,UAAI,2BAAJ,OAAsC;AACpC,aADoC,YACpC;AAFiB;;AAInB,6BAJmB,KAInB;AA5CoB;;;6BA+Cb;AACP,UAAI,uBAAJ,GAA8B;AAC5B,eAD4B,IAC5B;AAFK;;AAIP,aAAOphE,mBAAmB,KAJnB,QAIAA,CAAP;AAnDoB;;;mCA6DP;AACb,UAAI,CAAC,KAAL,WAAqB;AACnB,yBADmB,IACnB;;AACA,YAAI,OAAO,KAAP,kBAAJ,YAA8C;AAC5C,eAD4C,aAC5C;AAHiB;AADR;AA7DO;;;oCAsEN;AACd,UAAI,KAAJ,WAAoB;AAClB,yBADkB,KAClB;;AACA,YAAI,OAAO,KAAP,oBAAJ,YAAgD;AAC9C,eAD8C,eAC9C;AAHgB;AADN;AAtEM;;;wBAsDX;AACT,aAAO,cADE,IACT;AAvDoB;;;;;;;;;;;;;;;;;;;;AClBxB;;AAiBA,IAAMqhE,sBAAsBrhE,cAjB5B,IAiB4BA,CAA5B;AACiE;AAE9D,4BAAyB;AAExB,2BAAc;AACZqhE,4CADY,IACZA;AAHsB;AAFqC,GAE9D,GAAD;AApBF;AA2BA,IAAMxN,yBAAyB7zD,cA3B/B,mBA2B+BA,CAA/B;;;;;;;;;;;;;;;ACZA;;AAcA;;;;;;;;AAMA,IAAIshE,gBAnCJ,EAmCA;AAEA,IAAIC,gBArCJ,GAqCA;AACA,IAAIC,iBAtCJ,IAsCA;AAGA,IAAIC,mBAzCJ,IAyCA;AAEA,IAAIC,uBA3CJ,IA2CA;AACA,IAAIC,sBA5CJ,IA4CA;AAEA,IAAIC,oBA9CJ,EA8CA;;AAEA,yCAAyC;AAEvC,MAAI,CAACnC,IAAL,qBAA8B;AAC5BA,wBAAoBA,IADQ,IAC5BA;AACAA,2BAAuBA,IAFK,OAE5BA;AACAA,0BAAsBA,IAHM,MAG5BA;AACAA,yBAAqBA,IAJO,KAI5BA;AACAA,6BAAyBA,IALG,SAK5BA;AACAA,6BAAyBA,IANG,SAM5BA;AACAA,gCAA4BA,IAPA,YAO5BA;AAEAA,2BAAuBA,wBAAwB,kBAA/CA;AACAA,0BAV4B,EAU5BA;AAEAz/D,sDAAkD;AAChDmH,WAAK,+BAA+B;AAClC,eAAO,KAD2B,gBAClC;AAF8C;AAAA,KAAlDnH;AAMAA,6DAAyD;AACvDmH,WAAK,sCAAsC;AAKzC,YAAIsR,IAAI,KALiC,gBAKzC;AACA,YAAIW,IAAIX,EAAR,CAAQA,CAAR;AAAA,YACEY,IAAIZ,EADN,CACMA,CADN;AAAA,YAEEa,IAAIb,EAFN,CAEMA,CAFN;AAAA,YAGEE,IAAIF,EAHN,CAGMA,CAHN;AAAA,YAIE4O,IAAI5O,EAJN,CAIMA,CAJN;AAAA,YAKEyE,IAAIzE,EAXmC,CAWnCA,CALN;AAOA,YAAIopD,QAAQzoD,QAAQC,IAbqB,CAazC;AACA,YAAIyoD,QAAQzoD,QAAQD,IAdqB,CAczC;AAEA,eAAO,CACLT,IADK,OAELU,IAFK,OAGLC,IAHK,OAILF,IAJK,OAKJ,SAAQE,IAAT,CAAC,IALI,OAMJ,SAAQF,IAAT,CAAC,IANI,MAAP;AAjBqD;AAAA,KAAzDpZ;;AA4BAy/D,eAAW,mBAAmB;AAC5B,UAAIsC,MAAM,KADkB,gBAC5B;;AACA,gCAF4B,GAE5B;;AACA,8BAAwBA,aAHI,CAGJA,CAAxB;;AAEA,WAL4B,aAK5B;AAnD0B,KA8C5BtC;;AAQAA,kBAAc,sBAAsB;AAClC,UAAIvT,OAAO,qBADuB,GACvB,EAAX;;AACA,gBAAU;AACR,gCADQ,IACR;;AACA,aAFQ,gBAER;AAJgC;AAtDR,KAsD5BuT;;AAQAA,oBAAgB,4BAA4B;AAC1C,UAAIhnD,IAAI,KADkC,gBAC1C;AACAA,aAAOA,WAAWA,OAAXA,IAAsBA,EAFa,CAEbA,CAA7BA;AACAA,aAAOA,WAAWA,OAAXA,IAAsBA,EAHa,CAGbA,CAA7BA;;AAEA,iCAL0C,CAK1C;AAnE0B,KA8D5BgnD;;AAQAA,gBAAY,wBAAwB;AAClC,UAAIhnD,IAAI,KAD0B,gBAClC;AACAA,aAAOA,OAF2B,CAElCA;AACAA,aAAOA,OAH2B,CAGlCA;AACAA,aAAOA,OAJ2B,CAIlCA;AACAA,aAAOA,OAL2B,CAKlCA;;AAEA,6BAPkC,CAOlC;AA7E0B,KAsE5BgnD;;AAUAA,oBAAgB,wCAAwC;AACtD,UAAIhnD,IAAI,KAD8C,gBACtD;AACA,8BAAwB,CACtBA,WAAWA,OADW,GAEtBA,WAAWA,OAFW,GAGtBA,WAAWA,OAHW,GAItBA,WAAWA,OAJW,GAKtBA,WAAWA,OAAXA,IAAsBA,EALA,CAKAA,CALA,EAMtBA,WAAWA,OAAXA,IAAsBA,EANA,CAMAA,CANA,CAAxB;;AASAgnD,4CAXsD,CAWtDA;AA3F0B,KAgF5BA;;AAcAA,uBAAmB,2CAA2C;AAC5D,8BAAwB,kBAAxB;;AAEAA,+CAH4D,CAG5DA;AAjG0B,KA8F5BA;;AAMAA,iBAAa,0BAA0B;AACrC,UAAIuC,WAAWxjE,SADsB,KACtBA,CAAf;AACA,UAAIyjE,WAAWzjE,SAFsB,KAEtBA,CAAf;AAEA,UAAIia,IAAI,KAJ6B,gBAIrC;AACA,8BAAwB,CACtBA,kBAAkBA,OADI,UAEtBA,kBAAkBA,OAFI,UAGtBA,OAAO,CAAPA,WAAmBA,OAHG,UAItBA,OAAO,CAAPA,WAAmBA,OAJG,UAKtBA,EALsB,CAKtBA,CALsB,EAMtBA,EANsB,CAMtBA,CANsB,CAAxB;;AASA,2BAdqC,KAcrC;AAlH0B,KAoG5BgnD;AAtGqC;AAhDzC;;AAyKA,IAAIyC,iBAAkB,iCAAiC;AAErD,yCAAuC;AACrC,yBADqC,aACrC;AACA,iBAAaliE,cAFwB,IAExBA,CAAb;AAJmD;;AAMrDkiE,6BAA2B;AACzBC,eAAW,qEAKT;AACA,UADA,WACA;;AACA,UAAI,mBAAJ,WAAkC;AAChCC,sBAAc,WADkB,EAClB,CAAdA;AACA,qDAFgC,MAEhC;AAEAA,wDAJgC,CAIhCA;AAJF,aAKO;AACLA,sBAAc,iCADT,MACS,CAAdA;AACA,yBAFK,WAEL;AATF;;AAWA,0BAAoB;AAClBC,mCAA2BD,YADT,OAClBC;AAZF;;AAcA,aAdA,WAcA;AApBuB;AAsBzB1nC,SAtByB,mBAsBjB;AACN,qBAAe,KAAf,OAA2B;AACzB,YAAIynC,cAAc,WADO,EACP,CAAlB;AACA,mCAFyB,WAEzB;AACA,eAAO,WAHkB,EAGlB,CAAP;AAJI;AAtBiB;AAAA,GAA3BF;AA8BA,SApCqD,cAoCrD;AA7MF,CAyKsB,EAAtB;;AAuCA,oCAAoC;AAClC,MAAII,yBAD8B,IAClC;AAEA,MAAIpmE,QAAQqmE,QAAZ;AAAA,MACEpmE,SAASomE,QAJuB,MAGlC;AAEA;AAAA;AAAA;AAAA,MAGEC,SAAStmE,QARuB,CAKlC;AAIA,MAAIumE,SAAS,eAAeD,UAAU,SATJ,CASNA,CAAf,CAAb;AAEA,MAAIE,cACA,eAAe,iDAAf,CADJ;AAIA,MAAIC,WAAYzmE,QAAD,CAACA,GAAa,CAA7B;AAAA,MACE0mE,QAAQL,QAhBwB,IAelC;AAEA,MAAI7qD,OAAO,eAAeirD,WAA1B,MAAW,CAAX;AAAA,MACElrD,MADF;AAAA,MAjBkC,EAiBlC;;AAGA,OAAK3R,OAAOkV,KAAK4nD,MAAjB,QAA+B98D,IAA/B,IAAuCA,CAAvC,IAA4C;AAC1C,QAAI+8D,OAAJ;AAAA,QACEC,OAAOF,MAFiC,CAEjCA,CADT;;AAEA,WAAOC,OAAP,GAAiB;AACfnrD,WAAKD,GAALC,MAAcorD,kBADC,GACfprD;AACAmrD,eAFe,CAEfA;AALwC;AApBV;;AAuClC,MAAIhQ,QAvC8B,CAuClC;AACAp7C,QAxCkC,CAwClCA;;AACA,MAAIC,cAAJ,GAAqB;AACnB+qD,gBADmB,CACnBA;AACA,MAFmB,KAEnB;AA3CgC;;AA6ClC,OAAKzyC,IAAL,GAAYA,IAAZ,OAAuBA,CAAvB,IAA4B;AAC1B,QAAItY,cAAcA,KAAKD,MAAvB,CAAkBC,CAAlB,EAAiC;AAC/B+qD,kBAAY/qD,gBADmB,CAC/B+qD;AACA,QAF+B,KAE/B;AAHwB;;AAK1BhrD,OAL0B;AA7CM;;AAoDlC,MAAIC,cAAJ,GAAqB;AACnB+qD,gBADmB,CACnBA;AACA,MAFmB,KAEnB;AAtDgC;;AAwDlC,OAAK38D,IAAL,GAAYA,IAAZ,QAAwBA,CAAxB,IAA6B;AAC3B2R,UAAM3R,IADqB,QAC3B2R;AACAsrD,SAAKj9D,IAFsB,MAE3Bi9D;;AACA,QAAIrrD,KAAKD,MAALC,cAAyBA,KAA7B,GAA6BA,CAA7B,EAAwC;AACtC+qD,mBAAa/qD,gBADyB,CACtC+qD;AACA,QAFsC,KAEtC;AALyB;;AAS3B,QAAIO,MAAO,iBAAD,CAAC,KAAsB,KAAKvrD,MAAL,gBATN,CAShB,CAAX;;AACA,SAAKuY,IAAL,GAAYA,IAAZ,OAAuBA,CAAvB,IAA4B;AAC1BgzC,YACG,QAAD,CAAC,KACA,KAAKvrD,MAAL,SADD,CAAC,KAEA,KAAKA,iBAAL,SAJuB,CAEvB,CADHurD;;AAIA,UAAIN,YAAJ,GAAIA,CAAJ,EAAsB;AACpBD,eAAOM,KAAPN,KAAiBC,YADG,GACHA,CAAjBD;AACA,UAFoB,KAEpB;AAPwB;;AAS1BhrD,SAT0B;AAVD;;AAqB3B,QAAIC,KAAKD,MAALC,cAAyBA,KAA7B,GAA6BA,CAA7B,EAAwC;AACtC+qD,aAAOM,KAAPN,KAAiB/qD,gBADqB,CACtC+qD;AACA,QAFsC,KAEtC;AAvByB;;AA0B3B,QAAI5P,QAAJ,wBAAoC;AAClC,aADkC,IAClC;AA3ByB;AAxDK;;AAuFlCp7C,QAAMkrD,YAAY,SAvFgB,CAuF5BA,CAANlrD;AACAsrD,OAAKj9D,IAxF6B,MAwFlCi9D;;AACA,MAAIrrD,cAAJ,GAAqB;AACnB+qD,iBADmB,CACnBA;AACA,MAFmB,KAEnB;AA3FgC;;AA6FlC,OAAKzyC,IAAL,GAAYA,IAAZ,OAAuBA,CAAvB,IAA4B;AAC1B,QAAItY,cAAcA,KAAKD,MAAvB,CAAkBC,CAAlB,EAAiC;AAC/B+qD,aAAOM,KAAPN,KAAiB/qD,gBADc,CAC/B+qD;AACA,QAF+B,KAE/B;AAHwB;;AAK1BhrD,OAL0B;AA7FM;;AAoGlC,MAAIC,cAAJ,GAAqB;AACnB+qD,WAAOM,KAAPN,KADmB,CACnBA;AACA,MAFmB,KAEnB;AAtGgC;;AAwGlC,MAAI5P,QAAJ,wBAAoC;AAClC,WADkC,IAClC;AAzGgC;;AA6GlC,MAAIoQ,QAAQ,eAAe,YAAY,CAAZ,MAAmB,CAAnB,mBAAf,CAAZ;AACA,MAAIC,WA9G8B,EA8GlC;;AACA,OAAKp9D,IAAL,GAAY+sD,SAAS/sD,KAArB,QAAkCA,CAAlC,IAAuC;AACrC,QAAI0S,IAAI1S,IAD6B,MACrC;AACA,QAAI/F,MAAMyY,IAF2B,KAErC;;AACA,WAAOA,WAAW,CAACiqD,OAAnB,CAAmBA,CAAnB,EAA8B;AAC5BjqD,OAD4B;AAHO;;AAMrC,QAAIA,MAAJ,KAAe;AAAA;AANsB;;AASrC,QAAI2qD,SAAS,CAAC3qD,IAAD,UAAb;AAEA,QAAIzV,OAAO0/D,OAAX,CAAWA,CAAX;AAAA,QACEW,KADF;AAAA,QAXqC,EAWrC;;AAGA,OAAG;AACD,UAAI30C,OAAOw0C,MADV,IACUA,CAAX;;AACA,SAAG;AACDzqD,aADC,IACDA;AADF,eAES,CAACiqD,OAJT,CAISA,CAFV;;AAIAY,WAAKZ,OANJ,CAMIA,CAALY;;AACA,UAAIA,YAAYA,OAAhB,IAA2B;AAEzBtgE,eAFyB,EAEzBA;AAEA0/D,oBAJyB,CAIzBA;AAJF,aAKO;AAGL1/D,eAAOsgE,KAAO,OAAD,IAAC,IAHT,CAGLtgE;AAEA0/D,qBAAc1/D,QAAD,CAACA,GAAcA,QALvB,CAKL0/D;AAjBD;;AAoBDU,kBAAY3qD,IApBX,MAoBD2qD;AACAA,kBAAa3qD,IAAD,MAACA,GArBZ,CAqBD2qD;;AAEA,UAAI,CAACV,OAAL,CAAKA,CAAL,EAAgB;AACd,UADc,KACd;AAxBD;AAAH,aA0BSW,OAxC4B,CAcrC;;AA2BAF,kBAzCqC,MAyCrCA;AACA,MA1CqC,CA0CrC;AAzJgC;;AA4JlC,MAAII,cAAc,SAAdA,WAAc,IAAa;AAC7BhqD,MAD6B,IAC7BA;AAEAA,YAAQ,IAARA,OAAmB,KAHU,MAG7BA;AACAA,mBAAe,CAJc,MAI7BA;AACAA,MAL6B,SAK7BA;;AACA,SAAK,IAAIgX,IAAJ,GAAWizC,KAAKL,SAArB,QAAsC5yC,IAAtC,IAA8CA,CAA9C,IAAmD;AACjD,UAAIkzC,IAAIN,SADyC,CACzCA,CAAR;AACA5pD,eAASkqD,EAATlqD,CAASkqD,CAATlqD,EAAekqD,EAFkC,CAElCA,CAAflqD;;AACA,WAAK,IAAImqD,IAAJ,GAAWC,KAAKF,EAArB,QAA+BC,IAA/B,IAAuCA,KAAvC,GAA+C;AAC7CnqD,iBAASkqD,EAATlqD,CAASkqD,CAATlqD,EAAekqD,EAAEC,IAD4B,CAC9BD,CAAflqD;AAJ+C;AANtB;;AAa7BA,MAb6B,IAa7BA;AACAA,MAd6B,SAc7BA;AACAA,MAf6B,OAe7BA;AA3KgC,GA4JlC;;AAkBA,SA9KkC,WA8KlC;AA9XF;;AAiYA,IAAIqqD,mBAAoB,mCAAmC;AAEzD,8BAA4B;AAE1B,wBAF0B,KAE1B;AACA,oBAH0B,CAG1B;AACA,yBAJ0B,CAI1B;AACA,sBAL0B,qBAK1B;AACA,2BAN0B,CAM1B;AACA,sBAP0B,0BAO1B;AACA,mBAR0B,CAQ1B;AAEA,aAV0B,CAU1B;AACA,aAX0B,CAW1B;AAEA,iBAb0B,CAa1B;AACA,iBAd0B,CAc1B;AAEA,uBAhB0B,CAgB1B;AACA,uBAjB0B,CAiB1B;AACA,sBAlB0B,CAkB1B;AACA,6BAAyB57D,wBAnBC,IAmB1B;AACA,oBApB0B,CAoB1B;AAEA,qBAtB0B,SAsB1B;AACA,uBAvB0B,SAuB1B;AACA,uBAxB0B,KAwB1B;AAEA,qBA1B0B,CA0B1B;AACA,uBA3B0B,CA2B1B;AACA,qBA5B0B,CA4B1B;AACA,uBA7B0B,IA6B1B;AACA,0BA9B0B,IA8B1B;AACA,wBA/B0B,IA+B1B;AAjCuD;;AAoCzD47D,+BAA6B;AAC3BjlE,WAAO,kCAAkC;AACvC,aAAOsB,cADgC,IAChCA,CAAP;AAFyB;AAI3B4jE,qBAAiB,gDAAgD;AAC/D,eAD+D,CAC/D;AACA,eAF+D,CAE/D;AANyB;AAAA,GAA7BD;AASA,SA7CyD,gBA6CzD;AA9aF,CAiYwB,EAAxB;;AAmDA,IAAIE,iBAAkB,iCAAiC;AAGrD,MAAIC,iBAHiD,EAGrD;AAEA,MAAIC,kBALiD,EAKrD;;AAGA,uHAQE;AACA,eADA,SACA;AACA,mBAAe,IAFf,gBAEe,EAAf;AACA,sBAHA,EAGA;AACA,uBAJA,IAIA;AACA,yBALA,KAKA;AACA,eANA,IAMA;AACA,iBAPA,IAOA;AACA,sBARA,UAQA;AACA,gBATA,IASA;AACA,yBAVA,aAUA;AACA,wBAXA,YAWA;AACA,sBAZA,UAYA;AACA,sBAbA,EAaA;AACA,2BAdA,IAcA;AAGA,yBAjBA,IAiBA;AACA,8BAlBA,EAkBA;AACA,sBAnBA,CAmBA;AACA,sBApBA,EAoBA;AACA,wBArBA,CAqBA;AACA,qBAtBA,IAsBA;AACA,0BAvBA,IAuBA;AACA,8BAxBA,EAwBA;AACA,iCAzBA,qBAyBA;AACA,0BAAsB,mBAAmB,KA1BzC,aA0BsB,CAAtB;;AACA,mBAAe;AAGb1B,iCAHa,SAGbA;AA9BF;;AAgCA,sCAhCA,IAgCA;AAhDmD;;AAmDrD,4CAA+D;AAAA,QAArB2B,YAAqB,uEAA/D,IAA+D;;AAC7D,QAAI,oCAAoCzB,mBAAxC,WAAsE;AACpE9C,mCADoE,CACpEA;AADoE;AADT;;AAiB7D,QAAItjE,SAASomE,QAAb;AAAA,QACErmE,QAAQqmE,QAlBmD,KAiB7D;AAEA,QAAI0B,qBAAqB9nE,SAnBoC,iBAmB7D;AACA,QAAI+nE,aAAc,UAAD,kBAAC,IApB2C,iBAoB7D;AACA,QAAIC,cAAcF,wCAAwCC,aArBG,CAqB7D;AAEA,QAAIE,eAAe3E,2BAvB0C,iBAuB1CA,CAAnB;AACA,QAAI4E,SAAJ;AAAA,QAxB6D,OAwB7D;AAEA,QAAIx6C,MAAM04C,QA1BmD,IA0B7D;AACA,QAAIh2B,OAAO63B,aA3BkD,IA2B7D;AACA,+BA5B6D,gBA4B7D;AAEA,2DA9B6D,eA8B7D;;AACA,sBAAkB;AAChB,cAAQJ,aAAR;AACE;AACEM,2BAAiBN,aADnB,CACmBA,CAAjBM;AACAC,6BAAmBP,aAFrB,CAEqBA,CAAnBO;AACAC,4BAAkBR,aAHpB,CAGoBA,CAAlBQ;AACAC,4BAAkBT,aAJpB,CAIoBA,CAAlBS;AALJ;;AAOE;AACEH,2BAAiBN,aADnB,CACmBA,CAAjBM;AACAC,6BAAmBP,aAFrB,CAEqBA,CAAnBO;AACAC,4BAAkBR,aAHpB,CAGoBA,CAAlBQ;AACAC,4BAAkBT,aAJpB,CAIoBA,CAAlBS;AAXJ;AAAA;AAhC2D;;AAkD7D,QAAIlC,iBAAiB75D,gBAArB,gBAA+C;AAE7C,UAAIg8D,YAAY76C,IAF6B,UAE7C;AACA,UAAI86C,SAAS,gBAAgBp4B,KAAhB,WAAgCA,mBAHA,CAGhC,CAAb;AACA,UAAIq4B,mBAAmBD,OAJsB,MAI7C;AACA,UAAIE,cAAe3oE,QAAD,CAACA,IAL0B,CAK7C;AACA,UAAI4oE,QANyC,UAM7C;AACA,UAAIC,QAAQhtD,gDAPiC,UAO7C;;AAEA,2BAAqB;AACnB,YAAI0sD,+BAA+BA,0BAAnC,GAAgE;AAAA,qBAC7C,cAD6C;AAC9D,eAD8D;AAC9D,eAD8D;AAD7C;AATwB;;AAe7C,WAAK3+D,IAAL,GAAYA,IAAZ,aAA6BA,CAA7B,IAAkC;AAChCk/D,0BACEl/D,qCAF8B,kBAChCk/D;AAEAC,kBAHgC,CAGhCA;;AACA,aAAKj1C,IAAL,GAAYA,IAAZ,iBAAiCA,CAAjC,IAAsC;AACpC,cAAIk1C,UAAUR,YADsB,MACpC;AACA,cAAIp0C,IAFgC,CAEpC;AACA,cAAI60C,OAAOD,gCAAgCA,cAHP,CAGpC;AACA,cAAIE,eAAeD,OAAO,CAJU,CAIpC;AACA,cAAItC,OALgC,CAKpC;AACA,cAAIwC,UANgC,CAMpC;;AACA,iBAAO/0C,IAAP,cAAyBA,KAAzB,GAAiC;AAC/B+0C,sBAAUx7C,IAAIw6C,MADiB,EACrBx6C,CAAVw7C;AACAV,mBAAOM,OAAPN,MAAoBU,wBAFW,KAE/BV;AACAA,mBAAOM,OAAPN,MAAoBU,uBAHW,KAG/BV;AACAA,mBAAOM,OAAPN,MAAoBU,uBAJW,KAI/BV;AACAA,mBAAOM,OAAPN,MAAoBU,uBALW,KAK/BV;AACAA,mBAAOM,OAAPN,MAAoBU,sBANW,KAM/BV;AACAA,mBAAOM,OAAPN,MAAoBU,sBAPW,KAO/BV;AACAA,mBAAOM,OAAPN,MAAoBU,sBARW,KAQ/BV;AACAA,mBAAOM,OAAPN,MAAoBU,sBATW,KAS/BV;AAhBkC;;AAkBpC,iBAAOr0C,IAAP,MAAiBA,CAAjB,IAAsB;AACpB,gBAAIuyC,SAAJ,GAAgB;AACdwC,wBAAUx7C,IAAIw6C,MADA,EACJx6C,CAAVw7C;AACAxC,qBAFc,GAEdA;AAHkB;;AAMpB8B,mBAAOM,OAAPN,MAAoBU,yBANA,KAMpBV;AACA9B,qBAPoB,CAOpBA;AAzBkC;AAJN;;AAiChC,eAAOoC,UAAP,kBAAmC;AACjCN,iBAAOM,OAAPN,MADiC,CACjCA;AAlC8B;;AAqChClF,0CAAkC35D,IArCF,iBAqChC25D;AApD2C;AAA/C,WAsDO,IAAI8C,iBAAiB75D,gBAArB,YAA2C;AAEhD,UAAM48D,kBAAkB,CAAC,EACvB,sCAH8C,eAEvB,CAAzB;AAMAt1C,UARgD,CAQhDA;AACAu1C,yBAAmBrpE,4BAT6B,CAShDqpE;;AACA,WAAKz/D,IAAL,GAAYA,IAAZ,YAA4BA,CAA5B,IAAiC;AAC/BymC,iBAAS1iB,qBAAqBw6C,SADC,gBACtBx6C,CAAT0iB;AACA83B,kBAF+B,gBAE/BA;;AAEA,6BAAqB;AACnB,eAAK,IAAI/zC,KAAT,GAAgBA,KAAhB,kBAAsCA,MAAtC,GAA8C;AAC5C,gCAAoB;AAClBic,mBAAKjc,KAALic,KAAc+3B,eAAe/3B,KAAKjc,KADhB,CACWic,CAAf+3B,CAAd/3B;AAF0C;;AAI5C,kCAAsB;AACpBA,mBAAKjc,KAALic,KAAcg4B,iBAAiBh4B,KAAKjc,KADhB,CACWic,CAAjBg4B,CAAdh4B;AAL0C;;AAO5C,iCAAqB;AACnBA,mBAAKjc,KAALic,KAAci4B,gBAAgBj4B,KAAKjc,KADhB,CACWic,CAAhBi4B,CAAdj4B;AAR0C;AAD3B;AAJU;;AAkB/BkzB,0CAlB+B,CAkB/BA;AACAzvC,aAnB+B,iBAmB/BA;AA7B8C;;AA+BhD,UAAIlqB,IAAJ,aAAqB;AACnBy/D,2BAAmBrpE,6BADA,CACnBqpE;AACAh5B,iBAAS1iB,qBAAqBw6C,SAFX,gBAEVx6C,CAAT0iB;;AAEA,6BAAqB;AACnB,eAAK,IAAIjc,MAAT,GAAgBA,MAAhB,kBAAsCA,OAAtC,GAA8C;AAC5C,gCAAoB;AAClBic,mBAAKjc,MAALic,KAAc+3B,eAAe/3B,KAAKjc,MADhB,CACWic,CAAf+3B,CAAd/3B;AAF0C;;AAI5C,kCAAsB;AACpBA,mBAAKjc,MAALic,KAAcg4B,iBAAiBh4B,KAAKjc,MADhB,CACWic,CAAjBg4B,CAAdh4B;AAL0C;;AAO5C,iCAAqB;AACnBA,mBAAKjc,MAALic,KAAci4B,gBAAgBj4B,KAAKjc,MADhB,CACWic,CAAhBi4B,CAAdj4B;AAR0C;AAD3B;AAJF;;AAkBnBkzB,0CAlBmB,CAkBnBA;AAjD8C;AAA3C,WAmDA,IAAI8C,iBAAiB75D,gBAArB,WAA0C;AAE/C,UAAM48D,mBAAkB,CAAC,EACvB,sCAH6C,eAEtB,CAAzB;;AAMAN,wBAR+C,iBAQ/CA;AACAO,yBAAmBrpE,QAT4B,eAS/CqpE;;AACA,WAAKz/D,IAAL,GAAYA,IAAZ,aAA6BA,CAA7B,IAAkC;AAChC,YAAIA,KAAJ,YAAqB;AACnBk/D,4BADmB,kBACnBA;AACAO,6BAAmBrpE,QAFA,eAEnBqpE;AAH8B;;AAMhCN,kBANgC,CAMhCA;;AACA,aAAKj1C,IAAL,kBAA2BA,CAA3B,KAAkC;AAChCuc,eAAK04B,OAAL14B,MAAkB1iB,IAAIw6C,MADU,EACdx6C,CAAlB0iB;AACAA,eAAK04B,OAAL14B,MAAkB1iB,IAAIw6C,MAFU,EAEdx6C,CAAlB0iB;AACAA,eAAK04B,OAAL14B,MAAkB1iB,IAAIw6C,MAHU,EAGdx6C,CAAlB0iB;AACAA,eAAK04B,OAAL14B,MAJgC,GAIhCA;AAX8B;;AAchC,8BAAqB;AACnB,eAAK,IAAIjc,MAAT,GAAgBA,MAAhB,SAA6BA,OAA7B,GAAqC;AACnC,gCAAoB;AAClBic,mBAAKjc,MAALic,KAAc+3B,eAAe/3B,KAAKjc,MADhB,CACWic,CAAf+3B,CAAd/3B;AAFiC;;AAInC,kCAAsB;AACpBA,mBAAKjc,MAALic,KAAcg4B,iBAAiBh4B,KAAKjc,MADhB,CACWic,CAAjBg4B,CAAdh4B;AALiC;;AAOnC,iCAAqB;AACnBA,mBAAKjc,MAALic,KAAci4B,gBAAgBj4B,KAAKjc,MADhB,CACWic,CAAhBi4B,CAAdj4B;AARiC;AADlB;AAdW;;AA4BhCkzB,0CAAkC35D,IA5BF,iBA4BhC25D;AAtC6C;AAA1C,WAwCA;AACL,YAAM,oCAA6B8C,QAD9B,IACC,EAAN;AApM2D;AAnDV;;AA2PrD,4CAA0C;AACxC,QAAIpmE,SAASomE,QAAb;AAAA,QACErmE,QAAQqmE,QAF8B,KACxC;AAEA,QAAI0B,qBAAqB9nE,SAHe,iBAGxC;AACA,QAAI+nE,aAAc,UAAD,kBAAC,IAJsB,iBAIxC;AACA,QAAIC,cAAcF,wCAAwCC,aALlB,CAKxC;AAEA,QAAIE,eAAe3E,2BAPqB,iBAOrBA,CAAnB;AACA,QAAI4E,SARoC,CAQxC;AACA,QAAIx6C,MAAM04C,QAT8B,IASxC;AACA,QAAIh2B,OAAO63B,aAV6B,IAUxC;;AAEA,SAAK,IAAIt+D,IAAT,GAAgBA,IAAhB,aAAiCA,CAAjC,IAAsC;AACpC,UAAIk/D,kBACFl/D,qCAFkC,kBACpC;AAKA,UAAIm/D,UANgC,CAMpC;;AACA,WAAK,IAAIj1C,IAAT,GAAgBA,IAAhB,iBAAqCA,CAArC,IAA0C;AACxC,YAAI6yC,OADoC,CACxC;;AACA,aAAK,IAAIvyC,IAAT,GAAgBA,IAAhB,OAA2BA,CAA3B,IAAgC;AAC9B,cAAI,CAAJ,MAAW;AACT,gBAAIwyC,OAAOj5C,IAAIw6C,MADN,EACEx6C,CAAX;AACAg5C,mBAFS,GAETA;AAH4B;;AAK9Bt2B,0BAAgBu2B,kBALc,GAK9Bv2B;AACA04B,qBAN8B,CAM9BA;AACApC,mBAP8B,CAO9BA;AATsC;AAPN;;AAmBpCpD,wCAAkC35D,IAnBE,iBAmBpC25D;AA/BsC;AA3PW;;AA8RrD,4CAA0C;AACxC,QAAIhP,aAAa,6IAAjB;;AAYA,SAAK,IAAI3qD,IAAJ,GAAWkV,KAAKy1C,WAArB,QAAwC3qD,IAAxC,IAAgDA,CAAhD,IAAqD;AACnD,UAAIqtB,WAAWs9B,WADoC,CACpCA,CAAf;;AACA,UAAI+U,wBAAJ,WAAuC;AACrCC,4BAAoBD,UADiB,QACjBA,CAApBC;AAHiD;AAbb;;AAmBxC,QAAID,0BAAJ,WAAyC;AACvCC,0BAAoBD,UADmB,WACnBA,EAApBC;AACAA,+BAAyBD,UAFc,cAEvCC;AArBsC;AA9RW;;AAuTrD,kCAAgC;AAC9BhG,sBAD8B,SAC9BA;AACAA,oBAF8B,SAE9BA;AACAA,mBAH8B,SAG9BA;AACAA,sBAJ8B,CAI9BA;AACAA,oBAL8B,CAK9BA;AACAA,kBAN8B,MAM9BA;AACAA,mBAP8B,OAO9BA;AACAA,qBAR8B,EAQ9BA;AACAA,mCAT8B,aAS9BA;AACAA,eAV8B,iBAU9BA;;AACA,QAAIA,oBAAJ,WAAmC;AACjCA,sBADiC,EACjCA;AACAA,2BAFiC,CAEjCA;AAb4B;AAvTqB;;AAwUrD,mDAAiD;AAC/C,QAAIzoD,SAASD,MADkC,MAC/C;;AACA,SAAK,IAAIjR,IAAT,GAAgBA,IAAhB,QAA4BA,KAA5B,GAAoC;AAClC,UAAI4/D,QAAQ3uD,MADsB,CACtBA,CAAZ;;AACA,UAAI2uD,UAAJ,GAAiB;AACf3uD,cAAMjR,IAANiR,KADe,EACfA;AACAA,cAAMjR,IAANiR,KAFe,EAEfA;AACAA,cAAMjR,IAANiR,KAHe,EAGfA;AAHF,aAIO,IAAI2uD,QAAJ,KAAiB;AACtB,YAAIC,SAAS,MADS,KACtB;AACA5uD,cAAMjR,IAANiR,KAAgBA,MAAMjR,IAANiR,aAAuB6uD,KAAxB,MAAC7uD,IAFM,CAEtBA;AACAA,cAAMjR,IAANiR,KAAgBA,MAAMjR,IAANiR,aAAuB8uD,KAAxB,MAAC9uD,IAHM,CAGtBA;AACAA,cAAMjR,IAANiR,KAAgBA,MAAMjR,IAANiR,aAAuB+uD,KAAxB,MAAC/uD,IAJM,CAItBA;AAVgC;AAFW;AAxUI;;AAyVrD,+DAA6D;AAC3D,QAAIC,SAAS+uD,SAD8C,MAC3D;AACA,QAAIpnE,QAAQ,IAF+C,GAE3D;;AACA,SAAK,IAAImH,IAAT,GAAgBA,IAAhB,QAA4BA,KAA5B,GAAoC;AAClC,UAAI4/D,QAAQM,cAAcA,YAAYD,SAA1BC,CAA0BD,CAAZC,CAAdA,GAAyCD,SADnB,CACmBA,CAArD;AACAE,qBAAgBA,uBAAD,KAACA,GAFkB,CAElCA;AALyD;AAzVR;;AAkWrD,oEAAkE;AAChE,QAAIjvD,SAAS+uD,SADmD,MAChE;;AACA,SAAK,IAAIjgE,IAAT,GAAgBA,IAAhB,QAA4BA,KAA5B,GAAoC;AAClC,UAAIogE,IACFH,SAASjgE,IAATigE,UACAA,SAASjgE,IAATigE,KADAA,MAEAA,SAASjgE,IAATigE,KAJgC,EAClC;AAIAE,qBAAeD,cACVC,eAAeD,YAAYE,KAA5B,CAAgBF,CAAfC,IADUD,IAEVC,eAAD,CAACA,IAP6B,EAKlCA;AAP8D;AAlWb;;AA+WrD,iGAQE;AACA,QAAIE,cAAc,CAAC,CADnB,QACA;AACA,QAAIP,KAAKO,cAAcC,SAAdD,CAAcC,CAAdD,GAFT,CAEA;AACA,QAAIN,KAAKM,cAAcC,SAAdD,CAAcC,CAAdD,GAHT,CAGA;AACA,QAAIL,KAAKK,cAAcC,SAAdD,CAAcC,CAAdD,GAJT,CAIA;AAEA,QANA,SAMA;;AACA,QAAIE,YAAJ,cAA8B;AAC5BC,kBAD4B,sBAC5BA;AADF,WAEO;AACLA,kBADK,iBACLA;AAVF;;AAcA,QAAIC,oBAdJ,OAcA;AACA,QAAIntB,YAAY56C,iBAAiBA,UAAU+nE,oBAf3C,KAeiC/nE,CAAjBA,CAAhB;;AACA,SAAK,IAAIgoE,MAAT,GAAkBA,MAAlB,QAAgCA,OAAhC,WAAkD;AAChD,UAAIC,cAAcjoE,oBAAoBrC,SADU,GAC9BqC,CAAlB;AACA,UAAIunE,WAAWW,oCAFiC,WAEjCA,CAAf;AACA,UAAIT,YAAYU,qCAHgC,WAGhCA,CAAhB;;AAEA,uBAAiB;AACfC,6BAAqBb,SAArBa,cADe,EACfA;AAN8C;;AAQhDN,gBAAUP,SAAVO,MAAyBL,UAAzBK,MARgD,WAQhDA;AAEAI,yCAVgD,GAUhDA;AA1BF;AAvXmD;;AAqZrD,4DAA0D;AACxD,QAAI7D,OAAO1tD,MAD6C,MACxD;AACA,QAAIuxD,UAAUvxD,MAF0C,OAExD;AAEAsqD,qBACEtqD,MADFsqD,cAIEtqD,MAJFsqD,QAKEtqD,MALFsqD,SAMEtqD,MAVsD,OAIxDsqD;AASA,QAAI2G,WAAWjxD,kBAbyC,IAaxD;;AACA,QAAI,CAACA,MAAD,eAAsBqiD,aAA1B,WAAkD;AAChD,UAAMqP,WAAW,0BAA0B;AACzCC,eAAOH,SADkC;AAEzC9D,YAFyC,EAEzCA,IAFyC;AAGzCpS,oBAAY;AACV4V,mBAASlxD,MADC;AAEVixD,kBAFU,EAEVA;AAFU;AAH6B,OAA1B,CAAjB;AAQA3G,sCATgD,CAShDA;AACAA,8BAAwBtqD,MAAxBsqD,SAAuCtqD,MAVS,OAUhDsqD;AAVgD;AAdM;;AA2BxDsH,2CAGElE,KAHFkE,OAIElE,KAJFkE,QAKE5xD,MALF4xD,mBAOE5xD,MAlCsD,WA2BxD4xD;AASAtH,2BApCwD,CAoCxDA;AAzbmD;;AA4brD,MAAIuH,kBAAkB,2BAAtB;AACA,MAAIC,mBAAmB,2BAAvB;AACA,MAAIC,cA9biD,EA8brD;AACA,MAAIC,UA/biD,EA+brD;AAEAtD,6BAA2B;AACzBuD,gBADyB,+BAMtB;AAAA,UALU,SAKV,SALU,SAKV;AAAA,UALU,QAKV,SALU,QAKV;AAAA,qCAFD9O,YAEC;AAAA,UAFDA,YAEC,mCALU,KAKV;AAAA,mCADDtB,UACC;AAAA,UADDA,UACC,iCALHoQ,IAKG;AAMD,UAAIlrE,QAAQ,gBANX,KAMD;AACA,UAAIC,SAAS,gBAPZ,MAOD;AAEA,eATC,IASD;AACA,2BAAqB66D,cAVpB,oBAUD;AACA,qCAXC,MAWD;AACA,eAZC,OAYD;;AAEA,wBAAkB;AAChB,YAAIqQ,oBAAoB,4DADR,IACQ,CAAxB;AAMA,4BAAoB,KAPJ,GAOhB;AACA,iCAAyBA,kBART,MAQhB;AACA,mBAAWA,kBATK,OAShB;AACA,iBAVgB,IAUhB;AAGA,iCACE,KADF,KAEE,kBAfc,mBAahB;AA3BD;;AAiCD,eAjCC,IAiCD;AACAC,wBAAkB,KAlCjB,GAkCDA;;AACA,qBAAe;AACb,iCAAyB,KAAzB,KADa,SACb;AApCD;;AAsCD,+BAAyB,KAAzB,KAAmCtP,SAtClC,SAsCD;AAEA,2BAAqB,6BAxCpB,KAwCoB,EAArB;;AAEA,UAAI,KAAJ,YAAqB;AACnB,wBADmB,WACnB;AA3CD;AANsB;AAqDzBuP,yBAAqB,wGAKnB;AACA,UAAI5P,YAAYQ,aADhB,SACA;AACA,UAAIT,UAAUS,aAFd,OAEA;AACA,UAAIryD,IAAI0hE,qBAHR,CAGA;AACA,UAAIC,eAAe9P,UAJnB,MAIA;;AAGA,UAAI8P,iBAAJ,GAAwB;AACtB,eADsB,CACtB;AARF;;AAWA,UAAIC,kBACFD,sCACA,4BAbF,UAWA;AAGA,UAAIE,UAAUD,kBAAkBtnE,aAAlBsnE,iBAdd,CAcA;AACA,UAAIzE,QAfJ,CAeA;AAEA,UAAI/K,aAAa,KAjBjB,UAiBA;AACA,UAAID,OAAO,KAlBX,IAkBA;AACA,UAnBA,IAmBA;;AAEA,mBAAa;AACX,YAAI2P,yBAAyB9hE,MAAM8hE,QAAnC,gBAA2D;AACzDA,6BADyD,gBACzDA;AACA,iBAFyD,CAEzD;AAHS;;AAMXC,eAAOnQ,QANI,CAMJA,CAAPmQ;;AAEA,YAAIA,SAAS14D,UAAb,YAA6B;AAC3B,iCAAuBwoD,UADI,CACJA,CAAvB;AADF,eAEO;AAAA,qDACkBA,UAAvB,CAAuBA,CADlB;AAAA;;AAAA;AACL,gEAAqC;AAAA,kBAArC,QAAqC;AACnC,kBAAMmQ,WAAWC,yCADkB,IACnC;;AAIA,kBAAI,CAACD,aAAL,QAAKA,CAAL,EAA6B;AAC3BA,uCAD2B,gBAC3BA;AACA,uBAF2B,CAE3B;AAPiC;AADhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAVI;;AAuBXhiE,SAvBW;;AA0BX,YAAIA,MAAJ,cAAwB;AACtB,iBADsB,CACtB;AA3BS;;AAgCX,YAAI4hE,mBAAmB,UAAvB,iBAAkD;AAChD,cAAItnE,aAAJ,SAA0B;AACxB4nE,4BADwB;AAExB,mBAFwB,CAExB;AAH8C;;AAKhD/E,kBALgD,CAKhDA;AArCS;AArBb;AA1DuB;AA4HzBgF,gBAAY,qCAAqC;AAE/C,UAAI,6BAAJ,MAAuC;AACrC,aADqC,aACrC;AAH6C;;AAM/C,eAN+C,OAM/C;;AAEA,UAAI,KAAJ,mBAA4B;AAC1B,mBAAW,KADe,YAC1B;AACA,iBAF0B,IAE1B;AACA,6CAH0B,CAG1B;AACA,2BAAmB,KAAnB,sBAJ0B,CAI1B;AACA,iBAL0B,OAK1B;AACA,iCAN0B,IAM1B;AAd6C;;AAiB/C,0BAjB+C,KAiB/C;AACA,wBAlB+C,KAkB/C;;AAEA,UAAI,KAAJ,YAAqB;AACnB,wBADmB,SACnB;AArB6C;AA5HxB;AAsJzB54D,kBAAc,4CAA4C;AACxD,+BADwD,KACxD;AACA,2BAFwD,KAExD;AAxJuB;AA0JzBC,gBAAY,0CAA0C;AACpD,yBAAmB03D,gBADiC,KACjCA,CAAnB;AA3JuB;AA6JzBz3D,iBAAa,2CAA2C;AACtD,0BAAoB03D,iBADkC,KAClCA,CAApB;AA9JuB;AAgKzBz3D,mBAAe,6CAA6C;AAC1D,4BAD0D,KAC1D;AAjKuB;AAmKzBC,aAAS,sDAAsD;AAC7D,UAAIgwD,MAAM,KADmD,GAC7D;;AACA,UAAIA,oBAAJ,WAAmC;AACjCA,wBADiC,SACjCA;AACAA,6BAFiC,SAEjCA;AAJ2D;AAnKtC;AA0KzB/vD,sBA1KyB,8BA0KzBA,MA1KyB,EA0KE,CA1KF;AA6KzBC,eA7KyB,uBA6KzBA,QA7KyB,EA6KH,CA7KG;AAgLzBC,eAAW,0CAA0C;AACnD,WAAK,IAAI9J,IAAJ,GAAWkV,KAAKktD,OAArB,QAAoCpiE,IAApC,IAA4CA,CAA5C,IAAiD;AAC/C,YAAIjB,QAAQqjE,OADmC,CACnCA,CAAZ;AACA,YAAIziE,MAAMZ,MAFqC,CAErCA,CAAV;AACA,YAAI1C,QAAQ0C,MAHmC,CAGnCA,CAAZ;;AAEA;AACE;AACE,8BADF,KACE;AAFJ;;AAIE;AACE,4BADF,KACE;AALJ;;AAOE;AACE,6BADF,KACE;AARJ;;AAUE;AACE,+BADF,KACE;AAXJ;;AAaE;AACE,yBAAa1C,MAAb,CAAaA,CAAb,EAAuBA,MADzB,CACyBA,CAAvB;AAdJ;;AAgBE;AACE,oCADF,KACE;AAjBJ;;AAmBE;AACE,6BADF,KACE;AApBJ;;AAsBE;AACE,yBAAaA,MAAb,CAAaA,CAAb,EAAuBA,MADzB,CACyBA,CAAvB;AAvBJ;;AAyBE;AACE,uCAA2B0C,MAD7B,CAC6BA,CAA3B;AA1BJ;;AA4BE;AACE,qCAAyBA,MAD3B,CAC2BA,CAAzB;AACA,mCAAuBA,MAFzB,CAEyBA,CAAvB;AA9BJ;;AAgCE;AACE,gDADF,KACE;AAjCJ;;AAmCE;AACE,gBAAI,aAAJ,aAA8B;AAI5B,kBACE,8BACA,gBAAgB,yBAAhB,mBACE,aAHJ,aAIE;AACA,qBADA,iBACA;AALF,qBAMO;AACL,qBADK,aACL;AAX0B;AADhC;;AAeE,uCAA2B1C,QAAQ,KAARA,YAf7B,IAeE;;AACA,gBAAI,aAAJ,aAA8B;AAC5B,mBAD4B,eAC5B;AAjBJ;;AAmBE,6BAnBF,IAmBE;AAtDJ;;AAwDE;AACE,wCAzDJ,KAyDI;AAzDJ;AANiD;AAhL5B;AAmPzBgmE,qBAAiB,0CAA0C;AACzD,UAAIC,cAAc,aADuC,WACzD;AACA,UAAIC,aAAaD,mBAFwC,KAEzD;AACA,UAAIE,cAAcF,mBAHuC,MAGzD;AACA,UAAIG,UAAU,iBAAiB,KAJ0B,UAIzD;AACA,UAAIC,gBAAgB,gEALqC,IAKrC,CAApB;AAOA,UAAIC,aAAa,KAZwC,GAYzD;AACA,UAAIC,mBAAmBD,WAbkC,mBAazD;AACA,eAdyD,IAczD;AAEA,UAAIE,WAAWH,cAhB0C,OAgBzD;AACAG,qBAAe,IAAIP,YAAnBO,QAAuC,IAAIP,YAjBc,MAiBzDO;AACAA,yBAAmB,CAACP,YAApBO,SAAyC,CAACP,YAlBe,OAkBzDO;AACAA,yCAnByD,gBAmBzDA;AAEAP,0CAAoCO,SArBqB,0BAqBzDP;AAEAQ,+BAvByD,QAuBzDA;AACA,iBAxByD,QAwBzD;AACA,qBAAe,CACb,qBADa,EAEb,SAFa,EAGb,SAHa,CAAf;AAKA,2BA9ByD,UA8BzD;AACA,WA/ByD,UA+BzD;AAlRuB;AAoRzBC,uBAAmB,wCAAwC;AAGzD,UAAIF,WAAW,KAH0C,GAGzD;AACA,WAJyD,UAIzD;AACA,iBAAW,gBAL8C,GAK9C,EAAX;AAEAG,mBACE,KADFA,KAEE,aAFFA,uBAIE,KAXuD,YAOzDA;AAMA,eAbyD,OAazD;AACA,eAdyD,IAczD;AACAF,6BAAuB,KAfkC,GAezDA;AAGA,oCAlByD,QAkBzD;;AAGA,UAAIG,iBAAiBlwD,qBACnB,yBADmBA,uBAEnB8vD,SAvBuD,mBAqBpC9vD,CAArB;;AAIA,+BAAyB,KAAzB,KAzByD,cAyBzD;AAGA8vD,eA5ByD,IA4BzDA;AACAA,2CA7ByD,CA6BzDA;AACAA,+BAAyBA,gBAAzBA,OAAgDA,gBA9BS,MA8BzDA;AACAA,eA/ByD,OA+BzDA;AAnTuB;AAqTzBK,sBAAkB,wCAAwC;AAIxD,UAAIL,WAAW,aAJyC,cAIxD;AACA,UAAIF,aAAa,KALuC,GAKxD;AACA,iBANwD,QAMxD;AACA,2BAPwD,UAOxD;AACA,WARwD,UAQxD;AA7TuB;AA+TzBQ,mBAAe,wCAAwC;AACrD,UAAIN,WAAW,KADsC,GACrD;AACA,WAFqD,UAErD;AACA,iBAAW,gBAH0C,GAG1C,EAAX;AAEAG,mBACE,KADFA,KAEE,aAFFA,uBAIE,KATmD,YAKrDA;AAMA,eAXqD,OAWrD;AACAF,6BAAuB,KAZ8B,GAYrDA;;AAGA,UAAIG,iBAAiBlwD,qBACnB,yBADmBA,uBAEnB8vD,SAjBmD,mBAehC9vD,CAArB;;AAIA,+BAAyB,KAAzB,KAnBqD,cAmBrD;AAlVuB;AAoVzBhJ,UAAM,+BAA+B;AACnC,eADmC,IACnC;AACA,UAAIkyD,MAAM,KAFyB,OAEnC;AACA,2BAHmC,GAGnC;AACA,qBAAeA,IAJoB,KAIpBA,EAAf;AACA,oCALmC,IAKnC;AAzVuB;AA2VzBjyD,aAAS,kCAAkC;AAEzC,UAAI,aAAJ,gBAAiC;AAC/B,aAD+B,gBAC/B;AAHuC;;AAOzC,UACE,sCACC,gCACC,gBAAgB,yBAAhB,mBACE,aAJN,WACE,CADF,EAKE;AACA,aADA,aACA;AAbuC;;AAgBzC,UAAI,2BAAJ,GAAkC;AAChC,uBAAe,gBADiB,GACjB,EAAf;AACA,iBAFgC,OAEhC;AAGA,2BALgC,IAKhC;AAEA,0CAPgC,IAOhC;AAvBuC;AA3VlB;AAqXzBC,eAAW,oDAAoD;AAC7D,wCAD6D,CAC7D;AAEA,wCAH6D,IAG7D;AAxXuB;AA4XzB+E,mBAAe,iDAAiD;AAC9D,UAAI2qD,MAAM,KADoD,GAC9D;AACA,UAAIoB,UAAU,KAFgD,OAE9D;AACA,UAAI7vC,IAAI6vC,QAAR;AAAA,UACEqF,IAAIrF,QAJwD,CAG9D;;AAEA,WAAK,IAAI/6D,IAAJ,GAAWkqB,IAAX,GAAkBhV,KAAKkuD,IAA5B,QAAwCpjE,IAAxC,IAAgDA,CAAhD,IAAqD;AACnD,gBAAQojE,SAAR;AACE,eAAK/5D,UAAL;AACE6hB,gBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACA,gBAAIhqE,QAAQsgB,KAAKwT,CAHnB,EAGcxT,CAAZ;AACA,gBAAIrgB,SAASqgB,KAAKwT,CAJpB,EAIexT,CAAb;;AACA,gBAAItgB,eAAeujE,gBAAgB,KAAnC,mBAAmC,EAAnC,EAA+D;AAC7DvjE,sBAAQ,KADqD,mBACrD,EAARA;AANJ;;AAQE,gBAAIC,gBAAgBsjE,gBAAgB,KAApC,mBAAoC,EAApC,EAAgE;AAC9DtjE,uBAAS,KADqD,mBACrD,EAATA;AATJ;;AAWE,gBAAIgtE,KAAKn4C,IAXX,KAWE;AACA,gBAAIo4C,KAAKlD,IAZX,MAYE;AACAzG,0BAbF,CAaEA;AACAA,2BAdF,CAcEA;AACAA,2BAfF,EAeEA;AACAA,0BAhBF,EAgBEA;AACAA,0BAjBF,CAiBEA;AACAA,gBAlBF,SAkBEA;AAnBJ;;AAqBE,eAAKtwD,UAAL;AACE6hB,gBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACAzG,0BAHF,CAGEA;AAxBJ;;AA0BE,eAAKtwD,UAAL;AACE6hB,gBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACAzG,0BAHF,CAGEA;AA7BJ;;AA+BE,eAAKtwD,UAAL;AACE6hB,gBAAIxU,KAAKwT,IADX,CACMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,IAFX,CAEMxT,CAAJ0pD;AACAzG,8BACEjjD,KADFijD,CACEjjD,CADFijD,EAEEjjD,KAAKwT,IAFPyvC,CAEEjjD,CAFFijD,EAGEjjD,KAAKwT,IAHPyvC,CAGEjjD,CAHFijD,EAIEjjD,KAAKwT,IAJPyvC,CAIEjjD,CAJFijD,KAHF,CAGEA;AAQAzvC,iBAXF,CAWEA;AA1CJ;;AA4CE,eAAK7gB,UAAL;AACEswD,oCAGEjjD,KAHFijD,CAGEjjD,CAHFijD,EAIEjjD,KAAKwT,IAJPyvC,CAIEjjD,CAJFijD,EAKEjjD,KAAKwT,IALPyvC,CAKEjjD,CALFijD,EAMEjjD,KAAKwT,IAPT,CAOIxT,CANFijD;AAQAzuC,gBAAIxU,KAAKwT,IATX,CASMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,IAVX,CAUMxT,CAAJ0pD;AACAl2C,iBAXF,CAWEA;AAvDJ;;AAyDE,eAAK7gB,UAAL;AACE6hB,gBAAIxU,KAAKwT,IADX,CACMxT,CAAJwU;AACAk1C,gBAAI1pD,KAAKwT,IAFX,CAEMxT,CAAJ0pD;AACAzG,8BAAkBjjD,KAAlBijD,CAAkBjjD,CAAlBijD,EAA2BjjD,KAAKwT,IAAhCyvC,CAA2BjjD,CAA3BijD,WAHF,CAGEA;AACAzvC,iBAJF,CAIEA;AA7DJ;;AA+DE,eAAK7gB,UAAL;AACEswD,gBADF,SACEA;AAhEJ;AAAA;AAN4D;;AA0E9DoB,iCA1E8D,CA0E9DA;AAtcuB;AAwczBxwD,eAAW,oCAAoC;AAC7C,eAD6C,SAC7C;AAzcuB;AA2czBE,YAAQ,4CAA4C;AAClD84D,oBAAc,mDADoC,IAClDA;AACA,UAAI5J,MAAM,KAFwC,GAElD;AACA,UAAI6J,cAAc,aAHgC,WAGlD;AAGA7J,wBAAkB,aANgC,WAMlDA;;AACA,UAAI,KAAJ,gBAAyB;AACvB,YACE6J,eACAA,2BADAA,MACAA,CADAA,IAEAA,qBAHF,WAIE;AAGA7J,cAHA,IAGAA;AAKA,cAAM1vD,YAAY0vD,IARlB,mBAQA;;AACA,cAAM9gE,QAAQka,oDATd,CAScA,CAAd;;AACA4mD,4BAAkB6J,4BAVlB,IAUkBA,CAAlB7J;AACAA,0BAAgBjhE,SACd,6BADcA,kBAEd,yBAbF,KAWgBA,CAAhBihE;AAIAA,cAfA,MAeAA;AACAA,cAhBA,OAgBAA;AApBF,eAqBO;AAELA,0BAAgBjhE,SACd,6BADcA,kBAEd,aAJG,SAEWA,CAAhBihE;AAIAA,cANK,MAMLA;AA5BqB;AAPyB;;AAsClD,uBAAiB;AACf,aADe,WACf;AAvCgD;;AA0ClDA,wBAAkB,aA1CgC,SA0ClDA;AArfuB;AAufzBjvD,iBAAa,sCAAsC;AACjD,WADiD,SACjD;AACA,WAFiD,MAEjD;AAzfuB;AA2fzBC,UAAM,0CAA0C;AAC9C44D,oBAAc,mDADgC,IAC9CA;AACA,UAAI5J,MAAM,KAFoC,GAE9C;AACA,UAAI8J,YAAY,aAH8B,SAG9C;AACA,UAAIC,gBAAgB,aAJ0B,WAI9C;AACA,UAAIC,cAL0C,KAK9C;;AAEA,yBAAmB;AACjBhK,YADiB,IACjBA;;AACA,YAAI,KAAJ,eAAwB;AACtBA,sCAA4B,KADN,aACtBA;AAHe;;AAKjBA,wBAAgB8J,0BALC,IAKDA,CAAhB9J;AACAgK,sBANiB,IAMjBA;AAb4C;;AAgB9C,UAAI,KAAJ,gBAAyB;AACvB,YAAI,KAAJ,eAAwB;AACtBhK,mBADsB,SACtBA;AACA,+BAFsB,KAEtB;AAFF,eAGO;AACLA,cADK,IACLA;AALqB;AAhBqB;;AAyB9C,uBAAiB;AACfA,YADe,OACfA;AA1B4C;;AA4B9C,uBAAiB;AACf,aADe,WACf;AA7B4C;AA3fvB;AA2hBzB/uD,YAAQ,iCAAiC;AACvC,2BADuC,IACvC;AACA,WAFuC,IAEvC;AA7hBuB;AA+hBzBC,gBAAY,qCAAqC;AAC/C,gBAD+C,KAC/C;AACA,kBAF+C,KAE/C;AAEA,WAJ+C,WAI/C;AAniBuB;AAqiBzBC,kBAAc,uCAAuC;AACnD,2BADmD,IACnD;AACA,WAFmD,UAEnD;AAviBuB;AAyiBzBC,qBAAiB,0CAA0C;AACzD,WADyD,SACzD;AACA,WAFyD,UAEzD;AA3iBuB;AA6iBzBC,uBAAmB,4CAA4C;AAC7D,2BAD6D,IAC7D;AACA,WAF6D,SAE7D;AACA,WAH6D,UAG7D;AAhjBuB;AAkjBzBC,aAAS,kCAAkC;AACzC,WADyC,WACzC;AAnjBuB;AAujBzBC,UAAM,+BAA+B;AACnC,yBADmC,WACnC;AAxjBuB;AA0jBzBC,YAAQ,iCAAiC;AACvC,yBADuC,OACvC;AA3jBuB;AA+jBzBC,eAAW,oCAAoC;AAC7C,gCAD6C,qBAC7C;AACA,qCAF6C,CAE7C;AACA,uBAAiB,qBAH4B,CAG7C;AACA,uBAAiB,qBAJ4B,CAI7C;AAnkBuB;AAqkBzBC,aAAS,kCAAkC;AACzC,UAAIu4D,QAAQ,KAD6B,gBACzC;AACA,UAAIjK,MAAM,KAF+B,GAEzC;;AACA,UAAIiK,UAAJ,WAAyB;AACvBjK,YADuB,SACvBA;AADuB;AAHgB;;AAQzCA,UARyC,IAQzCA;AACAA,UATyC,SASzCA;;AACA,WAAK,IAAI35D,IAAT,GAAgBA,IAAI4jE,MAApB,QAAkC5jE,CAAlC,IAAuC;AACrC,YAAI+d,OAAO6lD,MAD0B,CAC1BA,CAAX;AACAjK,oCAA4B57C,KAFS,SAErC47C;AACAA,sBAAc57C,KAAd47C,GAAsB57C,KAHe,CAGrC47C;AACA57C,4BAAoBA,KAJiB,QAIrCA;AAduC;;AAgBzC47C,UAhByC,OAgBzCA;AACAA,UAjByC,IAiBzCA;AACAA,UAlByC,SAkBzCA;AACA,aAAO,KAnBkC,gBAmBzC;AAxlBuB;AA0lBzBruD,oBAAgB,gDAAgD;AAC9D,iCAD8D,OAC9D;AA3lBuB;AA6lBzBC,oBAAgB,gDAAgD;AAC9D,iCAD8D,OAC9D;AA9lBuB;AAgmBzBC,eAAW,yCAAyC;AAClD,gCAA0B3S,QADwB,GAClD;AAjmBuB;AAmmBzB4S,gBAAY,4CAA4C;AACtD,6BAAuB,CAD+B,OACtD;AApmBuB;AAsmBzBC,aAAS,mDAAmD;AAC1D,UAAIm4D,UAAU,oBAD4C,WAC5C,CAAd;AACA,UAAI9I,UAAU,KAF4C,OAE1D;;AAEA,UAAI,CAAJ,SAAc;AACZ,cAAM,wCADM,WACN,EAAN;AALwD;;AAQ1DA,2BAAqB8I,qBACjBA,QADiBA,aARqC,0BAQ1D9I;;AAMA,UAAIA,+BAA+BA,0BAAnC,GAAgE;AAC9D1gE,wBAAK,kCADyD,WAC9DA;AAfwD;;AAoB1D,UAAIirB,OAAJ,GAAc;AACZA,eAAO,CADK,IACZA;AACAy1C,gCAAwB,CAFZ,CAEZA;AAFF,aAGO;AACLA,gCADK,CACLA;AAxBwD;;AA2B1D,0BA3B0D,OA2B1D;AACA,8BA5B0D,IA4B1D;;AAEA,UAAI8I,QAAJ,aAAyB;AAAA;AA9BiC;;AAkC1D,UAAIzpE,OAAOypE,sBAlC+C,YAkC1D;AAEA,UAAIC,OApCsD,QAoC1D;;AACA,UAAID,QAAJ,OAAmB;AACjBC,eADiB,KACjBA;AADF,aAEO,IAAID,QAAJ,MAAkB;AACvBC,eADuB,MACvBA;AAxCwD;;AA0C1D,UAAIC,SAASF,4BA1C6C,QA0C1D;AACA,UAAIG,uBAAW,IAAXA,iBAAyBH,QA3C6B,YA2CtDG,CAAJ;AAMA,UAAIC,kBAjDsD,IAiD1D;;AACA,UAAI3+C,OAAJ,eAA0B;AACxB2+C,0BADwB,aACxBA;AADF,aAEO,IAAI3+C,OAAJ,eAA0B;AAC/B2+C,0BAD+B,aAC/BA;AArDwD;;AAuD1D,mCAA6B3+C,OAvD6B,eAuD1D;AAEA,gCAAgB,MAAhB,cAAgB,IAAhB,cAAgB,eAAhB,gBAzD0D,QAyD1D;AA/pBuB;AAiqBzB3Z,0BAAsB,mDAAmD;AACvE,uCADuE,IACvE;AAlqBuB;AAoqBzBC,iBAAa,0CAA0C;AACrD,8BADqD,IACrD;AArqBuB;AAuqBzBC,cAAU,uCAAuC;AAC/C,uBAAiB,sBAD8B,CAC/C;AACA,uBAAiB,sBAF8B,CAE/C;AAzqBuB;AA2qBzBC,wBAAoB,iDAAiD;AACnE,sBAAgB,CADmD,CACnE;AACA,uBAFmE,CAEnE;AA7qBuB;AA+qBzBC,mBAAe,wDAAwD;AACrE,gCAA0B,kBAA1B;AACA,qCAA+BrT,UAAU4a,QAAQC,IAFoB,CAEtC7a,CAA/B;AAEA,uBAAiB,qBAJoD,CAIrE;AACA,uBAAiB,qBALoD,CAKrE;AAprBuB;AAsrBzBsT,cAAU,mCAAmC;AAC3C,uBAAiB,aAD0B,OAC3C;AAvrBuB;AA0rBzBk4D,aA1rByB,qBA0rBzBA,SA1rByB,EA0rBzBA,CA1rByB,EA0rBzBA,CA1rByB,EA0rBzBA,gBA1rByB,EA0rBoB;AAC3C,UAAIvK,MAAM,KADiC,GAC3C;AACA,UAAIoB,UAAU,KAF6B,OAE3C;AACA,UAAIxrD,OAAOwrD,QAHgC,IAG3C;AACA,UAAIoJ,oBAAoBpJ,QAJmB,iBAI3C;AACA,UAAIqJ,WAAWrJ,mBAAmBA,QALS,aAK3C;AACA,UAAIsJ,iBACFF,oBAAoBliE,wBAPqB,gBAM3C;AAEA,UAAIqiE,iBAAiB,CAAC,EACpB,oBAAoBriE,wBATqB,gBAQrB,CAAtB;AAGA,UAAMsiE,cAAcxJ,uBAAuB,CAACxrD,KAXD,WAW3C;AAEA,UAb2C,SAa3C;;AACA,UAAIA,0CAAJ,aAA2D;AACzDi1D,oBAAYj1D,sBAAsB,KAAtBA,YAD6C,SAC7CA,CAAZi1D;AAfyC;;AAkB3C,UAAIj1D,wBAAJ,aAAyC;AACvCoqD,YADuC,IACvCA;AACAA,yBAFuC,CAEvCA;AACAA,YAHuC,SAGvCA;AACA6K,uBAJuC,QAIvCA;;AACA,8BAAsB;AACpB7K,sCADoB,gBACpBA;AANqC;;AAQvC,YACE0K,mBAAmBpiE,wBAAnBoiE,QACAA,mBAAmBpiE,wBAFrB,aAGE;AACA03D,cADA,IACAA;AAZqC;;AAcvC,YACE0K,mBAAmBpiE,wBAAnBoiE,UACAA,mBAAmBpiE,wBAFrB,aAGE;AACA03D,cADA,MACAA;AAlBqC;;AAoBvCA,YApBuC,OAoBvCA;AApBF,aAqBO;AACL,YACE0K,mBAAmBpiE,wBAAnBoiE,QACAA,mBAAmBpiE,wBAFrB,aAGE;AACA03D,qCADA,CACAA;AALG;;AAOL,YACE0K,mBAAmBpiE,wBAAnBoiE,UACAA,mBAAmBpiE,wBAFrB,aAGE;AACA03D,uCADA,CACAA;AAXG;AAvCoC;;AAsD3C,0BAAoB;AAClB,YAAIiK,QAAQ,0BAA0B,wBADpB,EACN,CAAZ;AACAA,mBAAW;AACT35D,qBAAW0vD,IADF;AAETzuC,WAFS,EAETA,CAFS;AAGTk1C,WAHS,EAGTA,CAHS;AAITgE,kBAJS,EAITA,QAJS;AAKTI,mBALS,EAKTA;AALS,SAAXZ;AAxDyC;AA1rBpB;;AA4vBzB,kCAA8B;AAAA,kCAGH,6DAHG,EAGH,CAHG;AAAA,UAGtB,GAHsB,yBAGpBltE,OAHoB;;AAQ5BijE,qBAR4B,CAQ5BA;AACAA,2BAT4B,EAS5BA;AACA,UAAI/nD,OAAO+nD,+BAViB,IAU5B;AACA,UAAIjgE,UAXwB,KAW5B;;AACA,WAAK,IAAIsG,IAAT,GAAgBA,IAAI4R,KAApB,QAAiC5R,KAAjC,GAAyC;AACvC,YAAI4R,eAAeA,UAAnB,KAAkC;AAChClY,oBADgC,IAChCA;AADgC;AADK;AAZb;;AAkB5B,aAAOwY,mDAlBqB,OAkBrBA,CAAP;AA9wBuB;;AAixBzBjG,cAAU,yCAAyC;AACjD,UAAI8uD,UAAU,KADmC,OACjD;AACA,UAAIxrD,OAAOwrD,QAFsC,IAEjD;;AACA,UAAIxrD,KAAJ,aAAsB;AACpB,eAAO,mBADa,MACb,CAAP;AAJ+C;;AAOjD,UAAI60D,WAAWrJ,QAPkC,QAOjD;;AACA,UAAIqJ,aAAJ,GAAoB;AAClB,eADkB,SAClB;AAT+C;;AAYjD,UAAIzK,MAAM,KAZuC,GAYjD;AACA,UAAI8K,gBAAgB1J,QAb6B,aAajD;AACA,UAAI2J,cAAc3J,QAd+B,WAcjD;AACA,UAAI4J,cAAc5J,QAf+B,WAejD;AACA,UAAI6J,gBAAgB7J,QAhB6B,aAgBjD;AACA,UAAI8J,aAAa9J,qBAjBgC,aAiBjD;AACA,UAAI+J,eAAeC,OAlB8B,MAkBjD;AACA,UAAIC,WAAWz1D,KAnBkC,QAmBjD;AACA,UAAI01D,aAAaD,eAAe,CApBiB,CAoBjD;AACA,UAAIE,kBAAkB31D,KArB2B,eAqBjD;AACA,UAAI41D,oBAAoBf,WAAWrJ,mBAtBc,CAsBdA,CAAnC;AAEA,UAAIqK,iBACFrK,8BAA8B94D,wBAA9B84D,QACA,CAACxrD,KADDwrD,mBAEA,CAACA,QA3B8C,WAwBjD;AAKApB,UA7BiD,IA6BjDA;AACA,UA9BiD,gBA8BjD;;AACA,UAAIoB,QAAJ,aAAyB;AAGvBpB,YAHuB,IAGvBA;AACA,YAAM0L,UAAUtK,kCAJO,IAIPA,CAAhB;AACAuK,2BAAmB3L,IALI,mBAKvB2L;AACA3L,YANuB,OAMvBA;AACAA,wBAPuB,OAOvBA;AAtC+C;;AAwCjDA,+BAAyBoB,QAxCwB,UAwCjDpB;AACAA,oBAAcoB,QAAdpB,GAAyBoB,YAAYA,QAzCY,QAyCjDpB;;AAEA,UAAIiL,gBAAJ,GAAuB;AACrBjL,8BAAsB,CADD,CACrBA;AADF,aAEO;AACLA,8BADK,CACLA;AA9C+C;;AAiDjD,UAAI4L,YAAYxK,QAjDiC,SAiDjD;AACA,UAAIliE,QAAQkiE,QAlDqC,eAkDjD;;AACA,UAAIliE,eAAe0sE,cAAnB,GAAoC;AAClC,YAAIlB,iBACFtJ,4BAA4B94D,wBAFI,gBAClC;;AAEA,YACEoiE,mBAAmBpiE,wBAAnBoiE,UACAA,mBAAmBpiE,wBAFrB,aAGE;AACA,4CADA,IACA;AACAsjE,sBAAY,6BAFZ,gBAEAA;AARgC;AAApC,aAUO;AACLA,qBADK,KACLA;AA9D+C;;AAiEjD,UAAId,kBAAJ,KAA2B;AACzB9K,iCADyB,aACzBA;AACA4L,qBAFyB,aAEzBA;AAnE+C;;AAsEjD5L,sBAtEiD,SAsEjDA;AAEA,UAAIzuC,IAAJ;AAAA,UAxEiD,CAwEjD;;AAEA,WAAKlrB,IAAL,GAAYA,IAAZ,cAA8B,EAA9B,GAAmC;AACjC,YAAIwlE,QAAQT,OADqB,CACrBA,CAAZ;;AACA,YAAIU,iBAAJ,KAAIA,CAAJ,EAAkB;AAChBv6C,eAAM+5C,qBAAD,QAACA,GADU,IAChB/5C;AADgB;AAFe;;AAOjC,YAAIw6C,gBAP6B,KAOjC;AACA,YAAIC,UAAW,+BAAD,CAAC,IARkB,WAQjC;AACA,YAAIC,YAAYJ,MATiB,QASjC;AACA,YAAIK,SAASL,MAVoB,MAUjC;AACA,6CAXiC,aAWjC;AACA,YAAIpvE,QAAQovE,MAZqB,KAYjC;;AACA,sBAAc;AACZ,2BADY,EACZ;AACAM,oBAAUN,iBAFE,eAEZM;AACAC,eAAKP,gBAAgBM,QAAhBN,CAAgBM,CAAhBN,GAA6BpvE,QAHtB,GAGZ2vE;AACAA,eAAK,MAJO,iBAIZA;AACAC,eAAKF,aALO,iBAKZE;AAEA5vE,kBAAQ0vE,UAAU,CAACA,QAAXA,CAAWA,CAAXA,GAPI,KAOZ1vE;AACA6vE,oBAAUF,KARE,aAQZE;AACAC,oBAAW,KAAD,EAAC,IATC,aASZA;AATF,eAUO;AACLD,oBAAU/6C,IADL,aACL+6C;AACAC,oBAFK,CAELA;AAzB+B;;AA4BjC,YAAI32D,kBAAkBnZ,QAAtB,GAAiC;AAI/B,cAAI+vE,gBACAxM,mCAAD,IAACA,GAAF,QAAEA,GAL2B,aAI/B;;AAGA,cAAIvjE,yBAAyB,KAA7B,yBAA2D;AACzD,gBAAIgwE,kBAAkBhwE,QADmC,aACzD;AACAsvE,4BAFyD,IAEzDA;AACA/L,gBAHyD,IAGzDA;AACAA,uCAJyD,CAIzDA;AACAsM,uBALyD,eAKzDA;AALF,iBAMO,IAAI7vE,UAAJ,eAA6B;AAClC6vE,uBACK,SAAD,aAAC,IAAF,IAAE,GAAH,QAAG,GAF6B,aAClCA;AAd6B;AA5BA;;AAiDjC,YAAI,wBAAwB,kBAAkB12D,KAA9C,WAAI,CAAJ,EAAiE;AAC/D,cAAI61D,kBAAkB,CAAtB,QAA+B;AAE7BzL,6CAF6B,OAE7BA;AAFF,iBAGO;AACL,wDADK,gBACL;;AACA,wBAAY;AACV0M,8BACEJ,UAAW7B,WAAWyB,cAAZ,CAACzB,GAFH,aACViC;AAEAC,8BACEJ,UAAW9B,WAAWyB,cAAZ,CAACzB,GAJH,aAGVkC;AAEA,6BACET,OADF,wCALU,gBAKV;AAPG;AAJwD;AAjDhC;;AAsEjC,YAtEiC,SAsEjC;;AACA,sBAAc;AACZU,sBAAYnwE,4BAA4BuvE,UAD5B,aACZY;AADF,eAEO;AACLA,sBAAYnwE,4BAA4BuvE,UADnC,aACLY;AA1E+B;;AA4EjCr7C,aA5EiC,SA4EjCA;;AAEA,2BAAmB;AACjByuC,cADiB,OACjBA;AA/E+B;AA1Ec;;AA4JjD,oBAAc;AACZoB,qBADY,CACZA;AADF,aAEO;AACLA,qBAAa7vC,IADR,UACL6vC;AA/J+C;;AAiKjDpB,UAjKiD,OAiKjDA;AAl7BuB;AAq7BzB6M,mBAAe,8CAA8C;AAE3D,UAAI7M,MAAM,KAFiD,GAE3D;AACA,UAAIoB,UAAU,KAH6C,OAG3D;AACA,UAAIxrD,OAAOwrD,QAJgD,IAI3D;AACA,UAAIqJ,WAAWrJ,QAL4C,QAK3D;AACA,UAAI6J,gBAAgB7J,QANuC,aAM3D;AACA,UAAIkK,aAAa11D,oBAAoB,CAPsB,CAO3D;AACA,UAAIm1D,cAAc3J,QARyC,WAQ3D;AACA,UAAI4J,cAAc5J,QATyC,WAS3D;AACA,UAAI8J,aAAa9J,qBAV0C,aAU3D;AACA,UAAI0L,aAAa1L,sBAX0C,0BAW3D;AACA,UAAI+J,eAAeC,OAZwC,MAY3D;AACA,UAAI2B,kBACF3L,8BAA8B94D,wBAd2B,SAa3D;AAEA,2BAf2D,aAe3D;;AAEA,UAAIykE,mBAAmBtC,aAAvB,GAAuC;AAAA;AAjBoB;;AAoB3D,wCApB2D,IAoB3D;AAEAzK,UAtB2D,IAsB3DA;AACAA,+BAAyBoB,QAvBkC,UAuB3DpB;AACAA,oBAAcoB,QAAdpB,GAAyBoB,QAxBkC,CAwB3DpB;AAEAA,4BA1B2D,aA0B3DA;;AAEA,WAAK35D,IAAL,GAAYA,IAAZ,cAA8B,EAA9B,GAAmC;AACjCwlE,gBAAQT,OADyB,CACzBA,CAARS;;AACA,YAAIC,iBAAJ,KAAIA,CAAJ,EAAkB;AAChBkB,0BAAiB1B,qBAAD,QAACA,GADD,IAChB0B;AACA,4CAFgB,CAEhB;AACA5L,uBAAa4L,gBAHG,UAGhB5L;AAHgB;AAFe;;AASjC,YAAI4K,UAAW,+BAAD,CAAC,IATkB,WASjC;AACA,YAAItT,eAAe9iD,0BAA0Bi2D,MAVZ,cAUdj2D,CAAnB;;AACA,YAAI,CAAJ,cAAmB;AACjBlV,sDAAyBmrE,MADR,cACjBnrE;AADiB;AAXc;;AAejC,YAAI,KAAJ,gBAAyB;AACvB,iCADuB,KACvB;AACA,eAFuB,IAEvB;AACAs/D,8BAHuB,QAGvBA;AACAA,mCAJuB,UAIvBA;AACA,mCALuB,YAKvB;AACA,eANuB,OAMvB;AArB+B;;AAwBjC,YAAIiN,cAAc,0BAAoB,CAACpB,MAAD,SAApB,EAxBe,UAwBf,CAAlB;;AACApvE,gBAAQwwE,4BAzByB,OAyBjCxwE;AAEAujE,6BA3BiC,CA2BjCA;AACAoB,qBAAa3kE,QA5BoB,UA4BjC2kE;AAxDyD;;AA0D3DpB,UA1D2D,OA0D3DA;AACA,6BA3D2D,IA2D3D;AAh/BuB;AAo/BzBttD,kBAAc,qDAAqD,CAp/B1C;AAw/BzBC,2BAAuB,kFAOrB;AAGA,8BAAwBu6D,MAAxB,KAAmCC,MAHnC,GAGA;AACA,WAJA,IAIA;AACA,WALA,OAKA;AApgCuB;AAwgCzBC,uBAAmB,8CAA8C;AAAA;;AAC/D,UAD+D,OAC/D;;AACA,UAAIC,UAAJ,iBAA+B;AAC7B,YAAIC,QAAQD,GADiB,CACjBA,CAAZ;AACA,YAAIE,gBACF,sBAAsB,6BAHK,KAGL,EADxB;AAEA,YAAIC,wBAAwB;AAC1BC,gCAAsBzN,mCAAO;AAC3B,mBAAO,wBAEL,MAFK,YAGL,MAHK,MAIL,MAJK,eAKL,MANyB,YACpB,CAAP;AAFwB;AAAA,SAA5B;AAWA0L,kBAAU,6CAGR,KAHQ,4BAfmB,aAenB,CAAVA;AAfF,aAsBO;AACLA,kBAAUgC,6CADL,EACKA,CAAVhC;AAzB6D;;AA2B/D,aA3B+D,OA2B/D;AAniCuB;AAqiCzB34D,qBAAiB,0CAA0C;AACzD,iCAA2B,uBAD8B,SAC9B,CAA3B;AAtiCuB;AAwiCzBE,mBAAe,wCAAwC;AACrD,+BAAyB,uBAD4B,SAC5B,CAAzB;AACA,iCAFqD,IAErD;AA1iCuB;AA4iCzBG,uBAAmB,mDAAmD;AACpE,UAAIk6D,QAAQl0D,4BADwD,CACxDA,CAAZ;;AACA,6BAFoE,KAEpE;AACA,iCAHoE,KAGpE;AA/iCuB;AAijCzB/F,qBAAiB,iDAAiD;AAChE,UAAIi6D,QAAQl0D,4BADoD,CACpDA,CAAZ;;AACA,2BAFgE,KAEhE;AACA,+BAHgE,KAGhE;AACA,iCAJgE,KAIhE;AArjCuB;AAwjCzB5F,iBAAa,+CAA+C;AAC1D,UAAI,CAAC,KAAL,gBAA0B;AAAA;AADgC;;AAI1D,UAAIwsD,MAAM,KAJgD,GAI1D;AAEA,WAN0D,IAM1D;AACA,UAAI0L,UAAUgC,6CAP4C,SAO5CA,CAAd;AACA1N,sBAAgB0L,8BAR0C,IAQ1CA,CAAhB1L;AAEA,UAAI2N,MAAM3N,IAVgD,0BAU1D;;AACA,eAAS;AACP,YAAIljE,SAASkjE,IADN,MACP;AACA,YAAIvjE,QAAQK,OAFL,KAEP;AACA,YAAIJ,SAASI,OAHN,MAGP;;AAEA,YAAI8wE,KAAK,0BAAoB,MAApB,EALF,GAKE,CAAT;;AACA,YAAIC,KAAK,0BAAoB,WAApB,EANF,GAME,CAAT;;AACA,YAAIC,KAAK,0BAAoB,UAApB,EAPF,GAOE,CAAT;;AACA,YAAIC,KAAK,0BAAoB,eAApB,EARF,GAQE,CAAT;;AAEA,YAAIC,KAAKjvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAVhC,CAUgCA,CAA9BhvE,CAAT;AACA,YAAIkvE,KAAKlvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAXhC,CAWgCA,CAA9BhvE,CAAT;AACA,YAAImvE,KAAKnvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAZhC,CAYgCA,CAA9BhvE,CAAT;AACA,YAAIovE,KAAKpvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAbhC,CAagCA,CAA9BhvE,CAAT;AAEA,kCAA0BmvE,KAA1B,IAAmCC,KAf5B,EAeP;AAfF,aAgBO;AAOL,0BAAkB,CAAlB,MAAyB,CAAzB,YAPK,IAOL;AAlCwD;;AAqC1D,WArC0D,OAqC1D;AA7lCuB;AAimCzB16D,sBAAkB,2CAA2C;AAC3DpX,6BAD2D,kCAC3DA;AAlmCuB;AAomCzBqX,oBAAgB,yCAAyC;AACvDrX,6BADuD,gCACvDA;AArmCuB;AAwmCzB+X,2BAAuB,4DAGrB;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,WAJA,IAIA;AACA,mCAA6B,KAL7B,aAKA;;AAEA,UAAI4I,yBAAyBoxD,kBAA7B,GAAkD;AAChD,mCADgD,MAChD;AARF;;AAWA,2BAAqB,SAXrB,mBAWA;;AAEA,gBAAU;AACR,YAAI3xE,QAAQ4xE,UAAUA,KADd,CACcA,CAAtB;AACA,YAAI3xE,SAAS2xE,UAAUA,KAFf,CAEeA,CAAvB;AACA,sBAAcA,KAAd,CAAcA,CAAd,EAAuBA,KAAvB,CAAuBA,CAAvB,SAHQ,MAGR;AACA,aAJQ,IAIR;AACA,aALQ,OAKR;AAlBF;AA3mCuB;AAioCzBh6D,yBAAqB,8CAA8C;AACjE,UAAI,CAAC,KAAL,gBAA0B;AAAA;AADuC;;AAIjE,WAJiE,OAIjE;AACA,2BAAqB,wBAL4C,GAK5C,EAArB;AAtoCuB;AAyoCzBC,gBAAY,0CAA0C;AACpD,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD0B;;AAKpD,WALoD,IAKpD;AACA,UAAI00D,aAAa,KANmC,GAMpD;;AAcA,UAAI,CAACsF,MAAL,UAAqB;AACnB3oE,wBADmB,oCACnBA;AArBkD;;AA0BpD,UAAI2oE,MAAJ,UAAoB;AAClB5tE,wBADkB,gCAClBA;AA3BkD;;AA8BpD,UAAIuoE,mBAAmBD,WA9B6B,mBA8BpD;;AACA,UAAIsF,MAAJ,QAAkB;AAChBtF,+CAAuCsF,MADvB,MAChBtF;AAhCkD;;AAkCpD,UAAI,CAACsF,MAAL,MAAiB;AACf,cAAM,UADS,2BACT,CAAN;AAnCkD;;AAwCpD,UAAIC,SAASn1D,sCACXk1D,MADWl1D,MAEX4vD,WA1CkD,mBAwCvC5vD,CAAb;;AAKA,UAAIo1D,eAAe,OAGjBxF,kBAHiB,OAIjBA,kBAJiB,OAAnB;AAMAuF,eAASn1D,8CAAwC,YAAjDm1D;AAGA,UAAIpwE,UAAUY,WAAWwvE,OAtD2B,CAsD3BA,CAAXxvE,CAAd;AACA,UAAIX,UAAUW,WAAWwvE,OAvD2B,CAuD3BA,CAAXxvE,CAAd;AACA,UAAI6pE,aAAa7pE,SAASA,UAAUwvE,OAAVxvE,CAAUwvE,CAAVxvE,IAATA,SAxDmC,CAwDnCA,CAAjB;AACA,UAAI8pE,cAAc9pE,SAASA,UAAUwvE,OAAVxvE,CAAUwvE,CAAVxvE,IAATA,SAzDkC,CAyDlCA,CAAlB;AACA,UAAI0vE,SAAJ;AAAA,UACEC,SA3DkD,CA0DpD;;AAEA,UAAI9F,aAAJ,gBAAiC;AAC/B6F,iBAAS7F,aADsB,cAC/B6F;AACA7F,qBAF+B,cAE/BA;AA9DkD;;AAgEpD,UAAIC,cAAJ,gBAAkC;AAChC6F,iBAAS7F,cADuB,cAChC6F;AACA7F,sBAFgC,cAEhCA;AAlEkD;;AAqEpD,UAAIC,UAAU,YAAY,KArE0B,UAqEpD;;AACA,UAAIwF,MAAJ,OAAiB;AAEfxF,mBAAW,YAAa,sBAFT,CAEfA;AAxEkD;;AA0EpD,UAAIC,gBAAgB,gEA1EgC,IA0EhC,CAApB;AAMA,UAAIG,WAAWH,cAhFqC,OAgFpD;AAIAG,qBAAe,IAAfA,QAA2B,IApFyB,MAoFpDA;AACAA,yBAAmB,CAAnBA,SAA6B,CArFuB,OAqFpDA;AACAA,yCAtFoD,gBAsFpDA;;AAEA,UAAIoF,MAAJ,OAAiB;AAEf,6BAAqB;AACnBxxE,kBAAQisE,cADW;AAEnBhsE,mBAFmB;AAGnBoB,iBAHmB,EAGnBA,OAHmB;AAInBC,iBAJmB,EAInBA,OAJmB;AAKnBqwE,gBALmB,EAKnBA,MALmB;AAMnBC,gBANmB,EAMnBA,MANmB;AAOnB9H,mBAAS0H,YAPU;AAQnB3H,oBAAU2H,YARS;AASnB/H,uBAAa+H,2BATM;AAUnBK,iCAVmB;AAAA,SAArB;AAFF,aAcO;AAGL3F,+CAHK,CAGLA;AACAA,sCAJK,OAILA;AACAA,iCALK,MAKLA;AA3GkD;;AA+GpDG,+BA/GoD,QA+GpDA;AACA,iBAhHoD,QAgHpD;AACA,qBAAe,CACb,qBADa,EAEb,SAFa,EAGb,SAHa,CAAf;AAKA,2BAtHoD,UAsHpD;AACA,WAvHoD,UAuHpD;AAGA,iCA1HoD,IA0HpD;AAnwCuB;AAswCzB50D,cAAU,wCAAwC;AAChD,UAAI,CAAC,KAAL,gBAA0B;AAAA;AADsB;;AAIhD,WAJgD,UAIhD;AACA,UAAI20D,WAAW,KALiC,GAKhD;AACA,iBAAW,gBANqC,GAMrC,EAAX;;AAGA,UAAI,mCAAJ,WAAkD;AAChD,yCADgD,KAChD;AADF,aAEO;AACL,4CADK,KACL;AAZ8C;;AAchD,UAAIoF,MAAJ,OAAiB;AACf,yBAAiB,gBADF,GACE,EAAjB;AADF,aAEO;AACL,2BAAmBpF,SAAnB,WADK,CACL;AAjB8C;;AAmBhD,WAnBgD,OAmBhD;AAzxCuB;AA4xCzB10D,sBAAkB,2CAA2C;AAC3D,WAD2D,IAC3D;;AACA,UAAI,KAAJ,eAAwB;AACtB,oCAA4B,KAA5B,KAAsC,KADhB,aACtB;AAHyD;AA5xCpC;AAmyCzBC,oBAAgB,yCAAyC;AACvD,WADuD,OACvD;AApyCuB;AAuyCzBC,qBAAiB,iEAIf;AACA,WADA,IACA;AACAmzD,wBAAkB,KAFlB,GAEAA;AACA,qBAAe,IAHf,gBAGe,EAAf;;AAEA,UAAI7qD,uBAAuB1d,gBAA3B,GAA8C;AAC5C,YAAI7C,QAAQ6C,UAAUA,KADsB,CACtBA,CAAtB;AACA,YAAI5C,SAAS4C,UAAUA,KAFqB,CAErBA,CAAvB;AACA,sBAAcA,KAAd,CAAcA,CAAd,EAAuBA,KAAvB,CAAuBA,CAAvB,SAH4C,MAG5C;AACA,aAJ4C,IAI5C;AACA,aAL4C,OAK5C;AAVF;;AAaA,iCAbA,SAaA;AACA,iCAdA,MAcA;AAzzCuB;AA4zCzBqV,mBAAe,wCAAwC;AACrD,WADqD,OACrD;AA7zCuB;AAg0CzBE,2BAAuB,mDAAmD;AACxE,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD8C;;AAIxE,UAAImrD,MAAM,KAJ8D,GAIxE;AACA,UAAIvjE,QAAQmyE,IAAZ;AAAA,UACElyE,SAASkyE,IAN6D,MAKxE;AAEA,UAAI9E,YAAY,aAPwD,SAOxE;AACA,UAAIC,gBAAgB,aARoD,WAQxE;AAEA,UAAI8B,QAAQ,KAV4D,eAUxE;;AAEA,UAAI5J,iCAAiC4J,mBAArC,WAAmE;AACjE,YAAIpvE,gCAAgCC,UAApC,qBAAmE;AACjEmvE,2BAAiB,kBAAkB;AAAE5zD,kBAAM22D,IAAR;AAAkBnyE,iBAAlB,EAAkBA,KAAlB;AAAyBC,kBAAzB,EAAyBA;AAAzB,WAAlB,CAAjBmvE;AADF,eAEO;AACLA,2BADK,IACLA;AAJ+D;AAZK;;AAoBxE,UAAIA,SAASA,MAAb,UAA6B;AAC3BA,uBAD2B,GAC3BA;AAD2B;AApB2C;;AAyBxE,UAAIgD,aAAa,mDAzBuD,MAyBvD,CAAjB;AAKA,UAAI5H,UAAU4H,WA9B0D,OA8BxE;AACA5H,cA/BwE,IA+BxEA;AAEA6H,kCAjCwE,GAiCxEA;AAEA7H,yCAnCwE,WAmCxEA;AAEAA,0BAAoB8C,gBAChBD,8BADgBC,IAChBD,CADgBC,GArCoD,SAqCxE9C;AAGAA,oCAxCwE,MAwCxEA;AAEAA,cA1CwE,OA0CxEA;AAEA,mCAA6B4H,WA5C2C,MA4CxE;AA52CuB;AA+2CzB15D,+BA/2CyB,uCA+2CzBA,OA/2CyB,EA+2CzBA,MA/2CyB,EAs3CvB;AAAA,UAJA45D,KAIA,uEAPF55D,CAOE;AAAA,UAHA65D,KAGA,uEAPF75D,CAOE;AAAA,UAPFA,MAOE;AAAA,UAPFA,SAOE;;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,UAAI1Y,QAAQqmE,QAJZ,KAIA;AACA,UAAIpmE,SAASomE,QALb,MAKA;AACA,UAAIgH,YAAY,aANhB,SAMA;AACA,UAAIC,gBAAgB,aAPpB,WAOA;AAEA,UAAI8E,aAAa,mDATjB,MASiB,CAAjB;AAKA,UAAI5H,UAAU4H,WAdd,OAcA;AACA5H,cAfA,IAeAA;AAEA6H,kCAjBA,OAiBAA;AAEA7H,yCAnBA,WAmBAA;AAEAA,0BAAoB8C,gBAChBD,8BADgBC,IAChBD,CADgBC,GArBpB,SAqBA9C;AAGAA,oCAxBA,MAwBAA;AAEAA,cA1BA,OA0BAA;AAEA,UAAIjH,MAAM,KA5BV,GA4BA;;AACA,WAAK,IAAI35D,IAAJ,GAAWkV,KAAK0zD,UAArB,QAAuC5oE,IAAvC,IAA+CA,KAA/C,GAAuD;AACrD25D,YADqD,IACrDA;AACAA,oDAKEiP,UALFjP,CAKEiP,CALFjP,EAMEiP,UAAU5oE,IARyC,CAQnD4oE,CANFjP;AAQAA,qBAAa,CAVwC,CAUrDA;AACAA,sBAAc6O,WAAd7O,gCAAyD,CAAzDA,MAXqD,CAWrDA;AACAA,YAZqD,OAYrDA;AAzCF;AAt3CuB;AAm6CzBlrD,gCAA4B,2DAE1B;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,UAAIkrD,MAAM,KAJV,GAIA;AAEA,UAAI8J,YAAY,aANhB,SAMA;AACA,UAAIC,gBAAgB,aAPpB,WAOA;;AACA,WAAK,IAAI1jE,IAAJ,GAAWkV,KAAK2zD,OAArB,QAAoC7oE,IAApC,IAA4CA,CAA5C,IAAiD;AAC/C,YAAI8oE,QAAQD,OADmC,CACnCA,CAAZ;AACA,YAAIzyE,QAAQ0yE,MAAZ;AAAA,YACEzyE,SAASyyE,MAHoC,MAE/C;AAGA,YAAIN,aAAa,mDAL8B,MAK9B,CAAjB;AAKA,YAAI5H,UAAU4H,WAViC,OAU/C;AACA5H,gBAX+C,IAW/CA;AAEA6H,oCAb+C,KAa/CA;AAEA7H,2CAf+C,WAe/CA;AAEAA,4BAAoB8C,gBAChBD,8BADgBC,IAChBD,CADgBC,GAjB2B,SAiB/C9C;AAGAA,sCApB+C,MAoB/CA;AAEAA,gBAtB+C,OAsB/CA;AAEAjH,YAxB+C,IAwB/CA;AACAA,iCAAyBmP,MAzBsB,SAyB/CnP;AACAA,qBAAa,CA1BkC,CA0B/CA;AACAA,sBAAc6O,WAAd7O,gCAAyD,CAAzDA,MA3B+C,CA2B/CA;AACAA,YA5B+C,OA4B/CA;AApCF;AAr6CuB;AA68CzBjrD,uBAAmB,iDAAiD;AAClE,UAAI,CAAC,KAAL,gBAA0B;AAAA;AADwC;;AAIlE,UAAM+tD,UAAUsM,yBACZ,oBADYA,KACZ,CADYA,GAEZ,cAN8D,KAM9D,CAFJ;;AAGA,UAAI,CAAJ,SAAc;AACZ1uE,wBADY,iCACZA;AADY;AAPoD;;AAYlE,mCAZkE,OAYlE;AAz9CuB;AA49CzBwU,6BAAyB,kFAKvB;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,UAAM4tD,UAAUsM,yBACZ,oBADYA,KACZ,CADYA,GAEZ,cANJ,KAMI,CAFJ;;AAGA,UAAI,CAAJ,SAAc;AACZ1uE,wBADY,iCACZA;AADY;AAPd;;AAYA,UAAIjE,QAAQqmE,QAZZ,KAYA;AACA,UAAIpmE,SAASomE,QAbb,MAaA;AACA,UAAItmB,MAdJ,EAcA;;AACA,WAAK,IAAIn2C,IAAJ,GAAWkV,KAAK0zD,UAArB,QAAuC5oE,IAAvC,IAA+CA,KAA/C,GAAuD;AACrDm2C,iBAAS;AACPlsC,qBAAW,uBAAuB2+D,UAAvB,CAAuBA,CAAvB,EAAqCA,UAAU5oE,IAA/C,CAAqC4oE,CAArC,CADJ;AAEP19C,aAFO;AAGPk1C,aAHO;AAIP4I,aAJO;AAKPC,aALO;AAAA,SAAT9yB;AAhBF;;AAwBA,iDAxBA,GAwBA;AAz/CuB;AA4/CzBxnC,6BAAyB,yDAEvB;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,UAAIvY,QAAQqmE,QAJZ,KAIA;AACA,UAAIpmE,SAASomE,QALb,MAKA;AACA,UAAI9C,MAAM,KANV,GAMA;AAEA,WARA,IAQA;AAEAA,gBAAU,IAAVA,OAAqB,KAVrB,MAUAA;AAEA,UAAIiJ,mBAAmBjJ,IAZvB,0BAYA;AACA,UAAIrmD,IAAIsvD,iBAAR,CAAQA,CAAR;AAAA,UACErvD,IAAIqvD,iBAdN,CAcMA,CADN;AAEA,UAAIsG,aAAaxwE,SAASA,UAAU4a,QAAQC,IAA3B7a,CAASA,CAATA,EAfjB,CAeiBA,CAAjB;AACA,UAAI8a,IAAIovD,iBAAR,CAAQA,CAAR;AAAA,UACE/vD,IAAI+vD,iBAjBN,CAiBMA,CADN;AAEA,UAAIuG,cAAczwE,SAASA,UAAU8a,QAAQX,IAA3Bna,CAASA,CAATA,EAlBlB,CAkBkBA,CAAlB;AAEA,sBApBA,SAoBA;;AAEA,UACG,qCAAqC+jE,mBAAtC,WAAC,IACD,CAACA,QAFH,MAGE;AACA2M,qBADA,OACAA;AAJF,aAKO;AACLC,oBAAY,oDADP,MACO,CAAZA;AACA,YAAIC,SAASD,UAFR,OAEL;AACAE,4CAAoC,aAH/B,YAGLA;AACAH,qBAAaC,UAJR,MAILD;AA/BF;;AAkCA,UAAII,aAAJ;AAAA,UACEC,cAnCF,MAkCA;AAEA,UAAIC,cApCJ,WAoCA;;AAIA,aACGR,kBAAkBM,aAAnB,CAACN,IACAC,mBAAmBM,cAFtB,GAGE;AACA,YAAIE,WAAJ;AAAA,YACEC,YAFF,WACA;;AAEA,YAAIV,kBAAkBM,aAAtB,GAAsC;AACpCG,qBAAWjxE,UAAU8wE,aADe,CACzB9wE,CAAXixE;AACAT,wBAAcM,aAFsB,QAEpCN;AALF;;AAOA,YAAIC,mBAAmBM,cAAvB,GAAwC;AACtCG,sBAAYlxE,UAAU+wE,cADgB,CAC1B/wE,CAAZkxE;AACAT,yBAAeM,cAFuB,SAEtCN;AATF;;AAWAE,oBAAY,qDAXZ,SAWY,CAAZA;AAKAC,iBAASD,UAhBT,OAgBAC;AACAA,yCAjBA,SAiBAA;AACAA,oFAlBA,SAkBAA;AAWAF,qBAAaC,UA7Bb,MA6BAD;AACAI,qBA9BA,QA8BAA;AACAC,sBA/BA,SA+BAA;AACAC,sBAAcA,4CAhCd,WAgCAA;AA3EF;;AA6EA/P,kEAOE,CAPFA,eA7EA,MA6EAA;;AAYA,UAAI,KAAJ,YAAqB;AACnB,YAAIt0C,WAAW,0BAA0B,CADtB,MACJ,CAAf;AACA,oCAA4B;AAC1Bo3C,iBAD0B,EAC1BA,OAD0B;AAE1BoN,gBAAMxkD,SAFoB,CAEpBA,CAFoB;AAG1BykD,eAAKzkD,SAHqB,CAGrBA,CAHqB;AAI1BjvB,iBAAOA,QAAQwsE,iBAJW,CAIXA,CAJW;AAK1BvsE,kBAAQA,SAASusE,iBALS,CAKTA;AALS,SAA5B;AA3FF;;AAmGA,WAnGA,OAmGA;AAjmDuB;AAomDzBh0D,kCAA8B,mEAG5B;AACA,UAAI,CAAC,KAAL,gBAA0B;AAAA;AAD1B;;AAIA,UAAI+qD,MAAM,KAJV,GAIA;AACA,UAAIqP,IAAIvM,QALR,KAKA;AACA,UAAIwM,IAAIxM,QANR,MAMA;AAEA,UAAI4M,YAAY,gDARhB,CAQgB,CAAhB;AACA,UAAIC,SAASD,UATb,OASA;AACAE,0CAAoC,aAVpC,YAUAA;;AAEA,WAAK,IAAIvpE,IAAJ,GAAWkV,KAAKihC,IAArB,QAAiCn2C,IAAjC,IAAyCA,CAAzC,IAA8C;AAC5C,YAAIT,QAAQ42C,IADgC,CAChCA,CAAZ;AACAwjB,YAF4C,IAE5CA;AACAA,iCAAyBp6D,MAHmB,SAG5Co6D;AACAA,qBAAa,CAJ+B,CAI5CA;AACAA,sBACE0P,UADF1P,QAEEp6D,MAFFo6D,GAGEp6D,MAHFo6D,GAIEp6D,MAJFo6D,GAKEp6D,MALFo6D,MAOE,CAPFA,MAL4C,CAK5CA;;AAWA,YAAI,KAAJ,YAAqB;AACnB,cAAIt0C,WAAW,uBAAuB9lB,MAAvB,GAAgCA,MAD5B,CACJ,CAAf;AACA,sCAA4B;AAC1Bk9D,mBAD0B,EAC1BA,OAD0B;AAE1BoN,kBAAMxkD,SAFoB,CAEpBA,CAFoB;AAG1BykD,iBAAKzkD,SAHqB,CAGrBA,CAHqB;AAI1BjvB,mBAJ0B;AAK1BC,oBAL0B;AAAA,WAA5B;AAlB0C;;AA0B5CsjE,YA1B4C,OA0B5CA;AAtCF;AAvmDuB;AAipDzB5qD,8BAA0B,mDAAmD;AAC3E,UAAI,CAAC,KAAL,gBAA0B;AAAA;AADiD;;AAI3E,iCAJ2E,CAI3E;AArpDuB;AA0pDzBvB,eAAW,uCAAuC,CA1pDzB;AA6pDzBC,oBAAgB,wDAAwD,CA7pD/C;AAgqDzBC,wBAAoB,gDAAgD;AAClE,mCAA6B;AAC3Bq8D,iBAFgE;AACrC,OAA7B;AAjqDuB;AAqqDzBp8D,6BAAyB,iEAGvB;AACA,UAAIub,QAAJ,MAAkB;AAChB,qCAA6B;AAC3B6gD,mBAAS,qCAFK,UAEL;AADkB,SAA7B;AADF,aAIO;AACL,qCAA6B;AAC3BA,mBAFG;AACwB,SAA7B;AANF;;AAUA,4BAAsB,KAVtB,gBAUsB,EAAtB;AAlrDuB;AAorDzBn8D,sBAAkB,2CAA2C;AAC3D,8BAD2D,GAC3D;AACA,4BAAsB,KAFqC,gBAErC,EAAtB;AAtrDuB;AA2rDzBC,iBAAa,sCAAsC,CA3rD1B;AA8rDzBC,eAAW,oCAAoC,CA9rDtB;AAosDzBy1D,iBAAa,sCAAsC;AACjD,UAAI5J,MAAM,KADuC,GACjD;;AACA,UAAI,KAAJ,aAAsB;AACpB,YAAI,qBAAJ,SAAkC;AAChCA,mBADgC,SAChCA;AADF,eAEO;AACLA,cADK,IACLA;AAJkB;;AAMpB,2BANoB,IAMpB;AAR+C;;AAUjDA,UAViD,SAUjDA;AA9sDuB;AAgtDzBqQ,uBAhtDyB,+BAgtDzBA,KAhtDyB,EAgtDE;AACzB,UAAI,oCAAJ,MAA8C;AAC5C,YAAMC,UAAU,SAD4B,0BAC5C;AAEA,0CAAkCvxE,UAChCA,SACEuxE,aAAaA,QAAbA,CAAaA,CAAbA,GAA0BA,aAAaA,QADzCvxE,CACyCuxE,CADzCvxE,EAEEuxE,aAAaA,QAAbA,CAAaA,CAAbA,GAA0BA,aAAaA,QANC,CAMDA,CAFzCvxE,CADgCA,CAAlC;AAJuB;;AAWzB,aAAO,KAXkB,0BAWzB;AA3tDuB;AA6tDzBwxE,uBAAmB,gDAAgD;AACjE,UAAIjgE,YAAY,SADiD,mBACjE;AACA,aAAO,CACLA,mBAAmBA,eAAnBA,IAAsCA,UADjC,CACiCA,CADjC,EAELA,mBAAmBA,eAAnBA,IAAsCA,UAFjC,CAEiCA,CAFjC,CAAP;AA/tDuB;AAquDzBkgE,sBAAkB,2CAA2C;AAC3D,WAAK,IAAInqE,IAAI,iCAAb,GAAiDA,KAAjD,GAAyDA,CAAzD,IAA8D;AAC5D,YAAI,CAAC,2BAAL,SAAyC;AACvC,iBADuC,KACvC;AAF0D;AADH;;AAM3D,aAN2D,IAM3D;AA3uDuB;AAAA,GAA3B+9D;;AA+uDA,4BAAoB;AAClBA,6BAAyB10D,UAAzB00D,EAAyB10D,CAAzB00D,IAAoCA,yBADlB,EACkBA,CAApCA;AAjrEmD;;AAorErD,SAprEqD,cAorErD;AAxmFF,CAobsB,EAAtB;;;;;;;;;;;;;;;;;ACraA;;AAEA,IAAIqM,aAjBJ,EAiBA;;AAEA,qCAAqC;AACnC,MAAI,SAAS,kBAAb,aAA4C;AAAA;AADT;;AAInC,MAAMh0E,QAAQ4xE,UAAUA,KAJW,CAIXA,CAAxB;AACA,MAAM3xE,SAAS2xE,UAAUA,KALU,CAKVA,CAAzB;AACA,MAAMqC,SAAS,IANoB,MAMpB,EAAf;AACAA,cAAYrC,KAAZqC,CAAYrC,CAAZqC,EAAqBrC,KAArBqC,CAAqBrC,CAArBqC,SAPmC,MAOnCA;AACA1Q,WARmC,MAQnCA;AA3BF;;AA8BAyQ,yBAAyB;AACvBE,UAAQ,iCAAiC;AACvC,QAAIrtE,OAAOstE,IAD4B,CAC5BA,CAAX;AACA,QAAIvC,OAAOuC,IAF4B,CAE5BA,CAAX;AACA,QAAIC,aAAaD,IAHsB,CAGtBA,CAAjB;AACA,QAAIjN,KAAKiN,IAJ8B,CAI9BA,CAAT;AACA,QAAIz3D,KAAKy3D,IAL8B,CAK9BA,CAAT;AACA,QAAIzK,KAAKyK,IAN8B,CAM9BA,CAAT;AACA,QAAIE,KAAKF,IAP8B,CAO9BA,CAAT;AACA,WAAO;AACLttE,YADK;AAELytE,kBAAY,qCAAqC;AAC/CC,8BAD+C,IAC/CA;AACA,YAF+C,IAE/C;;AACA,YAAI1tE,SAAJ,SAAsB;AACpB2tE,iBAAOjR,yBAAyB2D,GAAzB3D,CAAyB2D,CAAzB3D,EAAgC2D,GAAhC3D,CAAgC2D,CAAhC3D,EAAuC7mD,GAAvC6mD,CAAuC7mD,CAAvC6mD,EAA8C7mD,GADjC,CACiCA,CAA9C6mD,CAAPiR;AADF,eAEO,IAAI3tE,SAAJ,UAAuB;AAC5B2tE,iBAAOjR,yBAAyB2D,GAAzB3D,CAAyB2D,CAAzB3D,EAAgC2D,GAAhC3D,CAAgC2D,CAAhC3D,MAA2C7mD,GAA3C6mD,CAA2C7mD,CAA3C6mD,EAAkD7mD,GAAlD6mD,CAAkD7mD,CAAlD6mD,EADqB,EACrBA,CAAPiR;AAN6C;;AAS/C,aAAK,IAAI5qE,IAAJ,GAAWkV,KAAKs1D,WAArB,QAAwCxqE,IAAxC,IAAgD,EAAhD,GAAqD;AACnD,cAAIwT,IAAIg3D,WAD2C,CAC3CA,CAAR;AACAI,4BAAkBp3D,EAAlBo3D,CAAkBp3D,CAAlBo3D,EAAwBp3D,EAF2B,CAE3BA,CAAxBo3D;AAX6C;;AAa/C,eAb+C,IAa/C;AAfG;AAAA,KAAP;AATqB;AAAA,CAAzBR;;AA8BA,IAAIS,mBAAoB,mCAAmC;AACzD,+DAA6D;AAE3D,QAAIxN,SAAS3mE,QAAb;AAAA,QACEo0E,SAASp0E,QAHgD,MAE3D;AAEA,QAAIua,QAAQW,KAAZ;AAAA,QACEm5D,UAAUn5D,aAL+C,CAI3D;AAEA,QAN2D,GAM3D;;AACA,QAAIyrD,OAAOvqD,KAAPuqD,KAAiBA,OAAOrqD,KAA5B,CAAqBqqD,CAArB,EAAqC;AACnC2N,YADmC,EACnCA;AACAl4D,WAFmC,EAEnCA;AACAE,WAHmC,GAGnCA;AACAg4D,YAJmC,EAInCA;AACAC,WALmC,EAKnCA;AACAC,WANmC,GAMnCA;AAbyD;;AAe3D,QAAI7N,OAAOrqD,KAAPqqD,KAAiBA,OAAOnqD,KAA5B,CAAqBmqD,CAArB,EAAqC;AACnC2N,YADmC,EACnCA;AACAh4D,WAFmC,EAEnCA;AACAE,WAHmC,GAGnCA;AACA83D,YAJmC,EAInCA;AACAE,WALmC,EAKnCA;AACAC,WANmC,GAMnCA;AArByD;;AAuB3D,QAAI9N,OAAOvqD,KAAPuqD,KAAiBA,OAAOrqD,KAA5B,CAAqBqqD,CAArB,EAAqC;AACnC2N,YADmC,EACnCA;AACAl4D,WAFmC,EAEnCA;AACAE,WAHmC,GAGnCA;AACAg4D,YAJmC,EAInCA;AACAC,WALmC,EAKnCA;AACAC,WANmC,GAMnCA;AA7ByD;;AA+B3D,QAAIrD,KAAM,cAAanxE,QAAd,OAAC,IAAgCA,QA/BiB,MA+B3D;AACA,QAAIoxE,KAAM,QAAOh1D,KAAP,KAAiBpc,QAAlB,OAAC,IAAoCA,QAhCa,MAgC3D;AACA,QAAI00E,KAAM,cAAa10E,QAAd,OAAC,IAAgCA,QAjCiB,MAiC3D;AACA,QAAI20E,KAAM,QAAOr4D,KAAP,KAAiBtc,QAAlB,OAAC,IAAoCA,QAlCa,MAkC3D;AACA,QAAI40E,KAAM,cAAa50E,QAAd,OAAC,IAAgCA,QAnCiB,MAmC3D;AACA,QAAI60E,KAAM,QAAOr4D,KAAP,KAAiBxc,QAAlB,OAAC,IAAoCA,QApCa,MAoC3D;;AACA,QAAIoxE,MAAJ,IAAc;AAAA;AArC6C;;AAwC3D,QAAI0D,MAAMV,OAAV,EAAUA,CAAV;AAAA,QACEW,MAAMX,OAAOG,KADf,CACQH,CADR;AAAA,QAEEY,MAAMZ,OAAOG,KA1C4C,CA0CnDH,CAFR;AAGA,QAAIa,MAAMb,OAAV,EAAUA,CAAV;AAAA,QACEc,MAAMd,OAAOI,KADf,CACQJ,CADR;AAAA,QAEEe,MAAMf,OAAOI,KA7C4C,CA6CnDJ,CAFR;AAGA,QAAIgB,MAAMhB,OAAV,EAAUA,CAAV;AAAA,QACEiB,MAAMjB,OAAOK,KADf,CACQL,CADR;AAAA,QAEEkB,MAAMlB,OAAOK,KAhD4C,CAgDnDL,CAFR;AAIA,QAAImB,OAAOvzE,WAAX,EAAWA,CAAX;AAAA,QACEwzE,OAAOxzE,WAnDkD,EAmDlDA,CADT;AAEA,sBApD2D,GAoD3D;AACA,sBArD2D,GAqD3D;;AACA,SAAK,IAAI0nE,IAAT,MAAmBA,KAAnB,MAA8BA,CAA9B,IAAmC;AACjC,UAAIA,IAAJ,IAAY;AACV,YAAI51C,EADM,SACV;;AACA,YAAI41C,IAAJ,IAAY;AACV51C,eADU,CACVA;AADF,eAEO,IAAIs9C,OAAJ,IAAe;AACpBt9C,eADoB,CACpBA;AADK,eAEA;AACLA,eAAK,MAAD,CAAC,KAAW,KADX,EACA,CAALA;AAPQ;;AASV2hD,aAAKtE,KAAM,MAAD,EAAC,IATD,EASVsE;AACAC,cAAMZ,MAAO,OAAD,GAAC,IAVH,EAUVY;AACAC,cAAMZ,MAAO,OAAD,GAAC,IAXH,EAWVY;AACAC,cAAMZ,MAAO,OAAD,GAAC,IAZH,EAYVY;AAZF,aAaO;AACL,YAAI9hD,GADC,SACL;;AACA,YAAI41C,IAAJ,IAAY;AACV51C,gBADU,CACVA;AADF,eAEO,IAAI6gD,OAAJ,IAAe;AACpB7gD,gBADoB,CACpBA;AADK,eAEA;AACLA,gBAAK,MAAD,CAAC,KAAW,KADX,EACA,CAALA;AAPG;;AASL2hD,aAAKf,KAAM,MAAD,EAAC,IATN,GASLe;AACAC,cAAMT,MAAO,OAAD,GAAC,IAVR,GAULS;AACAC,cAAMT,MAAO,OAAD,GAAC,IAXR,GAWLS;AACAC,cAAMT,MAAO,OAAD,GAAC,IAZR,GAYLS;AA1B+B;;AA6BjC,UAAI9hD,CA7B6B,SA6BjC;;AACA,UAAI41C,IAAJ,IAAY;AACV51C,YADU,CACVA;AADF,aAEO,IAAI41C,IAAJ,IAAY;AACjB51C,YADiB,CACjBA;AADK,aAEA;AACLA,YAAK,MAAD,CAAC,KAAW,KADX,EACA,CAALA;AAnC+B;;AAqCjC+hD,WAAK1E,KAAM,MAAD,EAAC,IArCsB,CAqCjC0E;AACAC,YAAMhB,MAAO,OAAD,GAAC,IAtCoB,CAsCjCgB;AACAC,YAAMhB,MAAO,OAAD,GAAC,IAvCoB,CAuCjCgB;AACAC,YAAMhB,MAAO,OAAD,GAAC,IAxCoB,CAwCjCgB;AACA,UAAIC,MAAMj0E,WAAWA,aAzCY,EAyCZA,CAAXA,CAAV;AACA,UAAIk0E,MAAMl0E,WAAWA,aA1CY,EA0CZA,CAAXA,CAAV;AACA,UAAIwxB,IAAI6gD,cAAc4B,MA3CW,CA2CjC;;AACA,WAAK,IAAIzhD,IAAT,KAAkBA,KAAlB,KAA4BA,CAA5B,IAAiC;AAC/BV,YAAK,MAAD,CAAC,KAAW,KADe,EAC1B,CAALA;;AACA,YAAIA,IAAJ,GAAW;AACTA,cADS,CACTA;AADF,eAEO,IAAIA,IAAJ,GAAW;AAChBA,cADgB,CAChBA;AAL6B;;AAO/BvZ,cAAMiZ,CAANjZ,MAAcm7D,MAAO,OAAD,GAAC,IAAR,CAACA,GAPiB,CAO/Bn7D;AACAA,cAAMiZ,CAANjZ,MAAco7D,MAAO,OAAD,GAAC,IAAR,CAACA,GARiB,CAQ/Bp7D;AACAA,cAAMiZ,CAANjZ,MAAcq7D,MAAO,OAAD,GAAC,IAAR,CAACA,GATiB,CAS/Br7D;AACAA,cAAMiZ,CAANjZ,MAV+B,GAU/BA;AAtD+B;AAtDwB;AADJ;;AAkHzD,6CAA2C;AACzC,QAAI47D,KAAKC,OADgC,MACzC;AACA,QAAIC,KAAKD,OAFgC,MAEzC;AACA,WAHyC,EAGzC;;AACA,YAAQA,OAAR;AACE;AACE,YAAIE,iBAAiBF,OADvB,cACE;AACA,YAAIG,OAAOv0E,WAAWm0E,YAAXn0E,kBAFb,CAEE;AACA,YAAIw0E,OAAOF,iBAHb,CAGE;;AACA,aAAKhtE,IAAL,GAAYA,IAAZ,MAAsBA,CAAtB,IAA2B;AACzB,cAAIkjC,IAAIljC,IADiB,cACzB;;AACA,eAAK,IAAIkqB,IAAT,GAAgBA,IAAhB,MAA0BA,KAAKgZ,CAA/B,IAAoC;AAClCiqC,wCAGEN,GAHFM,CAGEN,CAHFM,EAIEN,GAAG3pC,IAJLiqC,CAIEN,CAJFM,EAKEN,GAAG3pC,IALLiqC,cAKEN,CALFM,EAMEJ,GANFI,CAMEJ,CANFI,EAOEJ,GAAG7pC,IAPLiqC,CAOEJ,CAPFI,EAQEJ,GAAG7pC,IAT6B,cAShC6pC,CARFI;AAUAA,wCAGEN,GAAG3pC,qBAHLiqC,CAGEN,CAHFM,EAIEN,GAAG3pC,IAJLiqC,CAIEN,CAJFM,EAKEN,GAAG3pC,IALLiqC,cAKEN,CALFM,EAMEJ,GAAG7pC,qBANLiqC,CAMEJ,CANFI,EAOEJ,GAAG7pC,IAPLiqC,CAOEJ,CAPFI,EAQEJ,GAAG7pC,IAnB6B,cAmBhC6pC,CARFI;AAbuB;AAJ7B;;AADF;;AA+BE;AACE,aAAKntE,OAAOkV,KAAK23D,GAAjB,QAA4B7sE,IAA5B,IAAoCA,KAApC,GAA4C;AAC1CmtE,sCAGEN,GAHFM,CAGEN,CAHFM,EAIEN,GAAG7sE,IAJLmtE,CAIEN,CAJFM,EAKEN,GAAG7sE,IALLmtE,CAKEN,CALFM,EAMEJ,GANFI,CAMEJ,CANFI,EAOEJ,GAAG/sE,IAPLmtE,CAOEJ,CAPFI,EAQEJ,GAAG/sE,IATqC,CASxC+sE,CARFI;AAFJ;;AA/BF;;AA6CE;AACE,cAAM,UA9CV,gBA8CU,CAAN;AA9CJ;AAtHuD;;AAyKzD,2HASE;AAGA,QAAIC,iBAHJ,GAGA;AAEA,QAAIC,mBALJ,IAKA;AAGA,QAAIC,cARJ,CAQA;AAEA,QAAIx1E,UAAUY,WAAWwvE,OAVzB,CAUyBA,CAAXxvE,CAAd;AACA,QAAIX,UAAUW,WAAWwvE,OAXzB,CAWyBA,CAAXxvE,CAAd;AACA,QAAI60E,cAAc70E,UAAUwvE,OAAVxvE,CAAUwvE,CAAVxvE,IAZlB,OAYA;AACA,QAAI80E,eAAe90E,UAAUwvE,OAAVxvE,CAAUwvE,CAAVxvE,IAbnB,OAaA;AAEA,QAAItC,QAAQsC,SACVA,UAAUA,SAAS60E,cAAcE,cAAdF,CAAcE,CAAdF,GADT70E,cACAA,CAAVA,CADUA,EAfZ,gBAeYA,CAAZ;AAIA,QAAIrC,SAASqC,SACXA,UAAUA,SAAS80E,eAAeC,cAAfD,CAAeC,CAAfD,GADR90E,cACDA,CAAVA,CADWA,EAnBb,gBAmBaA,CAAb;AAIA,QAAI0vE,SAASmF,cAvBb,KAuBA;AACA,QAAIlF,SAASmF,eAxBb,MAwBA;AAEA,QAAI92E,UAAU;AACZ2mE,YADY,EACZA,MADY;AAEZyN,YAFY,EAEZA,MAFY;AAGZhzE,eAAS,CAHG;AAIZC,eAAS,CAJG;AAKZqwE,cAAQ,IALI;AAMZC,cAAQ,IANI;AAAA,KAAd;AASA,QAAIqF,cAAct3E,QAAQk3E,cAnC1B,CAmCA;AACA,QAAIK,eAAet3E,SAASi3E,cApC5B,CAoCA;AAEA,8BAtCA,EAsCA;;AACA,QAAI5b,aAAJ,WAA4B;AAC1Bj7D,eAAS,yBAAyB;AAChCL,aADgC,EAChCA,KADgC;AAEhCC,cAFgC,EAEhCA,MAFgC;AAGhCu3E,uBAHgC,EAGhCA,eAHgC;AAIhCC,eAJgC,EAIhCA,OAJgC;AAKhCn3E,eALgC,EAKhCA;AALgC,OAAzB,CAATD;AAQA4yE,kBAAYyE,4DATc,KASdA,CAAZzE;AAMAA,uDAf0B,WAe1BA;AACA5yE,eAAS4yE,UAhBiB,MAgB1B5yE;AAhBF,WAiBO;AACL4yE,kBAAYyE,4DADP,KACOA,CAAZzE;AAMA,UAAIC,SAASD,UAPR,OAOL;AAEA,UAAIz3D,OAAO03D,8BATN,MASMA,CAAX;;AACA,2BAAqB;AACnB,YAAIr4D,QAAQW,KADO,IACnB;;AACA,aAAK5R,OAAOkV,KAAKjE,MAAjB,QAA+BjR,IAA/B,IAAuCA,KAAvC,GAA+C;AAC7CiR,qBAAW28D,gBADkC,CAClCA,CAAX38D;AACAA,gBAAMjR,IAANiR,KAAe28D,gBAF8B,CAE9BA,CAAf38D;AACAA,gBAAMjR,IAANiR,KAAe28D,gBAH8B,CAG9BA,CAAf38D;AACAA,gBAAMjR,IAANiR,KAJ6C,GAI7CA;AANiB;AAVhB;;AAmBL,WAAKjR,IAAL,GAAYA,IAAI6tE,QAAhB,QAAgC7tE,CAAhC,IAAqC;AACnC+tE,yBAAiBF,QAAjBE,CAAiBF,CAAjBE,EADmC,OACnCA;AApBG;;AAsBLzE,6CAtBK,WAsBLA;AACA7yE,eAAS4yE,UAvBJ,MAuBL5yE;AA/EF;;AAkFA,WAAO;AACLA,YADK,EACLA,MADK;AAELqB,eAASA,UAAUw1E,cAFd;AAGLv1E,eAASA,UAAUu1E,cAHd;AAILlF,YAJK,EAILA,MAJK;AAKLC,YALK,EAKLA;AALK,KAAP;AApQuD;;AA4QzD,SA5QyD,gBA4QzD;AAxUF,CA4DwB,EAAxB;;AA+QA+B,kBAAkB;AAChBE,UAAQ,0BAA0B;AAEhC,QAAIjN,SAASkN,IAFmB,CAEnBA,CAAb;AACA,QAAIO,SAASP,IAHmB,CAGnBA,CAAb;AACA,QAAIsD,UAAUtD,IAJkB,CAIlBA,CAAd;AACA,QAAIrC,SAASqC,IALmB,CAKnBA,CAAb;AACA,QAAIxC,SAASwC,IANmB,CAMnBA,CAAb;AACA,QAAIvC,OAAOuC,IAPqB,CAOrBA,CAAX;AACA,QAAIrZ,aAAaqZ,IARe,CAQfA,CAAjB;AACA,WAAO;AACLttE,YADK;AAELytE,kBAAY,kDAAkD;AAC5DC,8BAD4D,IAC5DA;AACA,YAF4D,KAE5D;;AACA,yBAAiB;AACf9xE,kBAAQka,yCAAmC4mD,IAD5B,mBACP5mD,CAARla;AADF,eAEO;AAELA,kBAAQka,yCAAmCi7D,MAFtC,aAEGj7D,CAARla;;AACA,sBAAY;AACV,gBAAIo1E,cAAcl7D,yCADR,MACQA,CAAlB;;AACAla,oBAAQ,CAACA,WAAWo1E,YAAZ,CAAYA,CAAZ,EAA4Bp1E,WAAWo1E,YAAvC,CAAuCA,CAAvC,CAARp1E;AALG;AALqD;;AAgB5D,YAAIq1E,yBAAyBrD,yDAM3B19D,qBAN2B09D,YAO3BmD,MAP2BnD,gBAQ3BmD,MAxB0D,YAgB/BnD,CAA7B;;AAWA,YAAI,CAAJ,aAAkB;AAChBlR,sCAA4BqU,MADZ,aAChBrU;;AACA,sBAAY;AACVA,qCADU,MACVA;AAHc;AA3B0C;;AAkC5DA,sBACEuU,uBADFvU,SAEEuU,uBApC0D,OAkC5DvU;AAIAA,kBAAUuU,uBAAVvU,QAAyCuU,uBAtCmB,MAsC5DvU;AAEA,eAAOA,kBAAkBuU,uBAAlBvU,QAxCqD,WAwCrDA,CAAP;AA1CG;AAAA,KAAP;AAVc;AAAA,CAAlByQ;AA0DAA,mBAAmB;AACjBE,UAAQ,wBAAwB;AAC9B,WAAO;AACLrtE,YADK;AAELytE,kBAAY,mCAAmC;AAC7C,eAD6C,SAC7C;AAHG;AAAA,KAAP;AAFe;AAAA,CAAnBN;;AAWA,sCAAsC;AACpC,MAAI+D,YAAY/D,WAAWG,IADS,CACTA,CAAXH,CAAhB;;AACA,MAAI,CAAJ,WAAgB;AACd,UAAM,qCAA8BG,IADtB,CACsBA,CAA9B,EAAN;AAHkC;;AAKpC,SAAO4D,iBAL6B,GAK7BA,CAAP;AArZF;;AA2ZA,IAAIC,gBAAiB,gCAAgC;AACnD,MAAIC,YAAY;AACdC,aADc;AAEdC,eAFc;AAAA,GAAhB;AAKA,MAAIlB,mBAN+C,IAMnD;;AAGA,+EAA6E;AAC3E,wBAAoBrG,GADuD,CACvDA,CAApB;AACA,kBAAcA,SAAS,kBAAvB;AACA,gBAAYA,GAH+D,CAG/DA,CAAZ;AACA,iBAAaA,GAJ8D,CAI9DA,CAAb;AACA,iBAAaA,GAL8D,CAK9DA,CAAb;AACA,qBAAiBA,GAN0D,CAM1DA,CAAjB;AACA,sBAAkBA,GAPyD,CAOzDA,CAAlB;AACA,iBAR2E,KAQ3E;AACA,iCAT2E,qBAS3E;AACA,yBAV2E,aAU3E;AACA,gBAX2E,SAW3E;AACA,eAZ2E,GAY3E;AArBiD;;AAwBnDoH,4BAA0B;AACxBI,yBAAqB,iDAAiD;AACpE,UAAInc,eAAe,KADiD,YACpE;AACA,UAAI2V,OAAO,KAFyD,IAEpE;AACA,UAAIyG,QAAQ,KAHwD,KAGpE;AACA,UAAIC,QAAQ,KAJwD,KAIpE;AACA,UAAIC,YAAY,KALoD,SAKpE;AACA,UAAIC,aAAa,KANmD,UAMpE;AACA,UAAI3H,QAAQ,KAPwD,KAOpE;AACA,UAAIE,wBAAwB,KARwC,qBAQpE;AAEA7nE,sBAAK,iBAV+D,UAUpEA;AAsBA,UAAIqoE,KAAKK,KAAT,CAASA,CAAT;AAAA,UACEJ,KAAKI,KADP,CACOA,CADP;AAAA,UAEEH,KAAKG,KAFP,CAEOA,CAFP;AAAA,UAGEF,KAAKE,KAnC6D,CAmC7DA,CAHP;;AAMA,UAAIiG,cAAcl7D,yCAAmC,KAtCe,MAsClDA,CAAlB;;AACA,UAAI87D,iBAAiB97D,yCACnB,KAxCkE,aAuC/CA,CAArB;;AAGA,UAAI+7D,gBAAgB,CAClBb,iBAAiBY,eADC,CACDA,CADC,EAElBZ,iBAAiBY,eAFC,CAEDA,CAFC,CAApB;AAQA,UAAIE,OAAO,4BAET,gBAFS,OAGTD,cArDkE,CAqDlEA,CAHS,CAAX;AAKA,UAAIE,OAAO,4BAET,gBAFS,QAGTF,cA1DkE,CA0DlEA,CAHS,CAAX;AAMA,UAAIzF,YAAY2E,0CAEde,KAFcf,MAGdgB,KAHchB,MA7DoD,IA6DpDA,CAAhB;AAMA,UAAI1E,SAASD,UAnEuD,OAmEpE;AACA,UAAI4F,WAAW9H,2CApEqD,MAoErDA,CAAf;AACA8H,4BAAsBjB,MArE8C,UAqEpEiB;AAEA,+DAvEoE,KAuEpE;AAEAA,yBAAmBF,KAAnBE,aAAqCD,KAArCC,UAzEoE,CAyEpEA;AAGAA,qCAA+B,CAA/BA,IAAoC,CA5EgC,EA4EpEA;AAEA,gDA9EoE,EA8EpE;AAEAA,mCAhFoE,YAgFpEA;AAEA,yCAlFoE,EAkFpE;AAIA,qBAAe,IAAIF,KAAnB,OAA+B,IAAIC,KAtFiC,KAsFpE;AACA,aAAO3F,UAvF6D,MAuFpE;AAxFsB;AA2FxB6F,qBAAiB,oEAIf;AAEAvmD,aAAOjwB,SAFP,IAEOA,CAAPiwB;AAKA,UAAIwmD,UAAUz2E,2BAPd,cAOcA,CAAd;AACA,UAAI4sB,OAAO5sB,UAAUiwB,OARrB,KAQWjwB,CAAX;;AACA,UAAI4sB,QAAJ,SAAqB;AACnBA,eADmB,OACnBA;AADF,aAEO;AACLzsB,gBAAQysB,OADH,IACLzsB;AAZF;;AAcA,aAAO;AAAEA,aAAF,EAAEA,KAAF;AAASysB,YAAT,EAASA;AAAT,OAAP;AA7GsB;AAgHxB8pD,cAAU,kDAAkD;AAC1D,UAAIz4D,uBAAuBqxD,gBAA3B,GAA8C;AAC5C,YAAIqH,YAAYxH,KAD4B,EAC5C;AACA,YAAIyH,aAAaxH,KAF2B,EAE5C;AACAmH,6CAH4C,UAG5CA;AACAA,iBAJ4C,IAI5CA;AACAA,iBAL4C,OAK5CA;AANwD;AAhHpC;AA0HxBM,oCAAgC,oEAI9B;AACA,UAAM74E,UAAUu4E,SAAhB;AAAA,UACElU,UAAUkU,SAFZ,OACA;;AAEA;AACE,aAAKZ,UAAL;AACE,cAAI1U,MAAM,KADZ,GACE;AACAjjE,8BAAoBijE,IAFtB,SAEEjjE;AACAA,gCAAsBijE,IAHxB,WAGEjjE;AACAqkE,8BAAoBpB,IAJtB,SAIEoB;AACAA,gCAAsBpB,IALxB,WAKEoB;AANJ;;AAQE,aAAKsT,UAAL;AACE,cAAImB,WAAWz8D,sBAAgBk0D,MAAhBl0D,CAAgBk0D,CAAhBl0D,EAA0Bk0D,MAA1Bl0D,CAA0Bk0D,CAA1Bl0D,EAAoCk0D,MADrD,CACqDA,CAApCl0D,CAAf;;AACArc,8BAFF,QAEEA;AACAA,gCAHF,QAGEA;AAEAqkE,8BALF,QAKEA;AACAA,gCANF,QAMEA;AAdJ;;AAgBE;AACE,gBAAM,wDAjBV,SAiBU,EAAN;AAjBJ;AAjIsB;AAsJxB2P,gBAAY,8CAA8C;AACxD/Q,YAAM,KADkD,GACxDA;AAEAA,kCAA4B,KAH4B,aAGxDA;AACAA,+BAAyB,KAJ+B,MAIxDA;AAEA,UAAIuU,yBAAyB,yBAN2B,KAM3B,CAA7B;AAEA,aAAOvU,0CARiD,QAQjDA,CAAP;AA9JsB;AAAA,GAA1ByU;AAkKA,SA1LmD,aA0LnD;AArlBF,CA2ZqB,EAArB;;;;;;;;;;;;;;;AChYA,IAAMlgB,sBAAsBh0D,cA3B5B,IA2B4BA,CAA5B;;AAEAg0D,iCACEA,sDAEIA,oBAhCN,UA6BAA;AAKAA,gCACEA,mDAEIA,oBArCN,SAkCAA,C;;;;;;;;;;;;;;;;AClBA;;;;;;;;;;;;;;;;AASA,IAAMuhB,eAAe;AACnB/nE,WADmB;AAEnBgoE,QAFmB;AAGnBC,SAHmB;AAAA,CAArB;AAMA,IAAMC,aAAa;AACjBloE,WADiB;AAEjBmoE,UAFiB;AAGjBC,mBAHiB;AAIjBC,SAJiB;AAKjBC,WALiB;AAMjBL,SANiB;AAOjBM,QAPiB;AAQjBC,iBARiB;AASjBC,kBATiB;AAAA,CAAnB;;AAYA,4BAA4B;AAWxB,MAAI,gCAA8Bn5E,WAAlC,MAAmD;AACjD,WADiD,MACjD;AAZsB;;AAe1B,UAAQA,OAAR;AACE;AACE,aAAO,yBAAmBA,OAF9B,OAEW,CAAP;;AACF;AACE,aAAO,8BAAwBA,OAJnC,OAIW,CAAP;;AACF;AACE,aAAO,sCAAgCA,OAAhC,SAAgDA,OAN3D,MAMW,CAAP;;AACF;AACE,aAAO,gCAA0BA,OAA1B,SAA0CA,OARrD,OAQW,CAAP;;AACF;AACE,aAAO,gCAA0BA,OAA1B,SAA0CA,OAVrD,QAUqDA,EAA1C,CAAP;AAVJ;AA1DF;;IAwEA,c;AACEjB,0DAA4C;AAAA;;AAAA;;AAC1C,sBAD0C,UAC1C;AACA,sBAF0C,UAE1C;AACA,kBAH0C,MAG1C;AACA,sBAJ0C,CAI1C;AACA,oBAL0C,CAK1C;AACA,gCAN0C,IAM1C;AACA,uBAAmBmE,cAPuB,IAOvBA,CAAnB;AACA,6BAAyBA,cARiB,IAQjBA,CAAzB;AACA,gCAA4BA,cATc,IASdA,CAA5B;AACA,yBAAqBA,cAVqB,IAUrBA,CAArB;;AAEA,8BAA0Bm5B,iBAAS;AACjC,UAAMzhB,OAAOyhB,MADoB,IACjC;;AACA,UAAIzhB,oBAAoB,MAAxB,YAAyC;AAAA;AAFR;;AAKjC,UAAIA,KAAJ,QAAiB;AACf,oCADe,IACf;;AADe;AALgB;;AASjC,UAAIA,KAAJ,UAAmB;AACjB,YAAMw+D,aAAax+D,KADF,UACjB;AACA,YAAM+C,aAAa,2BAFF,UAEE,CAAnB;;AACA,YAAI,CAAJ,YAAiB;AACf,gBAAM,4CADS,UACT,EAAN;AAJe;;AAMjB,eAAO,2BANU,UAMV,CAAP;;AAEA,YAAI/C,kBAAkB69D,aAAtB,MAAyC;AACvC96D,6BAAmB/C,KADoB,IACvC+C;AADF,eAEO,IAAI/C,kBAAkB69D,aAAtB,OAA0C;AAC/C96D,4BAAkB07D,WAAWz+D,KADkB,MAC7By+D,CAAlB17D;AADK,eAEA;AACL,gBAAM,UADD,0BACC,CAAN;AAbe;;AAAA;AATc;;AA0BjC,UAAMyhC,SAAS,oBAAmBxkC,KA1BD,MA0BlB,CAAf;;AACA,UAAI,CAAJ,QAAa;AACX,cAAM,gDAAyCA,KADpC,MACL,EAAN;AA5B+B;;AA8BjC,UAAIA,KAAJ,YAAqB;AACnB,YAAM0+D,eAAe,MADF,UACnB;AACA,YAAMC,eAAe3+D,KAFF,UAEnB;AACA,oBAAY,mBAAmB;AAC7Bna,kBAAQ2+C,OAAOxkC,KADc,IACrBwkC,CAAR3+C;AADF,gBAGE,kBAAkB;AAChB+4E,6BAAmB;AACjBC,wBADiB;AAEjBC,wBAFiB;AAGjB9qC,sBAAU6pC,aAHO;AAIjBW,wBAAYx+D,KAJK;AAKjBA,kBALiB;AAAA,WAAnB4+D;AAJJ,WAYE,kBAAkB;AAChBA,6BAAmB;AACjBC,wBADiB;AAEjBC,wBAFiB;AAGjB9qC,sBAAU6pC,aAHO;AAIjBW,wBAAYx+D,KAJK;AAKjB5a,oBAAQq5E,WALS,MAKTA;AALS,WAAnBG;AAhBe,SAGnB;AAHmB;AA9BY;;AAyDjC,UAAI5+D,KAAJ,UAAmB;AACjB,gCADiB,IACjB;;AADiB;AAzDc;;AA6DjCwkC,aAAOxkC,KA7D0B,IA6DjCwkC;AAzEwC,KAY1C;;AA+DAo6B,uCAAmC,KA3EO,kBA2E1CA;AA5EiB;;;;uBA+EnBG,U,EAAAA,O,EAAwB;AAUtB,UAAMC,KAAK,KAVW,aAUtB;;AACA,UAAIA,GAAJ,UAAIA,CAAJ,EAAoB;AAClB,cAAM,4DADY,UACZ,QAAN;AAZoB;;AActBA,uBAdsB,OActBA;AA7FiB;;;yBAsGnBC,U,EAAAA,I,EAAAA,S,EAAkC;AAChC,wBACE;AACEJ,oBAAY,KADd;AAEEC,oBAAY,KAFd;AAGEt6B,gBAHF;AAIExkC,YAJF,EAIEA;AAJF,OADF,EADgC,SAChC;AAvGiB;;;oCA0HnBk/D,U,EAAAA,I,EAAAA,S,EAA6C;AAC3C,UAAMV,aAAa,KADwB,UACxB,EAAnB;AACA,UAAMz7D,aAFqC,oCAE3C;AACA,8CAH2C,UAG3C;;AACA,UAAI;AACF,0BACE;AACE87D,sBAAY,KADd;AAEEC,sBAAY,KAFd;AAGEt6B,kBAHF;AAIEg6B,oBAJF,EAIEA,UAJF;AAKEx+D,cALF,EAKEA;AALF,SADF,EADE,SACF;AADF,QAWE,WAAW;AACX+C,0BADW,EACXA;AAhByC;;AAkB3C,aAAOA,WAlBoC,OAkB3C;AA5IiB;;;mCAyJnBo8D,U,EAAAA,I,EAAAA,gB,EAAAA,S,EAA8D;AAAA;;AAC5D,UAAMC,WAAW,KAD2C,QAC3C,EAAjB;AACA,UAAMP,aAAa,KAFyC,UAE5D;AACA,UAAMC,aAAa,KAHyC,UAG5D;AACA,UAAMF,SAAS,KAJ6C,MAI5D;AAEA,aAAO,mBACL;AACEh2E,eAAOsc,2BAAc;AACnB,cAAMm6D,kBADa,oCACnB;AACA,+CAAmC;AACjCn6D,sBADiC,EACjCA,UADiC;AAEjCo6D,uBAFiC;AAGjCC,sBAHiC;AAIjCC,wBAJiC;AAKjCC,sBALiC;AAAA,WAAnC;;AAOA,8BACE;AACEZ,sBADF,EACEA,UADF;AAEEC,sBAFF,EAEEA,UAFF;AAGEt6B,oBAHF;AAIE46B,oBAJF,EAIEA,QAJF;AAKEp/D,gBALF,EAKEA,IALF;AAMEkjC,yBAAah+B,WANf;AAAA,WADF,EATmB,SASnB;;AAYA,iBAAOm6D,gBArBY,OAqBnB;AAtBJ;AAyBEK,cAAMx6D,0BAAc;AAClB,cAAMy6D,iBADY,oCAClB;AACA,wDAFkB,cAElB;AACAf,6BAAmB;AACjBC,sBADiB,EACjBA,UADiB;AAEjBC,sBAFiB,EAEjBA,UAFiB;AAGjBzmC,oBAAQ2lC,WAHS;AAIjBoB,oBAJiB,EAIjBA,QAJiB;AAKjBl8B,yBAAah+B,WALI;AAAA,WAAnB05D;AASA,iBAAOe,eAZW,OAYlB;AArCJ;AAwCEnlC,gBAAQp1C,wBAAU;AAChBW,4BAAOX,kBAAPW,OADgB,iCAChBA;AACA,cAAM65E,mBAFU,oCAEhB;AACA,0DAHgB,gBAGhB;AACA,wDAJgB,IAIhB;AACAhB,6BAAmB;AACjBC,sBADiB,EACjBA,UADiB;AAEjBC,sBAFiB,EAEjBA,UAFiB;AAGjBzmC,oBAAQ2lC,WAHS;AAIjBoB,oBAJiB,EAIjBA,QAJiB;AAKjBh6E,oBAAQq5E,WALS,MAKTA;AALS,WAAnBG;AAQA,iBAAOgB,iBAbS,OAahB;AArDJ;AAAA,OADK,EANqD,gBAMrD,CAAP;AA/JiB;;;sCA+NnBC,I,EAAwB;AACtB,UAAM74D,OADgB,IACtB;AACA,UAAMw9B,SAAS,mBAAmBxkC,KAFZ,MAEP,CAAf;AACA,UAAMo/D,WAAWp/D,KAHK,QAGtB;AACA,UAAM6+D,aAAa,KAJG,UAItB;AACA,UAAMC,aAAa9+D,KALG,UAKtB;AACA,UAAM4+D,SAAS,KANO,MAMtB;AAEA,UAAMkB,aAAa;AACjB95B,eADiB,mBACjBA,KADiB,EACmB;AAAA,cAArBtyB,IAAqB,uEAApCsyB,CAAoC;AAAA,cAApCA,SAAoC;;AAClC,cAAI,KAAJ,aAAsB;AAAA;AADY;;AAIlC,cAAM+5B,kBAAkB,KAJU,WAIlC;AACA,8BALkC,IAKlC;;AAIA,cAAIA,uBAAuB,oBAA3B,GAAkD;AAChD,kCADgD,oCAChD;AACA,yBAAa,oBAFmC,OAEhD;AAXgC;;AAalC/4D,4BACE;AACE63D,sBADF,EACEA,UADF;AAEEC,sBAFF,EAEEA,UAFF;AAGEzmC,oBAAQ2lC,WAHV;AAIEoB,oBAJF,EAIEA,QAJF;AAKEz/D,iBALF,EAKEA;AALF,WADFqH,EAbkC,SAalCA;AAde;AA0BjByK,aA1BiB,mBA0BT;AACN,cAAI,KAAJ,aAAsB;AAAA;AADhB;;AAIN,6BAJM,IAIN;AACAmtD,6BAAmB;AACjBC,sBADiB,EACjBA,UADiB;AAEjBC,sBAFiB,EAEjBA,UAFiB;AAGjBzmC,oBAAQ2lC,WAHS;AAIjBoB,oBAJiB,EAIjBA;AAJiB,WAAnBR;AAMA,iBAAO53D,iBAXD,QAWCA,CAAP;AArCe;AAwCjBW,aAxCiB,iBAwCjBA,MAxCiB,EAwCH;AACZ5hB,4BAAOX,kBAAPW,OADY,gCACZA;;AACA,cAAI,KAAJ,aAAsB;AAAA;AAFV;;AAKZ,6BALY,IAKZ;AACA64E,6BAAmB;AACjBC,sBADiB,EACjBA,UADiB;AAEjBC,sBAFiB,EAEjBA,UAFiB;AAGjBzmC,oBAAQ2lC,WAHS;AAIjBoB,oBAJiB,EAIjBA,QAJiB;AAKjBh6E,oBAAQq5E,WALS,MAKTA;AALS,WAAnBG;AA9Ce;AAuDjBoB,wBAvDiB;AAwDjBC,gBAxDiB;AAyDjBC,kBAzDiB;AA0DjBC,qBA1DiB;AA2DjBj9B,qBAAaljC,KA3DI;AA4DjB8rC,eA5DiB;AAAA,OAAnB;AA+DAg0B,gCAvEsB,OAuEtBA;AACAA,yBAAmBA,0BAxEG,OAwEtBA;AACA,mCAzEsB,UAyEtB;AACA,kBAAY,mBAAmB;AAC7Bj6E,gBAAQ2+C,OAAOxkC,KAAPwkC,MADqB,UACrBA,CAAR3+C;AADF,cAGE,YAAY;AACV+4E,2BAAmB;AACjBC,oBADiB,EACjBA,UADiB;AAEjBC,oBAFiB,EAEjBA,UAFiB;AAGjBzmC,kBAAQ2lC,WAHS;AAIjBoB,kBAJiB,EAIjBA,QAJiB;AAKjBgB,mBALiB;AAAA,SAAnBxB;AAJJ,SAYE,kBAAkB;AAChBA,2BAAmB;AACjBC,oBADiB,EACjBA,UADiB;AAEjBC,oBAFiB,EAEjBA,UAFiB;AAGjBzmC,kBAAQ2lC,WAHS;AAIjBoB,kBAJiB,EAIjBA,QAJiB;AAKjBh6E,kBAAQq5E,WALS,MAKTA;AALS,SAAnBG;AAvFkB,OA0EtB;AAzSiB;;;0CAoUnByB,I,EAA4B;AAC1B,UAAMjB,WAAWp/D,KADS,QAC1B;AACA,UAAM6+D,aAAa,KAFO,UAE1B;AACA,UAAMC,aAAa9+D,KAHO,UAG1B;AACA,UAAM4+D,SAAS,KAJW,MAI1B;;AAEA,cAAQ5+D,KAAR;AACE,aAAKg+D,WAAL;AACE,cAAIh+D,KAAJ,SAAkB;AAChB,uDADgB,OAChB;AADF,iBAEO;AACL,8DACEy+D,WAAWz+D,KAFR,MAEHy+D,CADF;AAJJ;;AADF;;AAUE,aAAKT,WAAL;AACE,cAAIh+D,KAAJ,SAAkB;AAChB,sDADgB,OAChB;AADF,iBAEO;AACL,6DACEy+D,WAAWz+D,KAFR,MAEHy+D,CADF;AAJJ;;AAVF;;AAmBE,aAAKT,WAAL;AAEE,cAAI,CAAC,iBAAL,QAAK,CAAL,EAAiC;AAC/BY,+BAAmB;AACjBC,wBADiB,EACjBA,UADiB;AAEjBC,wBAFiB,EAEjBA,UAFiB;AAGjBzmC,sBAAQ2lC,WAHS;AAIjBoB,sBAJiB,EAIjBA,QAJiB;AAKjBgB,uBALiB;AAAA,aAAnBxB;AAD+B;AAFnC;;AAeE,cACE,+CACA5+D,mBAFF,GAGE;AACA,sDADA,OACA;AAnBJ;;AAsBE,mDAAyCA,KAtB3C,WAsBE;AAtBF,cAuBQ,MAvBR,GAuBqB,iBAAiBA,KAvBtC,QAuBqB,CAvBrB,CAuBQ,MAvBR;AAwBE,sBAAY,mBAAmB;AAC7Bna,oBAAQo6E,UAAUA,MADW,EAC7Bp6E;AADF,kBAGE,YAAY;AACV+4E,+BAAmB;AACjBC,wBADiB,EACjBA,UADiB;AAEjBC,wBAFiB,EAEjBA,UAFiB;AAGjBzmC,sBAAQ2lC,WAHS;AAIjBoB,sBAJiB,EAIjBA,QAJiB;AAKjBgB,uBALiB;AAAA,aAAnBxB;AAJJ,aAYE,kBAAkB;AAChBA,+BAAmB;AACjBC,wBADiB,EACjBA,UADiB;AAEjBC,wBAFiB,EAEjBA,UAFiB;AAGjBzmC,sBAAQ2lC,WAHS;AAIjBoB,sBAJiB,EAIjBA,QAJiB;AAKjBh6E,sBAAQq5E,WALS,MAKTA;AALS,aAAnBG;AArCN,WAwBE;AA3CJ;;AAkEE,aAAKZ,WAAL;AACEj4E,4BACE,uBADFA,QACE,CADFA,EADF,uCACEA;;AAIA,cAAI,iCAAJ,UAA+C;AAAA;AALjD;;AAQE,8DAAoDia,KARtD,KAQE;AA1EJ;;AA4EE,aAAKg+D,WAAL;AACEj4E,4BACE,uBADFA,QACE,CADFA,EADF,qCACEA;;AAIA,cAAI,iCAAJ,UAA+C;AAAA;AALjD;;AAQE,sDARF,IAQE;AACA,sDATF,KASE;;AACA,uCAVF,QAUE;;AAtFJ;;AAwFE,aAAKi4E,WAAL;AACEj4E,4BACE,uBADFA,QACE,CADFA,EADF,qCACEA;AAIA,4DACE04E,WAAWz+D,KANf,MAMIy+D,CADF;;AAGA,uCARF,QAQE;;AAhGJ;;AAkGE,aAAKT,WAAL;AACE,cAAIh+D,KAAJ,SAAkB;AAChB,wDADgB,OAChB;AADF,iBAEO;AACL,+DACEy+D,WAAWz+D,KAFR,MAEHy+D,CADF;AAJJ;;AAQE,uCARF,QAQE;;AA1GJ;;AA4GE,aAAKT,WAAL;AACE,cAAI,CAAC,iBAAL,QAAK,CAAL,EAAiC;AAAA;AADnC;;AAAA,cAIQ,QAJR,GAIuB,iBAAiBh+D,KAJxC,QAIuB,CAJvB,CAIQ,QAJR;AAKE,sBAAY,mBAAmB;AAC7Bna,oBAAQq6E,YAAYA,SAASzB,WAAWz+D,KADX,MACAy+D,CAATyB,CAApBr6E;AADF,kBAGE,YAAY;AACV+4E,+BAAmB;AACjBC,wBADiB,EACjBA,UADiB;AAEjBC,wBAFiB,EAEjBA,UAFiB;AAGjBzmC,sBAAQ2lC,WAHS;AAIjBoB,sBAJiB,EAIjBA,QAJiB;AAKjBgB,uBALiB;AAAA,aAAnBxB;AAJJ,aAYE,kBAAkB;AAChBA,+BAAmB;AACjBC,wBADiB,EACjBA,UADiB;AAEjBC,wBAFiB,EAEjBA,UAFiB;AAGjBzmC,sBAAQ2lC,WAHS;AAIjBoB,sBAJiB,EAIjBA,QAJiB;AAKjBh6E,sBAAQq5E,WALS,MAKTA;AALS,aAAnBG;AAlBN,WAKE;AAsBA,2DACEH,WAAWz+D,KA5Bf,MA4BIy+D,CADF;AAGA,mDA9BF,IA8BE;AACA,iBAAO,iBA/BT,QA+BS,CAAP;AA3IJ;;AA6IE;AACE,gBAAM,UA9IV,wBA8IU,CAAN;AA9IJ;AA1UiB;;;;mHA+dnB,Q;;;;;;uBAGQ,mBACJ,CACE,iCADF,WAEE,iCAFF,UAGE,iCAHF,gBAIM,sBAAsB;AAC1B,yBAAO17D,cAAcA,WADK,OAC1B;AATkC,iBAIpC,CADI,C;;;AASN,uBAAO,uBAZ+B,QAY/B,CAAP;;;;;;;;;;;;;;;;;;iCASFu9D,O,EAAAA,S,EAAiC;AAC/B,UAAI/d,aAAa,KAAjB,sBAA4C;AAC1C,yCAD0C,SAC1C;AADF,aAEO;AACL,gCADK,OACL;AAJ6B;AApfd;;;8BA4fT;AACR,iDAA2C,KADnC,kBACR;AA7fiB;;;;;;;;;;;;;;;;;;;;ACxErB;;AAAA;;;;;;;;IAkBA,Q;AACEp+D,0BAAkB;AAAA;;AAChB4B,sBAAO,gBAAPA,UADgB,iCAChBA;AAGAia,WAAO,aAJS,IAIT,CAAPA;AAGA,QAAMugE,SAAS,IAPC,2BAOD,EAAf;AACA,QAAMC,cAAcD,uBARJ,IAQIA,CAApB;AAEA,wBAAoB,IAVJ,GAUI,EAApB;;AAEA,qBAAiB;AACf,kBADe,WACf;AAbc;AADL;;;;4BAkBbE,I,EAAc;AAEZ,aAAO,0DAE2B,sBAAsB;AACpD,YAAMphE,QAAQ,0CACyB,4BAA4B;AAC/D,iBAAOG,oBAAoBkE,UAAUC,KAAVD,IAAmBE,KADiB,CACxDpE,CAAP;AAFU,+CAIyB,qBAAqB;AACxD;AACE;AACE,qBAFJ,GAEI;;AACF;AACE,qBAJJ,GAII;;AACF;AACE,qBANJ,GAMI;;AACF;AACE,qBARJ,GAQI;;AACF;AACE,qBAVJ,GAUI;AAVJ;;AAYA,gBAAM,6BAbkD,IAalD,qBAAN;AAlBgD,SACtC,CAAd;AAoBA,YAAIkhE,QArBgD,EAqBpD;;AACA,aAAK,IAAItyE,IAAJ,GAAWkV,KAAKjE,MAArB,QAAmCjR,IAAnC,IAA2CA,KAA3C,GAAmD;AACjD,cAAMiU,OAAOhD,4BAA4BA,iBAAiBjR,IADT,CACRiR,CAAzC;;AACA,cACEgD,cACAA,OADAA,OAEAA,SAFAA,MAGAA,SAHAA,MAIAA,SALF,IAME;AACAq+D,qBAASlhE,oBADT,IACSA,CAATkhE;AAPF,iBAQO;AACLA,qBAAS,QAAS,WAAD,IAAC,EAAD,QAAC,CAAD,EAAC,EAAD,SAAC,CAAT,CAAS,CAAT,GADJ,GACLA;AAX+C;AAtBC;;AAqCpD,eAAO,MArC6C,KAqCpD;AAzCQ,OAEL,CAAP;AApBW;;;2BA+DbC,W,EAAoB;AAClB,UAAIC,MAAMJ,YADQ,eAClB;;AAEA,UAAII,+BAAJ,WAA8C;AAE5CA,cAAMA,IAFsC,UAE5CA;;AACA,eAAOA,OAAOA,+BAAd,WAAwD;AACtDA,gBAAMA,IADgD,WACtDA;AAJ0C;AAH5B;;AAWlB,UAAMC,WAAWD,MAAMA,aAANA,WAAMA,EAANA,GAXC,IAWlB;;AACA,UAAI,QAAQC,aAAR,aAAkC,CAACD,IAAvC,aAAuCA,EAAvC,EAA4D;AAAA;AAZ1C;;AAgBlB,UAAME,WAAWF,IAhBC,UAgBlB;;AACA,WAAK,IAAIxyE,IAAJ,GAAWkV,KAAKw9D,SAArB,QAAsC1yE,IAAtC,IAA8CA,CAA9C,IAAmD;AACjD,YAAMksD,OAAOwmB,SADoC,CACpCA,CAAb;;AACA,YAAIxmB,gCAAJ,mBAAuD;AAAA;AAFN;;AAMjD,aAAK,IAAIhiC,IAAJ,GAAWyoD,KAAKzmB,gBAArB,QAA6ChiC,IAA7C,IAAqDA,CAArD,IAA0D;AACxD,cAAIgiC,8CAAJ,SAA2D;AACzD,gBAAM3sD,QAAQ2sD,gBAD2C,CAC3CA,CAAd;AACA,gBAAM9xD,OAAOmF,eAF4C,WAE5CA,EAAb;;AAEA,wCAA4BA,kBAJ6B,IAI7BA,EAA5B;AALsD;AANT;AAjBjC;AA/DP;;;wBAiGb8B,I,EAAU;AACR,aAAO,8BAA8B,sBAA9B,IAA8B,CAA9B,GADC,IACR;AAlGW;;;6BAqGJ;AACP,aAAOnH,mBAAmB,KADnB,YACAA,CAAP;AAtGW;;;wBAyGbgf,I,EAAU;AACR,aAAO,sBADC,IACD,CAAP;AA1GW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAf,IAAM05D,qBAAqB;AACzBC,WADyB;AAEzBC,iBAAe,CAFU;AAGzBC,oBAAkB,CAHO;AAIzBC,8BAA4B,CAJH;AAKzBC,kCAAgC,CALP;AAMzBC,uBAAqB,CANI;AAOzBC,oBAAkB,CAPO;AAQzBC,eAAa,CARY;AASzBC,8BAA4B,CATH;AAUzBC,uBAAqB,CAVI;AAWzBC,qBAAmB,CAXM;AAAA,CAA3B;;AAcA,gCAAgC;AAC9B,MAAMC,KAAK/Z,EADmB,KACnBA,CAAX;AACA,SAAO+Z,cAAcA,OAAdA,QAA6BA,OAA7BA,QAA4CA,OAFrB,IAE9B;AAlCF;;AAqCA,+BAA+B;AAC7B,OAAK,IAAIxzE,IAAJ,GAAWkV,KAAKukD,EAArB,QAA+Bz5D,IAA/B,IAAuCA,CAAvC,IAA4C;AAC1C,QAAI,CAACyzE,gBAAL,CAAKA,CAAL,EAAyB;AACvB,aADuB,KACvB;AAFwC;AADf;;AAM7B,SAN6B,IAM7B;AA3CF;;IA8CA,a;;;;;;;qCACEC,C,EAAoB;AAAA;;AAClB,aAAO,wBAAwB,uBAAiB;AAC9C,YAAIC,2BAAJ,MAAqC;AACnC,iBAAOviE,oBAAoBhW,SAASu4E,iBAATv4E,CAASu4E,CAATv4E,EADQ,EACRA,CAApBgW,CAAP;AADF,eAEO,IAAIuiE,2BAAJ,KAAoC;AACzC,iBAAOviE,oBAAoBhW,SAASu4E,iBAATv4E,CAASu4E,CAATv4E,EADc,EACdA,CAApBgW,CAAP;AAJ4C;;AAM9C;AACE;AACE,mBAFJ,GAEI;;AACF;AACE,mBAJJ,GAII;;AACF;AACE,mBANJ,GAMI;;AACF;AACE,mBARJ,GAQI;AARJ;;AAUA,eAAO,sBAhBuC,MAgBvC,CAAP;AAjBgB,OACX,CAAP;AAFgB;;;kCAsBlBwiE,C,EAAAA,K,EAAwB;AACtB,UAAMlvC,aADgB,EACtB;AACA,UAAI/yB,MAFkB,KAEtB;;AAEA,wBAAkB;AAChB,eAAOA,MAAM8nD,EAAN9nD,UAAkB8hE,gBAAzB,GAAyBA,CAAzB,EAA+C;AAC7C,YAD6C,GAC7C;AAFc;AAJI;;AAUtB,aACE9hE,MAAM8nD,EAAN9nD,UACA,CAAC8hE,gBADD9hE,GACC8hE,CADD9hE,IAEA8nD,WAFA9nD,OAGA8nD,WAJF,KAKE;AACA,UADA,GACA;AAhBoB;;AAkBtB,UAAMr/D,OAAOq/D,mBAlBS,GAkBTA,CAAb;AACAoa,YAnBsB;;AAoBtB,aACEliE,MAAM8nD,EAAN9nD,UACA8nD,WADA9nD,OAEA8nD,WAFA9nD,OAGA8nD,WAJF,KAKE;AACAoa,cADA;AAEA,YAAIC,WAAJ;AAAA,YACEC,YAHF,EAEA;;AAEA,eAAOpiE,MAAM8nD,EAAN9nD,UAAkB,CAAC8hE,gBAAnB9hE,GAAmB8hE,CAAnB9hE,IAA2C8nD,WAAlD,KAAkE;AAChEqa,sBAAYra,EADoD,GACpDA,CAAZqa;AACA,YAFgE,GAEhE;AANF;;AAQAD,cARA;;AASA,YAAIpa,WAAJ,KAAoB;AAClB,iBADkB,IAClB;AAVF;;AAYA,UAZA,GAYA;AACAoa,cAbA;AAcA,YAAMG,cAAcva,EAdpB,GAcoBA,CAApB;;AACA,YAAIua,uBAAuBA,gBAA3B,KAAgD;AAC9C,iBAD8C,IAC9C;AAhBF;;AAkBA,YAAMC,eAAexa,uBAAuB,EAlB5C,GAkBqBA,CAArB;;AACA,YAAIwa,eAAJ,GAAsB;AACpB,iBADoB,IACpB;AApBF;;AAsBAF,oBAAYta,iBAtBZ,YAsBYA,CAAZsa;AACArvC,wBAAgB;AACdtqC,gBADc;AAEdiC,iBAAO,sBAFO,SAEP;AAFO,SAAhBqoC;AAIA/yB,cAAMsiE,eA3BN,CA2BAtiE;AACAkiE,cA5BA;AAzBoB;;AAuDtB,aAAO;AACLz5E,YADK,EACLA,IADK;AAELsqC,kBAFK,EAELA,UAFK;AAGLwvC,gBAAQviE,MAHH;AAAA,OAAP;AA7EgB;;;gDAoFlBwiE,C,EAAAA,K,EAAsC;AACpC,UAAIxiE,MADgC,KACpC;;AAEA,wBAAkB;AAChB,eAAOA,MAAM8nD,EAAN9nD,UAAkB8hE,gBAAzB,GAAyBA,CAAzB,EAA+C;AAC7C,YAD6C,GAC7C;AAFc;AAHkB;;AASpC,aACE9hE,MAAM8nD,EAAN9nD,UACA,CAAC8hE,gBADD9hE,GACC8hE,CADD9hE,IAEA8nD,WAFA9nD,OAGA8nD,WAJF,KAKE;AACA,UADA,GACA;AAfkC;;AAiBpC,UAAMr/D,OAAOq/D,mBAjBuB,GAiBvBA,CAAb;AACAoa,YAlBoC;AAmBpC,UAAMO,YAnB8B,GAmBpC;;AACA,aAAOziE,MAAM8nD,EAAN9nD,WAAmB,kBAAkB8nD,EAAE9nD,MAAF8nD,OAA5C,GAAO9nD,CAAP,EAAiE;AAC/D,UAD+D,GAC/D;AArBkC;;AAuBpC,UAAMtV,QAAQo9D,uBAvBsB,GAuBtBA,CAAd;AACA,aAAO;AACLr/D,YADK,EACLA,IADK;AAELiC,aAFK,EAELA,KAFK;AAGL63E,gBAAQviE,MAHH;AAAA,OAAP;AA5GgB;;;6BAmHlB0iE,C,EAAY;AACV,UAAIr0E,IADM,CACV;;AACA,aAAOA,IAAIy5D,EAAX,QAAqB;AACnB,YAAM+Z,KAAK/Z,EADQ,CACRA,CAAX;AACA,YAAIvvC,IAFe,CAEnB;;AACA,YAAIspD,OAAJ,KAAgB;AACd,YADc,CACd;AACA,cAAMc,MAAM7a,EAFE,CAEFA,CAAZ;AACA,cAAIv2B,CAHU,SAGd;;AACA;AACE;AACE,gBADF,CACE;AACAA,kBAAIu2B,eAFN,CAEMA,CAAJv2B;;AACA,kBAAIA,IAAJ,GAAW;AACT,6BAAa0vC,mBADJ,mBACT;AADS;AAHb;;AAOE,gCAAkBnZ,eAPpB,CAOoBA,CAAlB;AACAvvC,kBAAIgZ,IARN,CAQEhZ;AATJ;;AAWE;AACE,gBADF,CACE;;AACA,kBAAMqqD,KAAK,oCAFb,CAEa,CAAX;;AACA,kBAAI9a,YAAYvvC,IAAIqqD,GAAhB9a,QAA2BvvC,IAAIqqD,GAAJrqD,SAA3BuvC,OAAJ,MAA4D;AAC1D,6BAAamZ,mBAD6C,0BAC1D;AAD0D;AAH9D;;AAOE,wBAAU2B,GAAV,MAAmBA,GAPrB,KAOE;AACArqD,mBAAKqqD,YARP,CAQErqD;AAnBJ;;AAqBE;AACE,kBAAIuvC,YAAYvvC,IAAZuvC,GAAmBvvC,IAAnBuvC,OAAJ,MAAwC;AACtCv2B,oBAAIu2B,iBAAiBvvC,IADiB,CAClCuvC,CAAJv2B;;AACA,oBAAIA,IAAJ,GAAW;AACT,+BAAa0vC,mBADJ,mBACT;AADS;AAF2B;;AAMtC,+BAAenZ,YAAYvvC,IAAZuvC,GANuB,CAMvBA,CAAf;AACAvvC,oBAAIgZ,IAPkC,CAOtChZ;AAPF,qBAQO,IAAIuvC,YAAYvvC,IAAZuvC,GAAmBvvC,IAAnBuvC,OAAJ,WAA6C;AAClDv2B,oBAAIu2B,iBAAiBvvC,IAD6B,CAC9CuvC,CAAJv2B;;AACA,oBAAIA,IAAJ,GAAW;AACT,+BAAa0vC,mBADJ,gBACT;AADS;AAFuC;;AAMlD,6BAAanZ,YAAYvvC,IAAZuvC,GANqC,CAMrCA,CAAb;AACAvvC,oBAAIgZ,IAP8C,CAOlDhZ;AAPK,qBAQA,IAAIuvC,YAAYvvC,IAAZuvC,GAAmBvvC,IAAnBuvC,OAAJ,WAA6C;AAClD,oBAAM+a,KAAK/a,eAAevvC,IADwB,CACvCuvC,CAAX;AACA,oBAAIgb,iBAF8C,KAElD;AACAvxC,oBAAIu2B,eAAevvC,IAH+B,CAG9CuvC,CAAJv2B;;AACA,oBAAIA,IAAJ,GAAW;AACT,+BAAa0vC,mBADJ,8BACT;AADS;AAJuC;;AAQlD,oBAAI4B,UAAUtxC,IAAd,IAAsB;AACpBA,sBAAIu2B,gBAAgBvvC,IADA,CAChBuvC,CAAJv2B;;AACA,sBAAIA,IAAJ,GAAW;AACT,iCACE0vC,mBAFO,8BACT;AADS;AAFS;;AAQpB6B,mCARoB,IAQpBA;AAhBgD;;AAkBlD,oBAAMC,iBAAiBjb,YACrBvvC,IADqBuvC,GAErBv2B,KAAK,qBApB2C,CAoBhDA,CAFqBu2B,CAAvB;AAIA,+BAtBkD,cAsBlD;AACAvvC,oBAAIgZ,KAAK,qBAvByC,CAuB9CA,CAAJhZ;AAvBK,qBAwBA;AACL,6BAAa0oD,mBADR,gBACL;AADK;AAzCT;;AArBF;;AAmEE;AACE,kBAAM3vD,UAAU,sBADlB,CACkB,CAAhB;;AACA,kBAAIA,YAAJ,MAAsB;AACpB,6BAAa2vD,mBADO,gBACpB;AADoB;AAFxB;;AAME,kBAAIvB,WANN,KAME;;AACA,kBACE5X,YAAYvvC,IAAIjH,QAAhBw2C,QAAgCvvC,IAAIjH,QAAJiH,SAAhCuvC,OADF,MAEE;AACA4X,2BADA,IACAA;AAHF,qBAIO,IACL5X,YAAYvvC,IAAIjH,QAAhBw2C,QAAgCvvC,IAAIjH,QAAJiH,SAAhCuvC,OADK,KAEL;AACA,6BAAamZ,mBADb,mBACA;AADA;AAbJ;;AAiBE,kCAAoB3vD,QAApB,MAAkCA,QAAlC,YAjBF,QAiBE;AACAiH,mBAAKjH,kBAAkB,eAlBzB,CAkBOA,CAALiH;AArFJ;AAAA;AAJF,eA4FO;AACL,iBAAOA,IAAIuvC,EAAJvvC,UAAgBuvC,SAAvB,KAAqC;AACnCvvC,aADmC;AADhC;;AAIL,cAAMyqD,OAAOlb,eAJR,CAIQA,CAAb;AACA,sBAAY,sBALP,IAKO,CAAZ;AApGiB;;AAsGnBz5D,YAtGmB,CAsGnBA;AAxGQ;AAnHM;;;oCA+NlB40E,I,EAAsB;AACpB,wBADoB,IACpB;AAhOgB;;;yBAmOlBC,I,EAAAA,K,EAAkB,CAnOA;;;8BAqOlBC,I,EAAgB,CArOE;;;4BAuOlBC,I,EAAc,CAvOI;;;8BAyOlBC,c,EAA0B,CAzOR;;;2BA2OlBC,I,EAAa,CA3OK;;;mCA6OlBC,I,EAAAA,U,EAAAA,O,EAA0C,CA7OxB;;;iCA+OlBC,I,EAAmB,CA/OD;;;4BAiPlBC,I,EAAc,CAjPI;;;;;;IAoPpB,a;AACEr/E,8CAAiC;AAAA;;AAC/B,oBAD+B,QAC/B;AACA,qBAF+B,SAE/B;AAEAmE,8CAA0C;AAAEmC,aAAF;AAAeG,gBAAf;AAAA,KAA1CtC;AALgB;;;;oCAmCF;AACd,aAAO,mBAAmB,yBADZ,CACd;AApCgB;;;wBAQD;AACf,aAAO,mBAAmB,gBADX,CACW,CAA1B;AATgB;;;wBAYA;AAChB,UAAMm7E,aAAa,gBADH,UAChB;;AACA,UAAI,CAAJ,YAAiB;AACf,eADe,SACf;AAHc;;AAKhB,UAAMt2D,QAAQs2D,mBALE,IAKFA,CAAd;;AACA,UAAIt2D,UAAU,CAAd,GAAkB;AAChB,eADgB,SAChB;AAPc;;AAShB,aAAOs2D,WAAWt2D,QATF,CASTs2D,CAAP;AArBgB;;;wBAwBA;AAChB,UAAI,CAAC,KAAL,YAAsB;AACpB,eAAO,kBADa,EACpB;AAFc;;AAIhB,aAAO,oBACA,iBAAiB;AACpB,eAAOC,MADa,WACpB;AAFG,cAJS,EAIT,CAAP;AA5BgB;;;;;;IAwCpB,e;;;;;AACEv/E,6BAAc;AAAA;;AAAA;;AAAA;AAEZ,8BAFY,IAEZ;AACA,oBAHY,IAGZ;AACA,wBAAkB68E,mBAJN,OAIZ;AAJY;AAD4B;;;;oCAQ1C2C,I,EAAsB;AACpB,8BADoB,EACpB;AACA,oBAFoB,EAEpB;AACA,wBAAkB3C,mBAHE,OAGpB;AAEA,oBALoB,IAKpB;;AAEA,UAAI,oBAAoBA,mBAAxB,SAAoD;AAClD,eADkD,SAClD;AARkB;;AAAA,iDAYM,KAZN;AAAA,UAYd,eAZc;;AAapB,UAAI,CAAJ,iBAAsB;AACpB,eADoB,SACpB;AAdkB;;AAgBpB,aAAO;AAAE4C,uBAhBW,EAgBXA;AAAF,OAAP;AAxBwC;;;oCA2B1CZ,I,EAAsB;AACpB;AACE;AACE,iBAFJ,GAEI;AAFJ;;AAIA,kGALoB,IAKpB;AAhCwC;;;2BAmC1CK,I,EAAa;AACX,UAAIQ,mBAAJ,IAAIA,CAAJ,EAA8B;AAAA;AADnB;;AAIX,UAAM3+C,OAAO,2BAJF,IAIE,CAAb;;AACA,iCALW,IAKX;AAxCwC;;;4BA2C1Ci+C,I,EAAc;AACZ,UAAMj+C,OAAO,2BADD,IACC,CAAb;;AACA,iCAFY,IAEZ;AA7CwC;;;mCAgD1Co+C,I,EAAAA,U,EAAAA,O,EAA0C;AACxC,UAAMp+C,OAAO,kBAD2B,IAC3B,CAAb;AACAA,wBAFwC,EAExCA;;AACA,iCAHwC,IAGxC;;AACA,mBAAa;AAAA;AAJ2B;;AAOxC,uBAAiB,KAPuB,gBAOxC;;AACA,8BAAwBA,KARgB,UAQxC;AAxDwC;;;iCA2D1Cq+C,I,EAAmB;AACjB,8BAAwB,qBADP,EACjB;AACA,UAAMO,cAAc,sBAAsB,+BAFzB,CAEG,CAApB;;AACA,UAAI,CAAJ,aAAkB;AAAA;AAHD;;AAMjB,WAAK,IAAI11E,IAAJ,GAAWkV,KAAKwgE,uBAArB,QAAoD11E,IAApD,IAA4DA,CAA5D,IAAiE;AAC/D01E,+CAD+D,WAC/DA;AAPe;AA3DuB;;;4BAsE1CN,I,EAAc;AACZ,wBADY,IACZ;AAvEwC;;;;EAA5C,a;;;;;;;;;;;;;;;;AC1UA;;;;;;;;;;;;;;IAgBA,oB,GACEr/E,4CAA0B;AAAA;;AACxB,iBADwB,IACxB;AACA,cAFwB,IAExB;AACA,gBAHwB,MAGxB;AAJuB,C;;IAQ3B,qB;AACEA,uCAAkB;AAAA;;AAChB,gBADgB,IAChB;AACA,mBAFgB,IAEhB;AACA,kBAHgB,IAGhB;AACA,mBAAe,IAJC,GAID,EAAf;;AAEA,QAAI6b,SAAJ,MAAmB;AAAA;AANH;;AAShB,gBAAYA,KATI,IAShB;AACA,mBAAeA,KAVC,OAUhB;AACA,kBAAcA,KAXE,KAWhB;;AAXgB,+CAYIA,KAApB,MAZgB;AAAA;;AAAA;AAYhB,0DAAiC;AAAA,YAAjC,MAAiC;;AAC/B,yBACEq2D,OADF,IAEE,yBAAyBA,OAAzB,MAAqCA,OAHR,MAG7B,CAFF;AAbc;AAAA;AAAA;AAAA;AAAA;AAAA;;AAmBhB,QAAIr2D,mBAAJ,OAA8B;AAAA,kDACR,KAApB,OAD4B;AAAA;;AAAA;AAC5B,+DAAkC;AAAA,cAAlC,KAAkC;AAChCq2D,0BADgC,KAChCA;AAF0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAnBd;;AAAA,gDAyBCr2D,KAAjB,EAzBgB;AAAA;;AAAA;AAyBhB,6DAA0B;AAAA,YAA1B,EAA0B;AACxB,uCADwB,IACxB;AA1Bc;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,gDA6BEA,KAAlB,GA7BgB;AAAA;;AAAA;AA6BhB,6DAA4B;AAAA,YAA5B,GAA4B;AAC1B,wCAD0B,KAC1B;AA9Bc;AAAA;AAAA;AAAA;AAAA;AAAA;AADQ;;;;8BAmC1B+jE,K,EAAiB;AACf,UAAI1N,eAAJ,OAA0B;AACxB,YAAI,CAAC,iBAAiBA,MAAtB,EAAK,CAAL,EAAiC;AAC/B5tE,sEAA0C4tE,MADX,EAC/B5tE;AACA,iBAF+B,IAE/B;AAHsB;;AAKxB,eAAO,iBAAiB4tE,MAAjB,IALiB,OAKxB;AALF,aAMO,IAAIA,eAAJ,QAA2B;AAGhC,YAAIA,MAAJ,YAAsB;AACpB5tE,0BADoB,0CACpBA;AAJ8B;;AAMhC,YAAI,CAAC4tE,MAAD,UAAiBA,iBAArB,SAA+C;AAAA,sDAE5BA,MAAjB,GAF6C;AAAA;;AAAA;AAE7C,mEAA4B;AAAA,kBAA5B,EAA4B;;AAC1B,kBAAI,CAAC,iBAAL,EAAK,CAAL,EAA2B;AACzB5tE,4EADyB,EACzBA;AACA,uBAFyB,IAEzB;AAHwB;;AAK1B,kBAAI,qBAAJ,SAAkC;AAChC,uBADgC,IAChC;AANwB;AAFiB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAW7C,iBAX6C,KAW7C;AAXF,eAYO,IAAI4tE,iBAAJ,SAA8B;AAAA,sDAClBA,MAAjB,GADmC;AAAA;;AAAA;AACnC,mEAA4B;AAAA,kBAA5B,GAA4B;;AAC1B,kBAAI,CAAC,iBAAL,GAAK,CAAL,EAA2B;AACzB5tE,4EADyB,GACzBA;AACA,uBAFyB,IAEzB;AAHwB;;AAK1B,kBAAI,CAAC,sBAAL,SAAmC;AACjC,uBADiC,KACjC;AANwB;AADO;AAAA;AAAA;AAAA;AAAA;AAAA;;AAUnC,iBAVmC,IAUnC;AAVK,eAWA,IAAI4tE,iBAAJ,UAA+B;AAAA,sDACnBA,MAAjB,GADoC;AAAA;;AAAA;AACpC,mEAA4B;AAAA,kBAA5B,IAA4B;;AAC1B,kBAAI,CAAC,iBAAL,IAAK,CAAL,EAA2B;AACzB5tE,4EADyB,IACzBA;AACA,uBAFyB,IAEzB;AAHwB;;AAK1B,kBAAI,CAAC,uBAAL,SAAmC;AACjC,uBADiC,IACjC;AANwB;AADQ;AAAA;AAAA;AAAA;AAAA;AAAA;;AAUpC,iBAVoC,KAUpC;AAVK,eAWA,IAAI4tE,iBAAJ,UAA+B;AAAA,sDACnBA,MAAjB,GADoC;AAAA;;AAAA;AACpC,mEAA4B;AAAA,kBAA5B,IAA4B;;AAC1B,kBAAI,CAAC,iBAAL,IAAK,CAAL,EAA2B;AACzB5tE,4EADyB,IACzBA;AACA,uBAFyB,IAEzB;AAHwB;;AAK1B,kBAAI,uBAAJ,SAAkC;AAChC,uBADgC,KAChC;AANwB;AADQ;AAAA;AAAA;AAAA;AAAA;AAAA;;AAUpC,iBAVoC,IAUpC;AAlD8B;;AAoDhCA,kEAAwC4tE,MApDR,MAoDhC5tE;AACA,eArDgC,IAqDhC;AA5Da;;AA8DfA,mDAA2B4tE,MA9DZ,IA8Df5tE;AACA,aA/De,IA+Df;AAlGwB;;;kCAqG1Bu7E,E,EAAkC;AAAA,UAAhB7L,OAAgB,uEAAlC6L,IAAkC;;AAChC,UAAI,CAAC,iBAAL,EAAK,CAAL,EAA2B;AACzBv7E,oEADyB,EACzBA;AADyB;AADK;;AAKhC,qCAA+B,CAAC,CALA,OAKhC;AA1GwB;;;+BA6Gf;AACT,UAAI,CAAC,aAAL,MAAwB;AACtB,eADsB,IACtB;AAFO;;AAIT,UAAI,KAAJ,QAAiB;AACf,eAAO,YADQ,KACR,EAAP;AALO;;AAOT,aAAOsc,WAAW,aAPT,IAOS,EAAXA,CAAP;AApHwB;;;gCAuHd;AACV,UAAI,CAAC,aAAL,MAAwB;AACtB,eADsB,IACtB;AAFQ;;AAIV,aAAOzc,mBAAmB,KAJhB,OAIHA,CAAP;AA3HwB;;;6BA8H1B27E,E,EAAa;AACX,aAAO,wBADI,IACX;AA/HwB;;;;;;;;;;;;;;;;;;;;;;ACR5B;;;;;;;;;;;;;;;;;;;;IAGA,sB;AACE9/E,iEAA2C;AAAA;;AAAA;;AACzC4B,6CADyC,6EACzCA;AAKA,yBANyC,EAMzC;AACA,4BAAwBlC,0BAPiB,KAOzC;AAEA,QAAMg5D,cAAch5D,OATqB,WASzC;;AACA,QAAIg5D,eAAeA,qBAAnB,GAA2C;AACzC,UAAM/5C,SAAS,4BAD0B,MACzC;;AACA,8BAFyC,MAEzC;AAZuC;;AAezC,kCAfyC,qBAezC;AACA,iCAA6B,CAACjf,OAhBW,aAgBzC;AACA,6BAAyB,CAACA,OAjBe,YAiBzC;AACA,0BAAsBA,OAlBmB,MAkBzC;AAEA,8BApByC,IAoBzC;AACA,yBArByC,EAqBzC;;AAEA,iDAA6C,wBAAkB;AAC7D,2BAAoB;AAAEqgF,aAAF,EAAEA,KAAF;AAASvkE,aAAT,EAASA;AAAT,OAApB;AAxBuC,KAuBzC;;AAIA,oDAAgD,yBAAmB;AACjE,wBAAiB;AAAE2kD,cAAF,EAAEA,MAAF;AAAUC,aAAV,EAAUA;AAAV,OAAjB;AA5BuC,KA2BzC;;AAIA,2DAAuD5kD,iBAAS;AAC9D,2BAAoB;AAAEA,aADwC,EACxCA;AAAF,OAApB;AAhCuC,KA+BzC;;AAIA,2DAAuD,YAAM;AAC3D,YAD2D,kBAC3D;AApCuC,KAmCzC;;AAIA,gCAvCyC,cAuCzC;AAxCyB;;;;mCA2C3BwkE,I,EAAqB;AACnB,UAAMrhE,SAAS,eAAegC,KAAf,OADI,MACnB;;AACA,UAAIA,eAAJ,WAA8B;AAC5B,YAAI,KAAJ,oBAA6B;AAC3B,2CAD2B,MAC3B;AADF,eAEO;AACL,kCADK,MACL;AAJ0B;AAA9B,aAMO;AACL,YAAM+uB,QAAQ,wBAAwB,uBAAuB;AAC3D,cAAIkxB,uBAAuBjgD,KAA3B,OAAuC;AACrC,mBADqC,KACrC;AAFyD;;AAI3DigD,+BAJ2D,MAI3DA;;AACA,iBAL2D,IAK3D;AANG,SACS,CAAd;;AAOAh/D,iCARK,yEAQLA;AAhBiB;AA3CM;;;gCAsE3Bq+E,G,EAAiB;AACf,UAAI/f,cAAJ,WAA6B;AAE3B,YAAMggB,cAAc,mBAFO,CAEP,CAApB;;AACA,YAAIA,eAAeA,YAAnB,YAA2C;AACzCA,iCAAuB;AAAE/f,oBAAQD,IADQ;AAClB,WAAvBggB;AAJyB;AAA7B,aAMO;AACL,YAAM1f,aAAa,KADd,kBACL;;AACA,YAAIA,cAAcA,WAAlB,YAAyC;AACvCA,gCAAsB;AAAEL,oBAAQD,IAAV;AAAsBE,mBAAOF,IAA7B;AAAA,WAAtBM;AAHG;AAPQ;AAtEU;;;yCAqFN;AACnB,UAAI,KAAJ,oBAA6B;AAC3B,gCAD2B,eAC3B;AAFiB;;AAInB,8BAJmB,IAInB;AAzFyB;;;uCA4F3B2f,M,EAA2B;AACzB,UAAMl2E,IAAI,2BADe,MACf,CAAV;;AACA,UAAIA,KAAJ,GAAY;AACV,qCADU,CACV;AAHuB;AA5FA;;;oCAmGX;AACdrI,wBACE,CAAC,KADHA,oBADc,+DACdA;AAIA,UAAMw+E,eAAe,KALP,aAKd;AACA,2BANc,IAMd;AACA,aAAO,qDAGL,KAVY,gBAOP,CAAP;AA1GyB;;;mCAiH3BC,K,EAAAA,G,EAA2B;AACzB,UAAIn8E,OAAO,KAAX,wBAAwC;AACtC,eADsC,IACtC;AAFuB;;AAIzB,UAAM+vC,SAAS,mDAJU,GAIV,CAAf;;AACA,0DALyB,GAKzB;;AACA,8BANyB,MAMzB;;AACA,aAPyB,MAOzB;AAxHyB;;;sCA2H3BqsC,M,EAA0B;AACxB,UAAI,KAAJ,oBAA6B;AAC3B,uCAD2B,MAC3B;AAFsB;;AAIxB,UAAMC,UAAU,yBAJQ,CAIR,CAAhB;;AACAA,sBAAgB,uBAAuB;AACrC3f,2BADqC,MACrCA;AANsB,OAKxB2f;;AAGA,kCARwB,KAQxB;AAnIyB;;;wBAkEE;AAC3B,aAAO,0BAA0B,wBAA1B,UADoB,CAC3B;AAnEyB;;;;;;;;IAwI7B,4B;AACEvgF,8DAA2D;AAAA,QAAzB24D,eAAyB,uEAA3D34D,KAA2D;;AAAA;;AACzD,mBADyD,MACzD;AACA,iBAAa24D,mBAF4C,KAEzD;AACA,qBAHyD,IAGzD;AACA,yBAAqBynB,gBAJoC,EAIzD;AACA,mBALyD,CAKzD;;AALyD,+CAMrC,KAApB,aANyD;AAAA;;AAAA;AAMzD,0DAAwC;AAAA,YAAxC,KAAwC;AACtC,wBAAgB5kE,MADsB,UACtC;AAPuD;AAAA;AAAA;AAAA;AAAA;AAAA;;AASzD,qBATyD,EASzD;AACA,yBAAqBoc,QAVoC,OAUpCA,EAArB;AACAsc,gCAXyD,IAWzDA;AAEA,sBAbyD,IAazD;AAd+B;;;;6BAiBjCssC,K,EAAgB;AACd,UAAI,KAAJ,OAAgB;AAAA;AADF;;AAId,UAAI,wBAAJ,GAA+B;AAC7B,YAAMC,oBAAoB,eADG,KACH,EAA1B;;AACAA,kCAA0B;AAAEn6E,iBAAF;AAAgBgD,gBAAhB;AAAA,SAA1Bm3E;AAFF,aAGO;AACL,gCADK,KACL;AARY;;AAUd,sBAAgBjlE,MAVF,UAUd;AA3B+B;;;;;;;;;;sBAmD3B,4BAAJ,C;;;;;AACQA,qB,GAAQ,mBADmB,KACnB,E;iDACP;AAAElV,yBAAF;AAAgBgD,wBAAhB;AAAA,iB;;;qBAEL,KAAJ,K;;;;;iDACS;AAAEhD,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;AAEHm3E,iC,GARK,oC;;AASX,oCATW,iBASX;;iDACOA,kBAVI,O;;;;;;;;;;;;;;;;;;2BAabpqC,M,EAAe;AACb,mBADa,IACb;;AACA,6BAAuB,6BAA6B;AAClDoqC,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAHW,OAEb;;AAGA,uBALa,EAKb;AApE+B;;;sCAuEf;AAChB,UAAI,KAAJ,OAAgB;AAAA;AADA;;AAIhB,mBAJgB,IAIhB;AA3E+B;;;wBA8Bd;AACjB,aAAO,KADU,aACjB;AA/B+B;;;wBAkClB;AACb,aAAO,KADM,SACb;AAnC+B;;;wBAsCV;AACrB,aAAO,aADc,iBACrB;AAvC+B;;;wBA0CN;AACzB,aAAO,aADkB,qBACzB;AA3C+B;;;wBA8Cb;AAClB,aAAO,aADW,cAClB;AA/C+B;;;;;;IAgFnC,iC;AACEzgF,iEAAgC;AAAA;;AAC9B,mBAD8B,MAC9B;AACA,kBAF8B,KAE9B;AACA,gBAH8B,GAG9B;AACA,wBAJ8B,IAI9B;AACA,qBAL8B,EAK9B;AACA,iBAN8B,KAM9B;AAEA,sBAR8B,IAQ9B;AAToC;;;;6BAYtCwgF,K,EAAgB;AACd,UAAI,KAAJ,OAAgB;AAAA;AADF;;AAId,UAAI,0BAAJ,GAAiC;AAC/B,4BAD+B,KAC/B;AADF,aAEO;AACL,YAAME,qBAAqB,eADtB,KACsB,EAA3B;;AACAA,mCAA2B;AAAEp6E,iBAAF;AAAgBgD,gBAAhB;AAAA,SAA3Bo3E;;AACA,+BAAuB,6BAA6B;AAClDD,oCAA0B;AAAEn6E,mBAAF;AAAoBgD,kBAApB;AAAA,WAA1Bm3E;AAJG,SAGL;;AAGA,yBANK,EAML;AAZY;;AAcd,mBAdc,IAcd;;AACA,sCAfc,IAed;AA3BoC;;;;;;;;;;qBAmChC,KAAJ,Y;;;;;AACQjlE,qB,GAAQ,KADO,Y;AAErB,oCAFqB,IAErB;kDACO;AAAElV,yBAAF;AAAgBgD,wBAAhB;AAAA,iB;;;qBAEL,KAAJ,K;;;;;kDACS;AAAEhD,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;AAEHm3E,iC,GATK,oC;;AAUX,oCAVW,iBAUX;;kDACOA,kBAXI,O;;;;;;;;;;;;;;;;;;2BAcbpqC,M,EAAe;AACb,mBADa,IACb;;AACA,6BAAuB,6BAA6B;AAClDoqC,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAHW,OAEb;;AAGA,uBALa,EAKb;;AACA,sCANa,IAMb;AAtDoC;;;wBA8BX;AACzB,aADyB,KACzB;AA/BoC;;;;;;;;;;;;;;;;;;AC3OxC;;;;;;;;IAkBA,Y;AACEzgF,8BAAgC;AAAA,2BAAlB47D,MAAkB;AAAA,QAAlBA,MAAkB,4BAApB,KAAoB;;AAAA;;AAC9B,oBAAgBA,WADc,IAC9B;AAFe;;;;wCAayB;AAAA,UAA7B,KAA6B,SAA7B,KAA6B;AAAA,UAA7B,IAA6B,SAA7B,IAA6B;AAAA,UAA1CqR,UAA0C,SAA1CA,UAA0C;AACxC,aAAO0T,qCADiC,UACjCA,CAAP;AAde;;;uCAiBiD;AAAA,UAAtD,KAAsD,SAAtD,KAAsD;AAAA,UAAtD,MAAsD,SAAtD,MAAsD;AAAA,UAAtD,eAAsD,SAAtD,eAAsD;AAAA,UAAtD,OAAsD,SAAtD,OAAsD;AAAA,UAAlEC,OAAkE,SAAlEA,OAAkE;AAChE,aAAOD,gEADyD,OACzDA,CAAP;AAlBe;;;4BA2BT;AACNA,iBADM,OACNA;AA5Be;;;wBAKD;AACd,UAAIh9E,UAAU,KADA,QACd;;AACA,mBAAa;AACXA,kBAAUg9E,WADC,SACDA,EAAVh9E;AAHY;;AAKd,aAAOwY,qCALO,OAKPA,CAAP;AAVe;;;;;;;;AAgCnB,IAAIwkE,aAAc,6BAA6B;AAC7C,4CAA0C;AACxC,QAAIE,SAASC,gBAD2B,UAC3BA,CAAb;AACAA,4BAFwC,IAExCA;AACAA,qBAHwC,MAGxCA;AACA,QAAIC,WAAWD,8BAA8BA,GAJL,cAIzBA,CAAf;;AACA,QAAI,CAAJ,UAAe;AACb,UAAIE,WAAWF,oBADF,MACEA,CAAf;AACA,YAAM,UAAU,sCAFH,QAEP,CAAN;AAPsC;;AASxC,WATwC,MASxC;AAV2C;;AAY7C,wCAAsC;AACpC,WAAOG,qBAAqBH,GADQ,aAC7BG,CAAP;AAb2C;;AAe7C,0CAAwC;AACtC,WAAOA,qBAAqBH,GADU,eAC/BG,CAAP;AAhB2C;;AAkB7C,sCAAoC;AAClC,QAAIC,UAAUJ,GADoB,aACpBA,EAAd;;AACA,SAAK,IAAI72E,IAAJ,GAAWkV,KAAKgiE,QAArB,QAAqCl3E,IAArC,IAA6C,EAA7C,GAAkD;AAChD62E,+BAAyBK,QADuB,CACvBA,CAAzBL;AAHgC;;AAKlCA,mBALkC,OAKlCA;AACA,QAAIM,SAASN,gCAAgCA,GANX,WAMrBA,CAAb;;AACA,QAAI,CAAJ,QAAa;AACX,UAAIE,WAAWF,qBADJ,OACIA,CAAf;AACA,YAAM,UAAU,mCAFL,QAEL,CAAN;AATgC;;AAWlC,WAXkC,OAWlC;AA7B2C;;AA+B7C,+CAA6C;AAC3CA,qBAD2C,SAC3CA;AACA,QAAIO,UAAUP,GAF6B,aAE7BA,EAAd;AACAA,mBAAeA,GAAfA,YAH2C,OAG3CA;AAGAA,qBAAiBA,GAAjBA,YAAgCA,GAAhCA,gBAAmDA,GANR,aAM3CA;AACAA,qBAAiBA,GAAjBA,YAAgCA,GAAhCA,gBAAmDA,GAPR,aAO3CA;AACAA,qBAAiBA,GAAjBA,YAAgCA,GAAhCA,oBAAuDA,GARZ,OAQ3CA;AACAA,qBAAiBA,GAAjBA,YAAgCA,GAAhCA,oBAAuDA,GATZ,OAS3CA;AAGAA,kBAAcA,GAAdA,eAAgCA,GAAhCA,MAAyCA,GAAzCA,MAAkDA,GAAlDA,eAZ2C,KAY3CA;AACA,WAb2C,OAa3C;AA5C2C;;AA+C7C,iBA/C6C,aA+C7C;;AACA,wBAAsB;AACpB,mBAAe;AAAA;AADK;;AAMpBQ,oBAAgBlgF,uBANI,QAMJA,CAAhBkgF;AACAC,gBAAYD,kCAAkC;AAC5CE,0BARkB;AAO0B,KAAlCF,CAAZC;AAvD2C;;AA4D7C,MAAIE,wBACF;;;;;;;;;;;;;iEADF;AAgBA,MAAIC,0BACF;;;;;;;;;;;;;;;;;;;;;;;;;;;iEADF;AA8BA,MAAIC,aA1GyC,IA0G7C;;AAEA,yBAAuB;AACrB,gBADqB,EACrB;AAEAC,cAHqB;AAIrBlhF,aAJqB,aAIrBA;AACA4gF,oBALqB,IAKrBA;AACAR,SANqB,SAMrBA;AACAS,gBAPqB,IAOrBA;AAGA,QAAIM,eAAeC,uBAVE,qBAUFA,CAAnB;AACA,QAAIC,iBAAiBC,yBAXA,uBAWAA,CAArB;AACA,QAAId,UAAU,kBAAkB,8BAAlB,CAAd;AACAJ,kBAbqB,OAarBA;AAEA,QAAIryD,QAfiB,EAerB;AACAA,eAhBqB,EAgBrBA;AACAA,mBAjBqB,MAiBrBA;AACAA,+BAA2BqyD,+BAlBN,cAkBMA,CAA3BryD;AACAA,6BAAyBqyD,8BAnBJ,YAmBIA,CAAzBryD;AACAA,6BAAyBqyD,+BApBJ,YAoBIA,CAAzBryD;AACAA,4BAAwBqyD,+BArBH,WAqBGA,CAAxBryD;AAEA,QAAIwzD,mBAAmBnB,8BAvBF,YAuBEA,CAAvB;AACA,QAAIoB,mBAAmBpB,+BAxBF,SAwBEA,CAAvB;AACA,QAAIqB,kBAAkBrB,+BAzBD,QAyBCA,CAAtB;AAGA,QAAIsB,iBAAiBtB,GA5BA,YA4BAA,EAArB;AACAA,kBAAcA,GAAdA,cA7BqB,cA6BrBA;AAEAA,kBAAcA,GAAdA,cAA+B,iBAAiB,4DAAjB,CAA/BA,EAMcA,GArCO,WA+BrBA;AAOAA,+BAtCqB,gBAsCrBA;AACAA,gDAA4CA,GAA5CA,iBAvCqB,CAuCrBA;AAEAA,mCAzCqB,CAyCrBA;AACAA,kCA1CqB,CA0CrBA;AAEAa,iBA5CqB,KA4CrBA;AAxJ2C;;AA2J7C,iDAA+C;AAC7C,QAAIthF,QAAQ4qE,MAAZ;AAAA,QACE3qE,SAAS2qE,MAFkC,MAC7C;;AAGA,QAAI,CAAJ,YAAiB;AACfoX,iBADe;AAJ4B;;AAO7C,QAAI5zD,QAAJ;AAAA,QACE/tB,SAAS+tB,MADX;AAAA,QAEEqyD,KAAKryD,MATsC,EAO7C;AAGA/tB,mBAV6C,KAU7CA;AACAA,oBAX6C,MAW7CA;AACAogF,sBAAkBA,GAAlBA,oBAAyCA,GAZI,mBAY7CA;AACAA,iBAAaryD,MAAbqyD,2BAb6C,MAa7CA;;AAEA,QAAIlsB,WAAJ,UAAyB;AACvBksB,mBACEryD,MADFqyD,oBAEElsB,oBAFFksB,CAEElsB,CAFFksB,EAGElsB,oBAHFksB,CAGElsB,CAHFksB,EAIElsB,oBAJFksB,CAIElsB,CAJFksB,EADuB,CACvBA;AADF,WAQO;AACLA,mBAAaryD,MAAbqyD,6BADK,CACLA;AAxB2C;;AA0B7CA,iBACEryD,MADFqyD,iBAEElsB,0CA5B2C,CA0B7CksB;AAMA,QAAIO,UAAUiB,yBAAyBxB,GAhCM,QAgC/BwB,CAAd;AACA,QAAIC,cAAcD,wBAAwBxB,GAjCG,QAiC3BwB,CAAlB;AAIA,QAAI3jE,SAASmiE,GArCgC,YAqChCA,EAAb;AACAA,kBAAcA,GAAdA,cAtC6C,MAsC7CA;AAEAA,kBAAcA,GAAdA,cAA+B,iBAAiB,+DAAjB,CAA/BA,EAMmBA,GA9C0B,WAwC7CA;AAOAA,+BAA2BryD,MA/CkB,gBA+C7CqyD;AACAA,2BAAuBryD,MAAvBqyD,qBAAkDA,GAAlDA,iBAhD6C,CAgD7CA;AAGAA,2BAnD6C,CAmD7CA;AACAA,cAAUA,GApDmC,KAoD7CA;AACAA,iBAAaA,GAAbA,KAAqBA,GArDwB,mBAqD7CA;AACAA,aAASA,GAtDoC,gBAsD7CA;AAEAA,kBAAcA,GAAdA,cAxD6C,CAwD7CA;AAEAA,OA1D6C,KA0D7CA;AAEAA,qBA5D6C,OA4D7CA;AACAA,qBA7D6C,WA6D7CA;AACAA,oBA9D6C,MA8D7CA;AAEA,WAhE6C,MAgE7C;AA3N2C;;AA8N7C,MAAI0B,0BACF;;;;;;;;;;;;;;;;iEADF;AAmBA,MAAIC,4BACF;;;;;;;iEADF;AAUA,MAAIC,eA3PyC,IA2P7C;;AAEA,2BAAyB;AACvB,gBADuB,EACvB;AAEAd,cAHuB;AAIvBlhF,aAJuB,aAIvBA;AACA4gF,oBALuB,IAKvBA;AACAR,SANuB,SAMvBA;AACAS,gBAPuB,IAOvBA;AAGA,QAAIM,eAAeC,uBAVI,uBAUJA,CAAnB;AACA,QAAIC,iBAAiBC,yBAXE,yBAWFA,CAArB;AACA,QAAId,UAAU,kBAAkB,8BAAlB,CAAd;AACAJ,kBAbuB,OAavBA;AAEA,QAAIryD,QAfmB,EAevB;AACAA,eAhBuB,EAgBvBA;AACAA,mBAjBuB,MAiBvBA;AACAA,+BAA2BqyD,+BAlBJ,cAkBIA,CAA3BryD;AACAA,0BAAsBqyD,+BAnBC,SAmBDA,CAAtBryD;AACAA,2BAAuBqyD,+BApBA,UAoBAA,CAAvBryD;AACAA,6BAAyBqyD,8BArBF,YAqBEA,CAAzBryD;AACAA,0BAAsBqyD,8BAtBC,SAsBDA,CAAtBryD;AAEAi0D,mBAxBuB,KAwBvBA;AArR2C;;AAwR7C,yEAAuE;AACrE,QAAI,CAAJ,cAAmB;AACjBC,mBADiB;AADkD;;AAIrE,QAAIl0D,QAAJ;AAAA,QACE/tB,SAAS+tB,MADX;AAAA,QAEEqyD,KAAKryD,MAN8D,EAIrE;AAIA/tB,mBARqE,KAQrEA;AACAA,oBATqE,MASrEA;AACAogF,sBAAkBA,GAAlBA,oBAAyCA,GAV4B,mBAUrEA;AACAA,iBAAaryD,MAAbqyD,2BAXqE,MAWrEA;AAGA,QAAI9pB,QAdiE,CAcrE;AACA,eAfqE,IAerE;;AACA,SAAK/sD,OAAOkV,KAAK24D,QAAjB,QAAiC7tE,IAAjC,IAAyCA,CAAzC,IAA8C;AAC5C,cAAQ6tE,WAAR;AACE;AACEZ,iBAAQY,2BAA2BA,WAA5B,cAACA,GADV,CACEZ;AACAlgB,mBAAU,QAAD,CAAC,KAAa,4BAAd,CAAC,IAFZ,CAEEA;AAHJ;;AAKE;AACEA,mBAAS8gB,kBADX,MACE9gB;AANJ;AAAA;AAjBmE;;AA4BrE,QAAIsQ,SAAS,iBAAiBtQ,QA5BuC,CA4BxD,CAAb;AACA,QAAI+d,SAAS,eAAe/d,QA7ByC,CA6BxD,CAAb;AACA,QAAI4rB,YAAYjiF,QAAhB;AAAA,QACEkiF,YAAYliF,QA/BuD,MA8BrE;AAEA,QAAImiF,SAAJ;AAAA,QACEC,SAjCmE,CAgCrE;;AAEA,SAAK94E,OAAOkV,KAAK24D,QAAjB,QAAiC7tE,IAAjC,IAAyCA,CAAzC,IAA8C;AAC5C,UAAI8sE,SAASe,QAAb,CAAaA,CAAb;AAAA,UACEhB,KAAKC,OADP;AAAA,UAEEC,KAAKD,OAHqC,MAC5C;;AAGA,cAAQA,OAAR;AACE;AACE,cAAII,OAAOJ,OADb,cACE;AACAG,iBAAQJ,YAAD,IAACA,GAFV,CAEEI;;AACA,eAAK,IAAIvM,MAAT,GAAkBA,MAAlB,MAA8BA,GAA9B,IAAqC;AACnC,gBAAInH,SAASmH,aADsB,CACnC;;AACA,iBAAK,IAAIqY,MAAT,GAAkBA,MAAlB,MAA8BA,OAAOxf,MAArC,IAA+C;AAC7C8D,+BAAiBsb,UAAU9L,GAAGtT,gBADe,CAClBsT,CAAV8L,CAAjBtb;AACAA,qBAAOwb,SAAPxb,KAAqBsb,UAAU9L,GAAGtT,gBAAHsT,KAFc,CAExB8L,CAArBtb;AACAA,qBAAOwb,SAAPxb,KAAqBsb,UAAU9L,GAAGtT,SAHW,IAGdsT,CAAV8L,CAArBtb;AACAA,qBAAOwb,SAAPxb,KAAqBsb,UAAU9L,GAAGtT,SAAHsT,QAJc,CAIxB8L,CAArBtb;AACAA,qBAAOwb,SAAPxb,KAAqBsb,UAAU9L,GAAGtT,SALW,CAKdsT,CAAV8L,CAArBtb;AACAA,qBAAOwb,SAAPxb,KAAqBsb,UAAU9L,GAAGtT,SAAHsT,KANc,CAMxB8L,CAArBtb;AACAyN,+BAAiB8N,UAAU7L,GAAGxT,gBAPe,CAOlBwT,CAAV6L,CAAjB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,gBAAHwT,KARc,CAQxB6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,gBAAHwT,KATc,CASxB6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAVW,IAUdwT,CAAV6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAAHwT,QAXc,CAWxB6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAAHwT,QAZc,CAYxB6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAbW,CAadwT,CAAV6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAAHwT,KAdc,CAcxB6L,CAArB9N;AACAA,qBAAOgO,SAAPhO,KAAqB8N,UAAU7L,GAAGxT,SAAHwT,KAfc,CAexB6L,CAArB9N;AAEAzN,qBAAOwb,SAAPxb,KAAqBA,OAAOwb,SAjBiB,CAiBxBxb,CAArBA;AACAA,qBAAOwb,SAAPxb,KAAqBA,OAAOwb,SAlBiB,CAkBxBxb,CAArBA;AACAA,qBAAOwb,SAAPxb,KAAqBA,OAAOwb,SAnBiB,CAmBxBxb,CAArBA;AACAA,qBAAOwb,SAAPxb,KAAqBA,OAAOwb,SApBiB,CAoBxBxb,CAArBA;AACAA,qBAAOwb,SAAPxb,MAAsBsb,UAAU9L,GArBa,MAqBbA,CAAV8L,CAAtBtb;AACAA,qBAAOwb,SAAPxb,MAAsBsb,UAAU9L,aAtBa,CAsBvB8L,CAAtBtb;AACAyN,qBAAOgO,SAAPhO,KAAqBA,OAAOgO,SAvBiB,CAuBxBhO,CAArBA;AACAA,qBAAOgO,SAAPhO,MAAsBA,OAAOgO,SAxBgB,CAwBvBhO,CAAtBA;AACAA,qBAAOgO,SAAPhO,MAAsBA,OAAOgO,SAzBgB,CAyBvBhO,CAAtBA;AACAA,qBAAOgO,SAAPhO,MAAsBA,OAAOgO,SA1BgB,CA0BvBhO,CAAtBA;AACAA,qBAAOgO,SAAPhO,MAAsBA,OAAOgO,SA3BgB,CA2BvBhO,CAAtBA;AACAA,qBAAOgO,SAAPhO,MAAsBA,OAAOgO,SA5BgB,CA4BvBhO,CAAtBA;AACAA,qBAAOgO,SAAPhO,MAAsB8N,UAAU7L,GA7Ba,MA6BbA,CAAV6L,CAAtB9N;AACAA,qBAAOgO,SAAPhO,MAAsB8N,UAAU7L,aA9Ba,CA8BvB6L,CAAtB9N;AACAA,qBAAOgO,SAAPhO,MAAsB8N,UAAU7L,aA/Ba,CA+BvB6L,CAAtB9N;AACA+N,wBAhC6C,EAgC7CA;AACAC,wBAjC6C,EAiC7CA;AAnCiC;AAHvC;;AADF;;AA2CE;AACE,eAAK,IAAI5uD,IAAJ,GAAWyoD,KAAK9F,GAArB,QAAgC3iD,IAAhC,IAAwCA,CAAxC,IAA6C;AAC3CmzC,6BAAiBsb,UAAU9L,GADgB,CAChBA,CAAV8L,CAAjBtb;AACAA,mBAAOwb,SAAPxb,KAAqBsb,UAAU9L,QAFY,CAEtB8L,CAArBtb;AACAyN,6BAAiB8N,UAAU7L,GAHgB,CAGhBA,CAAV6L,CAAjB9N;AACAA,mBAAOgO,SAAPhO,KAAqB8N,UAAU7L,QAJY,CAItB6L,CAArB9N;AACAA,mBAAOgO,SAAPhO,KAAqB8N,UAAU7L,QALY,CAKtB6L,CAArB9N;AACA+N,sBAN2C,CAM3CA;AACAC,sBAP2C,CAO3CA;AARJ;;AA3CF;AAAA;AAtCmE;;AAgGrE,yBAAqB;AACnBjC,oBACEjJ,qBADFiJ,KAEEjJ,qBAFFiJ,KAGEjJ,qBAHFiJ,KADmB,GACnBA;AADF,WAOO;AACLA,6BADK,CACLA;AAxGmE;;AA0GrEA,aAASA,GA1G4D,gBA0GrEA;AAEA,QAAImC,eAAenC,GA5GkD,YA4GlDA,EAAnB;AACAA,kBAAcA,GAAdA,cA7GqE,YA6GrEA;AACAA,kBAAcA,GAAdA,sBAAuCA,GA9G8B,WA8GrEA;AACAA,+BAA2BryD,MA/G0C,gBA+GrEqyD;AACAA,2BAAuBryD,MAAvBqyD,qBAAkDA,GAAlDA,iBAhHqE,CAgHrEA;AAEA,QAAIoC,eAAepC,GAlHkD,YAkHlDA,EAAnB;AACAA,kBAAcA,GAAdA,cAnHqE,YAmHrEA;AACAA,kBAAcA,GAAdA,sBAAuCA,GApH8B,WAoHrEA;AACAA,+BAA2BryD,MArH0C,aAqHrEqyD;AACAA,2BACEryD,MADFqyD,kBAGEA,GAHFA,yBAtHqE,CAsHrEA;AASAA,iBAAaryD,MAAbqyD,eAAkCngF,QAAlCmgF,QAAkDngF,QA/HmB,MA+HrEmgF;AACAA,iBAAaryD,MAAbqyD,gBAAmCngF,QAAnCmgF,SAAoDngF,QAhIiB,OAgIrEmgF;AAEAA,kBAAcA,GAAdA,cAlIqE,KAkIrEA;AAEAA,OApIqE,KAoIrEA;AAEAA,oBAtIqE,YAsIrEA;AACAA,oBAvIqE,YAuIrEA;AAEA,WAzIqE,MAyIrE;AAja2C;;AAoa7C,SAAO;AACLqC,aADK,uBACO;AACV,UAAI;AACFvB,kBADE;AAEF,eAAO,CAAC,CAFN,SAEF;AAFF,QAGE,WAAW,CAJH;;AAKV,aALU,KAKV;AANG;AASL3U,gBATK,EASLA,YATK;AAWL2T,eAXK,EAWLA,WAXK;AAaLnjB,WAbK,qBAaK;AACR,UAAIkkB,cAAcA,WAAlB,QAAqC;AACnCA,kCADmC,CACnCA;AACAA,mCAFmC,CAEnCA;AAHM;;AAKR,UAAIe,gBAAgBA,aAApB,QAAyC;AACvCA,oCADuC,CACvCA;AACAA,qCAFuC,CAEvCA;AAPM;;AASRf,mBATQ,IASRA;AACAe,qBAVQ,IAURA;AAvBG;AAAA,GAAP;AAtdF,CAkDkB,EAAlB,C;;;;;;;;;;;;;;AClCA;;AAOA;;AAvBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDA,wB;;;;;;;2BAKE,U,EAA0B;AACxB,UAAMlY,UAAU4Y,gBADQ,cACxB;;AAEA;AACE,aAAKn2E,qBAAL;AACE,iBAAO,0BAFX,UAEW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,0BALX,UAKW,CAAP;;AAEF,aAAKA,qBAAL;AACE,cAAMo2E,YAAYD,gBADpB,SACE;;AAEA;AACE;AACE,qBAAO,gCAFX,UAEW,CAAP;;AACF;AACE,kBAAIA,gBAAJ,aAAiC;AAC/B,uBAAO,uCADwB,UACxB,CAAP;AADF,qBAEO,IAAIA,gBAAJ,UAA8B;AACnC,uBAAO,oCAD4B,UAC5B,CAAP;AAJJ;;AAME,qBAAO,sCATX,UASW,CAAP;;AACF;AACE,qBAAO,kCAXX,UAWW,CAAP;AAXJ;;AAaA,iBAAO,4BAvBX,UAuBW,CAAP;;AAEF,aAAKn2E,qBAAL;AACE,iBAAO,2BA1BX,UA0BW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,8BA7BX,UA6BW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,0BAhCX,UAgCW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,4BAnCX,UAmCW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,4BAtCX,UAsCW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,8BAzCX,UAyCW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,2BA5CX,UA4CW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,yBA/CX,UA+CW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,6BAlDX,UAkDW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,+BArDX,UAqDW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,+BAxDX,UAwDW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,8BA3DX,UA2DW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,+BA9DX,UA8DW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,2BAjEX,UAiEW,CAAP;;AAEF,aAAKA,qBAAL;AACE,iBAAO,oCApEX,UAoEW,CAAP;;AAEF;AACE,iBAAO,sBAvEX,UAuEW,CAAP;AAvEJ;AAR2B;;;;;;IAoF/B,iB;AACEjN,yCAAoE;AAAA,QAA5CsjF,YAA4C,uEAApEtjF,KAAoE;AAAA,QAAtBujF,YAAsB,uEAApEvjF,KAAoE;;AAAA;;AAClE,wBADkE,YAClE;AACA,gBAAYojF,WAFsD,IAElE;AACA,iBAAaA,WAHqD,KAGlE;AACA,gBAAYA,WAJsD,IAIlE;AACA,oBAAgBA,WALkD,QAKlE;AACA,uBAAmBA,WAN+C,WAMlE;AACA,2BAAuBA,WAP2C,eAOlE;AACA,8BAA0BA,WARwC,kBAQlE;AACA,kCAA8BA,WAToC,sBASlE;AACA,sBAAkBA,WAVgD,UAUlE;AACA,6BAAyBA,WAXyC,iBAWlE;;AAEA,sBAAkB;AAChB,uBAAiB,sBADD,YACC,CAAjB;AAdgE;AAD9C;;;;uCA2BiB;AAAA,UAAtBG,YAAsB,uEAAvCC,KAAuC;AACrC,UAAM3nE,OAAO,KAAb;AAAA,UACEmkD,OAAO,KADT;AAAA,UAEE7D,WAAW,KAHwB,QACrC;AAGA,UAAM3kB,YAAYp2C,uBAJmB,SAInBA,CAAlB;AACA,UAAIf,QAAQwb,eAAeA,UALU,CAKVA,CAA3B;AACA,UAAIvb,SAASub,eAAeA,UANS,CAMTA,CAA5B;AAEA27B,mDAA6C37B,KARR,EAQrC27B;;AAIA,UAAMt0C,OAAO,yBAAmB,CAC9B2Y,UAD8B,CAC9BA,CAD8B,EAE9BmkD,eAAenkD,UAAfmkD,CAAenkD,CAAfmkD,GAA8BA,UAFA,CAEAA,CAFA,EAG9BnkD,UAH8B,CAG9BA,CAH8B,EAI9BmkD,eAAenkD,UAAfmkD,CAAenkD,CAAfmkD,GAA8BA,UAJA,CAIAA,CAJA,CAAnB,CAAb;;AAOAxoB,mDAAsC2kB,wBAnBD,GAmBCA,CAAtC3kB;AACAA,mDAAsCt0C,KAAJ,CAAIA,CAAtCs0C,iBAAoDt0C,KApBf,CAoBeA,CAApDs0C;;AAEA,UAAI,iBAAiB37B,yBAArB,GAAiD;AAC/C27B,gDAAiC37B,iBADc,KAC/C27B;;AACA,YAAI37B,2BAA2BxK,gCAA/B,WAAoE;AAIlEhR,kBAAQA,QAAQ,IAAIwb,iBAJ8C,KAIlExb;AACAC,mBAASA,SAAS,IAAIub,iBAL4C,KAKlEvb;AAP6C;;AAU/C,YAAMmjF,mBAAmB5nE,iBAVsB,sBAU/C;AACA,YAAM6nE,iBAAiB7nE,iBAXwB,oBAW/C;;AACA,YAAI4nE,wBAAwBC,iBAA5B,GAAgD;AAC9C,cAAMC,mBAAS,gBAATA,kBADwC,cACxCA,OAAN;AACAnsC,yCAF8C,MAE9CA;AAd6C;;AAiB/C,gBAAQ37B,iBAAR;AACE,eAAKxK,gCAAL;AACEmmC,0CADF,OACEA;AAFJ;;AAKE,eAAKnmC,gCAAL;AACEmmC,0CADF,QACEA;AANJ;;AASE,eAAKnmC,gCAAL;AACE/M,4BADF,qCACEA;AAVJ;;AAaE,eAAK+M,gCAAL;AACE/M,4BADF,mCACEA;AAdJ;;AAiBE,eAAK+M,gCAAL;AACEmmC,gDADF,OACEA;AAlBJ;;AAqBE;AArBF;AAAA;;AAyBA,YAAI37B,KAAJ,OAAgB;AACd27B,wCAA8Bx6B,sBAC5BnB,gBAD4BmB,GAE5BnB,gBAF4BmB,GAG5BnB,gBAJY,CACgBmB,CAA9Bw6B;AADF,eAMO;AAELA,wCAFK,CAELA;AAlD6C;AAtBZ;;AA4ErCA,uCAA0Bt0C,KA5EW,CA4EXA,CAA1Bs0C;AACAA,sCAAyBt0C,KA7EY,CA6EZA,CAAzBs0C;AACAA,wCA9EqC,KA8ErCA;AACAA,yCA/EqC,MA+ErCA;AACA,aAhFqC,SAgFrC;AA3GoB;;;iCAyHtBosC,S,EAAAA,O,EAAAA,I,EAAuC;AAErC,UAAI,CAAJ,SAAc;AACZC,kBAAUziF,uBADE,KACFA,CAAVyiF;AACAA,+BAAuBrsC,gBAFX,MAEZqsC;AACAA,8BAAsBrsC,gBAHV,KAGZqsC;AACArsC,8BAJY,OAIZA;AANmC;;AASrC,UAAMssC,eAAe,iBAAiB;AACpCtsC,iBADoC,EACpCA,SADoC;AAEpCqsC,eAFoC,EAEpCA,OAFoC;AAGpC3S,eAAOr1D,KAH6B;AAIpCkoE,eAAOloE,KAJ6B;AAKpCmoE,0BAAkBnoE,KALkB;AAMpCooE,kBAAUpoE,KAN0B;AAOpCqoE,qBAPoC;AAAA,OAAjB,CAArB;AASA,UAAMC,QAAQL,aAlBuB,MAkBvBA,EAAd;AAGAK,yBAAmB3sC,gBArBkB,KAqBrC2sC;AAEA3sC,4BAvBqC,KAuBrCA;AAhJoB;;;6BAyJb;AACPv3C,6BADO,mDACPA;AA1JoB;;;;;;IA8JxB,qB;;;;;AACED,6CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,uBACAF,gBADA,QAEAA,gBAJoB,MACA,CAAtB;AADsB,6BAMtB,UANsB;AAD4B;;;;6BAiB3C;AACP,iCADO,gBACP;AADO,UAGD,IAHC,QAGD,IAHC;AAAA,UAGD,WAHC,QAGD,WAHC;AAIP,UAAMt/E,OAAO1C,uBAJN,GAIMA,CAAb;;AAEA,UAAIya,KAAJ,KAAc;AACZuoE,oDAAwB;AACtBtjF,eAAK+a,KADiB;AAEtBiG,kBAAQjG,iBACJxY,0BADIwY,QAEJwoE,YAJkB;AAKtBC,eAAKD,YALiB;AAMtB1gF,mBAAS0gF,YANa;AAAA,SAAxBD;AADF,aASO,IAAIvoE,KAAJ,QAAiB;AACtB,oCAA4BA,KADN,MACtB;AADK,aAEA;AACL,6BAAqBA,KADhB,IACL;AAlBK;;AAqBP,iCArBO,IAqBP;AACA,aAAO,KAtBA,SAsBP;AAvCkD;;;8BAkDpD0oE,I,EAAAA,W,EAA6B;AAAA;;AAC3BzgF,kBAAY,oCADe,WACf,CAAZA;;AACAA,qBAAe,YAAM;AACnB,yBAAiB;AACf,uCADe,WACf;AAFiB;;AAInB,eAJmB,KAInB;AANyB,OAE3BA;;AAMA,uBAAiB;AACfA,yBADe,cACfA;AATyB;AAlDuB;;;qCAuEpD0gF,I,EAAAA,M,EAA+B;AAAA;;AAC7B1gF,kBAAY,8BADiB,EACjB,CAAZA;;AACAA,qBAAe,YAAM;AACnB,8CADmB,MACnB;;AACA,eAFmB,KAEnB;AAJ2B,OAE7BA;;AAIAA,uBAN6B,cAM7BA;AA7EkD;;;;EAAtD,iB;;IAiFA,qB;;;;;AACE9D,6CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,8BAMtB,UANsB;AAD4B;;;;6BAiB3C;AACP,iCADO,gBACP;AAEA,UAAMrQ,QAAQ3xE,uBAHP,KAGOA,CAAd;AACA2xE,2BAAqB,qBAJd,MAIPA;AACAA,0BAAoB,qBALb,KAKPA;AACAA,kBACE,0CAEA,eAFA,WAEA,EAFA,GAPK,MAMPA;AAKAA,kBAXO,uBAWPA;AACAA,6BAZO,sBAYPA;AACAA,+BAAyB3c,eAAe;AAAElvD,cAAM,UAbzC;AAaiC,OAAfkvD,CAAzB2c;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,kBAAyC,KADlB,IACvB;AAhBK;;AAmBP,iCAnBO,KAmBP;AACA,aAAO,KApBA,SAoBP;AArCkD;;;;EAAtD,iB;;IAyCA,uB;;;;;;;;;;;;;6BAQW;AAEP,aAAO,KAFA,SAEP;AAVoD;;;;EAAxD,iB;;IAcA,2B;;;;;AACE/yE,mDAAwB;AAAA;;AACtB,QAAMsjF,eACJF,qCACC,CAACA,gBAAD,iBAAkC,CAAC,CAACA,gBAHjB,UACtB;AADsB,8BAItB,UAJsB;AADwC;;;;6BAevD;AACP,UAAMqB,iBAAiB,2BAAvB;AACA,UAAMC,UAAU,KAFT,iBAEP;AACA,UAAMp9D,KAAK,UAHJ,EAGP;AAEA,iCALO,sBAKP;AAEA,UAAI7I,UAPG,IAOP;;AACA,UAAI,KAAJ,wBAAiC;AAI/B,YAAMw+C,cAAcynB,6BAA6B,UAJlB,UAIXA,CAApB;;AAEA,YAAI,UAAJ,WAAyB;AACvBjmE,oBAAUrd,uBADa,UACbA,CAAVqd;AACAA,gCAFuB,WAEvBA;AAFF,eAGO;AACLA,oBAAUrd,uBADL,OACKA,CAAVqd;AACAA,yBAFK,MAELA;AACAA,wCAHK,WAGLA;AAZ6B;;AAe/BA,0CAAkC,iBAAiB;AACjDimE,+BAAqBpnD,aAD4B,KACjDonD;AAhB6B,SAe/BjmE;AAIAA,2BAAmB,UAnBY,QAmB/BA;AACAA,uBAAe,UApBgB,SAoB/BA;;AAEA,YAAI,qBAAJ,MAA+B;AAC7BA,8BAAoB,UADS,MAC7BA;AAvB6B;;AA0B/B,YAAI,UAAJ,MAAoB;AAClB,cAAMkmE,aAAa,oBAAoB,eADrB,CACqB,CAAvC;AACA,cAAMC,YAAYD,aAAa,UAFb,MAElB;AAEAlmE,gCAJkB,MAIlBA;AACAA,uDALkB,SAKlBA;AA/B6B;AAAjC,aAiCO;AACLA,kBAAUrd,uBADL,KACKA,CAAVqd;AACAA,8BAAsB,UAFjB,UAELA;AACAA,sCAHK,QAGLA;AACAA,gCAJK,YAILA;AAEA,YAAIjF,OANC,IAML;;AACA,YACE,yBACA,yBAAyB,UAF3B,WAEE,CAFF,EAGE;AACAA,iBAAO,yBAAyB,UADhC,WACO,CAAPA;AAXG;;AAaL,oCAbK,IAaL;AAtDK;;AAyDP,UAAI,4BAAJ,MAAsC;AACpCiF,kCAA0BgmE,eAAe,UADL,aACVA,CAA1BhmE;AA1DK;;AA6DP,iCA7DO,OA6DP;AACA,aAAO,KA9DA,SA8DP;AA7E8D;;;kCAwFhEomE,O,EAAAA,I,EAA6B;AAE3B,UAAMh3D,QAAQpP,QAFa,KAE3B;AACAoP,iCAAoB,UAHO,QAG3BA;AACAA,wBAAkB,sCAJS,KAI3BA;;AAEA,UAAI,CAAJ,MAAW;AAAA;AANgB;;AAU3B,UAAIkgD,OAVuB,QAU3B;;AACA,UAAIv0D,KAAJ,OAAgB;AACdu0D,eADc,KACdA;AADF,aAEO,IAAIv0D,KAAJ,MAAe;AACpBu0D,eADoB,MACpBA;AAdyB;;AAgB3BlgD,yBAhB2B,IAgB3BA;AACAA,wBAAkBrU,yBAjBS,QAiB3BqU;AAGA,UAAMi3D,aAAatrE,8BAAsBA,KAAtBA,sBApBQ,EAoB3B;AACA,UAAMurE,eAAevrE,qBArBM,uBAqB3B;AACAqU,yBAAmBi3D,aAtBQ,YAsB3Bj3D;AA9G8D;;;;EAAlE,uB;;IAkHA,+B;;;;;AACE7tB,uDAAwB;AAAA;;AAAA,8BACtB,UADsB,EACJojF,WADI;AAD4C;;;;6BAa3D;AACP,UAAMsB,UAAU,KADT,iBACP;AACA,UAAM7oE,OAAO,KAFN,IAEP;AACA,UAAMyL,KAAKzL,KAHJ,EAGP;AACA,UAAMvV,QAAQo+E,6BAEZ7oE,mBAAmBA,oBANd,KAIO6oE,CAAd;AAKA,iCATO,iCASP;AAEA,UAAMjmE,UAAUrd,uBAXT,OAWSA,CAAhB;AACAqd,yBAAmB5C,KAZZ,QAYP4C;AACAA,qBAbO,UAaPA;AACAA,qBAAe,UAdR,SAcPA;;AACA,iBAAW;AACTA,wCADS,IACTA;AAhBK;;AAmBPA,yCAAmC,iBAAiB;AAClDimE,6BAAqBpnD,aAD6B,OAClDonD;AApBK,OAmBPjmE;AAIA,iCAvBO,OAuBP;AACA,aAAO,KAxBA,SAwBP;AArCkE;;;;EAAtE,uB;;IAyCA,kC;;;;;AACEze,0DAAwB;AAAA;;AAAA,8BACtB,UADsB,EACJojF,WADI;AAD+C;;;;6BAa9D;AACP,iCADO,oCACP;AACA,UAAMsB,UAAU,KAFT,iBAEP;AACA,UAAM7oE,OAAO,KAHN,IAGP;AACA,UAAMyL,KAAKzL,KAJJ,EAIP;AACA,UAAMvV,QAAQo+E,6BAEZ7oE,oBAAoBA,KAPf,WAKO6oE,CAAd;AAKA,UAAMjmE,UAAUrd,uBAVT,OAUSA,CAAhB;AACAqd,yBAAmB5C,KAXZ,QAWP4C;AACAA,qBAZO,OAYPA;AACAA,qBAAe5C,KAbR,SAaP4C;;AACA,iBAAW;AACTA,wCADS,IACTA;AAfK;;AAkBPA,yCAAmC,iBAAiB;AAClD,YAAMpa,OAAOi5B,aADqC,IAClD;;AADkD,mDAE9Bl8B,2BAApB,IAAoBA,CAF8B;AAAA;;AAAA;AAElD,8DAAsD;AAAA,gBAAtD,KAAsD;;AACpD,gBAAI4jF,UAAU1nD,MAAd,QAA4B;AAC1BonD,+BACEM,8BADFN,oBACEM,CADFN,EAD0B,KAC1BA;AAFkD;AAFJ;AAAA;AAAA;AAAA;AAAA;AAAA;;AAUlDA,6BAAqBpnD,aAV6B,OAUlDonD;AA5BK,OAkBPjmE;AAaA,iCA/BO,OA+BP;AACA,aAAO,KAhCA,SAgCP;AA7CqE;;;;EAAzE,uB;;IAiDA,iC;;;;;;;;;;;;;6BASW;AAIP,UAAM+4B,SAJC,gGAIP;;AACAA,4BALO,mCAKPA;AACA,aANO,SAMP;AAfkE;;;;EAAtE,qB;;IAmBA,6B;;;;;AACEx3C,qDAAwB;AAAA;;AAAA,8BACtB,UADsB,EACJojF,WADI;AAD0C;;;;6BAazD;AACP,iCADO,wBACP;AACA,UAAMsB,UAAU,KAFT,iBAEP;AACA,UAAMp9D,KAAK,UAHJ,EAGP;AASAo9D,mCAEE,kCAAkC,qBAAlC,CAAkC,CAAlC,GAdK,IAYPA;AAKA,UAAMO,gBAAgB7jF,uBAjBf,QAiBeA,CAAtB;AACA6jF,+BAAyB,UAlBlB,QAkBPA;AACAA,2BAAqB,UAnBd,SAmBPA;;AAEA,UAAI,CAAC,UAAL,OAAsB;AAEpBA,6BAAqB,kBAFD,MAEpBA;;AACA,YAAI,UAAJ,aAA2B;AACzBA,mCADyB,IACzBA;AAJkB;AArBf;;AAAA,kDA8Bc,UAArB,OA9BO;AAAA;;AAAA;AA8BP,+DAAwC;AAAA,cAAxC,MAAwC;AACtC,cAAMC,gBAAgB9jF,uBADgB,QAChBA,CAAtB;AACA8jF,sCAA4BC,OAFU,YAEtCD;AACAA,gCAAsBC,OAHgB,WAGtCD;;AACA,cAAI,8BAA8BC,OAAlC,WAAI,CAAJ,EAAuD;AACrDD,mDADqD,IACrDA;AALoC;;AAOtCD,oCAPsC,aAOtCA;AArCK;AAAA;AAAA;AAAA;AAAA;AAAA;;AAwCPA,8CAAwC,iBAAiB;AACvD,YAAMtjE,UAAU2b,aADuC,OACvD;AACA,YAAMh3B,QAAQqb,QAAQA,QAARA,eAFyC,KAEvD;AACA+iE,6BAHuD,KAGvDA;AA3CK,OAwCPO;AAMA,iCA9CO,aA8CP;AACA,aAAO,KA/CA,SA+CP;AA5DgE;;;;EAApE,uB;;IAgEA,sB;;;;;AACEjlF,8CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EAAE,yBAAyBF,gBAD3B,QACA,CAAtB;AADsB,8BAEtB,UAFsB;AAD6B;;;;6BAa5C;AAGP,UAAMgC,eAAe,0DAArB;AASA,iCAZO,iBAYP;;AAEA,UAAIA,sBAAsB,UAA1B,UAAIA,CAAJ,EAAiD;AAC/C,eAAO,KADwC,SAC/C;AAfK;;AAkBP,UAAMC,2CAAmC,UAlBlC,QAkBDA,QAAN;AACA,UAAMC,gBAAgB,yBAnBf,QAmBe,CAAtB;;AACA,UAAI,CAAJ,eAAoB;AAClB,eAAO,KADW,SAClB;AArBK;;AAwBP,UAAMnB,QAAQ,iBAAiB;AAC7B3sC,mBAAW,KADkB;AAE7BqsC,iBAF6B;AAG7B3S,eAAO,UAHsB;AAI7B6S,eAAO,UAJsB;AAK7BC,0BAAkB,UALW;AAM7BC,kBAAU,UANmB;AAAA,OAAjB,CAAd;AAWA,UAAMsB,aAAaC,WAAWF,oBAnCvB,IAmCYE,CAAnB;AACA,UAAMC,cAAcD,WAAWF,oBApCxB,KAoCaE,CAApB;AACA,wDAA2CD,aAAJ,WAAvC,iBACED,oBAtCK,GAqCP;AAGA,4CAA+BC,aAxCxB,WAwCP;AAEA,iCAA2BpB,MA1CpB,MA0CoBA,EAA3B;AACA,aAAO,KA3CA,SA2CP;AAxDmD;;;;EAAvD,iB;;IA4DA,Y;AACEnkF,oCAAwB;AAAA;;AACtB,qBAAiBojF,WADK,SACtB;AACA,mBAAeA,WAFO,OAEtB;AACA,iBAAaA,WAHS,KAGtB;AACA,iBAAaA,WAJS,KAItB;AACA,4BAAwBA,WALF,gBAKtB;AACA,oBAAgBA,WANM,QAMtB;AACA,uBAAmBA,0BAPG,KAOtB;AAEA,kBATsB,KAStB;AAVe;;;;6BAoBR;AACP,UAAMsC,qBADC,GACP;AAEA,UAAM3nD,UAAU38B,uBAHT,KAGSA,CAAhB;AACA28B,0BAJO,cAIPA;AAMA,yBAAmB,6BAA6B,KAVzC,SAUP;AACA,8CAXO,IAWP;AAEA,UAAMomD,QAAQ/iF,uBAbP,KAaOA,CAAd;AACA+iF,wBAdO,OAcPA;AAEA,UAAMjT,QAAQ,KAhBP,KAgBP;;AACA,iBAAW;AAET,YAAMh0D,IAAIwoE,sBAAsB,MAAMxU,MAA5BwU,CAA4BxU,CAA5BwU,IAAwCxU,MAFzC,CAEyCA,CAAlD;AACA,YAAMyU,IAAID,sBAAsB,MAAMxU,MAA5BwU,CAA4BxU,CAA5BwU,IAAwCxU,MAHzC,CAGyCA,CAAlD;AACA,YAAM1zD,IAAIkoE,sBAAsB,MAAMxU,MAA5BwU,CAA4BxU,CAA5BwU,IAAwCxU,MAJzC,CAIyCA,CAAlD;AACAiT,sCAA8BnnE,sBAAgBE,IAAhBF,GAAuB2oE,IAAvB3oE,GAA8BQ,IALnD,CAKqBR,CAA9BmnE;AAtBK;;AAyBP,UAAMJ,QAAQ3iF,uBAzBP,IAyBOA,CAAd;AACA2iF,0BAAoB,KA1Bb,KA0BPA;AACAI,wBA3BO,KA2BPA;;AAKA,UAAMyB,aAAaC,0CAA2B,KAhCvC,gBAgCYA,CAAnB;;AACA,sBAAgB;AACd,YAAM7B,mBAAmB5iF,uBADX,MACWA,CAAzB;AACA4iF,uCAFc,oBAEdA;AACAA,0CAHc,wBAGdA;AACAA,4CAAoC,eAAe;AACjDtlE,gBAAMknE,WAD2C,kBAC3CA,EAD2C;AAEjDxhF,gBAAMwhF,WAF2C,kBAE3CA;AAF2C,SAAf,CAApC5B;AAIAG,0BARc,gBAQdA;AAzCK;;AA4CP,UAAMF,WAAW,qBAAqB,KA5C/B,QA4CU,CAAjB;;AACAE,wBA7CO,QA6CPA;AAGA,6CAAuC,kBAhDhC,IAgDgC,CAAvC;AACA,iDAA2C,sBAjDpC,KAiDoC,CAA3C;AACA,gDAA0C,sBAlDnC,KAkDmC,CAA1C;AACAA,sCAAgC,sBAnDzB,IAmDyB,CAAhCA;AAEApmD,0BArDO,KAqDPA;AACA,aAtDO,OAsDP;AA1Ee;;;oCAqFjB+nD,Q,EAA0B;AACxB,UAAMnpE,IAAIvb,uBADc,GACdA,CAAV;AACA,UAAM2kF,QAAQ9B,eAFU,cAEVA,CAAd;;AACA,WAAK,IAAIh6E,IAAJ,GAAWkV,KAAK4mE,MAArB,QAAmC97E,IAAnC,IAA2C,EAA3C,GAAgD;AAC9C,YAAM+7E,OAAOD,MADiC,CACjCA,CAAb;AACAppE,sBAAcvb,wBAFgC,IAEhCA,CAAdub;;AACA,YAAI1S,IAAIkV,KAAR,GAAgB;AACdxC,wBAAcvb,uBADA,IACAA,CAAdub;AAJ4C;AAHxB;;AAUxB,aAVwB,CAUxB;AA/Fe;;;8BAwGP;AACR,UAAI,KAAJ,QAAiB;AACf,mBADe,IACf;AADF,aAEO;AACL,mBADK,IACL;AAJM;AAxGO;;;4BAuHE;AAAA,UAAbspE,GAAa,uEAAnBC,KAAmB;;AACjB,eAAS;AACP,sBADO,IACP;AAFe;;AAIjB,UAAI,8BAAJ,QAAI,CAAJ,EAA6C;AAC3C,yCAD2C,QAC3C;AACA,uCAF2C,CAE3C;AANe;AAvHF;;;4BAwIG;AAAA,UAAdC,KAAc,uEAApBC,IAAoB;;AAClB,iBAAW;AACT,sBADS,KACT;AAFgB;;AAIlB,UAAI,CAAC,8BAAD,QAAC,CAAD,IAA4C,CAAC,KAAjD,QAA8D;AAC5D,gDAD4D,IAC5D;AACA,uCAF4D,CAE5D;AANgB;AAxIH;;;;;;IAmJnB,yB;;;;;AACEpmF,iDAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AADgC;;;;6BAiB/C;AACP,iCADO,oBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBsD;;;;EAA1D,iB;;IA2BA,qB;;;;;AACEpjF,6CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AAD4B;;;;6BAiB3C;AACP,iCADO,gBACP;AAKA,UAAMvnE,OAAO,KANN,IAMP;AACA,UAAMxb,QAAQwb,eAAeA,UAPtB,CAOsBA,CAA7B;AACA,UAAMvb,SAASub,eAAeA,UARvB,CAQuBA,CAA9B;AACA,UAAMha,MAAM,8BATL,MASK,CAAZ;AAIA,UAAMmkF,OAAO,8BAbN,UAaM,CAAb;AACAA,8BAAwBnqE,eAAeA,qBAdhC,CAcgCA,CAAvCmqE;AACAA,8BAAwBnqE,eAAeA,qBAfhC,CAegCA,CAAvCmqE;AACAA,8BAAwBnqE,eAAeA,qBAhBhC,CAgBgCA,CAAvCmqE;AACAA,8BAAwBnqE,eAAeA,qBAjBhC,CAiBgCA,CAAvCmqE;AAGAA,wCAAkCnqE,0BApB3B,CAoBPmqE;AACAA,kCArBO,aAqBPA;AAEAnkF,sBAvBO,IAuBPA;AACA,4BAxBO,GAwBP;;AAIA,wBAAkB,KAAlB,iBA5BO,IA4BP;;AAEA,aAAO,KA9BA,SA8BP;AA/CkD;;;;EAAtD,iB;;IAmDA,uB;;;;;AACE7B,+CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AAD8B;;;;6BAiB7C;AACP,iCADO,kBACP;AAKA,UAAMvnE,OAAO,KANN,IAMP;AACA,UAAMxb,QAAQwb,eAAeA,UAPtB,CAOsBA,CAA7B;AACA,UAAMvb,SAASub,eAAeA,UARvB,CAQuBA,CAA9B;AACA,UAAMha,MAAM,8BATL,MASK,CAAZ;AAKA,UAAMwkF,cAAcxqE,iBAdb,KAcP;AACA,UAAMyqE,SAAS,8BAfR,UAeQ,CAAf;AACAA,+BAAyBD,cAhBlB,CAgBPC;AACAA,+BAAyBD,cAjBlB,CAiBPC;AACAA,mCAA6BjmF,QAlBtB,WAkBPimF;AACAA,oCAA8BhmF,SAnBvB,WAmBPgmF;AAGAA,0CAAoCD,eAtB7B,CAsBPC;AACAA,oCAvBO,aAuBPA;AACAA,kCAxBO,MAwBPA;AAEAzkF,sBA1BO,MA0BPA;AACA,4BA3BO,GA2BP;;AAIA,wBAAkB,KAAlB,mBA/BO,IA+BP;;AAEA,aAAO,KAjCA,SAiCP;AAlDoD;;;;EAAxD,iB;;IAsDA,uB;;;;;AACE7B,+CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AAD8B;;;;6BAiB7C;AACP,iCADO,kBACP;AAKA,UAAMvnE,OAAO,KANN,IAMP;AACA,UAAMxb,QAAQwb,eAAeA,UAPtB,CAOsBA,CAA7B;AACA,UAAMvb,SAASub,eAAeA,UARvB,CAQuBA,CAA9B;AACA,UAAMha,MAAM,8BATL,MASK,CAAZ;AAKA,UAAMwkF,cAAcxqE,iBAdb,KAcP;AACA,UAAM0qE,SAAS,8BAfR,aAeQ,CAAf;AACAA,gCAA0BlmF,QAhBnB,CAgBPkmF;AACAA,gCAA0BjmF,SAjBnB,CAiBPimF;AACAA,gCAA0BlmF,YAAYgmF,cAlB/B,CAkBPE;AACAA,gCAA0BjmF,aAAa+lF,cAnBhC,CAmBPE;AAGAA,0CAAoCF,eAtB7B,CAsBPE;AACAA,oCAvBO,aAuBPA;AACAA,kCAxBO,MAwBPA;AAEA1kF,sBA1BO,MA0BPA;AACA,4BA3BO,GA2BP;;AAIA,wBAAkB,KAAlB,mBA/BO,IA+BP;;AAEA,aAAO,KAjCA,SAiCP;AAlDoD;;;;EAAxD,iB;;IAsDA,yB;;;;;AACE7B,iDAAwB;AAAA;;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AAKA,2DANsB,IAMtB;AAEA,gCARsB,oBAQtB;AACA,4BATsB,cAStB;AATsB;AADgC;;;;6BAoB/C;AACP,iCAA2B,KADpB,kBACP;AAKA,UAAMvnE,OAAO,KANN,IAMP;AACA,UAAMxb,QAAQwb,eAAeA,UAPtB,CAOsBA,CAA7B;AACA,UAAMvb,SAASub,eAAeA,UARvB,CAQuBA,CAA9B;AACA,UAAMha,MAAM,8BATL,MASK,CAAZ;AAMA,UAAI+kE,SAfG,EAeP;;AAfO,kDAgBkB/qD,KAAzB,QAhBO;AAAA;;AAAA;AAgBP,+DAAwC;AAAA,cAAxC,UAAwC;AACtC,cAAMsZ,IAAIqxD,eAAe3qE,UADa,CACbA,CAAzB;AACA,cAAMwuD,IAAIxuD,eAAe2qE,WAFa,CAEtC;AACA5f,sBAAYzxC,UAH0B,CAGtCyxC;AAnBK;AAAA;AAAA;AAAA;AAAA;AAAA;;AAqBPA,eAASA,YArBF,GAqBEA,CAATA;AAEA,UAAM6f,WAAW,8BAA8B,KAvBxC,cAuBU,CAAjB;AACAA,sCAxBO,MAwBPA;AAGAA,4CAAsC5qE,0BA3B/B,CA2BP4qE;AACAA,sCA5BO,aA4BPA;AACAA,oCA7BO,MA6BPA;AAEA5kF,sBA/BO,QA+BPA;AACA,4BAhCO,GAgCP;;AAIA,wBAAkB,KAAlB,qBApCO,IAoCP;;AAEA,aAAO,KAtCA,SAsCP;AA1DsD;;;;EAA1D,iB;;IA8DA,wB;;;;;AACE7B,gDAAwB;AAAA;;AAAA;;AAEtB,iCAFsB,UAEtB;AAEA,gCAJsB,mBAItB;AACA,4BALsB,aAKtB;AALsB;AADuC;;;EAAjE,yB;;IAUA,sB;;;;;AACEA,8CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AAD6B;;;;6BAiB5C;AACP,iCADO,iBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBmD;;;;EAAvD,iB;;IA2BA,oB;;;;;AACEpjF,4CAAwB;AAAA;;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AAKA,2DANsB,IAMtB;AAEA,gCARsB,eAQtB;AAIA,4BAZsB,cAYtB;AAZsB;AAD2B;;;;6BAuB1C;AACP,iCAA2B,KADpB,kBACP;AAIA,UAAMvnE,OAAO,KALN,IAKP;AACA,UAAMxb,QAAQwb,eAAeA,UANtB,CAMsBA,CAA7B;AACA,UAAMvb,SAASub,eAAeA,UAPvB,CAOuBA,CAA9B;AACA,UAAMha,MAAM,8BARL,MAQK,CAAZ;;AARO,kDAUega,KAAtB,QAVO;AAAA;;AAAA;AAUP,+DAAqC;AAAA,cAArC,OAAqC;AAKnC,cAAI+qD,SAL+B,EAKnC;;AALmC,sDAMnC,OANmC;AAAA;;AAAA;AAMnC,mEAAkC;AAAA,kBAAlC,UAAkC;AAChC,kBAAMzxC,IAAIqxD,eAAe3qE,UADO,CACPA,CAAzB;AACA,kBAAMwuD,IAAIxuD,eAAe2qE,WAFO,CAEhC;AACA5f,oCAAY,CAAZA,cAHgC,CAGhCA;AATiC;AAAA;AAAA;AAAA;AAAA;AAAA;;AAWnCA,mBAASA,YAX0B,GAW1BA,CAATA;AAEA,cAAM6f,WAAW,8BAA8B,KAbZ,cAalB,CAAjB;AACAA,0CAdmC,MAcnCA;AAGAA,gDAAsC5qE,0BAjBH,CAiBnC4qE;AACAA,0CAlBmC,aAkBnCA;AACAA,wCAnBmC,MAmBnCA;;AAIA,4BAAkB,KAAlB,qBAvBmC,IAuBnC;;AAEA5kF,0BAzBmC,QAyBnCA;AAnCK;AAAA;AAAA;AAAA;AAAA;AAAA;;AAsCP,4BAtCO,GAsCP;AACA,aAAO,KAvCA,SAuCP;AA9DiD;;;;EAArD,iB;;IAkEA,0B;;;;;AACE7B,kDAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AADiC;;;;6BAiBhD;AACP,iCADO,qBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBuD;;;;EAA3D,iB;;IA2BA,0B;;;;;AACEpjF,kDAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AADiC;;;;6BAiBhD;AACP,iCADO,qBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBuD;;;;EAA3D,iB;;IA2BA,yB;;;;;AACEpjF,iDAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AADgC;;;;6BAiB/C;AACP,iCADO,oBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBsD;;;;EAA1D,iB;;IA2BA,0B;;;;;AACEpjF,kDAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AADiC;;;;6BAiBhD;AACP,iCADO,qBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBuD;;;;EAA3D,iB;;IA2BA,sB;;;;;AACEpjF,8CAAwB;AAAA;;AACtB,QAAMsjF,eAAe,CAAC,EACpB,4BACAF,gBADA,SAEAA,gBAJoB,QACA,CAAtB;AADsB,+BAMtB,UANsB,EAMtB,YANsB;AAD6B;;;;6BAiB5C;AACP,iCADO,iBACP;;AAEA,UAAI,CAAC,UAAL,UAAyB;AACvB,0BAAkB,KAAlB,iBAAwC,KADjB,IACvB;AAJK;;AAMP,aAAO,KANA,SAMP;AAvBmD;;;;EAAvD,iB;;IA2BA,+B;;;;;AACEpjF,uDAAwB;AAAA;;AAAA;;AACtB,6CADsB,IACtB;AADsB,2BAGQ,YAHR;AAAA,QAGhB,QAHgB,oBAGhB,QAHgB;AAAA,QAGhB,OAHgB,oBAGhB,OAHgB;AAItB,sBAAgB0mF,uCAJM,QAINA,CAAhB;AACA,qBALsB,OAKtB;;AAEA,QAAI,mBAAJ,UAA+B;AAC7B,uEAA+D;AAC7D9kE,cAD6D;AAE7D0F,YAAIq/D,6BAFyD,QAEzDA,CAFyD;AAG7D3kB,gBAH6D,EAG7DA,QAH6D;AAI7D90C,eAJ6D,EAI7DA;AAJ6D,OAA/D;AARoB;;AAAA;AADsC;;;;6BA0BrD;AACP,iCADO,0BACP;AAEA,UAAM22D,UAAUziF,uBAHT,KAGSA,CAAhB;AACAyiF,6BAAuB,qBAJhB,MAIPA;AACAA,4BAAsB,qBALf,KAKPA;AACAA,2CAAqC,oBAN9B,IAM8B,CAArCA;;AAEA,UAAI,CAAC,UAAD,aAAwB,mBAAmB,UAA/C,QAAI,CAAJ,EAAoE;AAClE,0BAAkB,KAAlB,oBAA2C,KADuB,IAClE;AATK;;AAYP,iCAZO,OAYP;AACA,aAAO,KAbA,SAaP;AAvC4D;;;gCAgDlD;AACV,UAAI,CAAC,KAAL,iBAA2B;AACzBv/E,wBADyB,gEACzBA;AADyB;AADjB;;AAKV,wCAAkC,KAAlC,SAAgD,KAAhD,UALU,EAKV;AArD4D;;;;EAAhE,iB;;IAsEA,e;;;;;;;2BAQE,U,EAA0B;AACxB,UAAMsiF,oBAAN;AAAA,UACEC,mBAFsB,EACxB;;AADwB,kDAMLzD,WAAnB,WANwB;AAAA;;AAAA;AAMxB,+DAA2C;AAAA,cAA3C,KAA2C;;AACzC,cAAI,CAAJ,OAAW;AAAA;AAD8B;;AAIzC,cAAIvnE,yBAAwB5O,qBAA5B,OAAkD;AAChD45E,kCADgD,KAChDA;AADgD;AAJT;;AAQzCD,iCARyC,KAQzCA;AAdsB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAgBxB,UAAIC,iBAAJ,QAA6B;AAC3BD,wDAD2B,gBAC3BA;AAjBsB;;AAoBxB,qGAAsC;AAAtC,YAAW/qE,IAAX;AACE,YAAM4C,UAAU,gCAAgC;AAC9C5C,cAD8C,EAC9CA,IAD8C;AAE9CovD,iBAAOmY,WAFuC;AAG9CpjB,gBAAMojB,WAHwC;AAI9CjnB,oBAAUinB,WAJoC;AAK9CiB,uBAAajB,WALiC;AAM9C0D,2BAAiB1D,WAN6B;AAO9C2D,8BAAoB3D,iCAP0B;AAQ9CpoB,kCACE,OAAOooB,WAAP,uCACIA,WADJ,yBAT4C;AAY9C4D,sBAAY,IAZkC,4BAYlC,EAZkC;AAa9C5rB,6BACEgoB,gCAAgC,IAdY,qCAcZ;AAdY,SAAhC,CAAhB;;AAgBA,YAAI3kE,QAAJ,cAA0B;AACxB2kE,qCAA2B3kE,QADH,MACGA,EAA3B2kE;AAlBkC;AApBd;AARN;;;2BA0DpB,U,EAA0B;AAAA,kDACLA,WAAnB,WADwB;AAAA;;AAAA;AACxB,+DAA2C;AAAA,cAA3C,IAA2C;AACzC,cAAM3kE,UAAU2kE,6DACUvnE,KAFe,EACzBunE,SAAhB;;AAGA,uBAAa;AACX3kE,uDAAoC2kE,mCADzB,GACyBA,CAApC3kE;AALuC;AADnB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAWxB2kE,qCAXwB,QAWxBA;AArEkB;;;;;;;;;;;;;;;;;;;;ACr7CtB;;AAuCA,IAAI6D,kBAAmB,kCAAkC;AACvD,MAAIC,0BADmD,MACvD;AAEA,MAAIC,sBAHmD,IAGvD;;AAEA,gCAA8B;AAC5B,WAAO,CAACA,yBADoB,GACpBA,CAAR;AANqD;;AASvD,0CAAwC;AAEtC,QAAIC,UAAUhmF,uBAFwB,MAExBA,CAAd;AACA,QAAIimF,oBAAoB;AACtBC,aADsB;AAEtBC,mBAFsB;AAGtB7J,oBAHsB;AAItB8J,yBAJsB;AAKtBC,qBALsB;AAMtBC,mBANsB;AAOtBC,oBAPsB;AAQtBC,kBARsB;AAStB9kF,aATsB;AAAA,KAAxB;;AAYAu3B,wBAfsC,OAetCA;;AACA,QAAIwtD,gBAAgBC,KAApB,GAAID,CAAJ,EAA+B;AAC7BR,uCAD6B,IAC7BA;;AACAhtD,2CAF6B,iBAE7BA;;AAF6B;AAhBO;;AAsBtC,QAAI0tD,KAAK/qE,qBAAeqd,eAAfrd,WAAyC8qE,KAtBZ,SAsB7B9qE,CAAT;;AACA,QAAIsqE,QAAQ3kF,WAAWolF,GAAXplF,CAAWolF,CAAXplF,EAAkBolF,GAvBQ,CAuBRA,CAAlBplF,CAAZ;AACA,QAAIkrB,QAAQyvC,OAAOwqB,KAxBmB,QAwB1BxqB,CAAZ;;AACA,QAAIzvC,MAAJ,UAAoB;AAClBy5D,eAAS3kF,UADS,CAClB2kF;AA1BoC;;AA4BtC,QAAIU,aAAarlF,UAAUolF,QAAQA,GAARA,CAAQA,CAARA,GAAgBA,QAAQA,GA5Bb,CA4BaA,CAAlCplF,CAAjB;AACA,QAAIslF,aA7BkC,UA6BtC;;AACA,QAAIp6D,MAAJ,QAAkB;AAChBo6D,mBAAap6D,eADG,UAChBo6D;AADF,WAEO,IAAIp6D,MAAJ,SAAmB;AACxBo6D,mBAAc,KAAIp6D,MAAL,OAAC,IADU,UACxBo6D;AAjCoC;;AAoCtC,cApCsC,GAoCtC;;AACA,QAAIX,UAAJ,GAAiB;AACfxT,aAAOiU,GADQ,CACRA,CAAPjU;AACAC,YAAMgU,QAFS,UAEfhU;AAFF,WAGO;AACLD,aAAOiU,QAAQE,aAAatlF,SADvB,KACuBA,CAA5BmxE;AACAC,YAAMgU,QAAQE,aAAatlF,SAFtB,KAEsBA,CAA3BoxE;AA1CoC;;AA8CtCqT,mCA9CsC,IA8CtCA;AACAA,kCA/CsC,GA+CtCA;AACAA,uCAhDsC,UAgDtCA;AACAA,+BAA2Bv5D,MAjDW,UAiDtCu5D;AAEAA,0BAAsBU,KAnDgB,GAmDtCV;;AAGA,QAAI/sD,KAAJ,uBAAgC;AAC9B+sD,iCAA2BU,KADG,QAC9BV;AAvDoC;;AAyDtC,QAAIE,UAAJ,GAAiB;AACfD,gCAA0BC,SAAS,MAAM3kF,KAD1B,EACW2kF,CAA1BD;AA1DoC;;AA+DtC,QAAIa,kBA/DkC,KA+DtC;;AACA,QAAIJ,kBAAJ,GAAyB;AACvBI,wBADuB,IACvBA;AADF,WAEO,IAAIJ,sBAAsBA,eAA1B,CAA0BA,CAA1B,EAA6C;AAClD,UAAMK,YAAYxlF,SAASmlF,eAA3B,CAA2BA,CAATnlF,CAAlB;AAAA,UACEylF,YAAYzlF,SAASmlF,eAF2B,CAE3BA,CAATnlF,CADd;;AAIA,UACEwlF,2BACAxlF,iCAAiCA,oBAAjCA,SAAiCA,CAAjCA,GAFF,KAGE;AACAulF,0BADA,IACAA;AATgD;AAlEd;;AA8EtC,yBAAqB;AACnB,UAAIr6D,MAAJ,UAAoB;AAClBw5D,wCAAgCS,cAAcztD,eAD5B,KAClBgtD;AADF,aAEO;AACLA,wCAAgCS,aAAaztD,eADxC,KACLgtD;AAJiB;AA9EiB;;AAqFtChtD,yCArFsC,iBAqFtCA;;AACA,QAAIA,KAAJ,oBAA6B;AAC3BA,uBAD2B,OAC3BA;AAvFoC;;AA0FtC,QAAIA,KAAJ,uBAAgC;AAC9B,UAAIguD,WAAJ;AAAA,UACEC,WAF4B,CAC9B;;AAEA,UAAIhB,UAAJ,GAAiB;AACfe,mBAAW1lF,SADI,KACJA,CAAX0lF;AACAC,mBAAW3lF,SAFI,KAEJA,CAAX2lF;AAL4B;;AAO9B,UAAIC,WACD,kBAAiBT,KAAjB,SAA+BA,KAAhC,KAAC,IAA6CztD,eARlB,KAO9B;AAEA,UAAImuD,YAT0B,UAS9B;AAEA,aAX8B,CAW9B;;AACA,UAAIlB,UAAJ,GAAiB;AACf1qE,YAAI,qBAAqB,CAArB,8BAAJA;AACAY,YAAI,sCAAgC,2BAAhC,EAFW,CAEX,CAAJA;AAFF,aAGO;AACLA,YAAI,YAAYs2D,OAAZ,UAA6BC,MAA7B,UAAJv2D;AAhB4B;;AAmB9B6c,wBAAkB;AAChBy5C,cAAMt2D,EADU,CACVA,CADU;AAEhBu2D,aAAKv2D,EAFW,CAEXA,CAFW;AAGhBirE,eAAOjrE,EAHS,CAGTA,CAHS;AAIhBkrE,gBAAQlrE,EAJQ,CAIRA,CAJQ;AAKhByC,aALgB;AAMhBsP,cAAM,qBANU;AAOhB3S,SAPgB,EAOhBA;AAPgB,OAAlByd;AA7GoC;AATe;;AAkIvD,wBAAsB;AACpB,QAAIA,KAAJ,WAAoB;AAAA;AADA;;AAIpB,QAAIsuD,WAAWtuD,KAJK,SAIpB;AACA,QAAIzb,aAAayb,KALG,WAKpB;AACA,QAAIuuD,iBAAiBD,SAND,MAMpB;;AAIA,QAAIC,iBAAJ,yBAA8C;AAC5CvuD,4BAD4C,IAC5CA;AACAzb,iBAF4C,OAE5CA;AAF4C;AAV1B;;AAgBpB,QAAI,CAACyb,KAAL,oBAA8B;AAC5B,WAAK,IAAIpwB,IAAT,GAAgBA,IAAhB,gBAAoCA,CAApC,IAAyC;AACvCowB,yBAAiBsuD,SADsB,CACtBA,CAAjBtuD;AAF0B;AAhBV;;AAsBpBA,0BAtBoB,IAsBpBA;AACAzb,eAvBoB,OAuBpBA;AAzJqD;;AA4JvD,8CAA4C;AAC1C,QAAIrW,SADsC,CAC1C;;AACA,SAAK,IAAI0B,IAAT,GAAgBA,IAAhB,OAA2BA,CAA3B,IAAgC;AAC9B,UAAMmjC,IAAIy7C,GAAGrlB,MADiB,EACpBqlB,CAAV;;AACA,UAAIz7C,IAAJ,GAAW;AACT7kC,iBAASA,SAAS5F,YAAT4F,MAAS5F,CAAT4F,GADA,CACTA;AAH4B;AAFU;;AAQ1C,WAR0C,MAQ1C;AApKqD;;AAuKvD,wBAAsB;AACpB,QAAI4pE,SAAS93C,KADO,OACpB;AACA,QAAI8hC,WAAW9hC,KAFK,SAEpB;AAEA,QAAIyuD,WAAWC,aAAa5sB,SAAb4sB,OAA6B5sB,SAA7B4sB,QAJK,MAILA,CAAf;;AACA,SAAK,IAAI9+E,IAAT,GAAgBA,IAAI6+E,SAApB,QAAqC7+E,CAArC,IAA0C;AACxC,UAAIgW,MAAMkyD,UAD8B,GACxC;;AACA,UAAI6W,gBAAgB3uD,4BAFoB,GAEpBA,CAApB;;AACA,UAAI2uD,wBAAJ,GAA+B;AAC7BA,oCAA4B7W,iBAAiB2W,YADhB,IAC7BE;AACAA,mCAA2B7W,gBAAgB2W,YAFd,GAE7BE;AACAA,qCAA6BF,oBAAoB3W,UAHpB,KAG7B6W;AACAA,sCAA8BF,qBAAqB3W,UAJtB,MAI7B6W;;AACA3uD,yCAL6B,aAK7BA;;AAL6B;AAHS;;AAaxC,UAAI7O,IAAIs9D,SAAR,CAAQA,CAAR;AAAA,UACEtrE,IAAI20D,OAdkC,CAclCA,CADN;AAEA,UAAIv1D,IAAIY,EAAR;AAAA,UACEC,IAAIb,EADN,CACMA,CADN;AAAA,UAEE8mD,IAAI9mD,EAjBkC,CAiBlCA,CAFN;AAIA,UAAIgqD,SAAS,CAAC,MAAD,EAAS,IAAIppD,OAAJ,CAAIA,CAAJ,CAAT,EAAyB,CAACA,OAAD,CAACA,CAAD,IAAzB,EAAyCA,EAAzC,KAAb;AACA,UAAIqrE,KAAK,iBApB+B,EAoB/B,CAAT;AACAjiB,qBAAe,gBAAgB;AAC7B,YAAIx5B,IAAIpwB,6BADqB,CACrBA,CAAR;;AACA6rE,WAAG10D,IAAH00D,KAAYprE,KAAM,UAAS2vB,EAAV,CAAUA,CAAT,IAFW,CAE7By7C;AACAA,WAAG10D,IAAH00D,KAAYnlB,KAAM,SAAQt2B,EAAT,CAASA,CAAR,IAHW,CAG7By7C;AACAA,WAAG10D,IAAH00D,KAAYprE,KAAM,WAAU2vB,EAAX,CAAWA,CAAV,IAJW,CAI7By7C;AACAA,WAAG10D,IAAH00D,MAAanlB,KAAM,YAAWt2B,EAAZ,CAAYA,CAAX,IALU,CAK7By7C;AAEAA,WAAG10D,IAAH00D,MAAanlB,KAAM,UAASt2B,EAAV,CAAUA,CAAT,IAAiB,CAPP,CAO7By7C;AACAA,WAAG10D,IAAH00D,MAAaprE,KAAM,SAAQ2vB,EAAT,CAASA,CAAR,IARU,CAQ7By7C;AACAA,WAAG10D,IAAH00D,MAAanlB,KAAM,WAAUt2B,EAAX,CAAWA,CAAV,IAAkB,CATR,CAS7By7C;AACAA,WAAG10D,IAAH00D,MAAaprE,KAAM,YAAW2vB,EAAZ,CAAYA,CAAX,IAVU,CAU7By7C;AAEAA,WAAG10D,IAAH00D,MAAaprE,KAAM,UAAS2vB,EAAV,CAAUA,CAAT,IAAiB,CAZP,CAY7By7C;AACAA,WAAG10D,IAAH00D,MAAanlB,KAAM,SAAQt2B,EAAT,CAASA,CAAR,IAAgB,CAbN,CAa7By7C;AACAA,WAAG10D,IAAH00D,MAAaprE,KAAM,WAAU2vB,EAAX,CAAWA,CAAV,IAAkB,CAdR,CAc7By7C;AACAA,WAAG10D,IAAH00D,MAAanlB,KAAM,YAAWt2B,EAAZ,CAAYA,CAAX,IAAmB,CAfT,CAe7By7C;AAEAA,WAAG10D,IAAH00D,MAAanlB,KAAM,UAASt2B,EAAV,CAAUA,CAAT,IAjBU,CAiB7By7C;AACAA,WAAG10D,IAAH00D,MAAaprE,KAAM,SAAQ2vB,EAAT,CAASA,CAAR,IAAgB,CAlBN,CAkB7By7C;AACAA,WAAG10D,IAAH00D,MAAanlB,KAAM,WAAUt2B,EAAX,CAAWA,CAAV,IAnBU,CAmB7By7C;AACAA,WAAG10D,IAAH00D,MAAaprE,KAAM,YAAW2vB,EAAZ,CAAYA,CAAX,IAAmB,CApBT,CAoB7By7C;AAzCsC,OAqBxCjiB;AAwBA,UAAIqiB,WAAW,IAAItmF,SAASA,SAATA,CAASA,CAATA,EAAsBA,SA7CD,CA6CCA,CAAtBA,CAAnB;AACAqmF,kCAA4BE,8BA9CY,QA8CxCF;AACAA,iCAA2BE,8BA/Ca,QA+CxCF;AACAA,mCAA6BE,6BAhDW,QAgDxCF;AACAA,oCAA8BE,8BAjDU,QAiDxCF;;AACA3uD,uCAlDwC,aAkDxCA;AAvDkB;AAvKiC;;AAkOvD,8CAA4C;AAC1C,QAAI83C,SAAS,UAAU,kBAAkB;AACvC,aAAO;AACLL,YAAIqX,IADC;AAELpX,YAAIoX,IAFC;AAGL9T,YAAI8T,IAHC;AAIL7T,YAAI6T,IAJC;AAKLngE,eALK;AAMLogE,eANK;AAOLC,eAPK;AAAA,OAAP;AAFwC,KAC7B,CAAb;AAWAC,2BAZ0C,MAY1CA;AACA,QAAIR,WAAW,UAAUS,MAbiB,MAa3B,CAAf;AACApX,mBAAe,aAAa;AAC1B,UAAIloE,IAAIuT,EADkB,KAC1B;AACAsrE,oBAAc;AACZhV,cAAMt2D,EADM;AAEZu2D,aAFY;AAGZ0U,eAAOjrE,EAHK;AAIZkrE,gBAJY;AAAA,OAAdI;AAhBwC,KAc1C3W;AAYAoX,cAAU,kBAAkB;AAC1B,UAAI/9D,IAAIs9D,SAAR,CAAQA,CAAR;AAAA,UACEtrE,IAAI20D,OAFoB,CAEpBA,CADN;AAEA30D,aAAO2rE,IAHmB,GAG1B3rE;AACAA,aAAOnd,QAAQmrB,EAJW,KAI1BhO;AACAA,aAAO2rE,IALmB,MAK1B3rE;AACAA,aAAOnd,QAAQmrB,EANW,IAM1BhO;AACAA,gBAP0B,CAO1BA;AACAA,gBAR0B,SAQ1BA;AACAA,gBAT0B,SAS1BA;AAnCwC,KA0B1C+rE;AAWAD,4BArC0C,MAqC1CA;AAEAnX,mBAAe,aAAa;AAC1B,UAAIloE,IAAIuT,EADkB,KAC1B;AACAsrE,wBAAkBtrE,EAFQ,KAE1BsrE;AACAA,2BAAqBtrE,EAHK,KAG1BsrE;AA1CwC,KAuC1C3W;AAKA,WA5C0C,QA4C1C;AA9QqD;;AAiRvD,0CAAwC;AAEtCA,gBAAY,gBAAgB;AAC1B,aAAO50D,OAAOC,EAAPD,MAAeA,UAAUC,EADN,KAC1B;AAHoC,KAEtC20D;AAKA,QAAIqX,eAAe;AACjB1X,UAAI,CADa;AAEjBC,UAAI,CAFa;AAGjBsD,UAHiB;AAIjBC,UAJiB;AAKjBtsD,aAAO,CALU;AAMjBogE,aANiB;AAOjBC,aAPiB;AAAA,KAAnB;AASA,QAAII,UAAU,CACZ;AACEhlF,aAAO,CADT;AAEEP,WAFF;AAGEwlF,gBAHF;AAAA,KADY,CAAd;AAQAvX,mBAAe,oBAAoB;AAGjC,UAAIloE,IAH6B,CAGjC;;AACA,aAAOA,IAAIw/E,QAAJx/E,UAAsBw/E,kBAAkBC,SAA/C,IAA4D;AAC1Dz/E,SAD0D;AAJ3B;;AAOjC,UAAIkqB,IAAIs1D,iBAPyB,CAOjC;;AACA,aAAOt1D,UAAUs1D,oBAAoBC,SAArC,IAAkD;AAChDv1D,SADgD;AARjB;;AAYjC,uBAZiC,gBAYjC;AACA;AAAA;AAAA,UAEEw1D,UAAU,CAfqB,QAajC;;AAGA,WAAKx8C,IAAL,GAAYA,KAAZ,GAAoBA,CAApB,IAAyB;AACvBy8C,sBAAcH,QADS,CACTA,CAAdG;AACAC,2BAAmBD,YAFI,QAEvBC;AACA,YAHuB,IAGvB;;AACA,YAAIA,sBAAsBH,SAA1B,IAAuC;AAIrCI,iBACED,yBAAyBH,SAAzBG,QACIA,iBADJA,QAEIH,SAP+B,EAIrCI;AAJF,eAQO,IAAID,2BAAJ,WAA0C;AAG/CC,iBAAQ,uBAAsBJ,SAAvB,EAAC,IAHuC,CAG/CI;AAHK,eAIA;AAELA,iBAAOD,iBAFF,KAELC;AAlBqB;;AAoBvB,YAAIA,OAAJ,SAAoB;AAClBH,oBADkB,IAClBA;AArBqB;AAhBQ;;AA0CjCD,uBA1CiC,OA0CjCA;;AAGA,WAAKv8C,IAAL,GAAYA,KAAZ,GAAoBA,CAApB,IAAyB;AACvBy8C,sBAAcH,QADS,CACTA,CAAdG;AACAC,2BAAmBD,YAFI,QAEvBC;;AACA,YAAIA,2BAAJ,WAA0C;AAExC,cAAIA,sBAAsBH,SAA1B,IAAuC;AAGrC,gBAAIG,yBAAyBH,SAA7B,OAA6C;AAC3CG,uCAAyBA,iBADkB,EAC3CA;AAJmC;AAAvC,iBAMO;AACLA,qCADK,OACLA;AATsC;AAA1C,eAWO,IAAIA,yBAAJ,SAAsC;AAE3CA,mCAAyBlnF,kBAAkBknF,iBAFA,EAElBlnF,CAAzBknF;AAhBqB;AA7CQ;;AAkEjC,UAAIE,iBAAJ;AAAA,UACEC,eAnE+B,IAkEjC;;AAEA,WAAK78C,IAAL,GAAYA,KAAZ,GAAoBA,CAApB,IAAyB;AACvBy8C,sBAAcH,QADS,CACTA,CAAdG;AACAC,2BAAmBD,YAFI,QAEvBC;AAEA,YAAII,cACFJ,sBAAsBH,SAAtBG,wBALqB,QAIvB;;AAEA,YAAIG,iBAAJ,aAAkC;AAEhCD,yBAAeA,wBAAfA,SAAgDH,YAFhB,GAEhCG;AAFF,eAGO;AACLA,8BAAoB;AAClBtlF,mBAAOmlF,YADW;AAElB1lF,iBAAK0lF,YAFa;AAGlBF,sBAHkB;AAAA,WAApBK;AAKAC,yBANK,WAMLA;AAfqB;AApEQ;;AAsFjC,UAAIP,mBAAmBC,SAAvB,IAAoC;AAClCK,kCAA0BL,SADQ,EAClCK;AACAA,+BAAuB;AACrBtlF,iBAAOglF,WADc;AAErBvlF,eAAKwlF,SAFgB;AAGrBA,oBAAUD,WAHW;AAAA,SAAvBM;AAxF+B;;AA8FjC,UAAIL,cAAcD,WAAlB,KAAkC;AAChCM,uBAAeA,wBAAfA,SAAgDL,SADhB,EAChCK;AACAA,4BAAoB;AAClBtlF,iBAAOilF,SADW;AAElBxlF,eAAKulF,WAFa;AAGlBC,oBAAUD,WAHQ;AAAA,SAApBM;AAhG+B;;AA0GjC,WAAK58C,IAAL,GAAYA,KAAZ,GAAoBA,CAApB,IAAyB;AACvBy8C,sBAAcH,QADS,CACTA,CAAdG;AACAC,2BAAmBD,YAFI,QAEvBC;;AACA,YAAIA,2BAAJ,WAA0C;AAAA;AAHnB;;AAMvB,YAAIK,OANmB,KAMvB;;AACA,aACEz1D,IAAIxqB,IADN,GAEE,SAASwqB,KAAT,KAAmBg1D,oBAAoBI,iBAFzC,IAGEp1D,CAHF,IAIE;AACAy1D,iBAAOT,wBADP,gBACAS;AAZqB;;AAcvB,aACEz1D,IAAIN,IADN,GAEE,SAASM,IAAIg1D,QAAb,UAA+BA,kBAAkBI,iBAFnD,IAGEp1D,CAHF,IAIE;AACAy1D,iBAAOT,wBADP,gBACAS;AAnBqB;;AAqBvB,aAAKz1D,IAAL,GAAY,SAASA,IAAIs1D,eAAzB,QAAgDt1D,CAAhD,IAAqD;AACnDy1D,iBAAOH,+BAD4C,gBACnDG;AAtBqB;;AAwBvB,YAAI,CAAJ,MAAW;AACTL,mCADS,OACTA;AAzBqB;AA1GQ;;AAuIjCjpE,4CAEE,IAAIuT,QAAJ,UAzI+B,cAyI/B,CAFFvT;AA/JoC,KAwBtCuxD;AA8IAsX,oBAAgB,uBAAuB;AACrC,UAAII,mBAAmBD,YADc,QACrC;;AACA,UAAIC,2BAAJ,WAA0C;AACxCA,iCAAyBlnF,gBAAgBknF,iBADD,EACflnF,CAAzBknF;AAHmC;AAtKD,KAsKtCJ;AAvbqD;;AAycvD,qCAQG;AAAA;;AAAA,QAR0B,WAQ1B,QAR0B,WAQ1B;AAAA,QAR0B,iBAQ1B,QAR0B,iBAQ1B;AAAA,QAR0B,SAQ1B,QAR0B,SAQ1B;AAAA,QAR0B,QAQ1B,QAR0B,QAQ1B;AAAA,QAR0B,QAQ1B,QAR0B,QAQ1B;AAAA,QAR0B,mBAQ1B,QAR0B,mBAQ1B;AAAA,QARH,oBAQG,QARH,oBAQG;AACD,wBADC,WACD;AACA,8BAFC,iBAED;AACA,sBAHC,SAGD;AACA,qBAAiBjyC,UAJhB,aAID;AACA,qBALC,QAKD;AACA,qBAAiBmxC,YANhB,EAMD;AACA,gCAA4BwB,uBAP3B,EAOD;AACA,iCAA6B,CAAC,CAR7B,oBAQD;AACA,iCAA6B,CAAC,EAC5B,4BAA4B1pF,yBAV7B,OAS6B,CAA9B;AAIA,mBAbC,IAaD;AACA,mCAdC,IAcD;AACA,qCAfC,IAeD;AACA,0BAhBC,IAgBD;AACA,8BAA0B,IAjBzB,OAiByB,EAA1B;AACA,0BAlBC,KAkBD;AACA,qBAnBC,KAmBD;AACA,uBApBC,oCAoBD;AACA,wBArBC,IAqBD;AACA,mBAtBC,EAsBD;;AAGA,wCACW,YAAM;AACb,UAAI,MAAJ,gBAAyB;AAGvB,4CAHuB,CAGvB;AACA,6CAJuB,CAIvB;AACA,+BALuB,IAKvB;AANW;AADjB,gBAUS,YAAM,CAnCd,CAyBD;AA1eqD;;AAwfvD2pF,kCAAgC;AAC9B,kBAAc;AACZ,aAAO,iBADK,OACZ;AAF4B;;AAK9B/zC,YAAQ,4BAA4B;AAClC,uBADkC,IAClC;;AACA,UAAI,KAAJ,SAAkB;AAChB,4BAAoB,yBADJ,2BACI,CAApB;;AACA,uBAFgB,IAEhB;AAJgC;;AAMlC,UAAI,sBAAJ,MAAgC;AAC9BolB,qBAAa,KADiB,YAC9BA;AACA,4BAF8B,IAE9B;AARgC;;AAUlC,8BAAwB,UAVU,2BAUV,CAAxB;AAf4B;AAkB9B4uB,iBAlB8B,yBAkB9BA,KAlB8B,EAkB9BA,UAlB8B,EAkBG;AAC/B,WAAK,IAAIpgF,IAAJ,GAAW+hB,MAAMqxC,MAAtB,QAAoCpzD,IAApC,KAA6CA,CAA7C,IAAkD;AAChD,uCAA+BozD,SADiB,GAChD;;AACAitB,yBAAiBjtB,MAAjBitB,CAAiBjtB,CAAjBitB,EAFgD,UAEhDA;AAH6B;AAlBH;AAyB9BC,eAzB8B,uBAyB9BA,OAzB8B,EAyBT;AACnB,UAAMlD,oBAAoB,4BADP,OACO,CAA1B;;AACA,UAAIA,kBAAJ,cAAoC;AAAA;AAFjB;;AAMnB,UAAInzE,YANe,EAMnB;;AACA,UAAImzE,kCAAJ,GAAyC;AAAA,6BACND,QADM;AAAA,YACjC,QADiC,kBACjC,QADiC;AAAA,YACjC,UADiC,kBACjC,UADiC;;AAIvC,YACE/Y,aAAa,KAAbA,2BACAyW,eAAe,KAFjB,2BAGE;AACA,+CAA2B,QAA3B,cADA,UACA;AACA,yCAFA,QAEA;AACA,2CAHA,UAGA;AAVqC;;AAAA,oCAarB,gCAAgCsC,QAbX,WAarB,CAbqB;AAAA,YAajC,KAbiC,yBAajC,KAbiC;;AAevC,YAAI/mF,QAAJ,GAAe;AACbgnF,oCAA0BA,gCADb,KACbA;AACAnzE,uCAAsBmzE,kBAFT,KAEbnzE;AAjBqC;AAPtB;;AA2BnB,UAAImzE,4BAAJ,GAAmC;AACjCnzE,qCAAsBmzE,kBAAV,KAAZnzE,kBADiC,SACjCA;AA5BiB;;AA8BnB,UAAIA,mBAAJ,GAA0B;AACxB,YAAI,KAAJ,uBAAgC;AAC9BmzE,gDAD8B,SAC9BA;AAFsB;;AAIxBD,kCAJwB,SAIxBA;AAlCiB;;AAoCnB,2CApCmB,iBAoCnB;;AACA,kCArCmB,OAqCnB;AA9D4B;AAiE9BoD,aAAS,mCAAmC;AAAA;;AAC1C,UAAM5rE,aADoC,oCAC1C;AACA,UAAI6rE,aAAatmF,cAFyB,IAEzBA,CAAjB;;AAGA,UAAMzD,SAAS,6BAL2B,QAK3B,CAAf;;AAKEA,yBAVwC,IAUxCA;AAEF,4BAAsBA,wBAAwB;AAAEmpE,eAZN;AAYI,OAAxBnpE,CAAtB;;AAEA,UAAI,KAAJ,cAAuB;AACrB,YAAMgqF,YAAY,kBADG,KACrB;AACA,YAAMC,aAAa,kBAFE,MAErB;;AACA,sCAHqB,UAGrB;;AACA/rE,mBAJqB,OAIrBA;AAJF,aAKO,IAAI,KAAJ,oBAA6B;AAClC,YAAMw+C,OAAO,SAAPA,IAAO,GAAM;AACjB,qCAAyB,iBAAqB;AAAA,gBAApB,KAAoB,SAApB,KAAoB;AAAA,gBAArB,IAAqB,SAArB,IAAqB;;AAC5C,sBAAU;AACRx+C,yBADQ,OACRA;AADQ;AADkC;;AAM5Cza,sCAA0BmC,MANkB,MAM5CnC;;AACA,iCAAmBmC,MAAnB,OAP4C,UAO5C;;AACA82D,gBAR4C;AAA9C,aASGx+C,WAVc,MACjB;AAFgC,SAClC;;AAaA,uBAAe,wBAdmB,SAcnB,EAAf;AACAw+C,YAfkC;AAA7B,aAgBA;AACL,cAAM,UACJ,kDAFG,wBACC,CAAN;AApCwC;;AA0C1Cx+C,8BAAwB,YAAM;AAC5B6rE,qBAD4B,IAC5BA;;AACA,YAAI,CAAJ,SAAc;AAEZnvB,iBAFY,MAEZA;AAFF,eAGO;AAEL,gCAAoB,WAAW,YAAM;AACnCA,mBADmC,MACnCA;AACA,kCAFmC,IAEnC;AAFkB,aAFf,OAEe,CAApB;AAP0B;AAA9B18C,SAYG,iBAtDuC,MA0C1CA;AA3G4B;AA0H9BgsE,oBAAgB,8CAA8C;AAC5D,UAAI,CAAC,KAAD,yBAA+B,CAAC,KAApC,gBAAyD;AAAA;AADG;;AAI5D,UAAI,iBAAJ,MAA2B;AACzBC,eADyB,IACzBA;AACA,uBAFyB,IAEzB;AAN0D;;AAQ5D,UAAMC,eAAN;AAAA,UACEC,aAT0D,EAQ5D;;AAGA,WAAK,IAAI9gF,IAAJ,GAAWkV,KAAK,eAArB,QAA4ClV,IAA5C,IAAoDA,CAApD,IAAyD;AACvD,YAAMgW,MAAM,eAD2C,CAC3C,CAAZ;;AACA,YAAM+qE,WAAW,4BAFsC,GAEtC,CAAjB;;AAEA,YAAIA,SAAJ,cAA2B;AAAA;AAJ4B;;AAOvD,wBAAgB;AACdF,gCADc,CACdA;AACAC,8BAFc,CAEdA;;AAEA,cAAIC,SAAJ,mBAAgC;AAC9BF,8BAAkBE,SADY,iBAC9BF;AALY;;AAOd,cAAIE,sBAAJ,GAA6B;AAC3BD,sCAAmBC,SADQ,UAC3BD;AACAD,mDAAgC,CAACE,SAFN,UAE3BF;AAFF,iBAGO;AACLC,4BADK,CACLA;AAXY;;AAad,cAAIC,wBAAJ,GAA+B;AAC7BD,sCAAmBC,wBAAwBA,SADd,KAC7BD;AADF,iBAEO;AACLA,4BADK,CACLA;AAhBY;;AAkBd,cAAIC,yBAAJ,GAAgC;AAC9BD,sCAAmBC,SADW,aAC9BD;AADF,iBAEO;AACLA,4BADK,CACLA;AArBY;;AAuBd,cAAIC,uBAAJ,GAA8B;AAC5BD,sCAAmBC,uBAAuBA,SADd,KAC5BD;AACAD,mDACgB,CAACE,SAAD,cAAwBA,SAHZ,KAE5BF;AAFF,iBAKO;AACLC,4BADK,CACLA;AA7BY;;AAgCd9qE,8BAAoB8qE,gBAhCN,GAgCMA,CAApB9qE;;AACA,cAAI6qE,aAAJ,QAAyB;AACvB7qE,kCAAsB6qE,kBADC,GACDA,CAAtB7qE;AAlCY;AAAhB,eAoCO;AACLA,8BADK,IACLA;AACAA,gCAAsB+qE,SAFjB,iBAEL/qE;AA7CqD;AAXG;AA1HhC;AAAA,GAAhCmqE;;AAyLA,6CAA2C;AACzC,QAAI/vD,OAAO,wBAAwB;AACjC4iC,mBAAaguB,iBADoB;AAEjCC,yBAAmBD,iBAFc;AAGjCzzC,iBAAWyzC,iBAHsB;AAIjC9uB,gBAAU8uB,iBAJuB;AAKjCtC,gBAAUsC,iBALuB;AAMjCd,2BAAqBc,iBANY;AAOjCE,4BAAsBF,iBAPW;AAAA,KAAxB,CAAX;;AASA5wD,iBAAa4wD,iBAV4B,OAUzC5wD;;AACA,WAXyC,IAWzC;AA5rBqD;;AA+rBvD,SA/rBuD,eA+rBvD;AArvBF,CAsDuB,EAAvB;;;;;;;;;;;;;;;;ACrCA;;AAjBA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAI+wD,cAAc,uBAAY;AAC5B,QAAM,UADsB,8BACtB,CAAN;AAjCF,CAgCA;;;AAIiE;AAAA,MAiU/D,YAjU+D,GAiU/D,8BAA8B;AAC5B,QAAIC,SADwB,EAC5B;AACA,QAAMpW,MAFsB,EAE5B;;AAF4B,+CAI5B,MAJ4B;AAAA;;AAAA;AAI5B,0DAAoC;AAAA,YAApC,aAAoC;;AAClC,YAAIqW,qBAAJ,QAAiC;AAC/BD,sBAAY;AAAErf,kBAAF;AAAY5kE,gBAAZ;AAAyBi2D,mBAAzB;AAAA,WAAZguB;AACApW,mBAF+B,MAE/BA;AACAoW,mBAASA,OAAOA,gBAAPA,GAHsB,KAG/BA;AAH+B;AADC;;AAQlC,YAAIC,qBAAJ,WAAoC;AAClCD,mBAASpW,IADyB,GACzBA,EAAToW;AADF,eAEO;AACLA,sBADK,aACLA;AAXgC;AAJR;AAAA;AAAA;AAAA;AAAA;AAAA;;AAkB5B,WAlB4B,MAkB5B;AAnV6D;;AAAA,MA6V/D,EA7V+D,GA6V/D,mBAAmB;AACjB,QAAI3wE,iBAAJ,KAAIA,CAAJ,EAA6B;AAC3B,aAAOpU,MADoB,QACpBA,EAAP;AAFe;;AAIjB,QAAMo9D,IAAIp9D,cAJO,EAIPA,CAAV;AACA,QAAI2D,IAAIy5D,WALS,CAKjB;;AACA,QAAIA,SAAJ,KAAkB;AAChB,aADgB,CAChB;AAPe;;AAWjB,OAAG;AACDz5D,OADC;AAAH,aAESy5D,SAbQ,GAWjB;;AAGA,WAAOA,eAAeA,mBAAmBz5D,IAdxB,CAcVy5D,CAAP;AA3W6D;;AAAA,MAuX/D,EAvX+D,GAuX/D,eAAe;AACb,QAAI9mD,cAAcA,SAAlB,GAA8B;AAC5B,UAAIA,cAAcA,SAAlB,GAA8B;AAC5B,YAAIA,cAAcA,SAAlB,GAA8B;AAC5B,iBAD4B,EAC5B;AAF0B;;AAI5B,+BAAgB2uE,GAAG3uE,EAAZ,CAAYA,CAAH2uE,CAAhB,cAA4BA,GAAG3uE,EAJH,CAIGA,CAAH2uE,CAA5B;AAL0B;;AAO5B,UAAI3uE,SAASA,EAATA,CAASA,CAATA,IAAiBA,SAAS,CAACA,EAA/B,CAA+BA,CAA/B,EAAqC;AACnC,YAAMW,IAAK5a,UAAUia,EAAVja,CAAUia,CAAVja,IAAD,GAACA,GAAyBA,KADD,EACnC;AACA,gCAAiB4oF,GAFkB,CAElBA,CAAjB;AAT0B;AAA9B,WAWO;AACL,UAAI3uE,cAAcA,SAAdA,KAA4BA,SAA5BA,KAA0CA,SAA9C,GAA0D;AACxD,mCAAoB2uE,GAAG3uE,EAAhB,CAAgBA,CAAH2uE,CAApB,cAAgCA,GAAG3uE,EADqB,CACrBA,CAAH2uE,CAAhC;AAFG;AAZM;;AAiBb,WACE,iBAAUA,GAAG3uE,EAAb,CAAaA,CAAH2uE,CAAV,cAAsBA,GAAG3uE,EAAzB,CAAyBA,CAAH2uE,CAAtB,cAAkCA,GAAG3uE,EAArC,CAAqCA,CAAH2uE,CAAlC,cAA8CA,GAAG3uE,EAAjD,CAAiDA,CAAH2uE,CAA9C,cAA0DA,GAAG3uE,EAA7D,CAA6DA,CAAH2uE,CAA1D,mBACGA,GAAG3uE,EAnBK,CAmBLA,CAAH2uE,CADH,MADF;AAxY6D;;AAC/D,MAAMC,eAAe;AACnBC,eADmB;AAEnBC,gBAFmB;AAGnBhe,eAHmB;AAAA,GAArB;AAKA,MAAMie,SANyD,sCAM/D;AACA,MAAMC,WAPyD,8BAO/D;AACA,MAAMzgB,kBAAkB,2BAAxB;AACA,MAAMC,mBAAmB,2BAAzB;;AAEA,MAAMygB,sBAAuB,YAAY;AACvC,QAAMC,aAAa,eAAe,gDAAf,CAAnB;AAUA,QAAMC,qBAXiC,EAWvC;AAEA,QAAMC,WAAW,eAbsB,GAatB,CAAjB;;AACA,SAAK,IAAI/hF,IAAT,GAAgBA,IAAhB,KAAyBA,CAAzB,IAA8B;AAC5B,UAAIwT,IADwB,CAC5B;;AACA,WAAK,IAAIy1D,IAAT,GAAgBA,IAAhB,GAAuBA,CAAvB,IAA4B;AAC1B,YAAIz1D,IAAJ,GAAW;AACTA,cAAI,aAAeA,KAAD,CAACA,GADV,UACTA;AADF,eAEO;AACLA,cAAKA,KAAD,CAACA,GADA,UACLA;AAJwB;AAFA;;AAS5BuuE,oBAT4B,CAS5BA;AAvBqC;;AA0BvC,qCAAiC;AAC/B,UAAIC,MAAM,CADqB,CAC/B;;AACA,WAAK,IAAIhiF,KAAT,OAAoBA,KAApB,KAA6BA,EAA7B,IAAkC;AAChC,YAAMsT,IAAK,OAAM1B,KAAP,EAAOA,CAAN,IADqB,IAChC;AACA,YAAM2B,IAAIwuE,SAFsB,CAEtBA,CAAV;AACAC,cAAOA,QAAD,CAACA,GAHyB,CAGhCA;AAL6B;;AAO/B,aAAOA,MAAM,CAPkB,CAO/B;AAjCqC;;AAoCvC,qDAAiD;AAC/C,UAAItvE,IAD2C,MAC/C;AACA,UAAMqP,MAAM8jB,KAFmC,MAE/C;AAEAj0B,gBAAWmQ,OAAD,EAACA,GAJoC,IAI/CnQ;AACAA,WAAKc,IAALd,KAAemQ,OAAD,EAACA,GALgC,IAK/CnQ;AACAA,WAAKc,IAALd,KAAemQ,OAAD,CAACA,GANgC,IAM/CnQ;AACAA,WAAKc,IAALd,KAAcmQ,MAPiC,IAO/CnQ;AACAc,WAR+C,CAQ/CA;AAEAd,gBAAU3U,qBAVqC,IAU/C2U;AACAA,WAAKc,IAALd,KAAc3U,qBAXiC,IAW/C2U;AACAA,WAAKc,IAALd,KAAc3U,qBAZiC,IAY/C2U;AACAA,WAAKc,IAALd,KAAc3U,qBAbiC,IAa/C2U;AACAc,WAd+C,CAc/CA;AAEAd,qBAhB+C,CAgB/CA;AACAc,WAAKmzB,KAjB0C,MAiB/CnzB;AAEA,UAAMsvE,MAAMC,YAAY1oB,SAAZ0oB,GAnBmC,CAmBnCA,CAAZ;AACArwE,gBAAWowE,OAAD,EAACA,GApBoC,IAoB/CpwE;AACAA,WAAKc,IAALd,KAAeowE,OAAD,EAACA,GArBgC,IAqB/CpwE;AACAA,WAAKc,IAALd,KAAeowE,OAAD,CAACA,GAtBgC,IAsB/CpwE;AACAA,WAAKc,IAALd,KAAcowE,MAvBiC,IAuB/CpwE;AA3DqC;;AA8DvC,uCAAmC;AACjC,UAAI0B,IAD6B,CACjC;AACA,UAAIC,IAF6B,CAEjC;;AACA,WAAK,IAAIvT,MAAT,OAAoBA,MAApB,KAA6B,EAA7B,KAAkC;AAChCsT,YAAK,MAAK,YAAN,IAAC,KAD2B,KAChCA;AACAC,YAAK,KAAD,CAAC,IAF2B,KAEhCA;AAL+B;;AAOjC,aAAQA,KAAD,EAACA,GAPyB,CAOjC;AArEqC;;AA8EvC,mCAA+B;AAC7B,UAAI,CAAJ,mBAAe;AAIb,eAAO2uE,wBAJM,QAINA,CAAP;AAL2B;;AAO7B,UAAI;AAUF,YAVE,KAUF;;AAEA,YAAI9mF,SAAS4b,iBAAT5b,SAAJ,GAA0C;AACxCqf,kBADwC,QACxCA;AADF,eAEO;AAELA,kBAAQ3E,YAFH,QAEGA,CAAR2E;AAhBA;;AAkBF,YAAMkmB,SAASw6B,mCAAmD;AAChEgnB,iBAnBA;AAkBgE,SAAnDhnB,CAAf;;AAGA,eAAOx6B,wCAAwC,eArB7C,MAqB6C,CAA/C;AArBF,QAsBE,UAAU;AACVtmC,wBACE,kEAFQ,CACVA;AA9B2B;;AAmC7B,aAAO6nF,wBAnCsB,QAmCtBA,CAAP;AAjHqC;;AAqHvC,+CAA2C;AACzC,UAAIngE,MAAMqgE,SAD+B,MACzC;AACA,UAAMC,iBAFmC,MAEzC;AAEA,UAAMC,gBAAgB5pF,UAAUqpB,MAJS,cAInBrpB,CAAtB;AACA,UAAM6pF,OAAO,eAAe,UAAUD,gBAAV,IALa,CAK5B,CAAb;AACA,UAAI/N,KANqC,CAMzC;AACAgO,WAAKhO,EAALgO,MAPyC,IAOzCA;AACAA,WAAKhO,EAALgO,MARyC,IAQzCA;AAEA,UAAI5wE,MAVqC,CAUzC;;AACA,aAAOoQ,MAAP,gBAA6B;AAE3BwgE,aAAKhO,EAALgO,MAF2B,IAE3BA;AACAA,aAAKhO,EAALgO,MAH2B,IAG3BA;AACAA,aAAKhO,EAALgO,MAJ2B,IAI3BA;AACAA,aAAKhO,EAALgO,MAL2B,IAK3BA;AACAA,aAAKhO,EAALgO,MAN2B,IAM3BA;AACAA,iBAASH,uBAAuBzwE,MAAhC4wE,cAASH,CAATG,EAP2B,EAO3BA;AACAhO,cAR2B,cAQ3BA;AACA5iE,eAT2B,cAS3BA;AACAoQ,eAV2B,cAU3BA;AArBuC;;AAyBzCwgE,WAAKhO,EAALgO,MAzByC,IAyBzCA;AACAA,WAAKhO,EAALgO,MAAaxgE,MA1B4B,IA0BzCwgE;AACAA,WAAKhO,EAALgO,MAAcxgE,OAAD,CAACA,GA3B2B,IA2BzCwgE;AACAA,WAAKhO,EAALgO,MAAa,gBA5B4B,IA4BzCA;AACAA,WAAKhO,EAALgO,MAAe,QAAD,MAAC,KAAF,CAAE,GA7B0B,IA6BzCA;AACAA,eAASH,kBAATG,GAASH,CAATG,EA9ByC,EA8BzCA;AACAhO,YAAM6N,kBA/BmC,GA+BzC7N;AAEA,UAAMiO,QAAQC,qBAAqBL,SAjCM,MAiC3BK,CAAd;AACAF,WAAKhO,EAALgO,MAAcC,SAAD,EAACA,GAlC2B,IAkCzCD;AACAA,WAAKhO,EAALgO,MAAcC,SAAD,EAACA,GAnC2B,IAmCzCD;AACAA,WAAKhO,EAALgO,MAAcC,SAAD,CAACA,GApC2B,IAoCzCD;AACAA,WAAKhO,EAALgO,MAAaC,QArC4B,IAqCzCD;AACA,aAtCyC,IAsCzC;AA3JqC;;AA8JvC,4DAAwD;AACtD,UAAMnsF,QAAQqmE,QADwC,KACtD;AACA,UAAMpmE,SAASomE,QAFuC,MAEtD;AACA,+BAHsD,QAGtD;AACA,UAAMxrD,QAAQwrD,QAJwC,IAItD;;AAEA;AACE,aAAK75D,gBAAL;AACE8/E,sBADF,CACEA;AACAC,qBAFF,CAEEA;AACA9lB,qBAAYzmE,QAAD,CAACA,IAHd,CAGEymE;AAJJ;;AAME,aAAKj6D,gBAAL;AACE8/E,sBADF,CACEA;AACAC,qBAFF,CAEEA;AACA9lB,qBAAWzmE,QAHb,CAGEymE;AATJ;;AAWE,aAAKj6D,gBAAL;AACE8/E,sBADF,CACEA;AACAC,qBAFF,CAEEA;AACA9lB,qBAAWzmE,QAHb,CAGEymE;AAdJ;;AAgBE;AACE,gBAAM,UAjBV,gBAiBU,CAAN;AAjBJ;;AAqBA,UAAMulB,WAAW,eAAgB,KAAD,QAAC,IA3BqB,MA2BrC,CAAjB;AACA,UAAIQ,iBAAJ;AAAA,UACEC,cA7BoD,CA4BtD;;AAEA,WAAK,IAAIziB,IAAT,GAAgBA,IAAhB,QAA4B,EAA5B,GAAiC;AAC/BgiB,iBAASQ,cAATR,MAD+B,CAC/BA;AACAA,qBACEnxE,4BAA4B4xE,cAD9BT,QACEnxE,CADFmxE,EAF+B,cAE/BA;AAIAS,uBAN+B,QAM/BA;AACAD,0BAP+B,QAO/BA;AArCoD;;AAwCtD,UAAIv4D,SAASznB,gBAATynB,kBAAJ,QAAiD;AAE/Cu4D,yBAF+C,CAE/CA;;AACA,aAAK,IAAIxiB,KAAT,GAAgBA,KAAhB,QAA4BA,EAA5B,IAAiC;AAC/BwiB,wBAD+B;;AAE/B,eAAK,IAAI5iF,MAAT,GAAgBA,MAAhB,UAA8BA,GAA9B,IAAmC;AACjCoiF,qBAASQ,cAATR,OADiC,IACjCA;AAH6B;AAHc;AAxCK;;AAmDtD,UAAMU,OAAO,eAAe,CACzB1sF,SAAD,EAACA,GADyB,MAEzBA,SAAD,EAACA,GAFyB,MAGzBA,SAAD,CAACA,GAHyB,MAI1BA,QAJ0B,MAKzBC,UAAD,EAACA,GALyB,MAMzBA,UAAD,EAACA,GANyB,MAOzBA,UAAD,CAACA,GAPyB,MAQ1BA,SAR0B,4CAAf,CAAb;AAeA,UAAMksF,OAAOQ,YAlEyC,QAkEzCA,CAAb;AAGA,UAAMC,YACJnB,oBAAoBC,qBAApBD,IAA6CiB,KAA7CjB,SAA2DU,KAtEP,MAqEtD;AAEA,UAAM3wE,OAAO,eAvEyC,SAuEzC,CAAb;AACA,UAAI2nD,SAxEkD,CAwEtD;AACA3nD,2BAzEsD,MAyEtDA;AACA2nD,gBAAUsoB,WA1E4C,MA0EtDtoB;AACA0pB,wCA3EsD,MA2EtDA;AACA1pB,gBAAUuoB,qBAAqBgB,KA5EuB,MA4EtDvpB;AACA0pB,yCA7EsD,MA6EtDA;AACA1pB,gBAAUuoB,qBAAqBS,KA9EuB,MA8EtDhpB;AACA0pB,4BAAsB,eAAtBA,CAAsB,CAAtBA,QA/EsD,MA+EtDA;AAEA,aAAOpuE,8CAjF+C,eAiF/CA,CAAP;AA/OqC;;AAmPvC,WAAO,+DAA+D;AACpE,UAAMwV,OACJoyC,6BAA6B75D,gBAA7B65D,iBAAwDA,QAFU,IACpE;AAEA,aAAOh6B,uCAH6D,MAG7DA,CAAP;AAtPqC,KAmPvC;AA9P6D,GAWlC,EAA7B;;AAX+D,MAqQ/D,aArQ+D;AAsQ7D1sC,6BAAc;AAAA;;AACZ,2BADY,CACZ;AACA,wBAAkBwrF,aAFN,UAEZ;AACA,sBAHY,CAGZ;AAEA,wBALY,qBAKZ;AACA,wBANY,0BAMZ;AACA,qBAPY,CAOZ;AACA,+BAAyBt/E,wBARb,IAQZ;AACA,6BATY,CASZ;AAGA,eAZY,CAYZ;AACA,eAbY,CAaZ;AAGA,mBAhBY,CAgBZ;AACA,mBAjBY,CAiBZ;AAGA,yBApBY,CAoBZ;AACA,yBArBY,CAqBZ;AACA,wBAtBY,CAsBZ;AACA,sBAvBY,CAuBZ;AAGA,uBAAiBs/E,aA1BL,SA0BZ;AACA,yBA3BY,SA2BZ;AAEA,uBA7BY,CA6BZ;AACA,yBA9BY,CA8BZ;AACA,uBA/BY,CA+BZ;AACA,sBAhCY,EAgCZ;AACA,qBAjCY,EAiCZ;AACA,wBAlCY,CAkCZ;AAEA,uBApCY,EAoCZ;AACA,uBArCY,CAqCZ;AAEA,0BAvCY,EAuCZ;AAGA,2BA1CY,IA0CZ;AACA,uBA3CY,IA2CZ;AAEA,oBA7CY,EA6CZ;AA9CgB;;AArQ2C;AAAA;AAAA,8BAsTrD;AACN,eAAOrnF,cADD,IACCA,CAAP;AAlDgB;AArQ2C;AAAA;AAAA,sCA0T7D4jE,CA1T6D,EA0T7DA,CA1T6D,EA0TvC;AACpB,iBADoB,CACpB;AACA,iBAFoB,CAEpB;AAvDgB;AArQ2C;;AAAA;AAAA;;AAiZ/D,MAAIolB,YAjZ2D,CAiZ/D;AACA,MAAIC,YAlZ2D,CAkZ/D;AACA,MAAIC,eAnZ2D,CAmZ/D;;AAGAjC;AACEprF,2CAAuD;AAAA,UAAzBgf,eAAyB,uEAAvDhf,KAAuD;;AAAA;;AACrD,wBAAkB,IADmC,4BACnC,EAAlB;AAEA,qBAAe,IAHsC,aAGtC,EAAf;AACA,6BAJqD,qBAIrD;AACA,4BALqD,EAKrD;AACA,wBANqD,EAMrD;AACA,wBAPqD,UAOrD;AACA,kBARqD,IAQrD;AACA,yBATqD,IASrD;AACA,2BAVqD,KAUrD;AAEA,wBAZqD,KAYrD;AACA,2BAAqBmE,cAbgC,IAahCA,CAArB;AACA,sBAdqD,IAcrD;AACA,6BAAuB,CAAC,CAf6B,eAerD;AAKA,gCApBqD,EAoBrD;;AACA,gCAAsB;AACpB,gCAAwBmP,UAAxB,EAAwBA,CAAxB,IADoB,EACpB;AAtBmD;AADzB;;AAAhC83E;AAAAA;AAAAA,6BA2BS;AACL,iCAAyB,KADpB,eACL;AACA,YAAMllB,MAAM,KAFP,OAEL;AACA,6BAHK,GAGL;AACA,uBAAeA,IAJV,KAIUA,EAAf;AA/B4B;AAAhCklB;AAAAA;AAAAA,gCAkCY;AACR,+BAAuB,oBADf,GACe,EAAvB;AACA,uBAAe,gBAFP,GAEO,EAAf;AACA,2BAHQ,IAGR;AACA,oBAJQ,IAIR;AAtC4B;AAAhCA;AAAAA;AAAAA,4BAyCElZ,KAzCFkZ,EAyCe;AACX,aADW,IACX;AACA,2BAFW,KAEX;AACA,aAHW,OAGX;AA5C4B;AAAhCA;AAAAA;AAAAA,uCA+CEkC,YA/CFlC,EA+CiC;AAAA;;AAC7B,YAAMvvB,UAAUS,aADa,OAC7B;AACA,YAAMR,YAAYQ,aAFW,SAE7B;;AAEA,aAAK,IAAIryD,IAAJ,GAAWkV,KAAK08C,QAArB,QAAqC5xD,IAArC,IAA6CA,CAA7C,IAAkD;AAChD,cAAI4xD,eAAevoD,UAAnB,YAAmC;AAAA;AADa;;AAAA,sDAK9BwoD,UAAlB,CAAkBA,CAL8B;AAAA;;AAAA;AAAA;AAAA,kBAKhD,GALgD;AAM9C,kBAAMmQ,WAAWvlE,uBAAuB,MAAvBA,aAAyC,MAD5B,IAC9B;AACA,kBAAMw1B,UAAU,YAAYx6B,mBAAW;AACrCuqE,kCADqC,OACrCA;AAH4B,eAEd,CAAhB;;AAGA,8CAL8B,OAK9B;AAV8C;;AAKhD,mEAAgC;AAAA;AALgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAJrB;;AAiB7B,eAAOr0C,YAAY,aAjBU,YAiBtBA,CAAP;AAhE4B;AAAhCwzD;AAAAA;AAAAA,gCAmEEl3E,CAnEFk3E,EAmEEl3E,CAnEFk3E,EAmEEl3E,CAnEFk3E,EAmEEl3E,CAnEFk3E,EAmEEl3E,CAnEFk3E,EAmEEl3E,CAnEFk3E,EAmE8B;AAC1B,YAAMmC,kBAAkB,kBAAxB;AACA,+BAAuBvwE,qBACrB,KADqBA,iBAFG,eAEHA,CAAvB;AAIA,oBAN0B,IAM1B;AAzE4B;AAAhCouE;AAAAA;AAAAA,6BA4EEoC,YA5EFpC,EA4EEoC,QA5EFpC,EA4EiC;AAAA;;AAC7B,wBAD6B,QAC7B;;AAEA,YAAMqC,aAAa,iBAHU,QAGV,CAAnB;;AACA,eAAO,yCAAyC,YAAM;AACpD,mCADoD,qBACpD;;AACA,+BAAmB,qBAFiC,YAEjC,CAAnB;;AACA,iBAHoD,UAGpD;AAP2B,SAItB,CAAP;AAhF4B;AAAhCrC;AAAAA;AAAAA,oCAuFEsC,YAvFFtC,EAuF8B;AAC1B,YAAMuC,oBAAoB,KADA,kBAC1B;AACA,YAAM7xB,YAAYQ,aAFQ,SAE1B;AACA,YAAMT,UAAUS,aAHU,OAG1B;AACA,YAAMsxB,SAJoB,EAI1B;;AACA,aAAK,IAAI3jF,IAAJ,GAAWkV,KAAK08C,QAArB,QAAqC5xD,IAArC,IAA6CA,CAA7C,IAAkD;AAChD,cAAM+hE,OAAOnQ,QADmC,CACnCA,CAAb;AACA+xB,sBAAY;AACV5hB,gBADU,EACVA,IADU;AAEV5kE,gBAAIumF,kBAFM,IAENA,CAFM;AAGVhtE,kBAAMm7C,UAHI,CAGJA;AAHI,WAAZ8xB;AAPwB;;AAa1B,eAAOC,aAbmB,MAanBA,CAAP;AApG4B;AAAhCzC;AAAAA;AAAAA,oCAuGE0C,MAvGF1C,EAuGwB;AAAA,oDACpB,MADoB;AAAA;;AAAA;AACpB,iEAAoC;AAAA,gBAApC,aAAoC;AAClC,gBAAMhkF,KAAK2mF,cADuB,EAClC;AACA,gBAAM/hB,OAAO+hB,cAFqB,IAElC;AACA,gBAAMptE,OAAOotE,cAHqB,IAGlC;;AAEA,oBAAQ/hB,OAAR;AACE,mBAAK14D,UAAL;AACE,qBADF,SACE;AAFJ;;AAIE,mBAAKA,UAAL;AAJF;;AAOE,mBAAKA,UAAL;AACE,gCADF,IACE;AARJ;;AAUE,mBAAKA,UAAL;AACE,wCAAwBqN,KAAxB,CAAwBA,CAAxB,EAAiCA,KADnC,CACmCA,CAAjC;AAXJ;;AAaE,mBAAKrN,UAAL;AACE,6BADF,IACE;AAdJ;;AAgBE,mBAAKA,UAAL;AACE,8BAAcqN,KADhB,CACgBA,CAAd;AAjBJ;;AAmBE,mBAAKrN,UAAL;AACE,8BAAcqN,KADhB,CACgBA,CAAd;AApBJ;;AAsBE,mBAAKrN,UAAL;AACE,qBADF,OACE;AAvBJ;;AAyBE,mBAAKA,UAAL;AACE,8BAAcqN,KAAd,CAAcA,CAAd,EAAuBA,KADzB,CACyBA,CAAvB;AA1BJ;;AA4BE,mBAAKrN,UAAL;AACE,oCAAoBqN,KADtB,CACsBA,CAApB;AA7BJ;;AA+BE,mBAAKrN,UAAL;AACE,oCAAoBqN,KADtB,CACsBA,CAApB;AAhCJ;;AAkCE,mBAAKrN,UAAL;AACE,+BAAeqN,KADjB,CACiBA,CAAf;AAnCJ;;AAqCE,mBAAKrN,UAAL;AACE,mCACEqN,KADF,CACEA,CADF,EAEEA,KAFF,CAEEA,CAFF,EAGEA,KAHF,CAGEA,CAHF,EAIEA,KAJF,CAIEA,CAJF,EAKEA,KALF,CAKEA,CALF,EAMEA,KAPJ,CAOIA,CANF;AAtCJ;;AA+CE,mBAAKrN,UAAL;AACE,iCAAiBqN,KADnB,CACmBA,CAAjB;AAhDJ;;AAkDE,mBAAKrN,UAAL;AACE,0CAA0BqN,KAD5B,CAC4BA,CAA1B;AAnDJ;;AAqDE,mBAAKrN,UAAL;AACE,kCAAkBqN,KADpB,CACoBA,CAAlB;AAtDJ;;AAwDE,mBAAKrN,UAAL;AACE,iCAAiBqN,KADnB,CACmBA,CAAjB;AAzDJ;;AA2DE,mBAAKrN,UAAL;AACE,gCAAgBqN,KADlB,CACkBA,CAAhB;AA5DJ;;AA8DE,mBAAKrN,UAAL;AACE,mCAAmBqN,KADrB,CACqBA,CAAnB;AA/DJ;;AAiEE,mBAAKrN,UAAL;AACE,qCAAqBqN,KAArB,CAAqBA,CAArB,EAA8BA,KAA9B,CAA8BA,CAA9B,EAAuCA,KADzC,CACyCA,CAAvC;AAlEJ;;AAoEE,mBAAKrN,UAAL;AACE,uCAAuBqN,KAAvB,CAAuBA,CAAvB,EAAgCA,KAAhC,CAAgCA,CAAhC,EAAyCA,KAD3C,CAC2CA,CAAzC;AArEJ;;AAuEE,mBAAKrN,UAAL;AACE,qCADF,IACE;AAxEJ;;AA0EE,mBAAKA,UAAL;AACE,mCADF,IACE;AA3EJ;;AA6EE,mBAAKA,UAAL;AACE,iCAAiBqN,KADnB,CACmBA,CAAjB;AA9EJ;;AAgFE,mBAAKrN,UAAL;AACE,6BAAaqN,KAAb,CAAaA,CAAb,EAAsBA,KADxB,CACwBA,CAAtB;AAjFJ;;AAmFE,mBAAKrN,UAAL;AACE,wCAAwBqN,KAD1B,CAC0BA,CAAxB;AApFJ;;AAsFE,mBAAKrN,UAAL;AACE,iCAAiBqN,KADnB,CACmBA,CAAjB;AAvFJ;;AAyFE,mBAAKrN,UAAL;AACE,+BAAeqN,KADjB,CACiBA,CAAf;AA1FJ;;AA4FE,mBAAKrN,UAAL;AACE,qBADF,IACE;AA7FJ;;AA+FE,mBAAKA,UAAL;AACE,qBADF,MACE;AAhGJ;;AAkGE,mBAAKA,UAAL;AACE,qBADF,MACE;AAnGJ;;AAqGE,mBAAKA,UAAL;AACE,qBADF,UACE;AAtGJ;;AAwGE,mBAAKA,UAAL;AACE,qBADF,YACE;AAzGJ;;AA2GE,mBAAKA,UAAL;AACE,0BADF,SACE;AA5GJ;;AA8GE,mBAAKA,UAAL;AACE,0BADF,SACE;AA/GJ;;AAiHE,mBAAKA,UAAL;AACE,qBADF,wBACE;AAlHJ;;AAoHE,mBAAKA,UAAL;AACE,uCAAuBqN,KADzB,CACyBA,CAAvB;AArHJ;;AAuHE,mBAAKrN,UAAL;AACE,6CAA6BqN,KAD/B,CAC+BA,CAA7B;AAxHJ;;AA0HE,mBAAKrN,UAAL;AACE,2CAA2BqN,KAD7B,CAC6BA,CAA3B;AA3HJ;;AA6HE,mBAAKrN,UAAL;AACE,2CAA2BqN,KAA3B,CAA2BA,CAA3B,EAAoCA,KADtC,CACsCA,CAApC;AA9HJ;;AAgIE,mBAAKrN,UAAL;AACE,qBADF,mBACE;AAjIJ;;AAmIE,mBAAKA,UAAL;AACE,qBADF,SACE;AApIJ;;AAsIE,mBAAKA,UAAL;AACE,qBADF,WACE;AAvIJ;;AAyIE,mBAAKA,UAAL;AACE,qBADF,eACE;AA1IJ;;AA4IE,mBAAKA,UAAL;AACE,qBADF,iBACE;AA7IJ;;AA+IE,mBAAKA,UAAL;AACE,qBADF,QACE;AAhJJ;;AAkJE,mBAAKA,UAAL;AACE,+BACEqN,KADF,CACEA,CADF,EAEEA,KAFF,CAEEA,CAFF,EAGEA,KAHF,CAGEA,CAHF,EAIEA,KAJF,CAIEA,CAJF,EAKEA,KALF,CAKEA,CALF,EAMEA,KAPJ,CAOIA,CANF;AAnJJ;;AA4JE,mBAAKrN,UAAL;AACE,mCAAmBqN,KAAnB,CAAmBA,CAAnB,EAA4BA,KAD9B,CAC8BA,CAA5B;AA7JJ;;AA+JE,mBAAKrN,UAAL;AACE,qBADF,OACE;AAhKJ;;AAkKE;AACE,2BAAWy6E,cADb,KACE;AAnKJ;;AAqKE;AACEzpF,iEADF,EACEA;AAtKJ;AAAA;AANkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAvGQ;AAAhC8mF;AAAAA;AAAAA,qCAyRE51E,WAzRF41E,EAyR8B;AAC1B,mCAD0B,WAC1B;AA1R4B;AAAhCA;AAAAA;AAAAA,qCA6RE71E,WA7RF61E,EA6R8B;AAC1B,mCAD0B,WAC1B;AA9R4B;AAAhCA;AAAAA;AAAAA,iCAiSa;AACT,yBAAiB,aADR,OACT;AAlS4B;AAAhCA;AAAAA;AAAAA,oCAqSEp1E,CArSFo1E,EAqSEp1E,CArSFo1E,EAqSEp1E,CArSFo1E,EAqSEp1E,CArSFo1E,EAqSEp1E,CArSFo1E,EAqSEp1E,CArSFo1E,EAqSkC;AAC9B,YAAMpmB,UAAU,KADc,OAC9B;AACAA,6BAAqBA,qBAAqB,kBAA1CA;AACAA,kCAA0BriE,UAAU4a,QAAQC,IAHd,CAGJ7a,CAA1BqiE;AAEAA,oBAAYA,gBALkB,CAK9BA;AACAA,oBAAYA,gBANkB,CAM9BA;AAEAA,0BAR8B,EAQ9BA;AACAA,0BAT8B,EAS9BA;AACAA,wBAAgB,8BAVc,WAUd,CAAhBA;AACAA,0DAAkDA,QAXpB,UAW9BA;AACAA,kEAGKumB,GAAGvmB,QAfsB,QAezBumB,CAHLvmB;AAKAA,gDAAwCumB,GAAG,CAACvmB,QAjBd,CAiBUumB,CAAxCvmB;AAEAA,6BAAqB,8BAnBS,UAmBT,CAArBA;AACAA,uCAA+BA,QApBD,KAoB9BA;AAzT4B;AAAhComB;AAAAA;AAAAA,kCA4Tc;AACV,YAAMpmB,UAAU,KADN,OACV;AACAA,oBAAYA,gBAFF,CAEVA;AACAA,oBAAYA,gBAHF,CAGVA;AACAA,6BAJU,qBAIVA;AACAA,6BALU,qBAKVA;AACAA,kCANU,CAMVA;AACAA,wBAAgB,8BAPN,WAOM,CAAhBA;AACAA,6BAAqB,8BARX,UAQW,CAArBA;AACAA,yBAAiB,8BATP,OASO,CAAjBA;AACAA,0BAVU,EAUVA;AACAA,0BAXU,EAWVA;AAvU4B;AAAhComB;AAAAA;AAAAA,+BA0UEt1E,CA1UFs1E,EA0UEt1E,CA1UFs1E,EA0UiB;AACb,YAAMpmB,UAAU,KADH,OACb;AACAA,oBAAYA,iBAFC,CAEbA;AACAA,oBAAYA,iBAHC,CAGbA;AAEAA,0BALa,EAKbA;AACAA,0BANa,EAMbA;AACAA,wBAAgB,8BAPH,WAOG,CAAhBA;AACAA,0DAAkDA,QARrC,UAQbA;AACAA,kEAGKumB,GAAGvmB,QAZK,QAYRumB,CAHLvmB;AAKAA,gDAAwCumB,GAAG,CAACvmB,QAd/B,CAc2BumB,CAAxCvmB;AAxV4B;AAAhComB;AAAAA;AAAAA,+BA2VEl1E,MA3VFk1E,EA2VmB;AACf,YAAMpmB,UAAU,KADD,OACf;AACA,YAAMxrD,OAAOwrD,QAFE,IAEf;AACA,YAAMqJ,WAAWrJ,QAHF,QAGf;;AACA,YAAIqJ,aAAJ,GAAoB;AAAA;AAJL;;AAQf,YAAMK,gBAAgB1J,QARP,aAQf;AACA,YAAM2J,cAAc3J,QATL,WASf;AACA,YAAM4J,cAAc5J,QAVL,WAUf;AACA,YAAM6J,gBAAgB7J,QAXP,aAWf;AACA,YAAM8J,aAAa9J,qBAZJ,aAYf;AACA,YAAMiK,WAAWz1D,KAbF,QAaf;AACA,YAAM01D,aAAaD,eAAe,CAdnB,CAcf;AACA,YAAME,kBAAkB31D,KAfT,eAef;AACA,YAAM41D,oBAAoBf,WAAWrJ,mBAhBtB,CAgBsBA,CAArC;AAEA,YAAI7vC,IAlBW,CAkBf;;AAlBe,oDAmBf,MAnBe;AAAA;;AAAA;AAmBf,iEAA4B;AAAA,gBAA5B,KAA4B;;AAC1B,gBAAIs6C,UAAJ,MAAoB;AAElBt6C,mBAAK05C,gBAFa,WAElB15C;AAFkB;AAApB,mBAIO,IAAIu6C,iBAAJ,KAAIA,CAAJ,EAAkB;AACvBv6C,mBAAM+5C,qBAAD,QAACA,GADiB,IACvB/5C;AADuB;AALC;;AAU1B,gBAAMy6C,UAAW,+BAAD,CAAC,IAVS,WAU1B;AACA,gBAAMC,YAAYJ,MAXQ,QAW1B;AACA,gBAAIS,OAAJ;AAAA,gBAAaC,OAZa,SAY1B;AACA,gBAAI9vE,QAAQovE,MAbc,KAa1B;;AACA,0BAAc;AACZ,kBAAIO,EADQ,SACZ;AACA,kBAAMD,UAAUN,iBAFJ,eAEZ;AACAO,mBAAKP,gBAAgBM,QAAhBN,CAAgBM,CAAhBN,GAA6BpvE,QAHtB,GAGZ2vE;AACAA,mBAAK,MAJO,iBAIZA;AACA,kBAAMC,KAAKF,aALC,iBAKZ;AAEA1vE,sBAAQ0vE,UAAU,CAACA,QAAXA,CAAWA,CAAXA,GAPI,KAOZ1vE;AACA6vE,wBAAUF,KARE,aAQZE;AACAC,wBAAW,KAAD,EAAC,IATC,aASZA;AATF,mBAUO;AACLD,wBAAU/6C,IADL,aACL+6C;AACAC,wBAFK,CAELA;AA1BwB;;AA6B1B,gBAAIV,kBAAkBj2D,KAAtB,aAAwC;AACtCwrD,mCAAqBA,YADiB,OACtCA;;AACA,4BAAc;AACZA,qCAAqB,CAACA,QAAD,IADT,OACZA;AAHoC;;AAKtCA,2CALsC,SAKtCA;AALF,mBAMO,CAnCmB;;AA0C1B,gBAAIwL,SA1CsB,SA0C1B;;AACA,0BAAc;AACZA,0BAAYnwE,4BAA4BuvE,UAD5B,aACZY;AADF,mBAEO;AACLA,0BAAYnwE,4BAA4BuvE,UADnC,aACLY;AA9CwB;;AAiD1Br7C,iBAjD0B,SAiD1BA;AApEa;AAAA;AAAA;AAAA;AAAA;AAAA;;AAsEf6vC,gDAGEA,6BAzEa,GAyEbA,CAHFA;;AAKA,sBAAc;AACZA,kDAGEA,6BAJU,GAIVA,CAHFA;AADF,eAMO;AACLA,kDAAwCumB,GAAG,CAACvmB,QADvC,CACmCumB,CAAxCvmB;AAlFa;;AAqFf,sBAAc;AACZA,uBADY,CACZA;AADF,eAEO;AACLA,uBAAa7vC,IADR,UACL6vC;AAxFa;;AA2FfA,0DAAkDA,QA3FnC,UA2FfA;AACAA,kEAGKumB,GAAGvmB,QA/FO,QA+FVumB,CAHLvmB;;AAKA,YAAIA,sBAAsBwmB,aAA1B,WAAkD;AAChDxmB,2DAAiDA,QADD,SAChDA;AAlGa;;AAoGf,YAAIA,uBAAuBwmB,aAA3B,YAAoD;AAClDxmB,4DAAkDA,QADA,UAClDA;AArGa;;AAwGf,YAAMsJ,iBACJtJ,4BAA4B94D,wBAzGf,gBAwGf;;AAEA,YACEoiE,mBAAmBpiE,wBAAnBoiE,QACAA,mBAAmBpiE,wBAFrB,aAGE;AACA,cAAI84D,sBAAsBwmB,aAA1B,WAAkD;AAChDxmB,uDAA2CA,QADK,SAChDA;AAFF;;AAIA,cAAIA,oBAAJ,GAA2B;AACzBA,+DAAmDA,QAD1B,SACzBA;AALF;AAHF,eAUO,IAAIA,8BAA8B94D,wBAAlC,aAAiE;AAGtE84D,qDAHsE,aAGtEA;AAHK,eAIA;AACLA,qDADK,MACLA;AAzHa;;AA4Hf,YACEsJ,mBAAmBpiE,wBAAnBoiE,UACAA,mBAAmBpiE,wBAFrB,aAGE;AACA,cAAM8hF,iBAAiB,KAAK,2BAD5B,CACuB,CAAvB;;AACA,oCAA0BhpB,QAA1B,OAFA,cAEA;AAjIa;;AAuIf,YAAIipB,aAAajpB,QAvIF,UAuIf;;AACA,YAAIA,qBAAJ,GAA4B;AAC1BipB,uBAAaA,WADa,KACbA,EAAbA;AACAA,2BAAiBjpB,QAFS,QAE1BipB;AA1Ia;;AA6IfjpB,uEAGKkpB,GAAH,UAAGA,CAHLlpB,oBAG6BumB,GAhJd,UAgJcA,CAH7BvmB;AAKAA,+DAlJe,UAkJfA;AACAA,uCAA+BA,QAnJhB,KAmJfA;AACAA,mCAA2BA,QApJZ,UAoJfA;;AAEA,iDAAyCA,QAtJ1B,UAsJf;AAjf4B;AAAhComB;AAAAA;AAAAA,yCAofEr1E,CApfFq1E,EAofEr1E,CApfFq1E,EAof2B;AACvB,wBAAgB,CADO,CACvB;AACA,yBAFuB,CAEvB;AAtf4B;AAAhCA;AAAAA;AAAAA,mCAyfE+C,OAzfF/C,EAyfwB;AACpB,YAAI,CAACtd,QAAL,MAAmB;AACjB,gBAAM,UACJ,2CAFe,6DACX,CAAN;AAFkB;;AAOpB,YAAI,CAAC,KAAL,UAAoB;AAClB,0BAAgB,8BADE,WACF,CAAhB;AACA,qDAFkB,UAElB;AACA,gCAAsB,KAHJ,QAGlB;AAVkB;;AAapB,YAAMhtE,MAAMge,2BACVgvD,QADUhvD,MAEVgvD,QAFUhvD,UAGV,KAhBkB,eAaRA,CAAZ;AAKA,qCACE,sCAA8BgvD,QAA9B,yCAnBkB,GAmBlB,WADF;AA3gB4B;AAAhCsd;AAAAA;AAAAA,8BAghBEz1E,OAhhBFy1E,EAghBmB;AACf,YAAMpmB,UAAU,KADD,OACf;AACA,YAAM8I,UAAU,oBAAoBsgB,QAFrB,CAEqBA,CAApB,CAAhB;AACA,YAAI7+D,OAAO6+D,QAHI,CAGJA,CAAX;AACAppB,uBAJe,OAIfA;;AAEA,YACE,mBACA,CAAC8I,QADD,eAEA,CAAC,mBAAmBA,QAHtB,UAGG,CAHH,EAIE;AACA,4BADA,OACA;AACA,6BAAmBA,QAAnB,cAFA,OAEA;AAZa;;AAef9I,6BAAqB8I,qBACjBA,QADiBA,aAfN,0BAef9I;AAIA,YAAI+I,OAnBW,QAmBf;;AACA,YAAID,QAAJ,OAAmB;AACjBC,iBADiB,KACjBA;AADF,eAEO,IAAID,QAAJ,MAAkB;AACvBC,iBADuB,MACvBA;AAvBa;;AAyBf,YAAMC,SAASF,4BAzBA,QAyBf;;AAEA,YAAIv+C,OAAJ,GAAc;AACZA,iBAAO,CADK,IACZA;AACAy1C,kCAAwB,CAFZ,CAEZA;AAFF,eAGO;AACLA,kCADK,CACLA;AA/Ba;;AAiCfA,2BAjCe,IAiCfA;AACAA,6BAAqB8I,QAlCN,UAkCf9I;AACAA,6BAnCe,IAmCfA;AACAA,4BApCe,MAoCfA;AAEAA,wBAAgB,8BAtCD,WAsCC,CAAhBA;AACAA,gDAAwCumB,GAAG,CAACvmB,QAvC7B,CAuCyBumB,CAAxCvmB;AACAA,0BAxCe,EAwCfA;AACAA,0BAzCe,EAyCfA;AAzjB4B;AAAhComB;AAAAA;AAAAA,gCA4jBY;AACR,YAAMpmB,UAAU,KADR,OACR;;AACA,YACEA,4BAA4B94D,wBAA5B84D,oBACAA,QADAA,cAEAA,mBAHF,aAGEA,EAHF,EAIE;AAEAA,4BAAkBA,QAFlB,UAEAA;AACA,oBAHA,SAGA;AACA,eAJA,OAIA;AAVM;AA5jBoB;AAAhComB;AAAAA;AAAAA,mCA2kBE53E,KA3kBF43E,EA2kBsB;AAClB,YAAI/qF,QAAJ,GAAe;AACb,mCADa,KACb;AAFgB;AA3kBU;AAAhC+qF;AAAAA;AAAAA,iCAilBE33E,KAjlBF23E,EAilBoB;AAChB,+BAAuBjgB,gBADP,KACOA,CAAvB;AAllB4B;AAAhCigB;AAAAA;AAAAA,kCAqlBE13E,KArlBF03E,EAqlBqB;AACjB,gCAAwBhgB,iBADP,KACOA,CAAxB;AAtlB4B;AAAhCggB;AAAAA;AAAAA,oCAylBEz3E,KAzlBFy3E,EAylBuB;AACnB,kCADmB,KACnB;AA1lB4B;AAAhCA;AAAAA;AAAAA,qCA6lBEiD,WA7lBFjD,EA6lB8B;AAC1B,mCAD0B,WAC1B;AA9lB4B;AAAhCA;AAAAA;AAAAA,wCAimBEp0E,CAjmBFo0E,EAimBEp0E,CAjmBFo0E,EAimBEp0E,CAjmBFo0E,EAimB6B;AACzB,mCAA2BpuE,4BADF,CACEA,CAA3B;AAlmB4B;AAAhCouE;AAAAA;AAAAA,mCAqmBEkD,SArmBFlD,EAqmB0B;AACtB,iCADsB,SACtB;AAtmB4B;AAAhCA;AAAAA;AAAAA,sCAymBEn0E,CAzmBFm0E,EAymBEn0E,CAzmBFm0E,EAymBEn0E,CAzmBFm0E,EAymB2B;AACvB,iCAAyBpuE,4BADF,CACEA,CAAzB;AACA,6BAAqB,8BAFE,WAEF,CAArB;AACA,+BAHuB,EAGvB;AACA,+BAJuB,EAIvB;AA7mB4B;AAAhCouE;AAAAA;AAAAA,sCAgnBEz0E,IAhnBFy0E,EAgnBwB;AACpB,mCAA2B,yBADP,IACO,CAA3B;AAjnB4B;AAAhCA;AAAAA;AAAAA,oCAonBEv0E,IApnBFu0E,EAonBsB;AAClB,iCAAyB,yBADP,IACO,CAAzB;AArnB4B;AAAhCA;AAAAA;AAAAA,kCAwnBEh0E,IAxnBFg0E,EAwnBoB;AAChB,YAAM/qF,QAAQ,cADE,KAChB;AACA,YAAMC,SAAS,cAFC,MAEhB;;AACA,YAAMixE,MAAMv0D,4BAAsB,KAHlB,eAGJA,CAAZ;;AACA,YAAMw0D,KAAK,0BAAoB,MAApB,EAJK,GAIL,CAAX;;AACA,YAAMC,KAAK,0BAAoB,WAApB,EALK,GAKL,CAAX;;AACA,YAAMC,KAAK,0BAAoB,UAApB,EANK,GAML,CAAX;;AACA,YAAMC,KAAK,0BAAoB,eAApB,EAPK,GAOL,CAAX;;AACA,YAAMC,KAAKjvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GARzB,CAQyBA,CAA9BhvE,CAAX;AACA,YAAMkvE,KAAKlvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GATzB,CASyBA,CAA9BhvE,CAAX;AACA,YAAMmvE,KAAKnvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAVzB,CAUyBA,CAA9BhvE,CAAX;AACA,YAAMovE,KAAKpvE,SAAS6uE,GAAT7uE,CAAS6uE,CAAT7uE,EAAgB8uE,GAAhB9uE,CAAgB8uE,CAAhB9uE,EAAuB+uE,GAAvB/uE,CAAuB+uE,CAAvB/uE,EAA8BgvE,GAXzB,CAWyBA,CAA9BhvE,CAAX;AAEA,YAAMO,OAAO,8BAbG,UAaH,CAAb;AACAA,uCAdgB,EAchBA;AACAA,uCAfgB,EAehBA;AACAA,2CAAmC4uE,KAhBnB,EAgBhB5uE;AACAA,4CAAoC6uE,KAjBpB,EAiBhB7uE;AACAA,0CAAkC,yBAlBlB,IAkBkB,CAAlCA;;AACA,YAAI,yBAAJ,GAAgC;AAC9BA,oDAA0C,aADZ,SAC9BA;AApBc;;AAsBhB,iDAtBgB,IAsBhB;AA9oB4B;AAAhCkoF;AAAAA;AAAAA,0CAopBEmD,IAppBFnD,EAopB4B;AACxB,YAAIzqE,YAAJ,iBAAiC;AAC/B,iBAAO,wBADwB,IACxB,CAAP;AAFsB;;AAIxB,eAAO,yBAJiB,IAIjB,CAAP;AAxpB4B;AAAhCyqE;AAAAA;AAAAA,yCA8pBEoD,IA9pBFpD,EA8pB2B;AACvB,YAAMla,QAAQvwD,KADS,CACTA,CAAd;AACA,YAAM27C,eAAe37C,KAFE,CAEFA,CAArB;AACA,YAAMqxD,SAASrxD,WAHQ,qBAGvB;;AAHuB,oCAIEA,KAJF,CAIEA,CAJF;AAAA,YAIjB,EAJiB;AAAA,YAIjB,EAJiB;AAAA,YAIjB,EAJiB;AAAA,YAIjB,EAJiB;;AAKvB,YAAM+3D,QAAQ/3D,KALS,CAKTA,CAAd;AACA,YAAMg4D,QAAQh4D,KANS,CAMTA,CAAd;AACA,YAAMi4D,YAAYj4D,KAPK,CAOLA,CAAlB;AAEA,YAAM8tE,4BAAqBpB,YATJ,EASjBoB,CAAN;;AATuB,mCAUJ,0BAAoB,QAApB,EAVI,MAUJ,CAVI;AAAA;AAAA,YAUjB,GAViB;AAAA,YAUjB,GAViB;;AAAA,oCAWJ,0BAAoB,QAApB,EAXI,MAWJ,CAXI;AAAA;AAAA,YAWjB,GAXiB;AAAA,YAWjB,GAXiB;;AAAA,oCAYEzxE,yCAZF,MAYEA,CAZF;AAAA;AAAA,YAYjB,MAZiB;AAAA,YAYjB,MAZiB;;AAavB,YAAM0xE,SAAShW,QAbQ,MAavB;AACA,YAAMiW,SAAShW,QAdQ,MAcvB;AAEA,YAAMiW,SAAS,8BAhBQ,aAgBR,CAAf;AACAA,0CAjBuB,QAiBvBA;AACAA,oDAlBuB,gBAkBvBA;AACAA,6CAnBuB,MAmBvBA;AACAA,8CApBuB,MAoBvBA;AACAA,mDArBuB,GAqBvBA;AACAA,mDAtBuB,GAsBvBA;AAGA,YAAM/sF,MAAM,KAzBW,GAyBvB;AACA,YAAM0rF,kBAAkB,KA1BD,eA0BvB;AACA,YAAM7f,YAAY,aA3BK,SA2BvB;AACA,YAAMD,cAAc,aA5BG,WA4BvB;AAEA,YAAMwE,OAAO,uBAAuB4c,MAAvB,KAAkCC,MA9BxB,GA8BV,CAAb;AACA,mBA/BuB,IA+BvB;AACA,+BAhCuB,MAgCvB;;AACA,YAAIlW,cAAJ,GAAqB;AACnB,cAAMa,WAAWz8D,2DADE,KACFA,EAAjB;;AACA,mCAFmB,QAEnB;AACA,qCAHmB,QAGnB;AApCqB;;AAsCvB,2BAAmB,mBAtCI,YAsCJ,CAAnB;AAGA,mBAzCuB,GAyCvB;AACA,+BA1CuB,eA0CvB;AACA,iCA3CuB,SA2CvB;AACA,mCA5CuB,WA4CvB;AAEA4xE,2BAAmB3c,gBA9CI,CA8CJA,CAAnB2c;AACA,8BA/CuB,MA+CvB;AACA,8BAhDuB,QAgDvB;AA9sB4B;AAAhCxD;AAAAA;AAAAA,0CAotBE2D,IAptBF3D,EAotB4B;AACxB,gBAAQzqE,KAAR,CAAQA,CAAR;AACE;AACE,gBAAMquE,6BAAsB3B,YAD9B,EACQ2B,CAAN;AACA,gBAAMva,aAAa9zD,KAFrB,CAEqBA,CAAnB;AACA,gBAHF,QAGE;;AAEA,oBAAQA,KAAR,CAAQA,CAAR;AACE;AACE,oBAAMsuE,SAAStuE,KADjB,CACiBA,CAAf;AACA,oBAAMuuE,SAASvuE,KAFjB,CAEiBA,CAAf;AACAwuE,2BAAW,8BAHb,oBAGa,CAAXA;AACAA,oDAJF,SAIEA;AACAA,+DALF,gBAKEA;AACAA,oDAAoCF,OANtC,CAMsCA,CAApCE;AACAA,oDAAoCF,OAPtC,CAOsCA,CAApCE;AACAA,oDAAoCD,OARtC,CAQsCA,CAApCC;AACAA,oDAAoCD,OATtC,CASsCA,CAApCC;AAVJ;;AAYE;AACE,oBAAMC,aAAazuE,KADrB,CACqBA,CAAnB;AACA,oBAAM0uE,cAAc1uE,KAFtB,CAEsBA,CAApB;AACA,oBAAM2uE,cAAc3uE,KAHtB,CAGsBA,CAApB;AACA,oBAAM4uE,eAAe5uE,KAJvB,CAIuBA,CAArB;AACAwuE,2BAAW,8BALb,oBAKa,CAAXA;AACAA,oDANF,SAMEA;AACAA,+DAPF,gBAOEA;AACAA,oDAAoCE,YARtC,CAQsCA,CAApCF;AACAA,oDAAoCE,YATtC,CASsCA,CAApCF;AACAA,mDAVF,YAUEA;AACAA,oDAAoCC,WAXtC,CAWsCA,CAApCD;AACAA,oDAAoCC,WAZtC,CAYsCA,CAApCD;AACAA,oDAbF,WAaEA;AAzBJ;;AA2BE;AACE,sBAAM,8CAAuCxuE,KA5BjD,CA4BiDA,CAAvC,EAAN;AA5BJ;;AALF,wDAmCE,UAnCF;AAAA;;AAAA;AAmCE,qEAAoC;AAAA,oBAApC,SAAoC;AAClC,oBAAMxW,OAAO,8BADqB,UACrB,CAAb;AACAA,oDAAoCqlF,UAFF,CAEEA,CAApCrlF;AACAA,wDAAwCqlF,UAHN,CAGMA,CAAxCrlF;AACAglF,qCAJkC,IAIlCA;AAvCJ;AAAA;AAAA;AAAA;AAAA;AAAA;;AAyCE,kCAzCF,QAyCE;AACA,kCA3CJ,SA2CI;;AACF;AACE7qF,4BADF,4BACEA;AACA,mBA9CJ,IA8CI;;AACF;AACE,mBAhDJ,SAgDI;;AACF;AACE,kBAAM,qCAA8Bqc,KAlDxC,CAkDwCA,CAA9B,EAAN;AAlDJ;AArtB4B;AAAhCyqE;AAAAA;AAAAA,8BA2wBEx3E,SA3wBFw3E,EA2wBEx3E,SA3wBFw3E,EA2wBgC;AAC5B,iCAD4B,SAC5B;AACA,iCAF4B,SAE5B;AA7wB4B;AAAhCA;AAAAA;AAAAA,oCAgxBEnyE,GAhxBFmyE,EAgxBEnyE,IAhxBFmyE,EAgxB2B;AACvB,YAAMpmB,UAAU,KADO,OACvB;AACA,YAAI7vC,IAAI6vC,QAAR;AAAA,YACEqF,IAAIrF,QAHiB,CAEvB;AAEA,YAAIloD,IAJmB,EAIvB;AACA,YAAIqX,IALmB,CAKvB;;AALuB,oDAOvB,GAPuB;AAAA;;AAAA;AAOvB,iEAAsB;AAAA,gBAAtB,EAAsB;;AACpB,oBAAQs7D,KAAR;AACE,mBAAKn8E,UAAL;AACE6hB,oBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACA,oBAAMhqE,QAAQsgB,KAAKwT,CAHrB,EAGgBxT,CAAd;AACA,oBAAMrgB,SAASqgB,KAAKwT,CAJtB,EAIiBxT,CAAf;AACA,oBAAM2sD,KAAKn4C,IALb,KAKE;AACA,oBAAMo4C,KAAKlD,IANb,MAME;AACAvtD,4BAEEyuE,GAFFzuE,CAEEyuE,CAFFzuE,EAGEyuE,GAHFzuE,CAGEyuE,CAHFzuE,OAKEyuE,GALFzuE,EAKEyuE,CALFzuE,EAMEyuE,GANFzuE,CAMEyuE,CANFzuE,OAQEyuE,GARFzuE,EAQEyuE,CARFzuE,EASEyuE,GATFzuE,EASEyuE,CATFzuE,OAWEyuE,GAXFzuE,CAWEyuE,CAXFzuE,EAYEyuE,GAZFzuE,EAYEyuE,CAZFzuE,EAPF,GAOEA;AARJ;;AAwBE,mBAAKxJ,UAAL;AACE6hB,oBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACAvtD,4BAAYyuE,GAAZzuE,CAAYyuE,CAAZzuE,EAAmByuE,GAHrB,CAGqBA,CAAnBzuE;AA3BJ;;AA6BE,mBAAKxJ,UAAL;AACE6hB,oBAAIxU,KAAKwT,CADX,EACMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,CAFX,EAEMxT,CAAJ0pD;AACAvtD,4BAAYyuE,GAAZzuE,CAAYyuE,CAAZzuE,EAAmByuE,GAHrB,CAGqBA,CAAnBzuE;AAhCJ;;AAkCE,mBAAKxJ,UAAL;AACE6hB,oBAAIxU,KAAKwT,IADX,CACMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,IAFX,CAEMxT,CAAJ0pD;AACAvtD,4BAEEyuE,GAAG5qE,KAFL7D,CAEK6D,CAAH4qE,CAFFzuE,EAGEyuE,GAAG5qE,KAAKwT,IAHVrX,CAGK6D,CAAH4qE,CAHFzuE,EAIEyuE,GAAG5qE,KAAKwT,IAJVrX,CAIK6D,CAAH4qE,CAJFzuE,EAKEyuE,GAAG5qE,KAAKwT,IALVrX,CAKK6D,CAAH4qE,CALFzuE,EAMEyuE,GANFzuE,CAMEyuE,CANFzuE,EAOEyuE,GAVJ,CAUIA,CAPFzuE;AASAqX,qBAZF,CAYEA;AA9CJ;;AAgDE,mBAAK7gB,UAAL;AACEwJ,4BAEEyuE,GAFFzuE,CAEEyuE,CAFFzuE,EAGEyuE,GAHFzuE,CAGEyuE,CAHFzuE,EAIEyuE,GAAG5qE,KAJL7D,CAIK6D,CAAH4qE,CAJFzuE,EAKEyuE,GAAG5qE,KAAKwT,IALVrX,CAKK6D,CAAH4qE,CALFzuE,EAMEyuE,GAAG5qE,KAAKwT,IANVrX,CAMK6D,CAAH4qE,CANFzuE,EAOEyuE,GAAG5qE,KAAKwT,IARZ,CAQOxT,CAAH4qE,CAPFzuE;AASAqY,oBAAIxU,KAAKwT,IAVX,CAUMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,IAXX,CAWMxT,CAAJ0pD;AACAl2C,qBAZF,CAYEA;AA5DJ;;AA8DE,mBAAK7gB,UAAL;AACE6hB,oBAAIxU,KAAKwT,IADX,CACMxT,CAAJwU;AACAk1C,oBAAI1pD,KAAKwT,IAFX,CAEMxT,CAAJ0pD;AACAvtD,4BAEEyuE,GAAG5qE,KAFL7D,CAEK6D,CAAH4qE,CAFFzuE,EAGEyuE,GAAG5qE,KAAKwT,IAHVrX,CAGK6D,CAAH4qE,CAHFzuE,EAIEyuE,GAJFzuE,CAIEyuE,CAJFzuE,EAKEyuE,GALFzuE,CAKEyuE,CALFzuE,EAMEyuE,GANFzuE,CAMEyuE,CANFzuE,EAOEyuE,GAVJ,CAUIA,CAPFzuE;AASAqX,qBAZF,CAYEA;AA1EJ;;AA4EE,mBAAK7gB,UAAL;AACEwJ,uBADF,GACEA;AA7EJ;AAAA;AARqB;AAAA;AAAA;AAAA;AAAA;AAAA;;AA0FvBA,YAAIA,OA1FmB,GA0FnBA,CAAJA;;AAEA,YACEkoD,gBACAqI,aADArI,KAEAqI,WAAW/5D,UAFX0xD,aAGAqI,WAAW/5D,UAJb,QAKE;AAIAwJ,cAAIkoD,yCAJJ,CAIAloD;AATF,eAUO;AACLkoD,yBAAe,8BADV,UACU,CAAfA;;AACA,mDAAyCA,QAFpC,IAEL;AAxGqB;;AA2GvBA,+CA3GuB,CA2GvBA;AACAA,kDA5GuB,MA4GvBA;AAIAA,0BAAkBA,QAhHK,IAgHvBA;AACAA,mCAjHuB,CAiHvBA;AAj4B4B;AAAhComB;AAAAA;AAAAA,gCAo4BY;AACR,YAAMpmB,UAAU,KADR,OACR;AAGAA,uBAJQ,IAIRA;;AAEA,YAAI,CAAC,KAAL,aAAuB;AAAA;AANf;;AASR,YAAI,CAACA,QAAL,SAAsB;AACpB,6BADoB,IACpB;AADoB;AATd;;AAeR,YAAM0qB,2BAAoBvC,SAflB,EAeFuC,CAAN;AACA,YAAMC,WAAW,8BAhBT,cAgBS,CAAjB;AACAA,4CAjBQ,MAiBRA;AACAA,mDAA2CzB,GAAG,KAlBtC,eAkBmCA,CAA3CyB;AAGA,YAAMC,cAAc5qB,0BArBZ,IAqBYA,CAApB;;AACA,YAAI,qBAAJ,WAAoC;AAClC4qB,wDADkC,SAClCA;AADF,eAEO;AACLA,wDADK,SACLA;AAzBM;;AA2BR,2BA3BQ,IA2BR;AACAD,6BA5BQ,WA4BRA;AACA,8BA7BQ,QA6BR;;AAEA,YAAI3qB,QAAJ,eAA2B;AAGzBA,8BAHyB,IAGzBA;AACA,kCAAwB,gBAAgB;AACtC3U,6BADsC,IACtCA;AALuB,WAIzB;AAIAs/B,qDAA2C3qB,QARlB,aAQzB2qB;AAvCM;;AAyCR3qB,+CAzCQ,MAyCRA;AAEA,oBA3CQ,IA2CR;AA/6B4B;AAAhComB;AAAAA;AAAAA,2BAk7BEj2E,IAl7BFi2E,EAk7Ba;AACT,2BADS,IACT;AAn7B4B;AAAhCA;AAAAA;AAAAA,kCAs7Bc;AACV,YAAMpmB,UAAU,KADN,OACV;;AACA,YAAIA,QAAJ,MAAkB;AAChB,cAAMloD,cAAOkoD,kCADG,GACHA,CAAPloD,MAAN;AACAkoD,iDAFgB,CAEhBA;AAJQ;AAt7BkB;AAAhComB;AAAAA;AAAAA,iCA87BE11E,OA97BF01E,EA87BsB;AAClB,+BAAuB,CADL,OAClB;AA/7B4B;AAAhCA;AAAAA;AAAAA,kCAk8BEv1E,QAl8BFu1E,EAk8BwB;AACpB,gCADoB,QACpB;AAn8B4B;AAAhCA;AAAAA;AAAAA,2CAs8BEx1E,iBAt8BFw1E,EAs8B0C;AACtC,yCADsC,iBACtC;AAv8B4B;AAAhCA;AAAAA;AAAAA,gCA08BE31E,KA18BF21E,EA08BmB;AACf,kCAA0BtoF,QADX,GACf;AA38B4B;AAAhCsoF;AAAAA;AAAAA,yCA88BEv3E,MA98BFu3E,EA88B6B,CA98BG;AAAhCA;AAAAA;AAAAA,kCAk9BEt3E,QAl9BFs3E,EAk9BwB,CAl9BQ;AAAhCA;AAAAA;AAAAA,gCAs9BEr3E,MAt9BFq3E,EAs9BoB;AAAA,oDAChB,MADgB;AAAA;;AAAA;AAChB,iEAAmC;AAAA;AAAA,gBAAxB,GAAwB;AAAA,gBAAnC,KAAmC;;AACjC;AACE;AACE,kCADF,KACE;AAFJ;;AAIE;AACE,gCADF,KACE;AALJ;;AAOE;AACE,iCADF,KACE;AARJ;;AAUE;AACE,mCADF,KACE;AAXJ;;AAaE;AACE,6BAAa9kF,MAAb,CAAaA,CAAb,EAAuBA,MADzB,CACyBA,CAAvB;AAdJ;;AAgBE;AACE,wCADF,KACE;AAjBJ;;AAmBE;AACE,iCADF,KACE;AApBJ;;AAsBE;AACE,6BADF,KACE;AAvBJ;;AAyBE;AACE,oCADF,KACE;AA1BJ;;AA4BE;AACE,kCADF,KACE;AA7BJ;;AA+BE;AACEhC,+EADF,GACEA;AAhCJ;AAAA;AAFc;AAAA;AAAA;AAAA;AAAA;AAAA;AAt9BY;AAAhC8mF;AAAAA;AAAAA,6BA8/BS;AACL,YAAMpmB,UAAU,KADX,OACL;;AACA,YAAIA,QAAJ,SAAqB;AACnBA,uDAA6CA,QAD1B,SACnBA;AACAA,+DAAqDA,QAFlC,SAEnBA;AACA,eAHmB,OAGnB;AALG;AA9/BuB;AAAhComB;AAAAA;AAAAA,+BAugCW;AACP,YAAMpmB,UAAU,KADT,OACP;;AACA,YAAIA,QAAJ,SAAqB;AACnB,oCAA0BA,QADP,OACnB;;AACAA,uDAFmB,MAEnBA;AACA,eAHmB,OAGnB;AALK;AAvgCqB;AAAhComB;AAAAA;AAAAA,2CAmhCEyE,OAnhCFzE,EAmhCoD;AAAA,YAApB4C,cAAoB,uEAAlD6B,CAAkD;AAChD,YAAM7qB,UAAU,KADgC,OAChD;AACA,YAAI8qB,YAAY9qB,QAFgC,SAEhD;;AACA,YAAIgpB,wBAAwB8B,mBAA5B,GAAkD;AAChDA,sBAAY,cAAc,iBAAiB;AACzC,mBAAO9B,iBADkC,KACzC;AAF8C,WACpC,CAAZ8B;AAJ8C;;AAQhDrxE,+CAAuCumD,QARS,WAQhDvmD;AACAA,uDAA+CumD,QATC,WAShDvmD;AACAA,0DAAkD8sE,GAAGvmB,QAVL,UAUEumB,CAAlD9sE;AACAA,uDAA+CumD,QAXC,OAWhDvmD;AACAA,wDAAgDumD,QAZA,QAYhDvmD;AACAA,qDAGE8sE,GAAGyC,iBAAiBhpB,QAApBumB,aAhB8C,IAahD9sE;AAKAA,yDAGEqxE,uBArB8C,GAqB9CA,CAHFrxE;AAKAA,0DAGE8sE,GAAGyC,iBAAiBhpB,QAApBumB,aA1B8C,IAuBhD9sE;AA1iC4B;AAAhC2sE;AAAAA;AAAAA,+BAijCW;AACP,YAAI,aAAJ,SAA0B;AACxB,iEADwB,SACxB;AAFK;;AAIP,aAJO,IAIP;AArjC4B;AAAhCA;AAAAA;AAAAA,mCAwjCe;AAGX,aAHW,MAGX;AACA,aAJW,IAIX;AA5jC4B;AAAhCA;AAAAA;AAAAA,qCA+jCiB;AACb,YAAI,aAAJ,SAA0B;AACxB,iEADwB,SACxB;AAFW;;AAIb,aAJa,UAIb;AAnkC4B;AAAhCA;AAAAA;AAAAA,oCAskCgB;AACZ,aADY,SACZ;AACA,aAFY,MAEZ;AAxkC4B;AAAhCA;AAAAA;AAAAA,wCA2kCoB;AAChB,aADgB,SAChB;AACA,aAFgB,UAEhB;AA7kC4B;AAAhCA;AAAAA;AAAAA,0CAglCsB;AAClB,aADkB,SAClB;AACA,aAFkB,YAElB;AAllC4B;AAAhCA;AAAAA;AAAAA,iDAqlC6B;AACzB,YAAMloF,OAAO,8BADY,UACZ,CAAb;AACAA,uCAFyB,GAEzBA;AACAA,uCAHyB,GAGzBA;AACAA,2CAJyB,KAIzBA;AACAA,4CALyB,KAKzBA;AACAA,0CAAkC,aANT,SAMzBA;;AAEA,iDARyB,IAQzB;AA7lC4B;AAAhCkoF;AAAAA;AAAAA,wCAgmCEzyE,KAhmCFyyE,EAgmC2B;AACvB,YAAM1kB,UAAUsM,yBACZ,oBADYA,KACZ,CADYA,GAEZ,cAHmB,KAGnB,CAFJ;;AAGA,YAAI,CAAJ,SAAc;AACZ1uE,mEADY,KACZA;AADY;AAJS;;AAQvB,qCARuB,OAQvB;AAxmC4B;AAAhC8mF;AAAAA;AAAAA,8CA2mCExyE,OA3mCFwyE,EA2mCExyE,IA3mCFwyE,EA2mCyC;AACrC,YAAM/qF,QAAQqmE,QADuB,KACrC;AACA,YAAMpmE,SAASomE,QAFsB,MAErC;AAEA,YAAMqpB,SAASlE,6BAA6B,KAA7BA,iBAAmD,CAAC,CAJ9B,IAItBA,CAAf;AACA,YAAMmE,WAAW,8BALoB,UAKpB,CAAjB;AACAA,2CANqC,GAMrCA;AACAA,2CAPqC,GAOrCA;AACAA,+CAAuCzE,GARF,KAQEA,CAAvCyE;AACAA,gDAAwCzE,GATH,MASGA,CAAxCyE;AACA,+BAVqC,QAUrC;AACA,kBAXqC,SAWrC;AAEA,YAAMC,QAAQ,8BAbuB,WAavB,CAAd;AACAA,qDAdqC,MAcrCA;AACAA,wCAfqC,GAerCA;AACAA,wCAAgC1E,GAAG,CAhBE,MAgBLA,CAAhC0E;AACAA,4CAAoC1E,YAjBC,IAiBrC0E;AACAA,6CAAqC1E,aAlBA,IAkBrC0E;AACAA,gEAGW1E,GAAG,IAAZ,KAASA,CAHX0E,cAG4B1E,GAAG,KAtBM,MAsBTA,CAH5B0E;;AAKA,kBAAU;AACRjpB,2BADQ,KACRA;AADF,eAEO;AACL,mDADK,KACL;AA3BmC;AA3mCT;AAAhCokB;AAAAA;AAAAA,4CA0oCE3yE,OA1oCF2yE,EA0oCiC;AAC7B,YAAMpmB,UAAU,KADa,OAC7B;AACA,YAAM3kE,QAAQqmE,QAFe,KAE7B;AACA,YAAMpmE,SAASomE,QAHc,MAG7B;AACA,YAAMgH,YAAY1I,QAJW,SAI7B;AAEAA,uCAAwBooB,SANK,EAM7BpoB;AACA,YAAMgC,OAAO,8BAPgB,UAOhB,CAAb;AACAA,wCAAgChC,QARH,MAQ7BgC;AAEA,YAAM9jE,OAAO,8BAVgB,UAUhB,CAAb;AACAA,uCAX6B,GAW7BA;AACAA,uCAZ6B,GAY7BA;AACAA,2CAAmCqoF,GAbN,KAaMA,CAAnCroF;AACAA,4CAAoCqoF,GAdP,MAcOA,CAApCroF;AACAA,0CAf6B,SAe7BA;AACAA,yDAA0C8hE,QAhBb,MAgB7B9hE;AAEA,8BAlB6B,IAkB7B;;AACA,iDAnB6B,IAmB7B;;AAEA,8CArB6B,IAqB7B;AA/pC4B;AAAhCkoF;AAAAA;AAAAA,4CAkqCEpzE,MAlqCFozE,EAkqCEpzE,IAlqCFozE,EAkqCsC;AAClC,YAAIxqE,yBAAyBoxD,kBAA7B,GAAkD;AAChD,yBACEA,OADF,CACEA,CADF,EAEEA,OAFF,CAEEA,CAFF,EAGEA,OAHF,CAGEA,CAHF,EAIEA,OAJF,CAIEA,CAJF,EAKEA,OALF,CAKEA,CALF,EAMEA,OAP8C,CAO9CA,CANF;AAFgC;;AAYlC,kBAAU;AACR,cAAM3xE,QAAQ4xE,UAAUA,KADhB,CACgBA,CAAxB;AACA,cAAM3xE,SAAS2xE,UAAUA,KAFjB,CAEiBA,CAAzB;AAEA,cAAM+d,WAAW,8BAJT,UAIS,CAAjB;AACAA,6CAAmC/d,KAL3B,CAK2BA,CAAnC+d;AACAA,6CAAmC/d,KAN3B,CAM2BA,CAAnC+d;AACAA,iDAAuCzE,GAP/B,KAO+BA,CAAvCyE;AACAA,kDAAwCzE,GARhC,MAQgCA,CAAxCyE;AACA,iCATQ,QASR;AACA,oBAVQ,SAUR;AACA,eAXQ,OAWR;AAvBgC;AAlqCN;AAAhC5E;AAAAA;AAAAA,4CA6rCwB,CA7rCQ;AAAhCA;AAAAA;AAAAA,kCAksCE8E,QAlsCF9E,EAksCwB;AACpB,YAAMvpF,MAAM,uBAAuBs6D,SAAvB,OAAuCA,SAD/B,MACR,CAAZ;AAGA,YAAMg0B,cAAc,8BAJA,UAIA,CAApB;AACAtuF,wBALoB,WAKpBA;AACA,oBANoB,WAMpB;AAIA,YAAMuuF,YAAY,8BAVE,OAUF,CAAlB;AACAA,oDAA4ClC,GAAG/xB,SAX3B,SAWwB+xB,CAA5CkC;AACAvuF,wBAZoB,SAYpBA;AAKA,mBAjBoB,SAiBpB;AAEA,eAnBoB,GAmBpB;AArtC4B;AAAhCupF;AAAAA;AAAAA,yCA2tCqB;AACjB,YAAI,CAAC,aAAL,WAA6B;AAC3B,cAAMiF,YAAY,8BADS,OACT,CAAlB;AACAA,sDAA4C,aAFjB,aAE3BA;AACA,+BAH2B,SAG3B;AACA,mCAJ2B,SAI3B;AALe;;AAOjB,eAAO,aAPU,SAOjB;AAluC4B;AAAhCjF;AAAAA;AAAAA,8CAwuC0B;AACtB,YAAI,CAAC,KAAL,MAAgB;AACd,sBAAY,8BADE,OACF,CAAZ;AACA,sDAA4C8C,GAAG,KAFjC,eAE8BA,CAA5C;;AACA,cAAI,aAAJ,eAAgC;AAC9B,gDAAoC,KADN,IAC9B;AADF,iBAEO;AACL,iCAAqB,KADhB,IACL;AANY;AADM;;AAUtB,eAAO,KAVe,IAUtB;AAlvC4B;AAAhC9C;;AAAAA;AAAAA;AA1bF,C;;;;;;;;;;;;;;;;ACgBA;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAtBA;;AAiCA,IAAM/lB,KAAKD,QAjCX,IAiCWA,CAAX;;AACA,IAAMp/B,OAAOo/B,QAlCb,MAkCaA,CAAb;;AACA,IAAMn/B,QAAQm/B,QAnCd,OAmCcA,CAAd;;AACA,IAAMtkE,MAAMskE,QApCZ,KAoCYA,CAAZ;;AAEA,IAAMkrB,eAtCN,yBAsCA;;AAEA,6BAA6B;AAC3B,MAAMC,YAAYzvF,UADS,SACTA,CAAlB;;AACA,MAAIyvF,kCAAkCA,UAAtC,MAAsD;AACpD,WADoD,SACpD;AAHyB;;AAM3B,MAAI,qBAAJ,SAAI,CAAJ,EAAqC;AACnC,WAAOzvF,4BAD4B,SAC5BA,EAAP;AAPyB;;AAU3B,MAAI,CAACyvF,UAAL,MAAqB;AACnBA,yBADmB,OACnBA;AAXyB;;AAa3B,SAb2B,SAa3B;AArDF;;IAwDA,a;AACEvwF,iCAAoB;AAAA;;AAClB,kBADkB,MAClB;AACA,eAAWwwF,SAAS5uE,OAFF,GAEP4uE,CAAX;AACA,kBACE,iCAAiC,sBAJjB,QAGlB;AAGA,mBAAe,sBANG,OAMlB;AACA,uBAAoB,eAAe5uE,OAAhB,WAAC,IAPF,EAOlB;AAEA,8BATkB,IASlB;AACA,gCAVkB,EAUlB;AAXgB;;;;oCAkBF;AACdhgB,wBACE,CAAC,KADHA,oBADc,sDACdA;AAIA,gCAA0B,eACtB,8BADsB,IACtB,CADsB,GAEtB,4BAPU,IAOV,CAFJ;AAGA,aAAO,KARO,kBAQd;AA1BgB;;;mCA6BlBy+E,K,EAAAA,G,EAA2B;AACzB,UAAIn8E,OAAO,KAAX,wBAAwC;AACtC,eADsC,IACtC;AAFuB;;AAIzB,UAAM08D,cAAc,eAChB,4CADgB,GAChB,CADgB,GAEhB,0CANqB,GAMrB,CAFJ;;AAGA,qCAPyB,WAOzB;;AACA,aARyB,WAQzB;AArCgB;;;sCAwClB0f,M,EAA0B;AACxB,UAAI,KAAJ,oBAA6B;AAC3B,uCAD2B,MAC3B;AAFsB;;AAKxB,UAAMC,UAAU,gCALQ,CAKR,CAAhB;;AACAA,sBAAgB,kBAAkB;AAChCtsC,sBADgC,MAChCA;AAPsB,OAMxBssC;AA9CgB;;;wBAcW;AAC3B,aAAO,0BAA0B,wBAA1B,UADoB,CAC3B;AAfgB;;;;;;;;IAoDpB,c;AACEvgF,kCAAoB;AAAA;;AAClB,gBAAYk0C,OADM,GAClB;AACA,iBAFkB,KAElB;AACA,wBAHkB,IAGlB;AACA,sBAJkB,IAIlB;AACA,QAAMtyB,SAASsyB,OALG,MAKlB;AACA,0BAAsBtyB,OANJ,MAMlB;AACA,mBAPkB,CAOlB;AACA,qBARkB,IAQlB;AAEA,yBAAqBA,uBAVH,KAUlB;AACA,2BAAuBA,OAXL,cAWlB;;AACA,QAAI,CAAC,KAAD,mBAAyB,CAAC,KAA9B,eAAkD;AAChD,2BADgD,IAChD;AAbgB;;AAgBlB,iCAA6B,CAACA,OAhBZ,aAgBlB;AACA,6BAAyB,CAACA,OAjBR,YAiBlB;AAEA,2BAnBkB,IAmBlB;AACA,2BApBkB,oCAoBlB;AACA,8BArBkB,oCAqBlB;AAtBiB;;;;;;;;;;;;uBA8CX,qBADK,O;;;qBAEP,KAAJ,K;;;;;iDACS;AAAEtb,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;qBAEL,KAAJ,Y;;;;;sBACQ,KADe,Y;;;AAIjBkS,qB,GAAQ,qBATH,IASG,E;;sBACVA,UAAJ,I;;;;;AACE,uCADkB,oCAClB;iDACO,KAFW,IAEX,E;;;AAET,gCAAgBA,MAdL,MAcX;;AACA,oBAAI,KAAJ,YAAqB;AACnB,kCAAgB;AACd2kD,4BAAQ,KADM;AAEdC,2BAAO,KAFO;AAAA,mBAAhB;AAhBS;;AAsBLzhD,sB,GAAS,sBAtBJ,M;iDAuBJ;AAAErY,yBAAF;AAAiBgD,wBAAjB;AAAA,iB;;;;;;;;;;;;;;;;;;2BAGT+sC,M,EAAe;AAGb,UAAI,CAAC,KAAL,iBAA2B;AACzB,oBADyB,MACzB;;AADyB;AAHd;;AAOb,mCAPa,MAOb;AA9EiB;;;2BAiFnBo6C,M,EAAe;AACb,0BADa,MACb;;AACA,2BAFa,OAEb;AAnFiB;;;uCAsFnBC,c,EAAmC;AAAA;;AACjC,6BADiC,cACjC;AACAvzB,oCAA8B,YAAM;AAClC,8BADkC,OAClC;AAH+B,OAEjCA;AAIAA,+BAAyB,YAAM;AAE7BA,uBAF6B,OAE7BA;AACA,sBAH6B,IAG7B;;AACA,8BAJ6B,OAI7B;AAV+B,OAMjCA;AAOAA,iCAA2Bl8D,kBAAU;AACnC,qBADmC,MACnC;AAd+B,OAajCk8D;;AAMA,UAAI,CAAC,KAAD,yBAA+B,KAAnC,mBAA2D;AACzD,oBAAY,yBAD6C,uBAC7C,CAAZ;AApB+B;;AAwBjC,UAAI,KAAJ,cAAuB;AACrB,qCAA6B,KADR,YACrB;AAzB+B;AAtFhB;;;wBAyBA;AACjB,aAAO,wBADU,OACjB;AA1BiB;;;wBA6BJ;AACb,aAAO,KADM,SACb;AA9BiB;;;wBAiCC;AAClB,aAAO,KADW,cAClB;AAlCiB;;;wBAqCI;AACrB,aAAO,KADc,iBACrB;AAtCiB;;;wBAyCQ;AACzB,aAAO,KADkB,qBACzB;AA1CiB;;;;;;IAoHrB,e;AACEn9D,mCAAoB;AAAA;;AAClB,gBAAYk0C,OADM,GAClB;AACA,iBAFkB,KAElB;AACA,wBAHkB,IAGlB;AACA,sBAJkB,IAIlB;AACA,mBALkB,CAKlB;AACA,2BANkB,IAMlB;AACA,2BAPkB,oCAOlB;AACA,QAAMtyB,SAASsyB,OARG,MAQlB;AACA,iCAA6B,CAACtyB,OATZ,aASlB;AAVkB;;;;;;;;;;;;uBAkBZ,qBADK,O;;;qBAEP,KAAJ,K;;;;;kDACS;AAAEtb,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;qBAEL,KAAJ,Y;;;;;sBACQ,KADe,Y;;;AAIjBkS,qB,GAAQ,qBATH,IASG,E;;sBACVA,UAAJ,I;;;;;AACE,uCADkB,oCAClB;kDACO,KAFW,IAEX,E;;;AAET,gCAAgBA,MAdL,MAcX;;AACA,oBAAI,KAAJ,YAAqB;AACnB,kCAAgB;AAAE2kD,4BAAQ,KADP;AACH,mBAAhB;AAhBS;;AAmBLxhD,sB,GAAS,sBAnBJ,M;kDAoBJ;AAAErY,yBAAF;AAAiBgD,wBAAjB;AAAA,iB;;;;;;;;;;;;;;;;;;2BAGT+sC,M,EAAe;AAGb,UAAI,CAAC,KAAL,iBAA2B;AACzB,oBADyB,MACzB;;AADyB;AAHd;;AAOb,mCAPa,MAOb;AA/CkB;;;2BAkDpBo6C,M,EAAe;AACb,0BADa,MACb;;AACA,2BAFa,OAEb;AApDkB;;;uCAuDpBC,c,EAAmC;AAAA;;AACjC,6BADiC,cACjC;AACAvzB,oCAA8B,YAAM;AAClC,+BADkC,OAClC;AAH+B,OAEjCA;AAIAA,+BAAyB,YAAM;AAE7BA,uBAF6B,OAE7BA;AACA,uBAH6B,IAG7B;;AACA,+BAJ6B,OAI7B;AAV+B,OAMjCA;AAOAA,iCAA2Bl8D,kBAAU;AACnC,sBADmC,MACnC;AAd+B,OAajCk8D;;AAKA,UAAI,KAAJ,cAAuB;AACrB,qCAA6B,KADR,YACrB;AAnB+B;AAvDf;;;wBAaO;AACzB,aAAO,KADkB,qBACzB;AAdkB;;;;;;AA+EtB,kDAAkD;AAChD,SAAO;AACLr4D,cAAUyrF,UADL;AAELI,UAAMJ,UAFD;AAGL3wD,UAAM2wD,UAHD;AAILjxD,UAAMixD,UAJD;AAKLvoE,UAAMuoE,UALD;AAMLtnF,YANK;AAOL8mC,WAPK,EAOLA;AAPK,GAAP;AAhTF;;IA2TA,uB;;;;;AACE/vC,2CAAoB;AAAA;;AAAA;;AAClB,+BADkB,MAClB;;AAEA,QAAM4wF,iBAAiBvvF,SAAjBuvF,cAAiBvvF,WAAY;AACjC,UAAIA,wBAAJ,KAAiC;AAC/B,YAAMmiB,QAAQ,sDAAwC,OADvB,IACjB,SAAd;AACA,8BAF+B,KAE/B;;AACA,yCAH+B,KAG/B;;AAH+B;AADA;;AAOjC,gCAPiC,OAOjC;;AACA,gCARiC,QAQjC;;AAEA,UAAMqtE,oBAAoBxsF,SAApBwsF,iBAAoBxsF,OAAQ;AAGhC,eAAO,+BAA6BA,KAHJ,WAGIA,EAA7B,CAAP;AAb+B,OAUjC;;AAViC,kCAkB7B,qDAAiC;AACnCwsF,yBADmC,EACnCA,iBADmC;AAEnCC,gBAAQ58C,OAF2B;AAGnC8kB,wBAAgB,OAHmB;AAInCJ,sBAAc,OAJqB;AAAA,OAAjC,CAlB6B;AAAA,UAe3B,kBAf2B,yBAe3B,kBAf2B;AAAA,UAe3B,eAf2B,yBAe3B,eAf2B;;AAyBjC,iCAzBiC,kBAyBjC;AAEA,8BAAsBm4B,mBAAmB,OA3BR,cA2BjC;AAEA,yBAAiBC,8CA7BgB,iBA6BhBA,CAAjB;AAhCgB,KAGlB;;AAgCA,sBAnCkB,IAmClB;;AACA,QAAI,yBAAJ,SAAoC;AAClC,wBAAgBhrD,aACdirD,qBAAqB,OAArBA,MAAgC/8C,OADlBlO,WACdirD,CADcjrD,EADkB,cAClBA,CAAhB;AADF,WAKO;AACL,wBAAgBC,cACdgrD,qBAAqB,OAArBA,MAAgC/8C,OADlBjO,WACdgrD,CADchrD,EADX,cACWA,CAAhB;AA1CgB;;AAgDlB,gCAA0BhlC,kBAAU;AAClC,4BADkC,MAClC;;AACA,uCAFkC,MAElC;AAlDgB,KAgDlB;;AAOA,oBAvDkB,GAuDlB;;AAvDkB;AAD+B;;;EAArD,c;;IA4DA,wB;;;;;AACEjB,wDAAgC;AAAA;;AAAA;;AAC9B,gCAD8B,MAC9B;AAEA,0BAH8B,EAG9B;;AACA,yBAAuBk0C,OAAvB,aAA2C;AACzC,UAAM5tC,QAAQ4tC,mBAD2B,QAC3BA,CAAd;;AACA,UAAI,iBAAJ,aAAkC;AAAA;AAFO;;AAKzC,sCALyC,KAKzC;AAT4B;;AAW9B,gDAA0B,KAA1B,cAA4ChwC,MAXd,CAW9B;;AAEA,QAAM0sF,iBAAiBvvF,SAAjBuvF,cAAiBvvF,WAAY;AACjC,UAAIA,wBAAJ,KAAiC;AAC/B,YAAMmiB,QAAQ,sDAAwC,OADvB,IACjB,SAAd;AACA,8BAF+B,KAE/B;AAF+B;AADA;;AAMjC,gCANiC,QAMjC;AAnB4B,KAa9B;;AASA,sBAtB8B,IAsB9B;;AACA,QAAI,yBAAJ,SAAoC;AAClC,wBAAgBwiB,aACdirD,qBAAqB,OAArBA,MAAgC,OADlBjrD,YACdirD,CADcjrD,EADkB,cAClBA,CAAhB;AADF,WAKO;AACL,wBAAgBC,cACdgrD,qBAAqB,OAArBA,MAAgC,OADlBhrD,YACdgrD,CADchrD,EADX,cACWA,CAAhB;AA7B4B;;AAmC9B,gCAA0BhlC,kBAAU;AAClC,4BADkC,MAClC;AApC4B,KAmC9B;;AAGA,oBAtC8B,GAsC9B;;AAtC8B;AADqB;;;EAAvD,e;;IA2CA,yB;;;;;AACEjB,6CAAoB;AAAA;;AAAA;;AAClB,gCADkB,MAClB;AAEA,QAAIgoB,OAAO7J,mBAAmB,YAHZ,IAGPA,CAAX;;AAGA,QAAImyE,kBAAkB,YAAtB,IAAIA,CAAJ,EAAuC;AACrCtoE,aAAOA,oBAD8B,EAC9BA,CAAPA;AAPgB;;AAUlBq9C,mBAAe,uBAAiB;AAC9B,iBAAW;AACT,YAAI7hD,eAAJ,UAA6B;AAC3BA,kBAAQ,sDADmB,IACnB,SAARA;AAFO;;AAIT,8BAJS,KAIT;;AACA,yCALS,KAKT;;AALS;AADmB;;AAU9B,8BAAsBvB,KAVQ,IAU9B;;AAEA,gCAAwBojD,oBAZM,IAYNA,CAAxB;;AACA,gCAb8B,OAa9B;AAvBgB,KAUlBA;AAVkB;AADiC;;;EAAvD,c;;IA6BA,0B;;;;;AACErlE,0DAAgC;AAAA;;AAAA;;AAC9B,gCAD8B,MAC9B;AAEA,QAAIgoB,OAAO7J,mBAAmB,YAHA,IAGnBA,CAAX;;AAGA,QAAImyE,kBAAkB,YAAtB,IAAIA,CAAJ,EAAuC;AACrCtoE,aAAOA,oBAD8B,EAC9BA,CAAPA;AAP4B;;AAU9B,8BAAwB,0BAA0B;AAAEvjB,WAAF,EAAEA,KAAF;AAASP,WAAKA,MAAd;AAAA,KAA1B,CAAxB;;AAV8B;AADuB;;;EAAzD,e;;;;;;;;;;;;;;;;;AChbA;;AAfA;;AAsBA,gDAKG;AAAA,MALuC,iBAKvC,QALuC,iBAKvC;AAAA,MALuC,MAKvC,QALuC,MAKvC;AAAA,MALuC,cAKvC,QALuC,cAKvC;AAAA,MALH,YAKG,QALH,YAKG;AACDtC,oBAAOo3D,iBAAPp3D,GADC,2CACDA;AACA,MAAMsvF,eAAe;AACnBC,wBADmB;AAEnBJ,qBAFmB;AAAA,GAArB;AAKA,MAAM51E,SAAS9V,SAASwrF,kBAATxrF,gBAASwrF,CAATxrF,EAPd,EAOcA,CAAf;;AACA,MAAI,CAACqV,iBAAL,MAAKA,CAAL,EAA+B;AAC7B,WAD6B,YAC7B;AATD;;AAYDw2E,iCAZC,MAYDA;;AAEA,MAAI/1E,UAAU,IAAd,gBAAkC;AAGhC,WAHgC,YAGhC;AAjBD;;AAoBD,MAAIy9C,gBAAgB,CAApB,QAA6B;AAC3B,WAD2B,YAC3B;AArBD;;AAuBD,MAAIi4B,uCAAJ,SAAoD;AAClD,WADkD,YAClD;AAxBD;;AA2BD,MAAMO,kBAAkBP,yCA3BvB,UA2BD;;AACA,MAAIO,oBAAJ,YAAoC;AAClC,WADkC,YAClC;AA7BD;;AAgCDF,oCAhCC,IAgCDA;AACA,SAjCC,YAiCD;AA5DF;;AA+DA,sDAAsD;AACpD,MAAMG,qBAAqBR,kBADyB,qBACzBA,CAA3B;;AACA,0BAAwB;AACtB,QAAI7uB,WAAWsvB,kEADO,kBACPA,CAAf;;AACA,QAAItvB,kBAAJ,GAAIA,CAAJ,EAA4B;AAC1B,UAAI;AACFA,mBAAW7jD,mBADT,QACSA,CAAX6jD;AADF,QAEE,WAAW,CAHa;AAFN;;AAOtB,QAAI,eAAJ,QAAI,CAAJ,EAA8B;AAC5B,aAD4B,QAC5B;AARoB;AAF4B;;AAapD,SAboD,IAapD;AA5EF;;AA+EA,gDAAgD;AAC9C,MAAIrgC,kBAAmBA,gBAAgB7gC,eAAvC,OAAuCA,CAAvC,EAAiE;AAC/D,WAAO,8BAAwB,wBADgC,IACxD,CAAP;AAF4C;;AAI9C,SAAO,sCACL,6EADK,MAJuC,MAIvC,CAAP;AAnFF;;AA6FA,wCAAwC;AACtC,SAAO6gC,kBAAkBA,WADa,GACtC;AA9FF,C;;;;;;;;;;;;;;;;;;;;;;;;;;AC6BA,qEAAqE;AACnE,MAAI4vD,qBAD+D,IACnE;AAGA,MAAItc,MAAMuc,uCAJyD,kBAIzDA,CAAV;;AACA,WAAS;AACPvc,UAAMA,IADC,CACDA,CAANA;AACA,QAAIjT,WAAWyvB,eAFR,GAEQA,CAAf;AACAzvB,eAAW3jD,SAHJ,QAGIA,CAAX2jD;AACAA,eAAW0vB,cAJJ,QAIIA,CAAX1vB;AACAA,eAAW2vB,cALJ,QAKIA,CAAX3vB;AACA,WAAO4vB,cANA,QAMAA,CAAP;AAXiE;;AAiBnE3c,QAAM4c,gBAjB6D,kBAiB7DA,CAAN5c;;AACA,WAAS;AAEP,QAAMjT,YAAW2vB,cAFV,GAEUA,CAAjB;;AACA,WAAOC,cAHA,SAGAA,CAAP;AArBiE;;AAyBnE3c,QAAMuc,oCAzB6D,kBAyB7DA,CAANvc;;AACA,WAAS;AACPA,UAAMA,IADC,CACDA,CAANA;;AACA,QAAIjT,aAAWyvB,eAFR,GAEQA,CAAf;;AACAzvB,iBAAW2vB,cAHJ,UAGIA,CAAX3vB;AACA,WAAO4vB,cAJA,UAIAA,CAAP;AA9BiE;;AAoCnE,kDAAgD;AAC9C,WAAO,WACL,8GADK,KADuC,KACvC,CAAP;AArCiE;;AAmDnE,uCAAqC;AACnC,kBAAc;AACZ,UAAI,CAAC,sBAAL,KAAK,CAAL,EAAmC;AACjC,eADiC,KACjC;AAFU;;AAIZ,UAAI;AACF,YAAME,UAAU,0BAA0B;AAAEC,iBAD1C;AACwC,SAA1B,CAAhB;AACA,YAAM72E,QAAQ,kBAAkB,cAAc;AAC5C,iBAAOuiE,mBADqC,IAC5C;AAHA,SAEY,CAAd;AAGAn3E,gBAAQwrF,eAAe,eALrB,KAKqB,CAAfA,CAARxrF;AACAirF,6BANE,KAMFA;AANF,QAOE,UAAU;AAGV,YAAI,iBAAJ,QAAI,CAAJ,EAAgC;AAE9B,cAAI;AACFjrF,oBAAQ6X,mBAAmBC,OADzB,KACyBA,CAAnBD,CAAR7X;AACAirF,iCAFE,KAEFA;AAFF,YAGE,YAAY,CALgB;AAHtB;AAXA;AADqB;;AAwBnC,WAxBmC,KAwBnC;AA3EiE;;AA6EnE,gCAA8B;AAC5B,QAAIA,sBAAsB,mBAA1B,KAA0B,CAA1B,EAAqD;AAEnDjrF,cAAQ0rF,oBAF2C,KAE3CA,CAAR1rF;;AACA,8BAAwB;AAEtBA,gBAAQ0rF,yBAFc,KAEdA,CAAR1rF;AALiD;AADzB;;AAS5B,WAT4B,KAS5B;AAtFiE;;AAwFnE,kDAAgD;AAC9C,QAAMnB,UADwC,EAC9C;AACA,QAF8C,KAE9C;AAGA,QAAM2D,OAAO0oF,iDALiC,IAKjCA,CAAb;;AACA,WAAQ,SAAQ1oF,UAAT,qBAASA,CAAR,MAAR,MAA4D;AAAA;AAAA;AAAA,UACtD,CADsD;AAAA,UACtD,IADsD;AAAA,UACtD,IADsD;;AAE1D8jC,UAAIvnC,YAFsD,EAEtDA,CAAJunC;;AACA,UAAIA,KAAJ,SAAkB;AAEhB,YAAIA,MAAJ,GAAa;AAAA;AAFG;;AAAA;AAHwC;;AAU1DznC,mBAAa,YAAbA;AAhB4C;;AAkB9C,QAAM8+B,QAlBwC,EAkB9C;;AACA,SAAK,IAAI2I,MAAT,GAAgBA,MAAIznC,QAApB,QAAoC,EAApC,KAAyC;AACvC,UAAI,EAAE,OAAN,OAAI,CAAJ,EAAqB;AAAA;AADkB;;AAAA,uCAKpBA,QALoB,GAKpBA,CALoB;AAAA,UAKnC,KALmC;AAAA,UAKnC,KALmC;;AAMvCi/B,cAAOqtD,eANgC,KAMhCA,CAAPrtD;;AACA,iBAAU;AACRA,gBAAO/lB,SADC,KACDA,CAAP+lB;;AACA,YAAIwI,QAAJ,GAAa;AACXxI,kBAAOstD,cADI,KACJA,CAAPttD;AAHM;AAP6B;;AAavCH,iBAbuC,KAavCA;AAhC4C;;AAkC9C,WAAOA,WAlCuC,EAkCvCA,CAAP;AA1HiE;;AA4HnE,iCAA+B;AAC7B,QAAI39B,iBAAJ,GAAIA,CAAJ,EAA2B;AACzB,UAAM29B,QAAQ39B,qBADW,KACXA,CAAd;;AAEA,WAAK,IAAI2D,IAAT,GAAgBA,IAAIg6B,MAApB,QAAkC,EAAlC,GAAuC;AACrC,YAAMguD,YAAYhuD,iBADmB,GACnBA,CAAlB;;AACA,YAAIguD,cAAc,CAAlB,GAAsB;AACpBhuD,qBAAWA,kBADS,SACTA,CAAXA;AACAA,yBAAeh6B,IAFK,CAEpBg6B;AAJmC;;AAMrCA,mBAAWA,2BAN0B,IAM1BA,CAAXA;AATuB;;AAWzB39B,cAAQ29B,WAXiB,GAWjBA,CAAR39B;AAZ2B;;AAc7B,WAd6B,KAc7B;AA1IiE;;AA4InE,mCAAiC;AAE/B,QAAM4rF,cAAcC,iBAFW,GAEXA,CAApB;;AACA,QAAID,gBAAgB,CAApB,GAAwB;AAItB,aAJsB,QAItB;AAP6B;;AAS/B,QAAME,WAAWD,kBATc,WASdA,CAAjB;AACA,QAAME,YAAYF,eAAeD,cAVF,CAUbC,CAAlB;AAEA,QAAM7rF,QAAQ+rF,6BAZiB,EAYjBA,CAAd;AACA,WAAOL,qBAbwB,KAaxBA,CAAP;AAzJiE;;AA2JnE,gCAA8B;AAW5B,QAAI,CAAC1rF,iBAAD,IAACA,CAAD,IAA2B,4BAA/B,KAA+B,CAA/B,EAAmE;AACjE,aADiE,KACjE;AAZ0B;;AAqB5B,WAAO,gEAEL,4CAA4C;AAC1C,UAAI8rF,oBAAoBA,aAAxB,KAA0C;AAExCxT,eAAOA,mBAFiC,GAEjCA,CAAPA;AACAA,eAAO,mCAAmC,sBAAsB;AAC9D,iBAAOvjE,oBAAoBhW,cADmC,EACnCA,CAApBgW,CAAP;AAJsC,SAGjC,CAAPujE;AAGA,eAAOoT,oBANiC,IAMjCA,CAAP;AAPwC;;AAS1C,UAAI;AACFpT,eAAOla,KADL,IACKA,CAAPka;AADF,QAEE,UAAU,CAX8B;;AAY1C,aAAOoT,oBAZmC,IAYnCA,CAAP;AAnCwB,KAqBrB,CAAP;AAhLiE;;AAmMnE,SAnMmE,EAmMnE;AAhOF,C;;;;;;;;;;;;;;;;ACgBA;;AAKA;;;;;;;;;;;;;;AArBA;AAiCA,IAAMM,cAjCN,GAiCA;AACA,IAAMC,2BAlCN,GAkCA;;AAEA,6BAA6B;AAC3B,MAAM12E,OAAO22E,IADc,QAC3B;;AACA,MAAI,gBAAJ,UAA8B;AAC5B,WAD4B,IAC5B;AAHyB;;AAK3B,MAAMv/B,QAAQ1xD,yBALa,IAKbA,CAAd;AACA,SAAO0xD,MANoB,MAM3B;AA1CF;;IA6CA,c;AACEjzD,qCAAuB;AAAA;;AACrB,eADqB,GACrB;AACA2gB,WAAOA,QAFc,EAErBA;AACA,kBAAc,iBAHO,GAGP,CAAd;AACA,uBAAoB,eAAeA,KAAhB,WAAC,IAJC,EAIrB;AACA,2BAAuBA,wBALF,KAKrB;;AACA,kBACEA,eACA,iCAAiC;AAC/B,aAAO,IADwB,cACxB,EAAP;AATiB,KAMrB;;AAMA,qBAZqB,CAYrB;AACA,2BAAuBxc,cAbF,IAaEA,CAAvB;AAdiB;;;;iCAiBnBsuF,K,EAAAA,G,EAAAA,S,EAAoC;AAClC,UAAM9xE,OAAO;AACXo/D,aADW,EACXA,KADW;AAEX77E,WAFW,EAEXA;AAFW,OAAb;;AAIA,kCAA8B;AAC5Byc,qBAAa+xE,UADe,IACfA,CAAb/xE;AANgC;;AAQlC,aAAO,aAR2B,IAQ3B,CAAP;AAzBiB;;;gCA4BnBgyE,S,EAAuB;AACrB,aAAO,aADc,SACd,CAAP;AA7BiB;;;4BAgCnBnxF,I,EAAc;AACZ,UAAMgxF,MAAM,KADA,MACA,EAAZ;AACA,UAAMI,QAAQ,KAFF,SAEE,EAAd;AACA,UAAMC,iBAAkB,8BAA8B;AACpDL,WAJU,EAIVA;AADoD,OAAtD;AAIAA,sBAAgB,KAPJ,GAOZA;AACAA,4BAAsB,KARV,eAQZA;;AACA,2BAAuB,KAAvB,aAAyC;AACvC,YAAMlsF,QAAQ,iBADyB,QACzB,CAAd;;AACA,YAAI,iBAAJ,aAAkC;AAAA;AAFK;;AAKvCksF,uCALuC,KAKvCA;AAdU;;AAgBZ,UAAI,eAAe,WAAf,QAAkC,SAAtC,MAAqD;AACnDA,sDAAuC7xE,KAAT,KAA9B6xE,cAAqD7xE,WADF,CACnD6xE;AACAK,wCAFmD,wBAEnDA;AAFF,aAGO;AACLA,wCADK,WACLA;AApBU;;AAsBZL,yBAtBY,aAsBZA;;AAEA,UAAI7xE,KAAJ,SAAkB;AAChB6xE,sBAAc,eAAe;AAC3B7xE,uBAAa6xE,IADc,MAC3B7xE;AAFc,SAChB6xE;AAzBU;;AA6BZA,+BAAyB,8BA7Bb,KA6Ba,CAAzBA;AACAA,uBAAiB,2BA9BL,KA8BK,CAAjBA;AAEAK,yCAAmClyE,KAhCvB,iBAgCZkyE;AACAA,8BAAwBlyE,KAjCZ,MAiCZkyE;AACAA,+BAAyBlyE,KAlCb,OAkCZkyE;AACAA,kCAA4BlyE,KAnChB,UAmCZkyE;AAEAL,eArCY,IAqCZA;AAEA,aAvCY,KAuCZ;AAvEiB;;;+BA0EnBM,K,EAAAA,G,EAAuB;AACrB,UAAMD,iBAAiB,qBADF,KACE,CAAvB;;AACA,UAAI,CAAJ,gBAAqB;AAAA;AAFA;;AAOrB,UAAIA,eAAJ,YAA+B;AAC7BA,kCAD6B,GAC7BA;AARmB;AA1EJ;;;kCAsFnBE,K,EAAAA,G,EAA0B;AACxB,UAAMF,iBAAiB,qBADC,KACD,CAAvB;;AACA,UAAI,CAAJ,gBAAqB;AAAA;AAFG;;AAOxB,UAAML,MAAMK,eAPY,GAOxB;;AACA,UAAIL,uBAAuBK,eAA3B,mBAA6D;AAC3DA,uBAD2D,iBAC3DA;AACA,eAAOA,eAFoD,iBAE3D;AAVsB;;AAaxB,UAAIL,mBAAJ,GAA0B;AAAA;AAbF;;AAiBxB,UAAI,EAAE,SAAS,KAAf,eAAI,CAAJ,EAAsC;AAAA;AAjBd;;AAuBxB,aAAO,qBAvBiB,KAuBjB,CAAP;;AAGA,UAAIA,oBAAoB,KAAxB,QAAqC;AACnC,YAAIK,eAAJ,SAA4B;AAC1BA,iCAAuBL,IADG,MAC1BK;AAFiC;;AAAA;AA1Bb;;AAgCxB,UAAMG,YAAYR,cAhCM,WAgCxB;AAKA,UAAMS,+BACJD,6BACAH,kCAvCsB,wBAqCxB;;AAIA,UACE,iCACAG,cAAcH,eAFhB,gBAGE;AACA,YAAIA,eAAJ,SAA4B;AAC1BA,iCAAuBL,IADG,MAC1BK;AAFF;;AAAA;AA5CsB;;AAmDxB,UAAMr3E,QAAQ03E,eAnDU,GAmDVA,CAAd;;AACA,UAAIF,cAAJ,0BAA4C;AAC1C,YAAMG,cAAcX,sBADsB,eACtBA,CAApB;AACA,YAAMrtF,UAAU,gCAF0B,WAE1B,CAAhB;AACA0tF,8BAAsB;AACpB9S,iBAAO16E,SAASF,QAATE,CAASF,CAATE,EADa,EACbA,CADa;AAEpBmW,eAFoB,EAEpBA;AAFoB,SAAtBq3E;AAHF,aAOO,WAAW;AAChBA,8BAAsB;AACpB9S,iBADoB;AAEpBvkE,eAFoB,EAEpBA;AAFoB,SAAtBq3E;AADK,aAKA,IAAIA,eAAJ,SAA4B;AACjCA,+BAAuBL,IADU,MACjCK;AAjEsB;AAtFP;;;kCA2JnBO,K,EAAqB;AACnB,aAAO,4BADY,GACnB;AA5JiB;;;qCA+JnBC,K,EAAwB;AACtB,aAAOT,SAAS,KADM,eACtB;AAhKiB;;;iCAmKnB13C,K,EAAoB;AAClB,UAAMs3C,MAAM,4BADM,GAClB;AACA,aAAO,qBAFW,KAEX,CAAP;AACAA,UAHkB,KAGlBA;AAtKiB;;;;;;IA2KrB,gB;AACExyF,oCAAoB;AAAA;;AAClB,mBADkB,MAClB;AACA,oBAAgB,mBAAmB4hB,OAAnB,KAA+B;AAC7Ck3C,mBAAal3C,OADgC;AAE7Cm3C,uBAAiBn3C,OAF4B;AAAA,KAA/B,CAAhB;AAIA,2BAAuBA,OANL,cAMlB;AACA,8BAPkB,IAOlB;AACA,gCARkB,EAQlB;AATmB;;;;gDAYrB0xE,M,EAAoC;AAClC,UAAMrpF,IAAI,kCADwB,MACxB,CAAV;;AACA,UAAIA,KAAJ,GAAY;AACV,4CADU,CACV;AAHgC;AAZf;;;oCAmBL;AACdrI,wBACE,CAAC,KADHA,oBADc,yDACdA;AAIA,gCAA0B,sCACxB,KADwB,UAExB,KAPY,OAKY,CAA1B;AAIA,aAAO,KATO,kBASd;AA5BmB;;;mCA+BrBy+E,K,EAAAA,G,EAA2B;AACzB,UAAMpsC,SAAS,uCACb,KADa,iBADU,GACV,CAAf;AAKAA,wBAAkB,sCANO,IAMP,CAAlBA;;AACA,qCAPyB,MAOzB;;AACA,aARyB,MAQzB;AAvCmB;;;sCA0CrBqsC,M,EAA0B;AACxB,UAAI,KAAJ,oBAA6B;AAC3B,uCAD2B,MAC3B;AAFsB;;AAIxB,UAAMC,UAAU,gCAJQ,CAIR,CAAhB;;AACAA,sBAAgB,kBAAkB;AAChCtsC,sBADgC,MAChCA;AANsB,OAKxBssC;AA/CmB;;;;;;;;IAsDvB,iC;AACEvgF,8DAA6B;AAAA;;AAC3B,oBAD2B,OAC3B;AAEA,QAAM2gB,OAAO;AACX4yE,yBAAmB,6BADR,IACQ,CADR;AAEXC,cAAQ,kBAFG,IAEH,CAFG;AAGXnU,eAAS,mBAHE,IAGF,CAHE;AAIXyT,kBAAY,sBAJD,IAIC;AAJD,KAAb;AAMA,gBAAYlxE,OATe,GAS3B;AACA,0BAAsB6xE,oBAVK,IAULA,CAAtB;AACA,sCAX2B,oCAW3B;AACA,yBAAqB7xE,uBAZM,KAY3B;AACA,0BAAsBA,OAbK,MAa3B;AACA,2BAAuBA,OAdI,cAc3B;;AACA,QAAI,CAAC,KAAD,mBAAyB,CAAC,KAA9B,eAAkD;AAChD,2BADgD,IAChD;AAhByB;;AAmB3B,iCAnB2B,KAmB3B;AACA,6BApB2B,KAoB3B;AAEA,yBAtB2B,EAsB3B;AACA,qBAvB2B,EAuB3B;AACA,iBAxB2B,KAwB3B;AACA,wBAzB2B,SAyB3B;AACA,qBA1B2B,IA0B3B;AAEA,sBA5B2B,IA4B3B;AA7BoC;;;;yCAgCjB;AACnB,UAAM8xE,mBAAmB,KADN,cACnB;;AACA,UAAMC,iBAAiB,4BAFJ,gBAEI,CAAvB;;AAEA,UAAM9C,oBAAoBxsF,SAApBwsF,iBAAoBxsF,OAAQ;AAChC,eAAOsvF,iCADyB,IACzBA,CAAP;AALiB,OAInB;;AAJmB,kCAUf,qDAAiC;AACnC9C,yBADmC,EACnCA,iBADmC;AAEnCC,gBAAQ,cAF2B;AAGnC93B,wBAAgB,KAHmB;AAInCJ,sBAAc,KAJqB;AAAA,OAAjC,CAVe;AAAA,UAOb,kBAPa,yBAOb,kBAPa;AAAA,UAOb,eAPa,yBAOb,eAPa;;AAiBnB,8BAAwB;AACtB,iCADsB,IACtB;AAlBiB;;AAqBnB,4BAAsBm4B,mBAAmB,KArBtB,cAqBnB;AAEA,uBAAiBC,8CAvBE,iBAuBFA,CAAjB;;AAEA,UAAI,KAAJ,mBAA4B;AAK1B,mCAL0B,gBAK1B;AA9BiB;;AAiCnB,sCAjCmB,OAiCnB;AAjEoC;;;4BAoEtC4C,I,EAAc;AACZ,gBAAU;AACR,YAAI,wBAAJ,GAA+B;AAC7B,cAAMnT,oBAAoB,eADG,KACH,EAA1B;;AACAA,oCAA0B;AAAEn6E,mBAAOqa,KAAT;AAAqBrX,kBAArB;AAAA,WAA1Bm3E;AAFF,eAGO;AACL,kCAAwB9/D,KADnB,KACL;AALM;AADE;;AASZ,mBATY,IASZ;;AACA,UAAI,4BAAJ,GAAmC;AAAA;AAVvB;;AAaZ,6BAAuB,6BAA6B;AAClD8/D,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAdU,OAaZ;;AAGA,uBAhBY,EAgBZ;AApFoC;;;6BAuFtCoT,M,EAAiB;AACf,UAAM/yF,MAAM,KADG,IACf;AACA,UAAMkgE,YAAY8yB,sDAFH,GAEGA,CAAlB;AACA,0BAHe,SAGf;;AACA,6CAJe,SAIf;;AACA,6BAAuB,6BAA6B;AAClDrT,iCADkD,SAClDA;AANa,OAKf;;AAGA,uBARe,EAQf;AACA,2BATe,EASf;AAhGoC;;;gCAmGtCR,I,EAAkB;AAChB,UAAI,KAAJ,YAAqB;AACnB,wBAAgB;AACd9f,kBAAQtkD,KADM;AAEdukD,iBAAOvkD,wBAAwBA,KAAxBA,QAAqC,KAF9B;AAAA,SAAhB;AAFc;AAnGoB;;;;;;;;;;qBAiIhC,KAAJ,Y;;;;;sBACQ,KADe,Y;;;sBAGnB,4BAAJ,C;;;;;AACQL,qB,GAAQ,mBADmB,KACnB,E;iDACP;AAAElV,yBAAF;AAAgBgD,wBAAhB;AAAA,iB;;;qBAEL,KAAJ,K;;;;;iDACS;AAAEhD,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;AAEHm3E,iC,GAXK,oC;;AAYX,oCAZW,iBAYX;;iDACOA,kBAbI,O;;;;;;;;;;;;;;;;;;2BAgBbpqC,M,EAAe;AACb,mBADa,IACb;;AACA,6CAFa,MAEb;;AACA,6BAAuB,6BAA6B;AAClDoqC,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAJW,OAGb;;AAGA,uBANa,EAMb;;AACA,UAAI,+BAA+B,KAAnC,cAAI,CAAJ,EAAyD;AACvD,mCAA2B,KAD4B,cACvD;AARW;;AAUb,gCAVa,IAUb;AA1JoC;;;wBA4GvB;AACb,aAAO,KADM,SACb;AA7GoC;;;wBAgHf;AACrB,aAAO,KADc,iBACrB;AAjHoC;;;wBAoHX;AACzB,aAAO,KADkB,qBACzB;AArHoC;;;wBAwHlB;AAClB,aAAO,KADW,cAClB;AAzHoC;;;wBA4HnB;AACjB,aAAO,gCADU,OACjB;AA7HoC;;;;;;IA+JxC,kC;AACEzgF,mEAAiC;AAAA;;AAC/B,oBAD+B,OAC/B;AACA,QAAM2gB,OAAO;AACX6yE,cAAQ,kBADG,IACH,CADG;AAEXV,kBAAY,sBAFD,IAEC;AAFD,KAAb;AAIA,sBAAkBW,iCANa,IAMbA,CAAlB;AACA,qBAP+B,EAO/B;AACA,wBAR+B,IAQ/B;AACA,iBAT+B,KAS/B;AAEA,sBAX+B,IAW/B;AACA,oBAZ+B,IAY/B;AAbqC;;;;6BAgB9B;AACP,UAAI,KAAJ,UAAmB;AACjB,sBADiB,IACjB;AAFK;AAhB8B;;;4BAsBvCG,I,EAAc;AACZ,UAAMp4E,QAAQK,KADF,KACZ;;AACA,UAAI,wBAAJ,GAA+B;AAC7B,YAAM4kE,oBAAoB,eADG,KACH,EAA1B;;AACAA,kCAA0B;AAAEn6E,iBAAF;AAAgBgD,gBAAhB;AAAA,SAA1Bm3E;AAFF,aAGO;AACL,4BADK,KACL;AANU;;AAQZ,mBARY,IAQZ;;AACA,6BAAuB,6BAA6B;AAClDA,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAVU,OASZ;;AAGA,uBAZY,EAYZ;;AACA,WAbY,MAaZ;AAnCqC;;;gCAsCvCR,G,EAAiB;AACf,UAAI,CAAC,KAAD,wBAA8B,KAAlC,YAAmD;AACjD,wBAAgB;AACd9f,kBAAQD,IAFuC;AACjC,SAAhB;AAFa;AAtCsB;;;;;;;;;;sBAmDjC,sBAAJ,I;;;;;AACQ1kD,qB,GAAQ,KADgB,Y;AAE9B,oCAF8B,IAE9B;kDACO;AAAElV,yBAAF;AAAgBgD,wBAAhB;AAAA,iB;;;qBAEL,KAAJ,K;;;;;kDACS;AAAEhD,yBAAF;AAAoBgD,wBAApB;AAAA,iB;;;AAEHm3E,iC,GATK,oC;;AAUX,oCAVW,iBAUX;;kDACOA,kBAXI,O;;;;;;;;;;;;;;;;;;2BAcbpqC,M,EAAe;AACb,mBADa,IACb;;AACA,6BAAuB,6BAA6B;AAClDoqC,kCAA0B;AAAEn6E,iBAAF;AAAoBgD,gBAApB;AAAA,SAA1Bm3E;AAHW,OAEb;;AAGA,uBALa,EAKb;;AACA,UAAI,+BAA+B,KAAnC,UAAI,CAAJ,EAAqD;AACnD,mCAA2B,KADwB,UACnD;AAPW;;AASb,WATa,MASb;AAzEqC;;;wBA8CZ;AACzB,aADyB,KACzB;AA/CqC;;;;;;;;;;;;;;;;;;;;AC7ZzC;;AAKA;;;;;;;;;;;;;;AArBA;;AAkCA,uEAAuE;AACrE,SAAO;AACLx3E,YADK;AAEL8mC,WAFK,EAELA,OAFK;AAGLgQ,YAAQg0C,mBAAmBA,gBAHtB;AAIL3sE,UAJK;AAKL4sE,iBAAaj7B,8BALR;AAMLk7B,cANK;AAAA,GAAP;AAnCF;;AA6CA,oCAAoC;AAClC,MAAMlkD,UAAU,IADkB,OAClB,EAAhB;;AACA,oCAAoC;AAClC,QAAMzpC,QAAQwyD,YADoB,QACpBA,CAAd;;AACA,QAAI,iBAAJ,aAAkC;AAAA;AAFA;;AAKlC/oB,6BALkC,KAKlCA;AAPgC;;AASlC,SATkC,OASlC;AAtDF;;IA0DA,c;AACE/vC,kCAAoB;AAAA;;AAClB,kBADkB,MAClB;AACA,kBAAc,iBAAiB4hB,OAFb,GAEJ,CAAd;AACA,uBAAoB,eAAeA,OAAhB,WAAC,IAHF,EAGlB;AAEA,8BALkB,IAKlB;AACA,gCANkB,EAMlB;AAPiB;;;;oCAcH;AACdhgB,wBACE,CAAC,KADHA,oBADc,uDACdA;AAIA,gCAA0B,yBALZ,IAKY,CAA1B;AACA,aAAO,KANO,kBAMd;AApBiB;;;mCAuBnBy+E,K,EAAAA,G,EAA2B;AACzB,UAAIn8E,OAAO,KAAX,wBAAwC;AACtC,eADsC,IACtC;AAFuB;;AAIzB,UAAM+vC,SAAS,2CAJU,GAIV,CAAf;;AACA,qCALyB,MAKzB;;AACA,aANyB,MAMzB;AA7BiB;;;sCAgCnBqsC,M,EAA0B;AACxB,UAAI,KAAJ,oBAA6B;AAC3B,uCAD2B,MAC3B;AAFsB;;AAIxB,UAAMC,UAAU,gCAJQ,CAIR,CAAhB;;AACAA,sBAAgB,kBAAkB;AAChCtsC,sBADgC,MAChCA;AANsB,OAKxBssC;AArCiB;;;wBAUU;AAC3B,aAAO,0BAA0B,wBAA1B,UADoB,CAC3B;AAXiB;;;;;;;;IA4CrB,oB;AACEvgF,wCAAoB;AAAA;;AAAA;;AAClB,mBADkB,MAClB;AACA,mBAFkB,IAElB;AACA,mBAHkB,CAGlB;AACA,qBAJkB,IAIlB;AACA,QAAM4hB,SAASsyB,OALG,MAKlB;AACA,4BAAwBtyB,0BANN,KAMlB;AACA,0BAAsBA,OAPJ,MAOlB;AACA,8BARkB,oCAQlB;AACA,yBAAqBA,uBATH,KASlB;AACA,2BAAuBA,OAVL,cAUlB;;AACA,QAAI,CAAC,KAAD,mBAAyB,CAAC,KAA9B,eAAkD;AAChD,2BADgD,IAChD;AAZgB;;AAelB,QAAI,2BAAJ,aAA4C;AAC1C,8BAAwB,IADkB,eAClB,EAAxB;AAhBgB;;AAkBlB,iCAA6B,CAACA,OAlBZ,aAkBlB;AACA,6BAAyB,CAACA,OAnBR,YAmBlB;AAEA,oBAAgBsyE,cAAc,aArBZ,WAqBFA,CAAhB;AAEA,QAAMpzF,MAAM8gB,OAvBM,GAuBlB;AACAuc,eAEEg2D,mBACE,KADFA,UAEE,KAFFA,kBAGE,KALJh2D,gBAEEg2D,CAFFh2D,OAQQ98B,oBAAY;AAChB,UAAI,CAAC+yF,2CAAuB/yF,SAA5B,MAAK+yF,CAAL,EAA8C;AAC5C,cAAMN,8CAA0BzyF,SAA1ByyF,QADsC,GACtCA,CAAN;AAFc;;AAIhB,sBAAezyF,cAJC,SAIDA,EAAf;;AACA,+BALgB,OAKhB;;AAEA,UAAMwvF,oBAAoBxsF,SAApBwsF,iBAAoBxsF,OAAQ;AAChC,eAAOhD,qBADyB,IACzBA,CAAP;AARc,OAOhB;;AAPgB,kCAaZ,qDAAiC;AACnCwvF,yBADmC,EACnCA,iBADmC;AAEnCC,gBAAQ,cAF2B;AAGnC93B,wBAAgB,MAHmB;AAInCJ,sBAAc,MAJqB;AAAA,OAAjC,CAbY;AAAA,UAUV,kBAVU,yBAUV,kBAVU;AAAA,UAUV,eAVU,yBAUV,eAVU;;AAoBhB,gCApBgB,kBAoBhB;AAEA,6BAAsBm4B,mBAAmB,MAtBzB,cAsBhB;AAEA,wBAAiBC,8CAxBD,iBAwBCA,CAAjB;;AAIA,UAAI,CAAC,MAAD,yBAA+B,MAAnC,mBAA2D;AACzD,qBAAY,yBAD6C,wBAC7C,CAAZ;AA7Bc;AARpB7yD,gBAwCS,wBAhES,MAwBlBA;AA0CA,sBAlEkB,IAkElB;AAnEuB;;;;;;;;;;;;;uBA2FjB,wBADK,O;;;;uBAEmB,aAFnB,IAEmB,E;;;;AAAxB,qB,yBAAA,K;AAAA,oB,yBAAA,I;;qBACN,I;;;;;iDACS;AAAE73B,uBAAF,EAAEA,KAAF;AAASgD,sBAAT,EAASA;AAAT,iB;;;AAET,gCAAgBhD,MANL,UAMX;;AACA,oBAAI,KAAJ,YAAqB;AACnB,kCAAgB;AACd65D,4BAAQ,KADM;AAEdC,2BAAO,KAFO;AAAA,mBAAhB;AARS;;AAaLzhD,sB,GAAS,sBAbJ,M;iDAcJ;AAAErY,yBAAF;AAAiBgD,wBAAjB;AAAA,iB;;;;;;;;;;;;;;;;;;2BAGT+sC,M,EAAe;AACb,UAAI,KAAJ,SAAkB;AAChB,4BADgB,MAChB;AAFW;;AAIb,UAAI,KAAJ,kBAA2B;AACzB,8BADyB,KACzB;AALW;AA3GU;;;wBAsEN;AACjB,aAAO,wBADU,OACjB;AAvEuB;;;wBA0EV;AACb,aAAO,KADM,SACb;AA3EuB;;;wBA8EL;AAClB,aAAO,KADW,cAClB;AA/EuB;;;wBAkFF;AACrB,aAAO,KADc,iBACrB;AAnFuB;;;wBAsFE;AACzB,aAAO,KADkB,qBACzB;AAvFuB;;;;;;IAsH3B,yB;AACEr2C,yDAAgC;AAAA;;AAAA;;AAC9B,mBAD8B,MAC9B;AACA,mBAF8B,IAE9B;AACA,mBAH8B,CAG9B;AACA,QAAM4hB,SAASsyB,OAJe,MAI9B;AACA,4BAAwBtyB,0BALM,KAK9B;AACA,2BAN8B,oCAM9B;AACA,iCAA6B,CAACA,OAPA,aAO9B;;AAEA,QAAI,2BAAJ,aAA4C;AAC1C,8BAAwB,IADkB,eAClB,EAAxB;AAV4B;;AAa9B,oBAAgBsyE,cAAc,aAbA,WAadA,CAAhB;;AACA,kDAA8B,KAA9B,cAAgDhwF,MAdlB,CAc9B;;AAEA,QAAMpD,MAAM8gB,OAhBkB,GAgB9B;AACAuc,eAEEg2D,mBACE,KADFA,UAEE,KAFFA,kBAGE,KALJh2D,gBAEEg2D,CAFFh2D,OAQQ98B,oBAAY;AAChB,UAAI,CAAC+yF,2CAAuB/yF,SAA5B,MAAK+yF,CAAL,EAA8C;AAC5C,cAAMN,8CAA0BzyF,SAA1ByyF,QADsC,GACtCA,CAAN;AAFc;;AAIhB,6BAJgB,OAIhB;;AACA,uBAAezyF,cALC,SAKDA,EAAf;AAbJ88B,gBAeSl9B,kBAAU;AACf,UAAIA,UAAUA,gBAAd,cAA4C;AAAA;AAD7B;;AAIf,YAJe,MAIf;AApC0B,KAiB9Bk9B;AAsBA,sBAvC8B,IAuC9B;AAxC4B;;;;;;;;;;;;;uBAgDtB,qBADK,O;;;;uBAEmB,aAFnB,IAEmB,E;;;;AAAxB,qB,0BAAA,K;AAAA,oB,0BAAA,I;;qBACN,I;;;;;kDACS;AAAE73B,uBAAF,EAAEA,KAAF;AAASgD,sBAAT,EAASA;AAAT,iB;;;AAET,gCAAgBhD,MANL,UAMX;;AACA,oBAAI,KAAJ,YAAqB;AACnB,kCAAgB;AAAE65D,4BAAQ,KADP;AACH,mBAAhB;AARS;;AAULxhD,sB,GAAS,sBAVJ,M;kDAWJ;AAAErY,yBAAF;AAAiBgD,wBAAjB;AAAA,iB;;;;;;;;;;;;;;;;;;2BAGT+sC,M,EAAe;AACb,UAAI,KAAJ,SAAkB;AAChB,4BADgB,MAChB;AAFW;;AAIb,UAAI,KAAJ,kBAA2B;AACzB,8BADyB,KACzB;AALW;AA7De;;;wBA2CH;AACzB,aAAO,KADkB,qBACzB;AA5C4B","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2012 Mozilla Foundation\n *\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 {\n  addLinkAttributes,\n  getFilenameFromUrl,\n  isFetchSupported,\n  isValidFetchUrl,\n  LinkTarget,\n  loadScript,\n  PDFDateString,\n  RenderingCancelledException,\n} from \"./display/display_utils.js\";\nimport {\n  build,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  setPDFNetworkStreamFactory,\n  version,\n} from \"./display/api.js\";\nimport {\n  CMapCompressionType,\n  createObjectURL,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  InvalidPDFException,\n  MissingPDFException,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  removeNullCharacters,\n  shadow,\n  UnexpectedResponseException,\n  UNSUPPORTED_FEATURES,\n  Util,\n  VerbosityLevel,\n} from \"./shared/util.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { apiCompatibilityParams } from \"./display/api_compatibility.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { renderTextLayer } from \"./display/text_layer.js\";\nimport { SVGGraphics } from \"./display/svg.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n  const streamsPromise = Promise.all([\n    import(\"pdfjs/display/network.js\"),\n    import(\"pdfjs/display/fetch_stream.js\"),\n  ]);\n  setPDFNetworkStreamFactory(params => {\n    return streamsPromise.then(streams => {\n      const [{ PDFNetworkStream }, { PDFFetchStream }] = streams;\n      if (isFetchSupported() && isValidFetchUrl(params.url)) {\n        return new PDFFetchStream(params);\n      }\n      return new PDFNetworkStream(params);\n    });\n  });\n} else if (PDFJSDev.test(\"GENERIC\")) {\n  const { isNodeJS } = require(\"./shared/is_node.js\");\n  if (isNodeJS) {\n    const PDFNodeStream = require(\"./display/node_stream.js\").PDFNodeStream;\n    setPDFNetworkStreamFactory(params => {\n      return new PDFNodeStream(params);\n    });\n  } else {\n    const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n    let PDFFetchStream;\n    if (isFetchSupported()) {\n      PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n    }\n    setPDFNetworkStreamFactory(params => {\n      if (PDFFetchStream && isValidFetchUrl(params.url)) {\n        return new PDFFetchStream(params);\n      }\n      return new PDFNetworkStream(params);\n    });\n  }\n} else if (PDFJSDev.test(\"CHROME\")) {\n  const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n  let PDFFetchStream;\n  const isChromeWithFetchCredentials = function () {\n    // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n    // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n    try {\n      // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n      // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n      window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n      delete window[999];\n      return false;\n    } catch (e) {\n      return true;\n    }\n  };\n  if (isFetchSupported() && isChromeWithFetchCredentials()) {\n    PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n  }\n  setPDFNetworkStreamFactory(params => {\n    if (PDFFetchStream && isValidFetchUrl(params.url)) {\n      return new PDFFetchStream(params);\n    }\n    return new PDFNetworkStream(params);\n  });\n}\n\nexport {\n  // From \"./display/display_utils.js\":\n  addLinkAttributes,\n  getFilenameFromUrl,\n  LinkTarget,\n  loadScript,\n  PDFDateString,\n  RenderingCancelledException,\n  // From \"./display/api.js\":\n  build,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  version,\n  // From \"./shared/util.js\":\n  CMapCompressionType,\n  createObjectURL,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  InvalidPDFException,\n  MissingPDFException,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  removeNullCharacters,\n  shadow,\n  UnexpectedResponseException,\n  UNSUPPORTED_FEATURES,\n  Util,\n  VerbosityLevel,\n  // From \"./display/annotation_layer.js\":\n  AnnotationLayer,\n  // From \"./display/api_compatibility.js\":\n  apiCompatibilityParams,\n  // From \"./display/worker_options.js\":\n  GlobalWorkerOptions,\n  // From \"./display/text_layer.js\":\n  renderTextLayer,\n  // From \"./display/svg.js\":\n  SVGGraphics,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport {\n  assert,\n  BaseException,\n  CMapCompressionType,\n  isString,\n  removeNullCharacters,\n  stringToBytes,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass BaseCanvasFactory {\n  constructor() {\n    if (this.constructor === BaseCanvasFactory) {\n      unreachable(\"Cannot initialize BaseCanvasFactory.\");\n    }\n  }\n\n  create(width, height) {\n    unreachable(\"Abstract method `create` called.\");\n  }\n\n  reset(canvasAndContext, width, height) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    canvasAndContext.canvas.width = width;\n    canvasAndContext.canvas.height = height;\n  }\n\n  destroy(canvasAndContext) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    // Zeroing the width and height cause Firefox to release graphics\n    // resources immediately, which can greatly reduce memory consumption.\n    canvasAndContext.canvas.width = 0;\n    canvasAndContext.canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n}\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n  constructor({ ownerDocument = globalThis.document } = {}) {\n    super();\n    this._document = ownerDocument;\n  }\n\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    const canvas = this._document.createElement(\"canvas\");\n    const context = canvas.getContext(\"2d\");\n    canvas.width = width;\n    canvas.height = height;\n    return {\n      canvas,\n      context,\n    };\n  }\n}\n\nclass BaseCMapReaderFactory {\n  constructor({ baseUrl = null, isCompressed = false }) {\n    if (this.constructor === BaseCMapReaderFactory) {\n      unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n    }\n    this.baseUrl = baseUrl;\n    this.isCompressed = isCompressed;\n  }\n\n  async fetch({ name }) {\n    if (!this.baseUrl) {\n      throw new Error(\n        'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n          'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'\n      );\n    }\n    if (!name) {\n      throw new Error(\"CMap name must be specified.\");\n    }\n    const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n    const compressionType = this.isCompressed\n      ? CMapCompressionType.BINARY\n      : CMapCompressionType.NONE;\n\n    return this._fetchData(url, compressionType).catch(reason => {\n      throw new Error(\n        `Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`\n      );\n    });\n  }\n\n  /**\n   * @private\n   */\n  _fetchData(url, compressionType) {\n    unreachable(\"Abstract method `_fetchData` called.\");\n  }\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n  _fetchData(url, compressionType) {\n    if (\n      (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n      (isFetchSupported() && isValidFetchUrl(url, document.baseURI))\n    ) {\n      return fetch(url).then(async response => {\n        if (!response.ok) {\n          throw new Error(response.statusText);\n        }\n        let cMapData;\n        if (this.isCompressed) {\n          cMapData = new Uint8Array(await response.arrayBuffer());\n        } else {\n          cMapData = stringToBytes(await response.text());\n        }\n        return { cMapData, compressionType };\n      });\n    }\n\n    // The Fetch API is not supported.\n    return new Promise((resolve, reject) => {\n      const request = new XMLHttpRequest();\n      request.open(\"GET\", url, true);\n\n      if (this.isCompressed) {\n        request.responseType = \"arraybuffer\";\n      }\n      request.onreadystatechange = () => {\n        if (request.readyState !== XMLHttpRequest.DONE) {\n          return;\n        }\n        if (request.status === 200 || request.status === 0) {\n          let cMapData;\n          if (this.isCompressed && request.response) {\n            cMapData = new Uint8Array(request.response);\n          } else if (!this.isCompressed && request.responseText) {\n            cMapData = stringToBytes(request.responseText);\n          }\n          if (cMapData) {\n            resolve({ cMapData, compressionType });\n            return;\n          }\n        }\n        reject(new Error(request.statusText));\n      };\n\n      request.send(null);\n    });\n  }\n}\n\nclass DOMSVGFactory {\n  create(width, height) {\n    assert(width > 0 && height > 0, \"Invalid SVG dimensions\");\n\n    const svg = document.createElementNS(SVG_NS, \"svg:svg\");\n    svg.setAttribute(\"version\", \"1.1\");\n    svg.setAttribute(\"width\", width + \"px\");\n    svg.setAttribute(\"height\", height + \"px\");\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n    svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n\n    return svg;\n  }\n\n  createElement(type) {\n    assert(typeof type === \"string\", \"Invalid SVG element type\");\n\n    return document.createElementNS(SVG_NS, type);\n  }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array<number>} viewBox - The xMin, yMin, xMax and\n *   yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset. The\n *   default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset. The\n *   default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} [scale] - The scale, overriding the one in the cloned\n *   viewport. The default value is `this.scale`.\n * @property {number} [rotation] - The rotation, in degrees, overriding the one\n *   in the cloned viewport. The default value is `this.rotation`.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `this.offsetX`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `this.offsetY`.\n * @property {boolean} [dontFlip] - If true, the x-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n  /**\n   * @param {PageViewportParameters}\n   */\n  constructor({\n    viewBox,\n    scale,\n    rotation,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  }) {\n    this.viewBox = viewBox;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n\n    // creating transform to convert pdf coordinate system to the normal\n    // canvas like coordinates taking in account scale and rotation\n    const centerX = (viewBox[2] + viewBox[0]) / 2;\n    const centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    rotation = rotation % 360;\n    rotation = rotation < 0 ? rotation + 360 : rotation;\n    switch (rotation) {\n      case 180:\n        rotateA = -1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = 1;\n        break;\n      case 90:\n        rotateA = 0;\n        rotateB = 1;\n        rotateC = 1;\n        rotateD = 0;\n        break;\n      case 270:\n        rotateA = 0;\n        rotateB = -1;\n        rotateC = -1;\n        rotateD = 0;\n        break;\n      case 0:\n        rotateA = 1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = -1;\n        break;\n      default:\n        throw new Error(\n          \"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\"\n        );\n    }\n\n    if (dontFlip) {\n      rotateC = -rotateC;\n      rotateD = -rotateD;\n    }\n\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n      height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n      height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n    }\n    // creating transform for the following operations:\n    // translate(-centerX, -centerY), rotate and flip vertically,\n    // scale, and translate(offsetCanvasX, offsetCanvasY)\n    this.transform = [\n      rotateA * scale,\n      rotateB * scale,\n      rotateC * scale,\n      rotateD * scale,\n      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n    ];\n\n    this.width = width;\n    this.height = height;\n  }\n\n  /**\n   * Clones viewport, with optional additional properties.\n   * @param {PageViewportCloneParameters} [params]\n   * @returns {PageViewport} Cloned viewport.\n   */\n  clone({\n    scale = this.scale,\n    rotation = this.rotation,\n    offsetX = this.offsetX,\n    offsetY = this.offsetY,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * Converts PDF point to the viewport coordinates. For examples, useful for\n   * converting PDF location into canvas pixel coordinates.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Object} Object containing `x` and `y` properties of the\n   *   point in the viewport coordinate space.\n   * @see {@link convertToPdfPoint}\n   * @see {@link convertToViewportRectangle}\n   */\n  convertToViewportPoint(x, y) {\n    return Util.applyTransform([x, y], this.transform);\n  }\n\n  /**\n   * Converts PDF rectangle to the viewport coordinates.\n   * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n   * @returns {Array} Array containing corresponding coordinates of the\n   *   rectangle in the viewport coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToViewportRectangle(rect) {\n    const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n    const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n  }\n\n  /**\n   * Converts viewport coordinates to the PDF location. For examples, useful\n   * for converting canvas pixel location into PDF one.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Object} Object containing `x` and `y` properties of the\n   *   point in the PDF coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToPdfPoint(x, y) {\n    return Util.applyInverseTransform([x, y], this.transform);\n  }\n}\n\nclass RenderingCancelledException extends BaseException {\n  constructor(msg, type) {\n    super(msg);\n    this.type = type;\n  }\n}\n\nconst LinkTarget = {\n  NONE: 0, // Default value.\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4,\n};\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} [target] - The link target. The default value is\n *   `LinkTarget.NONE`.\n * @property {string} [rel] - The link relationship. The default value is\n *   `DEFAULT_LINK_REL`.\n * @property {boolean} [enabled] - Whether the link should be enabled. The\n *   default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {\n  assert(\n    url && typeof url === \"string\",\n    'addLinkAttributes: A valid \"url\" parameter must provided.'\n  );\n\n  const urlNullRemoved = removeNullCharacters(url);\n  if (enabled) {\n    link.href = link.title = urlNullRemoved;\n  } else {\n    link.href = \"\";\n    link.title = `Disabled: ${urlNullRemoved}`;\n    link.onclick = () => {\n      return false;\n    };\n  }\n\n  let targetStr = \"\"; // LinkTarget.NONE\n  switch (target) {\n    case LinkTarget.NONE:\n      break;\n    case LinkTarget.SELF:\n      targetStr = \"_self\";\n      break;\n    case LinkTarget.BLANK:\n      targetStr = \"_blank\";\n      break;\n    case LinkTarget.PARENT:\n      targetStr = \"_parent\";\n      break;\n    case LinkTarget.TOP:\n      targetStr = \"_top\";\n      break;\n  }\n  link.target = targetStr;\n\n  link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\n/**\n * Gets the file name from a given URL.\n * @param {string} url\n */\nfunction getFilenameFromUrl(url) {\n  const anchor = url.indexOf(\"#\");\n  const query = url.indexOf(\"?\");\n  const end = Math.min(\n    anchor > 0 ? anchor : url.length,\n    query > 0 ? query : url.length\n  );\n  return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nclass StatTimer {\n  constructor() {\n    this.started = Object.create(null);\n    this.times = [];\n  }\n\n  time(name) {\n    if (name in this.started) {\n      warn(`Timer is already running for ${name}`);\n    }\n    this.started[name] = Date.now();\n  }\n\n  timeEnd(name) {\n    if (!(name in this.started)) {\n      warn(`Timer has not been started for ${name}`);\n    }\n    this.times.push({\n      name,\n      start: this.started[name],\n      end: Date.now(),\n    });\n    // Remove timer from started so it can be called again.\n    delete this.started[name];\n  }\n\n  toString() {\n    // Find the longest name for padding purposes.\n    const outBuf = [];\n    let longest = 0;\n    for (const time of this.times) {\n      const name = time.name;\n      if (name.length > longest) {\n        longest = name.length;\n      }\n    }\n    for (const time of this.times) {\n      const duration = time.end - time.start;\n      outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n    }\n    return outBuf.join(\"\");\n  }\n}\n\nfunction isFetchSupported() {\n  return (\n    typeof fetch !== \"undefined\" &&\n    typeof Response !== \"undefined\" &&\n    \"body\" in Response.prototype &&\n    typeof ReadableStream !== \"undefined\"\n  );\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n  try {\n    const { protocol } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    // The Fetch API only supports the http/https protocols, and not file/ftp.\n    return protocol === \"http:\" || protocol === \"https:\";\n  } catch (ex) {\n    return false; // `new URL()` will throw on incorrect data.\n  }\n}\n\n/**\n * @param {string} src\n * @returns {Promise<void>}\n */\nfunction loadScript(src) {\n  return new Promise((resolve, reject) => {\n    const script = document.createElement(\"script\");\n    script.src = src;\n\n    script.onload = resolve;\n    script.onerror = function () {\n      reject(new Error(`Cannot load script at: ${script.src}`));\n    };\n    (document.head || document.documentElement).appendChild(script);\n  });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n  console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n  /**\n   * Convert a PDF date string to a JavaScript `Date` object.\n   *\n   * The PDF date string format is described in section 7.9.4 of the official\n   * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n   * edition) Adobe describes the same format including a trailing apostrophe.\n   * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n   * them. We ignore all apostrophes as they are not necessary for date parsing.\n   *\n   * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n   * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n   * parts of the date string).\n   *\n   * @param {string} input\n   * @returns {Date|null}\n   */\n  static toDateObject(input) {\n    if (!input || !isString(input)) {\n      return null;\n    }\n\n    // Lazily initialize the regular expression.\n    if (!pdfDateStringRegex) {\n      pdfDateStringRegex = new RegExp(\n        \"^D:\" + // Prefix (required)\n        \"(\\\\d{4})\" + // Year (required)\n        \"(\\\\d{2})?\" + // Month (optional)\n        \"(\\\\d{2})?\" + // Day (optional)\n        \"(\\\\d{2})?\" + // Hour (optional)\n        \"(\\\\d{2})?\" + // Minute (optional)\n        \"(\\\\d{2})?\" + // Second (optional)\n        \"([Z|+|-])?\" + // Universal time relation (optional)\n        \"(\\\\d{2})?\" + // Offset hour (optional)\n        \"'?\" + // Splitting apostrophe (optional)\n        \"(\\\\d{2})?\" + // Offset minute (optional)\n          \"'?\" // Trailing apostrophe (optional)\n      );\n    }\n\n    // Optional fields that don't satisfy the requirements from the regular\n    // expression (such as incorrect digit counts or numbers that are out of\n    // range) will fall back the defaults from the specification.\n    const matches = pdfDateStringRegex.exec(input);\n    if (!matches) {\n      return null;\n    }\n\n    // JavaScript's `Date` object expects the month to be between 0 and 11\n    // instead of 1 and 12, so we have to correct for that.\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || \"Z\";\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    // Universal time relation 'Z' means that the local time is equal to the\n    // universal time, whereas the relations '+'/'-' indicate that the local\n    // time is later respectively earlier than the universal time. Every date\n    // is normalized to universal time.\n    if (universalTimeRelation === \"-\") {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === \"+\") {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\n\nexport {\n  PageViewport,\n  RenderingCancelledException,\n  addLinkAttributes,\n  getFilenameFromUrl,\n  LinkTarget,\n  DEFAULT_LINK_REL,\n  BaseCanvasFactory,\n  DOMCanvasFactory,\n  BaseCMapReaderFactory,\n  DOMCMapReaderFactory,\n  DOMSVGFactory,\n  StatTimer,\n  isFetchSupported,\n  isValidFetchUrl,\n  loadScript,\n  deprecated,\n  PDFDateString,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* Copyright 2012 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n  /** @deprecated unused */\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  /** @deprecated unused */\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n  let base;\n  try {\n    base = new URL(baseUrl);\n    if (!base.origin || base.origin === \"null\") {\n      return false; // non-HTTP url\n    }\n  } catch (e) {\n    return false;\n  }\n\n  const other = new URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n  if (!url) {\n    return null;\n  }\n  try {\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = this.constructor.name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg);\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg);\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {}\n\nclass MissingPDFException extends BaseException {}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg);\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {}\n\nconst NullCharactersRegExp = /\\x00/g;\n\n/**\n * @param {string} str\n */\nfunction removeNullCharacters(str) {\n  if (typeof str !== \"string\") {\n    warn(\"The argument for removeNullCharacters must be a string.\");\n    return str;\n  }\n  return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n  assert(\n    bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n    \"Invalid argument for bytesToString\"\n  );\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n  assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n  return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n *   (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n  // Shortcut: if first and only item is Uint8Array, return it.\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n  let resultLength = 0;\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\nconst IsLittleEndianCached = {\n  get value() {\n    return shadow(this, \"value\", isLittleEndian());\n  },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nconst IsEvalSupportedCached = {\n  get value() {\n    return shadow(this, \"value\", isEvalSupported());\n  },\n};\n\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n  // makeCssRgb() can be called thousands of times. Using ´rgbBuf` avoids\n  // creating many intermediate strings.\n  static makeCssRgb(r, g, b) {\n    rgbBuf[1] = r;\n    rgbBuf[3] = g;\n    rgbBuf[5] = b;\n    return rgbBuf.join(\"\");\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // Apply a generic 3d matrix M on a 3-vector v:\n  //   | a b c |   | X |\n  //   | d e f | x | Y |\n  //   | g h i |   | Z |\n  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n  // with v as [X,Y,Z]\n  static apply3dTransform(m, v) {\n    return [\n      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n      m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'false'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    // Order points along the axes\n    const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n    const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n    const result = [];\n\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    // X: first and second points belong to different rectangles?\n    if (\n      (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n      (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n    ) {\n      // Intersection must be between second and third points\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return null;\n    }\n\n    // Y: first and second points belong to different rectangles?\n    if (\n      (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n      (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n    ) {\n      // Intersection must be between second and third points\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return null;\n    }\n\n    return result;\n  }\n}\n\n// prettier-ignore\nconst PDFStringTranslateTable = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n  const length = str.length,\n    strBuf = [];\n  if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n    // UTF16BE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n      );\n    }\n  } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n    // UTF16LE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n      );\n    }\n  } else {\n    for (let i = 0; i < length; ++i) {\n      const code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  // replace \"(\", \")\" and \"\\\" by \"\\(\", \"\\)\" and \"\\\\\"\n  // in order to write it in a PDF file.\n  return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n  return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n  return typeof v === \"number\";\n}\n\nfunction isString(v) {\n  return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  return arr1.every(function (element, index) {\n    return element === arr2[index];\n  });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    (date.getUTCDate() + 1).toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    },\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nconst createObjectURL = (function createObjectURLClosure() {\n  // Blob/createObjectURL is not available, falling back to data schema.\n  const digits =\n    \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n  // eslint-disable-next-line no-shadow\n  return function createObjectURL(data, contentType, forceDataSchema = false) {\n    if (!forceDataSchema && URL.createObjectURL) {\n      const blob = new Blob([data], { type: contentType });\n      return URL.createObjectURL(blob);\n    }\n\n    let buffer = `data:${contentType};base64,`;\n    for (let i = 0, ii = data.length; i < ii; i += 3) {\n      const b1 = data[i] & 0xff;\n      const b2 = data[i + 1] & 0xff;\n      const b3 = data[i + 2] & 0xff;\n      const d1 = b1 >> 2,\n        d2 = ((b1 & 3) << 4) | (b2 >> 4);\n      const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n      const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n    return buffer;\n  };\n})();\n\nexport {\n  BaseException,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  OPS,\n  VerbosityLevel,\n  UNSUPPORTED_FEATURES,\n  AnnotationBorderStyleType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMarkedState,\n  AnnotationReplyType,\n  AnnotationReviewState,\n  AnnotationStateModelType,\n  AnnotationType,\n  FontType,\n  ImageKind,\n  CMapCompressionType,\n  AbortException,\n  InvalidPDFException,\n  MissingPDFException,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  StreamType,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  Util,\n  FormatError,\n  arrayByteLength,\n  arraysToBytes,\n  assert,\n  bytesToString,\n  createPromiseCapability,\n  createObjectURL,\n  escapeString,\n  getModificationDate,\n  getVerbosityLevel,\n  info,\n  isArrayBuffer,\n  isArrayEqual,\n  isBool,\n  isNum,\n  isString,\n  isSameOrigin,\n  createValidAbsoluteUrl,\n  IsLittleEndianCached,\n  IsEvalSupportedCached,\n  removeNullCharacters,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  utf8StringToString,\n  warn,\n  unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n  (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n  (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n  // Provides support for globalThis in legacy browsers.\n  // Support: IE11/Edge, Opera\n  if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n    // eslint-disable-next-line no-global-assign\n    globalThis = require(\"core-js/es/global-this\");\n  }\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  const hasDOM = typeof window === \"object\" && typeof document === \"object\";\n  const userAgent =\n    (typeof navigator !== \"undefined\" && navigator.userAgent) || \"\";\n  const isIE = /Trident/.test(userAgent);\n\n  // Support: Node.js\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !isNodeJS) {\n      return;\n    }\n    globalThis.btoa = function (chars) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  // Support: Node.js\n  (function checkNodeAtob() {\n    if (globalThis.atob || !isNodeJS) {\n      return;\n    }\n    globalThis.atob = function (input) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  // Provides support for ChildNode.remove in legacy browsers.\n  // Support: IE.\n  (function checkChildNodeRemove() {\n    if (!hasDOM) {\n      return;\n    }\n    if (typeof Element.prototype.remove !== \"undefined\") {\n      return;\n    }\n    Element.prototype.remove = function () {\n      if (this.parentNode) {\n        // eslint-disable-next-line mozilla/avoid-removeChild\n        this.parentNode.removeChild(this);\n      }\n    };\n  })();\n\n  // Provides support for DOMTokenList.prototype.{add, remove}, with more than\n  // one parameter, in legacy browsers.\n  // Support: IE\n  (function checkDOMTokenListAddRemove() {\n    if (!hasDOM || isNodeJS) {\n      return;\n    }\n    const div = document.createElement(\"div\");\n    div.classList.add(\"testOne\", \"testTwo\");\n\n    if (\n      div.classList.contains(\"testOne\") === true &&\n      div.classList.contains(\"testTwo\") === true\n    ) {\n      return;\n    }\n    const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n    const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n    DOMTokenList.prototype.add = function (...tokens) {\n      for (const token of tokens) {\n        OriginalDOMTokenListAdd.call(this, token);\n      }\n    };\n    DOMTokenList.prototype.remove = function (...tokens) {\n      for (const token of tokens) {\n        OriginalDOMTokenListRemove.call(this, token);\n      }\n    };\n  })();\n\n  // Provides support for DOMTokenList.prototype.toggle, with the optional\n  // \"force\" parameter, in legacy browsers.\n  // Support: IE\n  (function checkDOMTokenListToggle() {\n    if (!hasDOM || isNodeJS) {\n      return;\n    }\n    const div = document.createElement(\"div\");\n    if (div.classList.toggle(\"test\", 0) === false) {\n      return;\n    }\n\n    DOMTokenList.prototype.toggle = function (token) {\n      const force =\n        arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n      return this[force ? \"add\" : \"remove\"](token), force;\n    };\n  })();\n\n  // Provides support for window.history.{pushState, replaceState}, with the\n  // `url` parameter set to `undefined`, without breaking the document URL.\n  // Support: IE\n  (function checkWindowHistoryPushStateReplaceState() {\n    if (!hasDOM || !isIE) {\n      return;\n    }\n    const OriginalPushState = window.history.pushState;\n    const OriginalReplaceState = window.history.replaceState;\n\n    window.history.pushState = function (state, title, url) {\n      const args = url === undefined ? [state, title] : [state, title, url];\n      OriginalPushState.apply(this, args);\n    };\n    window.history.replaceState = function (state, title, url) {\n      const args = url === undefined ? [state, title] : [state, title, url];\n      OriginalReplaceState.apply(this, args);\n    };\n  })();\n\n  // Provides support for String.prototype.startsWith in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringStartsWith() {\n    if (String.prototype.startsWith) {\n      return;\n    }\n    require(\"core-js/es/string/starts-with.js\");\n  })();\n\n  // Provides support for String.prototype.endsWith in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringEndsWith() {\n    if (String.prototype.endsWith) {\n      return;\n    }\n    require(\"core-js/es/string/ends-with.js\");\n  })();\n\n  // Provides support for String.prototype.includes in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringIncludes() {\n    if (String.prototype.includes) {\n      return;\n    }\n    require(\"core-js/es/string/includes.js\");\n  })();\n\n  // Provides support for Array.prototype.includes in legacy browsers.\n  // Support: IE, Chrome<47\n  (function checkArrayIncludes() {\n    if (Array.prototype.includes) {\n      return;\n    }\n    require(\"core-js/es/array/includes.js\");\n  })();\n\n  // Provides support for Array.from in legacy browsers.\n  // Support: IE\n  (function checkArrayFrom() {\n    if (Array.from) {\n      return;\n    }\n    require(\"core-js/es/array/from.js\");\n  })();\n\n  // Provides support for Object.assign in legacy browsers.\n  // Support: IE\n  (function checkObjectAssign() {\n    if (Object.assign) {\n      return;\n    }\n    require(\"core-js/es/object/assign.js\");\n  })();\n\n  // Provides support for Object.fromEntries in legacy browsers.\n  // Support: IE, Chrome<73\n  (function checkObjectFromEntries() {\n    if (Object.fromEntries) {\n      return;\n    }\n    require(\"core-js/es/object/from-entries.js\");\n  })();\n\n  // Provides support for Math.log2 in legacy browsers.\n  // Support: IE, Chrome<38\n  (function checkMathLog2() {\n    if (Math.log2) {\n      return;\n    }\n    Math.log2 = require(\"core-js/es/math/log2.js\");\n  })();\n\n  // Provides support for Number.isNaN in legacy browsers.\n  // Support: IE.\n  (function checkNumberIsNaN() {\n    if (Number.isNaN) {\n      return;\n    }\n    Number.isNaN = require(\"core-js/es/number/is-nan.js\");\n  })();\n\n  // Provides support for Number.isInteger in legacy browsers.\n  // Support: IE, Chrome<34\n  (function checkNumberIsInteger() {\n    if (Number.isInteger) {\n      return;\n    }\n    Number.isInteger = require(\"core-js/es/number/is-integer.js\");\n  })();\n\n  // Provides support for TypedArray.prototype.slice in legacy browsers.\n  // Support: IE\n  (function checkTypedArraySlice() {\n    if (Uint8Array.prototype.slice) {\n      return;\n    }\n    require(\"core-js/es/typed-array/slice\");\n  })();\n\n  // Support: IE, Safari<11, Chrome<63\n  (function checkPromise() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `Promise` shouldn't\n      // need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    if (globalThis.Promise && globalThis.Promise.allSettled) {\n      return;\n    }\n    globalThis.Promise = require(\"core-js/es/promise/index.js\");\n  })();\n\n  // Support: IE\n  (function checkURL() {\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n      // Prevent \"require is not a function\" errors in development mode,\n      // since the `URL` constructor should be available in modern browers.\n      return;\n    } else if (!PDFJSDev.test(\"GENERIC\")) {\n      // The `URL` constructor is assumed to be available in the extension\n      // builds.\n      return;\n    } else if (PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders don't use the `URL` constructor, so it\n      // doesn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    globalThis.URL = require(\"core-js/web/url.js\");\n  })();\n\n  // Support: IE, Node.js\n  (function checkReadableStream() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `ReadableStream`\n      // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    let isReadableStreamSupported = false;\n\n    if (typeof ReadableStream !== \"undefined\") {\n      // MS Edge may say it has ReadableStream but they are not up to spec yet.\n      try {\n        // eslint-disable-next-line no-new\n        new ReadableStream({\n          start(controller) {\n            controller.close();\n          },\n        });\n        isReadableStreamSupported = true;\n      } catch (e) {\n        // The ReadableStream constructor cannot be used.\n      }\n    }\n    if (isReadableStreamSupported) {\n      return;\n    }\n    globalThis.ReadableStream = require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n  })();\n\n  // We want to support Map iteration, but it doesn't seem possible to easily\n  // test for that specifically; hence using a similarly unsupported property.\n  // Support: IE11\n  (function checkMapEntries() {\n    if (globalThis.Map && globalThis.Map.prototype.entries) {\n      return;\n    }\n    globalThis.Map = require(\"core-js/es/map/index.js\");\n  })();\n\n  // We want to support Set iteration, but it doesn't seem possible to easily\n  // test for that specifically; hence using a similarly unsupported property.\n  // Support: IE11\n  (function checkSetEntries() {\n    if (globalThis.Set && globalThis.Set.prototype.entries) {\n      return;\n    }\n    globalThis.Set = require(\"core-js/es/set/index.js\");\n  })();\n\n  // Support: IE<11, Safari<8, Chrome<36\n  (function checkWeakMap() {\n    if (globalThis.WeakMap) {\n      return;\n    }\n    globalThis.WeakMap = require(\"core-js/es/weak-map/index.js\");\n  })();\n\n  // Support: IE11\n  (function checkWeakSet() {\n    if (globalThis.WeakSet) {\n      return;\n    }\n    globalThis.WeakSet = require(\"core-js/es/weak-set/index.js\");\n  })();\n\n  // Provides support for String.codePointAt in legacy browsers.\n  // Support: IE11.\n  (function checkStringCodePointAt() {\n    if (String.prototype.codePointAt) {\n      return;\n    }\n    require(\"core-js/es/string/code-point-at.js\");\n  })();\n\n  // Provides support for String.fromCodePoint in legacy browsers.\n  // Support: IE11.\n  (function checkStringFromCodePoint() {\n    if (String.fromCodePoint) {\n      return;\n    }\n    String.fromCodePoint = require(\"core-js/es/string/from-code-point.js\");\n  })();\n\n  // Support: IE\n  (function checkSymbol() {\n    if (globalThis.Symbol) {\n      return;\n    }\n    require(\"core-js/es/symbol/index.js\");\n  })();\n\n  // Provides support for String.prototype.padStart in legacy browsers.\n  // Support: IE, Chrome<57\n  (function checkStringPadStart() {\n    if (String.prototype.padStart) {\n      return;\n    }\n    require(\"core-js/es/string/pad-start.js\");\n  })();\n\n  // Provides support for String.prototype.padEnd in legacy browsers.\n  // Support: IE, Chrome<57\n  (function checkStringPadEnd() {\n    if (String.prototype.padEnd) {\n      return;\n    }\n    require(\"core-js/es/string/pad-end.js\");\n  })();\n\n  // Provides support for Object.values in legacy browsers.\n  // Support: IE, Chrome<54\n  (function checkObjectValues() {\n    if (Object.values) {\n      return;\n    }\n    Object.values = require(\"core-js/es/object/values.js\");\n  })();\n\n  // Provides support for Object.entries in legacy browsers.\n  // Support: IE, Chrome<54\n  (function checkObjectEntries() {\n    if (Object.entries) {\n      return;\n    }\n    Object.entries = require(\"core-js/es/object/entries.js\");\n  })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\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/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../modules/es.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://github.com/tc39/proposal-global\n$({ global: true }, {\n  globalThis: global\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.6.5',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return nativeStartsWith\n      ? nativeStartsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  // eslint-disable-next-line no-undef\n  && !Symbol.sham\n  // eslint-disable-next-line no-undef\n  && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (e) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (f) { /* empty */ }\n  } return false;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n  return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","require('../../modules/es.string.ends-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'endsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = String(searchString);\n    return nativeEndsWith\n      ? nativeEndsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~String(requireObjectCoercible(this))\n      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n  if (!options) options = {};\n  var method = [][METHOD_NAME];\n  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n  var argument0 = has(options, 0) ? options[0] : thrower;\n  var argument1 = has(options, 1) ? options[1] : undefined;\n\n  return cache[METHOD_NAME] = !!method && !fails(function () {\n    if (ACCESSORS && !DESCRIPTORS) return true;\n    var O = { length: -1 };\n\n    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n    else O[1] = 1;\n\n    method.call(O, argument0, argument1);\n  });\n};\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    var returnMethod = iterator['return'];\n    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n    throw error;\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, undefined, true);\n    return obj;\n  }\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n  var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n  var iterator, iterFn, index, length, result, next, step;\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = AS_ENTRIES\n          ? boundFunction(anObject(step = iterable[index])[0], step[1])\n          : boundFunction(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  next = iterator.next;\n  while (!(step = next.call(iterator)).done) {\n    result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n    if (typeof result == 'object' && result && result instanceof Result) return result;\n  } return new Result(false);\n};\n\niterate.stop = function (result) {\n  return new Result(true, result);\n};\n","require('../../modules/es.math.log2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log2;\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\n});\n","require('../../modules/es.number.is-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isInteger;\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isInteger\n});\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../../modules/es.typed-array.slice');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar isView = function isView(it) {\n  var klass = classof(it);\n  return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true;\n    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n  }\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(promise, state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (handler = global['on' + name]) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n  task.call(global, function () {\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n  task.call(global, function () {\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n  return function (value) {\n    fn(promise, state, value, unwrap);\n  };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, promise, wrapper, state),\n            bind(internalReject, promise, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(promise, wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(promise, state, false);\n    }\n  } catch (error) {\n    internalReject(promise, { done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n    } catch (error) {\n      internalReject(this, state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(this, state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, promise, state);\n    this.reject = bind(internalReject, promise, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then;\n\n    // wrap native Promise#then for native async functions\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected);\n    // https://github.com/zloirock/core-js/issues/640\n    }, { unsafe: true });\n\n    // wrap fetch result\n    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input /* , init */) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","module.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (classof(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    typeof postMessage == 'function' &&\n    !global.importScripts &&\n    !fails(post) &&\n    location.protocol !== 'file:'\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  } else if (MutationObserver && !IS_IOS) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    then = promise.then;\n    notify = function () {\n      then.call(promise, flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (e) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: e };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line  max-statements\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.appent` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return URL.prototype.toString.call(this);\n  }\n});\n","/**\n * web-streams-polyfill v2.1.1\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n    /// <reference lib=\"es2015.symbol\" />\n    var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n        Symbol :\n        function (description) { return \"Symbol(\" + description + \")\"; };\n\n    /// <reference lib=\"dom\" />\n    function noop() {\n        // do nothing\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n    var NumberIsNaN = Number.isNaN || function (x) {\n        // eslint-disable-next-line no-self-compare\n        return x !== x;\n    };\n\n    var rethrowAssertionErrorRejection =  noop;\n\n    function typeIsObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    function createArrayFromList(elements) {\n        // We use arrays to represent lists, so this is basically a no-op.\n        // Do a slice though just in case we happen to depend on the unique-ness.\n        return elements.slice();\n    }\n    function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {\n        new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n    }\n    function IsFiniteNonNegativeNumber(v) {\n        if (IsNonNegativeNumber(v) === false) {\n            return false;\n        }\n        if (v === Infinity) {\n            return false;\n        }\n        return true;\n    }\n    function IsNonNegativeNumber(v) {\n        if (typeof v !== 'number') {\n            return false;\n        }\n        if (NumberIsNaN(v)) {\n            return false;\n        }\n        if (v < 0) {\n            return false;\n        }\n        return true;\n    }\n    function Call(F, V, args) {\n        if (typeof F !== 'function') {\n            throw new TypeError('Argument is not a function');\n        }\n        return Function.prototype.apply.call(F, V, args);\n    }\n    function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {\n        var method = underlyingObject[methodName];\n        if (method !== undefined) {\n            if (typeof method !== 'function') {\n                throw new TypeError(method + \" is not a method\");\n            }\n            switch (algoArgCount) {\n                case 0: {\n                    return function () {\n                        return PromiseCall(method, underlyingObject, extraArgs);\n                    };\n                }\n                case 1: {\n                    return function (arg) {\n                        var fullArgs = [arg].concat(extraArgs);\n                        return PromiseCall(method, underlyingObject, fullArgs);\n                    };\n                }\n            }\n        }\n        return function () { return promiseResolvedWith(undefined); };\n    }\n    function InvokeOrNoop(O, P, args) {\n        var method = O[P];\n        if (method === undefined) {\n            return undefined;\n        }\n        return Call(method, O, args);\n    }\n    function PromiseCall(F, V, args) {\n        try {\n            return promiseResolvedWith(Call(F, V, args));\n        }\n        catch (value) {\n            return promiseRejectedWith(value);\n        }\n    }\n    // Not implemented correctly\n    function TransferArrayBuffer(O) {\n        return O;\n    }\n    // Not implemented correctly\n    function IsDetachedBuffer(O) {\n        return false;\n    }\n    function ValidateAndNormalizeHighWaterMark(highWaterMark) {\n        highWaterMark = Number(highWaterMark);\n        if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n            throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n        }\n        return highWaterMark;\n    }\n    function MakeSizeAlgorithmFromSizeFunction(size) {\n        if (size === undefined) {\n            return function () { return 1; };\n        }\n        if (typeof size !== 'function') {\n            throw new TypeError('size property of a queuing strategy must be a function');\n        }\n        return function (chunk) { return size(chunk); };\n    }\n    var originalPromise = Promise;\n    var originalPromiseThen = Promise.prototype.then;\n    var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n    var originalPromiseReject = Promise.reject.bind(originalPromise);\n    function newPromise(executor) {\n        return new originalPromise(executor);\n    }\n    function promiseResolvedWith(value) {\n        return originalPromiseResolve(value);\n    }\n    function promiseRejectedWith(reason) {\n        return originalPromiseReject(reason);\n    }\n    function PerformPromiseThen(promise, onFulfilled, onRejected) {\n        // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n        // approximation.\n        return originalPromiseThen.call(promise, onFulfilled, onRejected);\n    }\n    function uponPromise(promise, onFulfilled, onRejected) {\n        PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n    }\n    function uponFulfillment(promise, onFulfilled) {\n        uponPromise(promise, onFulfilled);\n    }\n    function uponRejection(promise, onRejected) {\n        uponPromise(promise, undefined, onRejected);\n    }\n    function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n        return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n    }\n    function setPromiseIsHandledToTrue(promise) {\n        PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n    }\n\n    // Original from Chromium\n    // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n    var QUEUE_MAX_ARRAY_SIZE = 16384;\n    /**\n     * Simple queue structure.\n     *\n     * Avoids scalability issues with using a packed array directly by using\n     * multiple arrays in a linked list and keeping the array size bounded.\n     */\n    var SimpleQueue = /** @class */ (function () {\n        function SimpleQueue() {\n            this._cursor = 0;\n            this._size = 0;\n            // _front and _back are always defined.\n            this._front = {\n                _elements: [],\n                _next: undefined\n            };\n            this._back = this._front;\n            // The cursor is used to avoid calling Array.shift().\n            // It contains the index of the front element of the array inside the\n            // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n            this._cursor = 0;\n            // When there is only one node, size === elements.length - cursor.\n            this._size = 0;\n        }\n        Object.defineProperty(SimpleQueue.prototype, \"length\", {\n            get: function () {\n                return this._size;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        // For exception safety, this method is structured in order:\n        // 1. Read state\n        // 2. Calculate required state mutations\n        // 3. Perform state mutations\n        SimpleQueue.prototype.push = function (element) {\n            var oldBack = this._back;\n            var newBack = oldBack;\n            if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n                newBack = {\n                    _elements: [],\n                    _next: undefined\n                };\n            }\n            // push() is the mutation most likely to throw an exception, so it\n            // goes first.\n            oldBack._elements.push(element);\n            if (newBack !== oldBack) {\n                this._back = newBack;\n                oldBack._next = newBack;\n            }\n            ++this._size;\n        };\n        // Like push(), shift() follows the read -> calculate -> mutate pattern for\n        // exception safety.\n        SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n            var oldFront = this._front;\n            var newFront = oldFront;\n            var oldCursor = this._cursor;\n            var newCursor = oldCursor + 1;\n            var elements = oldFront._elements;\n            var element = elements[oldCursor];\n            if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n                newFront = oldFront._next;\n                newCursor = 0;\n            }\n            // No mutations before this point.\n            --this._size;\n            this._cursor = newCursor;\n            if (oldFront !== newFront) {\n                this._front = newFront;\n            }\n            // Permit shifted element to be garbage collected.\n            elements[oldCursor] = undefined;\n            return element;\n        };\n        // The tricky thing about forEach() is that it can be called\n        // re-entrantly. The queue may be mutated inside the callback. It is easy to\n        // see that push() within the callback has no negative effects since the end\n        // of the queue is checked for on every iteration. If shift() is called\n        // repeatedly within the callback then the next iteration may return an\n        // element that has been removed. In this case the callback will be called\n        // with undefined values until we either \"catch up\" with elements that still\n        // exist or reach the back of the queue.\n        SimpleQueue.prototype.forEach = function (callback) {\n            var i = this._cursor;\n            var node = this._front;\n            var elements = node._elements;\n            while (i !== elements.length || node._next !== undefined) {\n                if (i === elements.length) {\n                    node = node._next;\n                    elements = node._elements;\n                    i = 0;\n                    if (elements.length === 0) {\n                        break;\n                    }\n                }\n                callback(elements[i]);\n                ++i;\n            }\n        };\n        // Return the element that would be returned if shift() was called now,\n        // without modifying the queue.\n        SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n            var front = this._front;\n            var cursor = this._cursor;\n            return front._elements[cursor];\n        };\n        return SimpleQueue;\n    }());\n\n    function ReadableStreamCreateReadResult(value, done, forAuthorCode) {\n        var prototype = null;\n        if (forAuthorCode === true) {\n            prototype = Object.prototype;\n        }\n        var obj = Object.create(prototype);\n        obj.value = value;\n        obj.done = done;\n        return obj;\n    }\n    function ReadableStreamReaderGenericInitialize(reader, stream) {\n        reader._forAuthorCode = true;\n        reader._ownerReadableStream = stream;\n        stream._reader = reader;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseInitialize(reader);\n        }\n        else if (stream._state === 'closed') {\n            defaultReaderClosedPromiseInitializeAsResolved(reader);\n        }\n        else {\n            defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n        }\n    }\n    // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n    // check.\n    function ReadableStreamReaderGenericCancel(reader, reason) {\n        var stream = reader._ownerReadableStream;\n        return ReadableStreamCancel(stream, reason);\n    }\n    function ReadableStreamReaderGenericRelease(reader) {\n        if (reader._ownerReadableStream._state === 'readable') {\n            defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n        }\n        else {\n            defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n        }\n        reader._ownerReadableStream._reader = undefined;\n        reader._ownerReadableStream = undefined;\n    }\n    // Helper functions for the readers.\n    function readerLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released reader');\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderClosedPromiseInitialize(reader) {\n        reader._closedPromise = newPromise(function (resolve, reject) {\n            reader._closedPromise_resolve = resolve;\n            reader._closedPromise_reject = reject;\n        });\n    }\n    function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseReject(reader, reason);\n    }\n    function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function defaultReaderClosedPromiseReject(reader, reason) {\n        setPromiseIsHandledToTrue(reader._closedPromise);\n        reader._closedPromise_reject(reason);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n    function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n        defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n    }\n    function defaultReaderClosedPromiseResolve(reader) {\n        reader._closedPromise_resolve(undefined);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n\n    var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n    var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamDefaultReader(stream, forAuthorCode) {\n        if (forAuthorCode === void 0) { forAuthorCode = false; }\n        var reader = new ReadableStreamDefaultReader(stream);\n        reader._forAuthorCode = forAuthorCode;\n        return reader;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var readRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._reader._readRequests.push(readRequest);\n        });\n        return promise;\n    }\n    function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readRequest = reader._readRequests.shift();\n        readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\n    }\n    function ReadableStreamGetNumReadRequests(stream) {\n        return stream._reader._readRequests.length;\n    }\n    function ReadableStreamHasDefaultReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamDefaultReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    var ReadableStreamDefaultReader = /** @class */ (function () {\n        function ReadableStreamDefaultReader(stream) {\n            if (IsReadableStream(stream) === false) {\n                throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n            }\n            if (IsReadableStreamLocked(stream) === true) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n            get: function () {\n                if (!IsReadableStreamDefaultReader(this)) {\n                    return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        ReadableStreamDefaultReader.prototype.read = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            return ReadableStreamDefaultReaderRead(this);\n        };\n        ReadableStreamDefaultReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                throw defaultReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamDefaultReader;\n    }());\n    // Abstract operations for the readers.\n    function IsReadableStreamDefaultReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultReaderRead(reader) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return stream._readableStreamController[PullSteps]();\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var _a;\n    var AsyncIteratorPrototype;\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n        // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n        AsyncIteratorPrototype = (_a = {},\n            // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n            // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n            _a[SymbolPolyfill.asyncIterator] = function () {\n                return this;\n            },\n            _a);\n        Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var ReadableStreamAsyncIteratorPrototype = {\n        next: function () {\n            if (IsReadableStreamAsyncIterator(this) === false) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            var reader = this._asyncIteratorReader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('iterate'));\n            }\n            return transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\n                var done = result.done;\n                if (done) {\n                    ReadableStreamReaderGenericRelease(reader);\n                }\n                var value = result.value;\n                return ReadableStreamCreateReadResult(value, done, true);\n            });\n        },\n        return: function (value) {\n            if (IsReadableStreamAsyncIterator(this) === false) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            var reader = this._asyncIteratorReader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('finish iterating'));\n            }\n            if (reader._readRequests.length > 0) {\n                return promiseRejectedWith(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));\n            }\n            if (this._preventCancel === false) {\n                var result = ReadableStreamReaderGenericCancel(reader, value);\n                ReadableStreamReaderGenericRelease(reader);\n                return transformPromiseWith(result, function () { return ReadableStreamCreateReadResult(value, true, true); });\n            }\n            ReadableStreamReaderGenericRelease(reader);\n            return promiseResolvedWith(ReadableStreamCreateReadResult(value, true, true));\n        }\n    };\n    if (AsyncIteratorPrototype !== undefined) {\n        Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n    }\n    Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });\n    Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n        if (preventCancel === void 0) { preventCancel = false; }\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n        iterator._asyncIteratorReader = reader;\n        iterator._preventCancel = Boolean(preventCancel);\n        return iterator;\n    }\n    function IsReadableStreamAsyncIterator(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {\n            return false;\n        }\n        return true;\n    }\n    // Helper functions for the ReadableStream.\n    function streamAsyncIteratorBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n    }\n\n    function DequeueValue(container) {\n        var pair = container._queue.shift();\n        container._queueTotalSize -= pair.size;\n        if (container._queueTotalSize < 0) {\n            container._queueTotalSize = 0;\n        }\n        return pair.value;\n    }\n    function EnqueueValueWithSize(container, value, size) {\n        size = Number(size);\n        if (!IsFiniteNonNegativeNumber(size)) {\n            throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n        }\n        container._queue.push({ value: value, size: size });\n        container._queueTotalSize += size;\n    }\n    function PeekQueueValue(container) {\n        var pair = container._queue.peek();\n        return pair.value;\n    }\n    function ResetQueue(container) {\n        container._queue = new SimpleQueue();\n        container._queueTotalSize = 0;\n    }\n\n    var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n    var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n    var WritableStream = /** @class */ (function () {\n        function WritableStream(underlyingSink, strategy) {\n            if (underlyingSink === void 0) { underlyingSink = {}; }\n            if (strategy === void 0) { strategy = {}; }\n            InitializeWritableStream(this);\n            var size = strategy.size;\n            var highWaterMark = strategy.highWaterMark;\n            var type = underlyingSink.type;\n            if (type !== undefined) {\n                throw new RangeError('Invalid type is specified');\n            }\n            var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\n            if (highWaterMark === undefined) {\n                highWaterMark = 1;\n            }\n            highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n            SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n        }\n        Object.defineProperty(WritableStream.prototype, \"locked\", {\n            get: function () {\n                if (IsWritableStream(this) === false) {\n                    throw streamBrandCheckException('locked');\n                }\n                return IsWritableStreamLocked(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        WritableStream.prototype.abort = function (reason) {\n            if (IsWritableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException('abort'));\n            }\n            if (IsWritableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n            }\n            return WritableStreamAbort(this, reason);\n        };\n        WritableStream.prototype.close = function () {\n            if (IsWritableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException('close'));\n            }\n            if (IsWritableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamClose(this);\n        };\n        WritableStream.prototype.getWriter = function () {\n            if (IsWritableStream(this) === false) {\n                throw streamBrandCheckException('getWriter');\n            }\n            return AcquireWritableStreamDefaultWriter(this);\n        };\n        return WritableStream;\n    }());\n    // Abstract operations for the WritableStream.\n    function AcquireWritableStreamDefaultWriter(stream) {\n        return new WritableStreamDefaultWriter(stream);\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(WritableStream.prototype);\n        InitializeWritableStream(stream);\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeWritableStream(stream) {\n        stream._state = 'writable';\n        // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n        // 'erroring' or 'errored'. May be set to an undefined value.\n        stream._storedError = undefined;\n        stream._writer = undefined;\n        // Initialize to undefined first because the constructor of the controller checks this\n        // variable to validate the caller.\n        stream._writableStreamController = undefined;\n        // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n        // producer without waiting for the queued writes to finish.\n        stream._writeRequests = new SimpleQueue();\n        // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n        // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n        stream._inFlightWriteRequest = undefined;\n        // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n        // has been detached.\n        stream._closeRequest = undefined;\n        // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n        // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n        stream._inFlightCloseRequest = undefined;\n        // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n        stream._pendingAbortRequest = undefined;\n        // The backpressure signal set by the controller.\n        stream._backpressure = false;\n    }\n    function IsWritableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function IsWritableStreamLocked(stream) {\n        if (stream._writer === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamAbort(stream, reason) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._pendingAbortRequest !== undefined) {\n            return stream._pendingAbortRequest._promise;\n        }\n        var wasAlreadyErroring = false;\n        if (state === 'erroring') {\n            wasAlreadyErroring = true;\n            // reason will not be used, so don't keep a reference to it.\n            reason = undefined;\n        }\n        var promise = newPromise(function (resolve, reject) {\n            stream._pendingAbortRequest = {\n                _promise: undefined,\n                _resolve: resolve,\n                _reject: reject,\n                _reason: reason,\n                _wasAlreadyErroring: wasAlreadyErroring\n            };\n        });\n        stream._pendingAbortRequest._promise = promise;\n        if (wasAlreadyErroring === false) {\n            WritableStreamStartErroring(stream, reason);\n        }\n        return promise;\n    }\n    function WritableStreamClose(stream) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n        }\n        var promise = newPromise(function (resolve, reject) {\n            var closeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._closeRequest = closeRequest;\n        });\n        var writer = stream._writer;\n        if (writer !== undefined && stream._backpressure === true && state === 'writable') {\n            defaultWriterReadyPromiseResolve(writer);\n        }\n        WritableStreamDefaultControllerClose(stream._writableStreamController);\n        return promise;\n    }\n    // WritableStream API exposed for controllers.\n    function WritableStreamAddWriteRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var writeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._writeRequests.push(writeRequest);\n        });\n        return promise;\n    }\n    function WritableStreamDealWithRejection(stream, error) {\n        var state = stream._state;\n        if (state === 'writable') {\n            WritableStreamStartErroring(stream, error);\n            return;\n        }\n        WritableStreamFinishErroring(stream);\n    }\n    function WritableStreamStartErroring(stream, reason) {\n        var controller = stream._writableStreamController;\n        stream._state = 'erroring';\n        stream._storedError = reason;\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n        }\n        if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n            WritableStreamFinishErroring(stream);\n        }\n    }\n    function WritableStreamFinishErroring(stream) {\n        stream._state = 'errored';\n        stream._writableStreamController[ErrorSteps]();\n        var storedError = stream._storedError;\n        stream._writeRequests.forEach(function (writeRequest) {\n            writeRequest._reject(storedError);\n        });\n        stream._writeRequests = new SimpleQueue();\n        if (stream._pendingAbortRequest === undefined) {\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var abortRequest = stream._pendingAbortRequest;\n        stream._pendingAbortRequest = undefined;\n        if (abortRequest._wasAlreadyErroring === true) {\n            abortRequest._reject(storedError);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n        uponPromise(promise, function () {\n            abortRequest._resolve();\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        }, function (reason) {\n            abortRequest._reject(reason);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        });\n    }\n    function WritableStreamFinishInFlightWrite(stream) {\n        stream._inFlightWriteRequest._resolve(undefined);\n        stream._inFlightWriteRequest = undefined;\n    }\n    function WritableStreamFinishInFlightWriteWithError(stream, error) {\n        stream._inFlightWriteRequest._reject(error);\n        stream._inFlightWriteRequest = undefined;\n        WritableStreamDealWithRejection(stream, error);\n    }\n    function WritableStreamFinishInFlightClose(stream) {\n        stream._inFlightCloseRequest._resolve(undefined);\n        stream._inFlightCloseRequest = undefined;\n        var state = stream._state;\n        if (state === 'erroring') {\n            // The error was too late to do anything, so it is ignored.\n            stream._storedError = undefined;\n            if (stream._pendingAbortRequest !== undefined) {\n                stream._pendingAbortRequest._resolve();\n                stream._pendingAbortRequest = undefined;\n            }\n        }\n        stream._state = 'closed';\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseResolve(writer);\n        }\n    }\n    function WritableStreamFinishInFlightCloseWithError(stream, error) {\n        stream._inFlightCloseRequest._reject(error);\n        stream._inFlightCloseRequest = undefined;\n        // Never execute sink abort() after sink close().\n        if (stream._pendingAbortRequest !== undefined) {\n            stream._pendingAbortRequest._reject(error);\n            stream._pendingAbortRequest = undefined;\n        }\n        WritableStreamDealWithRejection(stream, error);\n    }\n    // TODO(ricea): Fix alphabetical order.\n    function WritableStreamCloseQueuedOrInFlight(stream) {\n        if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamHasOperationMarkedInFlight(stream) {\n        if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamMarkCloseRequestInFlight(stream) {\n        stream._inFlightCloseRequest = stream._closeRequest;\n        stream._closeRequest = undefined;\n    }\n    function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n        stream._inFlightWriteRequest = stream._writeRequests.shift();\n    }\n    function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n        if (stream._closeRequest !== undefined) {\n            stream._closeRequest._reject(stream._storedError);\n            stream._closeRequest = undefined;\n        }\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseReject(writer, stream._storedError);\n        }\n    }\n    function WritableStreamUpdateBackpressure(stream, backpressure) {\n        var writer = stream._writer;\n        if (writer !== undefined && backpressure !== stream._backpressure) {\n            if (backpressure === true) {\n                defaultWriterReadyPromiseReset(writer);\n            }\n            else {\n                defaultWriterReadyPromiseResolve(writer);\n            }\n        }\n        stream._backpressure = backpressure;\n    }\n    var WritableStreamDefaultWriter = /** @class */ (function () {\n        function WritableStreamDefaultWriter(stream) {\n            if (IsWritableStream(stream) === false) {\n                throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n            }\n            if (IsWritableStreamLocked(stream) === true) {\n                throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n            }\n            this._ownerWritableStream = stream;\n            stream._writer = this;\n            var state = stream._state;\n            if (state === 'writable') {\n                if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n                    defaultWriterReadyPromiseInitialize(this);\n                }\n                else {\n                    defaultWriterReadyPromiseInitializeAsResolved(this);\n                }\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'erroring') {\n                defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'closed') {\n                defaultWriterReadyPromiseInitializeAsResolved(this);\n                defaultWriterClosedPromiseInitializeAsResolved(this);\n            }\n            else {\n                var storedError = stream._storedError;\n                defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n                defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n            }\n        }\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    throw defaultWriterBrandCheckException('desiredSize');\n                }\n                if (this._ownerWritableStream === undefined) {\n                    throw defaultWriterLockException('desiredSize');\n                }\n                return WritableStreamDefaultWriterGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n                }\n                return this._readyPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        WritableStreamDefaultWriter.prototype.abort = function (reason) {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('abort'));\n            }\n            return WritableStreamDefaultWriterAbort(this, reason);\n        };\n        WritableStreamDefaultWriter.prototype.close = function () {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('close'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamDefaultWriterClose(this);\n        };\n        WritableStreamDefaultWriter.prototype.releaseLock = function () {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                throw defaultWriterBrandCheckException('releaseLock');\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return;\n            }\n            WritableStreamDefaultWriterRelease(this);\n        };\n        WritableStreamDefaultWriter.prototype.write = function (chunk) {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('write to'));\n            }\n            return WritableStreamDefaultWriterWrite(this, chunk);\n        };\n        return WritableStreamDefaultWriter;\n    }());\n    // Abstract operations for the WritableStreamDefaultWriter.\n    function IsWritableStreamDefaultWriter(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n            return false;\n        }\n        return true;\n    }\n    // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n    function WritableStreamDefaultWriterAbort(writer, reason) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamAbort(stream, reason);\n    }\n    function WritableStreamDefaultWriterClose(writer) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamClose(stream);\n    }\n    function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return WritableStreamDefaultWriterClose(writer);\n    }\n    function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n        if (writer._closedPromiseState === 'pending') {\n            defaultWriterClosedPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterClosedPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n        if (writer._readyPromiseState === 'pending') {\n            defaultWriterReadyPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterReadyPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterGetDesiredSize(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (state === 'errored' || state === 'erroring') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n    }\n    function WritableStreamDefaultWriterRelease(writer) {\n        var stream = writer._ownerWritableStream;\n        var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n        WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n        // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n        // rejected until afterwards. This means that simply testing state will not work.\n        WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n        stream._writer = undefined;\n        writer._ownerWritableStream = undefined;\n    }\n    function WritableStreamDefaultWriterWrite(writer, chunk) {\n        var stream = writer._ownerWritableStream;\n        var controller = stream._writableStreamController;\n        var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n        if (stream !== writer._ownerWritableStream) {\n            return promiseRejectedWith(defaultWriterLockException('write to'));\n        }\n        var state = stream._state;\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n            return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n        }\n        if (state === 'erroring') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        var promise = WritableStreamAddWriteRequest(stream);\n        WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n        return promise;\n    }\n    var WritableStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function WritableStreamDefaultController() {\n            throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');\n        }\n        WritableStreamDefaultController.prototype.error = function (e) {\n            if (IsWritableStreamDefaultController(this) === false) {\n                throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n            }\n            var state = this._controlledWritableStream._state;\n            if (state !== 'writable') {\n                // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n                // just treat it as a no-op.\n                return;\n            }\n            WritableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n            var result = this._abortAlgorithm(reason);\n            WritableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n            ResetQueue(this);\n        };\n        return WritableStreamDefaultController;\n    }());\n    // Abstract operations implementing interface required by the WritableStream.\n    function IsWritableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n            return false;\n        }\n        return true;\n    }\n    function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledWritableStream = stream;\n        stream._writableStreamController = controller;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._writeAlgorithm = writeAlgorithm;\n        controller._closeAlgorithm = closeAlgorithm;\n        controller._abortAlgorithm = abortAlgorithm;\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n        var startResult = startAlgorithm();\n        var startPromise = promiseResolvedWith(startResult);\n        uponPromise(startPromise, function () {\n            controller._started = true;\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (r) {\n            controller._started = true;\n            WritableStreamDealWithRejection(stream, r);\n        });\n    }\n    function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingSink, 'start', [controller]);\n        }\n        var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);\n        var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);\n        var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n    function WritableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._writeAlgorithm = undefined;\n        controller._closeAlgorithm = undefined;\n        controller._abortAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    function WritableStreamDefaultControllerClose(controller) {\n        EnqueueValueWithSize(controller, 'close', 0);\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n        try {\n            return controller._strategySizeAlgorithm(chunk);\n        }\n        catch (chunkSizeE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n            return 1;\n        }\n    }\n    function WritableStreamDefaultControllerGetDesiredSize(controller) {\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n        var writeRecord = { chunk: chunk };\n        try {\n            EnqueueValueWithSize(controller, writeRecord, chunkSize);\n        }\n        catch (enqueueE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n            return;\n        }\n        var stream = controller._controlledWritableStream;\n        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n            var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n            WritableStreamUpdateBackpressure(stream, backpressure);\n        }\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    // Abstract operations for the WritableStreamDefaultController.\n    function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n        var stream = controller._controlledWritableStream;\n        if (controller._started === false) {\n            return;\n        }\n        if (stream._inFlightWriteRequest !== undefined) {\n            return;\n        }\n        var state = stream._state;\n        if (state === 'erroring') {\n            WritableStreamFinishErroring(stream);\n            return;\n        }\n        if (controller._queue.length === 0) {\n            return;\n        }\n        var writeRecord = PeekQueueValue(controller);\n        if (writeRecord === 'close') {\n            WritableStreamDefaultControllerProcessClose(controller);\n        }\n        else {\n            WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n        }\n    }\n    function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n        if (controller._controlledWritableStream._state === 'writable') {\n            WritableStreamDefaultControllerError(controller, error);\n        }\n    }\n    function WritableStreamDefaultControllerProcessClose(controller) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkCloseRequestInFlight(stream);\n        DequeueValue(controller);\n        var sinkClosePromise = controller._closeAlgorithm();\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(sinkClosePromise, function () {\n            WritableStreamFinishInFlightClose(stream);\n        }, function (reason) {\n            WritableStreamFinishInFlightCloseWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkFirstWriteRequestInFlight(stream);\n        var sinkWritePromise = controller._writeAlgorithm(chunk);\n        uponPromise(sinkWritePromise, function () {\n            WritableStreamFinishInFlightWrite(stream);\n            var state = stream._state;\n            DequeueValue(controller);\n            if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n                var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n                WritableStreamUpdateBackpressure(stream, backpressure);\n            }\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (reason) {\n            if (stream._state === 'writable') {\n                WritableStreamDefaultControllerClearAlgorithms(controller);\n            }\n            WritableStreamFinishInFlightWriteWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerGetBackpressure(controller) {\n        var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n        return desiredSize <= 0;\n    }\n    // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n    function WritableStreamDefaultControllerError(controller, error) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        WritableStreamStartErroring(stream, error);\n    }\n    // Helper functions for the WritableStream.\n    function streamBrandCheckException(name) {\n        return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n    }\n    // Helper functions for the WritableStreamDefaultWriter.\n    function defaultWriterBrandCheckException(name) {\n        return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n    }\n    function defaultWriterLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released writer');\n    }\n    function defaultWriterClosedPromiseInitialize(writer) {\n        writer._closedPromise = newPromise(function (resolve, reject) {\n            writer._closedPromise_resolve = resolve;\n            writer._closedPromise_reject = reject;\n            writer._closedPromiseState = 'pending';\n        });\n    }\n    function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseReject(writer, reason);\n    }\n    function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseResolve(writer);\n    }\n    function defaultWriterClosedPromiseReject(writer, reason) {\n        setPromiseIsHandledToTrue(writer._closedPromise);\n        writer._closedPromise_reject(reason);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'rejected';\n    }\n    function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n        defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterClosedPromiseResolve(writer) {\n        writer._closedPromise_resolve(undefined);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'resolved';\n    }\n    function defaultWriterReadyPromiseInitialize(writer) {\n        writer._readyPromise = newPromise(function (resolve, reject) {\n            writer._readyPromise_resolve = resolve;\n            writer._readyPromise_reject = reject;\n        });\n        writer._readyPromiseState = 'pending';\n    }\n    function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseReject(writer, reason);\n    }\n    function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseResolve(writer);\n    }\n    function defaultWriterReadyPromiseReject(writer, reason) {\n        setPromiseIsHandledToTrue(writer._readyPromise);\n        writer._readyPromise_reject(reason);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'rejected';\n    }\n    function defaultWriterReadyPromiseReset(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n    }\n    function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n        defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterReadyPromiseResolve(writer) {\n        writer._readyPromise_resolve(undefined);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'fulfilled';\n    }\n\n    function isAbortSignal(value) {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n        try {\n            return typeof value.aborted === 'boolean';\n        }\n        catch (_a) {\n            // AbortSignal.prototype.aborted throws if its brand check fails\n            return false;\n        }\n    }\n\n    /// <reference lib=\"dom\" />\n    var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n    /// <reference types=\"node\" />\n    function isDOMExceptionConstructor(ctor) {\n        if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n            return false;\n        }\n        try {\n            new ctor();\n            return true;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    function createDOMExceptionPolyfill() {\n        var ctor = function DOMException(message, name) {\n            this.message = message || '';\n            this.name = name || 'Error';\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, this.constructor);\n            }\n        };\n        ctor.prototype = Object.create(Error.prototype);\n        Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n        return ctor;\n    }\n    var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n    function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n        var reader = AcquireReadableStreamDefaultReader(source);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        source._disturbed = true;\n        var shuttingDown = false;\n        // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n        var currentWrite = promiseResolvedWith(undefined);\n        return newPromise(function (resolve, reject) {\n            var abortAlgorithm;\n            if (signal !== undefined) {\n                abortAlgorithm = function () {\n                    var error = new DOMException$1('Aborted', 'AbortError');\n                    var actions = [];\n                    if (preventAbort === false) {\n                        actions.push(function () {\n                            if (dest._state === 'writable') {\n                                return WritableStreamAbort(dest, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    if (preventCancel === false) {\n                        actions.push(function () {\n                            if (source._state === 'readable') {\n                                return ReadableStreamCancel(source, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n                };\n                if (signal.aborted === true) {\n                    abortAlgorithm();\n                    return;\n                }\n                signal.addEventListener('abort', abortAlgorithm);\n            }\n            // Using reader and writer, read all chunks from this and write them to dest\n            // - Backpressure must be enforced\n            // - Shutdown must stop all activity\n            function pipeLoop() {\n                return newPromise(function (resolveLoop, rejectLoop) {\n                    function next(done) {\n                        if (done) {\n                            resolveLoop();\n                        }\n                        else {\n                            // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n                            // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n                            PerformPromiseThen(pipeStep(), next, rejectLoop);\n                        }\n                    }\n                    next(false);\n                });\n            }\n            function pipeStep() {\n                if (shuttingDown === true) {\n                    return promiseResolvedWith(true);\n                }\n                return PerformPromiseThen(writer._readyPromise, function () {\n                    return PerformPromiseThen(ReadableStreamDefaultReaderRead(reader), function (result) {\n                        if (result.done === true) {\n                            return true;\n                        }\n                        currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, result.value), undefined, noop);\n                        return false;\n                    });\n                });\n            }\n            // Errors must be propagated forward\n            isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n                if (preventAbort === false) {\n                    shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Errors must be propagated backward\n            isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n                if (preventCancel === false) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Closing must be propagated forward\n            isOrBecomesClosed(source, reader._closedPromise, function () {\n                if (preventClose === false) {\n                    shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n                }\n                else {\n                    shutdown();\n                }\n            });\n            // Closing must be propagated backward\n            if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n                var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n                if (preventCancel === false) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n                }\n                else {\n                    shutdown(true, destClosed_1);\n                }\n            }\n            setPromiseIsHandledToTrue(pipeLoop());\n            function waitForWritesToFinish() {\n                // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n                // for that too.\n                var oldCurrentWrite = currentWrite;\n                return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n            }\n            function isOrBecomesErrored(stream, promise, action) {\n                if (stream._state === 'errored') {\n                    action(stream._storedError);\n                }\n                else {\n                    uponRejection(promise, action);\n                }\n            }\n            function isOrBecomesClosed(stream, promise, action) {\n                if (stream._state === 'closed') {\n                    action();\n                }\n                else {\n                    uponFulfillment(promise, action);\n                }\n            }\n            function shutdownWithAction(action, originalIsError, originalError) {\n                if (shuttingDown === true) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n                    uponFulfillment(waitForWritesToFinish(), doTheRest);\n                }\n                else {\n                    doTheRest();\n                }\n                function doTheRest() {\n                    uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n                }\n            }\n            function shutdown(isError, error) {\n                if (shuttingDown === true) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n                    uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n                }\n                else {\n                    finalize(isError, error);\n                }\n            }\n            function finalize(isError, error) {\n                WritableStreamDefaultWriterRelease(writer);\n                ReadableStreamReaderGenericRelease(reader);\n                if (signal !== undefined) {\n                    signal.removeEventListener('abort', abortAlgorithm);\n                }\n                if (isError) {\n                    reject(error);\n                }\n                else {\n                    resolve(undefined);\n                }\n            }\n        });\n    }\n\n    var ReadableStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function ReadableStreamDefaultController() {\n            throw new TypeError();\n        }\n        Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsReadableStreamDefaultController(this) === false) {\n                    throw defaultControllerBrandCheckException('desiredSize');\n                }\n                return ReadableStreamDefaultControllerGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamDefaultController.prototype.close = function () {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('close');\n            }\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\n                throw new TypeError('The stream is not in a state that permits close');\n            }\n            ReadableStreamDefaultControllerClose(this);\n        };\n        ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('enqueue');\n            }\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\n                throw new TypeError('The stream is not in a state that permits enqueue');\n            }\n            return ReadableStreamDefaultControllerEnqueue(this, chunk);\n        };\n        ReadableStreamDefaultController.prototype.error = function (e) {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('error');\n            }\n            ReadableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[PullSteps] = function () {\n            var stream = this._controlledReadableStream;\n            if (this._queue.length > 0) {\n                var chunk = DequeueValue(this);\n                if (this._closeRequested === true && this._queue.length === 0) {\n                    ReadableStreamDefaultControllerClearAlgorithms(this);\n                    ReadableStreamClose(stream);\n                }\n                else {\n                    ReadableStreamDefaultControllerCallPullIfNeeded(this);\n                }\n                return promiseResolvedWith(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));\n            }\n            var pendingPromise = ReadableStreamAddReadRequest(stream);\n            ReadableStreamDefaultControllerCallPullIfNeeded(this);\n            return pendingPromise;\n        };\n        return ReadableStreamDefaultController;\n    }());\n    // Abstract operations for the ReadableStreamDefaultController.\n    function IsReadableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n        if (shouldPull === false) {\n            return;\n        }\n        if (controller._pulling === true) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain === true) {\n                controller._pullAgain = false;\n                ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableStreamDefaultControllerError(controller, e);\n        });\n    }\n    function ReadableStreamDefaultControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableStream;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {\n            return false;\n        }\n        if (controller._started === false) {\n            return false;\n        }\n        if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n    function ReadableStreamDefaultControllerClose(controller) {\n        var stream = controller._controlledReadableStream;\n        controller._closeRequested = true;\n        if (controller._queue.length === 0) {\n            ReadableStreamDefaultControllerClearAlgorithms(controller);\n            ReadableStreamClose(stream);\n        }\n    }\n    function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableStream;\n        if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            ReadableStreamFulfillReadRequest(stream, chunk, false);\n        }\n        else {\n            var chunkSize = void 0;\n            try {\n                chunkSize = controller._strategySizeAlgorithm(chunk);\n            }\n            catch (chunkSizeE) {\n                ReadableStreamDefaultControllerError(controller, chunkSizeE);\n                throw chunkSizeE;\n            }\n            try {\n                EnqueueValueWithSize(controller, chunk, chunkSize);\n            }\n            catch (enqueueE) {\n                ReadableStreamDefaultControllerError(controller, enqueueE);\n                throw enqueueE;\n            }\n        }\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    function ReadableStreamDefaultControllerError(controller, e) {\n        var stream = controller._controlledReadableStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ResetQueue(controller);\n        ReadableStreamDefaultControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n        var stream = controller._controlledReadableStream;\n        var state = stream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    // This is used in the implementation of TransformStream.\n    function ReadableStreamDefaultControllerHasBackpressure(controller) {\n        if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (controller._closeRequested === false && state === 'readable') {\n            return true;\n        }\n        return false;\n    }\n    function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledReadableStream = stream;\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._closeRequested = false;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableStreamDefaultControllerError(controller, r);\n        });\n    }\n    function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingSource, 'start', [controller]);\n        }\n        var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);\n        var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // Helper functions for the ReadableStreamDefaultController.\n    function defaultControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n    }\n\n    function ReadableStreamTee(stream, cloneForBranch2) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function pullAlgorithm() {\n            if (reading === true) {\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var readPromise = transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\n                reading = false;\n                var done = result.done;\n                if (done === true) {\n                    if (canceled1 === false) {\n                        ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n                    }\n                    if (canceled2 === false) {\n                        ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n                    }\n                    return;\n                }\n                var value = result.value;\n                var value1 = value;\n                var value2 = value;\n                // There is no way to access the cloning code right now in the reference implementation.\n                // If we add one then we'll need an implementation for serializable objects.\n                // if (canceled2 === false && cloneForBranch2 === true) {\n                //   value2 = StructuredDeserialize(StructuredSerialize(value2));\n                // }\n                if (canceled1 === false) {\n                    ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);\n                }\n                if (canceled2 === false) {\n                    ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);\n                }\n            });\n            setPromiseIsHandledToTrue(readPromise);\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2 === true) {\n                var compositeReason = createArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1 === true) {\n                var compositeReason = createArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() { }\n        branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n        branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n        uponRejection(reader._closedPromise, function (r) {\n            ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n            ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n        });\n        return [branch1, branch2];\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger#Polyfill\n    var NumberIsInteger = Number.isInteger || function (value) {\n        return typeof value === 'number' &&\n            isFinite(value) &&\n            Math.floor(value) === value;\n    };\n\n    var ReadableStreamBYOBRequest = /** @class */ (function () {\n        /** @internal */\n        function ReadableStreamBYOBRequest() {\n            throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');\n        }\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n            get: function () {\n                if (IsReadableStreamBYOBRequest(this) === false) {\n                    throw byobRequestBrandCheckException('view');\n                }\n                return this._view;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n            if (IsReadableStreamBYOBRequest(this) === false) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(this._view.buffer) === true) ;\n            ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n        };\n        ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n            if (IsReadableStreamBYOBRequest(this) === false) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (!ArrayBuffer.isView(view)) {\n                throw new TypeError('You can only respond with array buffer views');\n            }\n            if (IsDetachedBuffer(view.buffer) === true) ;\n            ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n        };\n        return ReadableStreamBYOBRequest;\n    }());\n    var ReadableByteStreamController = /** @class */ (function () {\n        /** @internal */\n        function ReadableByteStreamController() {\n            throw new TypeError('ReadableByteStreamController constructor cannot be used directly');\n        }\n        Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n            get: function () {\n                if (IsReadableByteStreamController(this) === false) {\n                    throw byteStreamControllerBrandCheckException('byobRequest');\n                }\n                if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n                    var firstDescriptor = this._pendingPullIntos.peek();\n                    var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n                    var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n                    SetUpReadableStreamBYOBRequest(byobRequest, this, view);\n                    this._byobRequest = byobRequest;\n                }\n                return this._byobRequest;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsReadableByteStreamController(this) === false) {\n                    throw byteStreamControllerBrandCheckException('desiredSize');\n                }\n                return ReadableByteStreamControllerGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableByteStreamController.prototype.close = function () {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('close');\n            }\n            if (this._closeRequested === true) {\n                throw new TypeError('The stream has already been closed; do not close it again!');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n            }\n            ReadableByteStreamControllerClose(this);\n        };\n        ReadableByteStreamController.prototype.enqueue = function (chunk) {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('enqueue');\n            }\n            if (this._closeRequested === true) {\n                throw new TypeError('stream is closed or draining');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n            }\n            if (!ArrayBuffer.isView(chunk)) {\n                throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n            }\n            if (IsDetachedBuffer(chunk.buffer) === true) ;\n            ReadableByteStreamControllerEnqueue(this, chunk);\n        };\n        ReadableByteStreamController.prototype.error = function (e) {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('error');\n            }\n            ReadableByteStreamControllerError(this, e);\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n            if (this._pendingPullIntos.length > 0) {\n                var firstDescriptor = this._pendingPullIntos.peek();\n                firstDescriptor.bytesFilled = 0;\n            }\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableByteStreamControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[PullSteps] = function () {\n            var stream = this._controlledReadableByteStream;\n            if (this._queueTotalSize > 0) {\n                var entry = this._queue.shift();\n                this._queueTotalSize -= entry.byteLength;\n                ReadableByteStreamControllerHandleQueueDrain(this);\n                var view = void 0;\n                try {\n                    view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n                }\n                catch (viewE) {\n                    return promiseRejectedWith(viewE);\n                }\n                return promiseResolvedWith(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));\n            }\n            var autoAllocateChunkSize = this._autoAllocateChunkSize;\n            if (autoAllocateChunkSize !== undefined) {\n                var buffer = void 0;\n                try {\n                    buffer = new ArrayBuffer(autoAllocateChunkSize);\n                }\n                catch (bufferE) {\n                    return promiseRejectedWith(bufferE);\n                }\n                var pullIntoDescriptor = {\n                    buffer: buffer,\n                    byteOffset: 0,\n                    byteLength: autoAllocateChunkSize,\n                    bytesFilled: 0,\n                    elementSize: 1,\n                    ctor: Uint8Array,\n                    readerType: 'default'\n                };\n                this._pendingPullIntos.push(pullIntoDescriptor);\n            }\n            var promise = ReadableStreamAddReadRequest(stream);\n            ReadableByteStreamControllerCallPullIfNeeded(this);\n            return promise;\n        };\n        return ReadableByteStreamController;\n    }());\n    // Abstract operations for the ReadableByteStreamController.\n    function IsReadableByteStreamController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n            return false;\n        }\n        return true;\n    }\n    function IsReadableStreamBYOBRequest(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n        if (shouldPull === false) {\n            return;\n        }\n        if (controller._pulling === true) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        // TODO: Test controller argument\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain === true) {\n                controller._pullAgain = false;\n                ReadableByteStreamControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableByteStreamControllerError(controller, e);\n        });\n    }\n    function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        controller._pendingPullIntos = new SimpleQueue();\n    }\n    function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n        var done = false;\n        if (stream._state === 'closed') {\n            done = true;\n        }\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'default') {\n            ReadableStreamFulfillReadRequest(stream, filledView, done);\n        }\n        else {\n            ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n        }\n    }\n    function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n        var bytesFilled = pullIntoDescriptor.bytesFilled;\n        var elementSize = pullIntoDescriptor.elementSize;\n        return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n    }\n    function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n        controller._queueTotalSize += byteLength;\n    }\n    function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n        var elementSize = pullIntoDescriptor.elementSize;\n        var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n        var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n        var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n        var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n        var totalBytesToCopyRemaining = maxBytesToCopy;\n        var ready = false;\n        if (maxAlignedBytes > currentAlignedBytes) {\n            totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n            ready = true;\n        }\n        var queue = controller._queue;\n        while (totalBytesToCopyRemaining > 0) {\n            var headOfQueue = queue.peek();\n            var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n            var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n            if (headOfQueue.byteLength === bytesToCopy) {\n                queue.shift();\n            }\n            else {\n                headOfQueue.byteOffset += bytesToCopy;\n                headOfQueue.byteLength -= bytesToCopy;\n            }\n            controller._queueTotalSize -= bytesToCopy;\n            ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n            totalBytesToCopyRemaining -= bytesToCopy;\n        }\n        return ready;\n    }\n    function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        pullIntoDescriptor.bytesFilled += size;\n    }\n    function ReadableByteStreamControllerHandleQueueDrain(controller) {\n        if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n            ReadableByteStreamControllerClearAlgorithms(controller);\n            ReadableStreamClose(controller._controlledReadableByteStream);\n        }\n        else {\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }\n    }\n    function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n        if (controller._byobRequest === undefined) {\n            return;\n        }\n        controller._byobRequest._associatedReadableByteStreamController = undefined;\n        controller._byobRequest._view = undefined;\n        controller._byobRequest = undefined;\n    }\n    function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n        while (controller._pendingPullIntos.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            var pullIntoDescriptor = controller._pendingPullIntos.peek();\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n                ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerPullInto(controller, view) {\n        var stream = controller._controlledReadableByteStream;\n        var elementSize = 1;\n        if (view.constructor !== DataView) {\n            elementSize = view.constructor.BYTES_PER_ELEMENT;\n        }\n        var ctor = view.constructor;\n        var buffer = TransferArrayBuffer(view.buffer);\n        var pullIntoDescriptor = {\n            buffer: buffer,\n            byteOffset: view.byteOffset,\n            byteLength: view.byteLength,\n            bytesFilled: 0,\n            elementSize: elementSize,\n            ctor: ctor,\n            readerType: 'byob'\n        };\n        if (controller._pendingPullIntos.length > 0) {\n            controller._pendingPullIntos.push(pullIntoDescriptor);\n            // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n            // - No change happens on desiredSize\n            // - The source has already been notified of that there's at least 1 pending read(view)\n            return ReadableStreamAddReadIntoRequest(stream);\n        }\n        if (stream._state === 'closed') {\n            var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n            return promiseResolvedWith(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));\n        }\n        if (controller._queueTotalSize > 0) {\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n                var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n                ReadableByteStreamControllerHandleQueueDrain(controller);\n                return promiseResolvedWith(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));\n            }\n            if (controller._closeRequested === true) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                return promiseRejectedWith(e);\n            }\n        }\n        controller._pendingPullIntos.push(pullIntoDescriptor);\n        var promise = ReadableStreamAddReadIntoRequest(stream);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n        return promise;\n    }\n    function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n        firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n        var stream = controller._controlledReadableByteStream;\n        if (ReadableStreamHasBYOBReader(stream) === true) {\n            while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n                var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n        if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n            throw new RangeError('bytesWritten out of range');\n        }\n        ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n        if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n            // TODO: Figure out whether we should detach the buffer or not here.\n            return;\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n        if (remainderSize > 0) {\n            var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n        }\n        pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n        pullIntoDescriptor.bytesFilled -= remainderSize;\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n        ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    }\n    function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state === 'closed') {\n            if (bytesWritten !== 0) {\n                throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n            }\n            ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n        }\n        else {\n            ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n        var descriptor = controller._pendingPullIntos.shift();\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        return descriptor;\n    }\n    function ReadableByteStreamControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return false;\n        }\n        if (controller._closeRequested === true) {\n            return false;\n        }\n        if (controller._started === false) {\n            return false;\n        }\n        if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableByteStreamControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n    function ReadableByteStreamControllerClose(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._queueTotalSize > 0) {\n            controller._closeRequested = true;\n            return;\n        }\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (firstPendingPullInto.bytesFilled > 0) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                throw e;\n            }\n        }\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamClose(stream);\n    }\n    function ReadableByteStreamControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableByteStream;\n        var buffer = chunk.buffer;\n        var byteOffset = chunk.byteOffset;\n        var byteLength = chunk.byteLength;\n        var transferredBuffer = TransferArrayBuffer(buffer);\n        if (ReadableStreamHasDefaultReader(stream) === true) {\n            if (ReadableStreamGetNumReadRequests(stream) === 0) {\n                ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            }\n            else {\n                var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n                ReadableStreamFulfillReadRequest(stream, transferredView, false);\n            }\n        }\n        else if (ReadableStreamHasBYOBReader(stream) === true) {\n            // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n        }\n        else {\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerError(controller, e) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ReadableByteStreamControllerClearPendingPullIntos(controller);\n        ResetQueue(controller);\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableByteStreamControllerGetDesiredSize(controller) {\n        var stream = controller._controlledReadableByteStream;\n        var state = stream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n        bytesWritten = Number(bytesWritten);\n        if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n            throw new RangeError('bytesWritten must be a finite');\n        }\n        ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n    }\n    function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n            throw new RangeError('The region specified by view does not match byobRequest');\n        }\n        if (firstDescriptor.byteLength !== view.byteLength) {\n            throw new RangeError('The buffer of view has different capacity than byobRequest');\n        }\n        firstDescriptor.buffer = view.buffer;\n        ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n    }\n    function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n        controller._controlledReadableByteStream = stream;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._byobRequest = undefined;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._closeRequested = false;\n        controller._started = false;\n        controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._autoAllocateChunkSize = autoAllocateChunkSize;\n        controller._pendingPullIntos = new SimpleQueue();\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableByteStreamControllerError(controller, r);\n        });\n    }\n    function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingByteSource, 'start', [controller]);\n        }\n        var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);\n        var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);\n        var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n        if (autoAllocateChunkSize !== undefined) {\n            autoAllocateChunkSize = Number(autoAllocateChunkSize);\n            if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n                throw new RangeError('autoAllocateChunkSize must be a positive integer');\n            }\n        }\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n    }\n    function SetUpReadableStreamBYOBRequest(request, controller, view) {\n        request._associatedReadableByteStreamController = controller;\n        request._view = view;\n    }\n    // Helper functions for the ReadableStreamBYOBRequest.\n    function byobRequestBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n    }\n    // Helper functions for the ReadableByteStreamController.\n    function byteStreamControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamBYOBReader(stream, forAuthorCode) {\n        if (forAuthorCode === void 0) { forAuthorCode = false; }\n        var reader = new ReadableStreamBYOBReader(stream);\n        reader._forAuthorCode = forAuthorCode;\n        return reader;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadIntoRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var readIntoRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._reader._readIntoRequests.push(readIntoRequest);\n        });\n        return promise;\n    }\n    function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readIntoRequest = reader._readIntoRequests.shift();\n        readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\n    }\n    function ReadableStreamGetNumReadIntoRequests(stream) {\n        return stream._reader._readIntoRequests.length;\n    }\n    function ReadableStreamHasBYOBReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamBYOBReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    var ReadableStreamBYOBReader = /** @class */ (function () {\n        function ReadableStreamBYOBReader(stream) {\n            if (!IsReadableStream(stream)) {\n                throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' +\n                    'byte source');\n            }\n            if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n                throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n                    'source');\n            }\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readIntoRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n            get: function () {\n                if (!IsReadableStreamBYOBReader(this)) {\n                    return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        ReadableStreamBYOBReader.prototype.read = function (view) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            if (!ArrayBuffer.isView(view)) {\n                return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n            }\n            if (IsDetachedBuffer(view.buffer) === true) ;\n            if (view.byteLength === 0) {\n                return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n            }\n            return ReadableStreamBYOBReaderRead(this, view);\n        };\n        ReadableStreamBYOBReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamBYOBReader(this)) {\n                throw byobReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readIntoRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamBYOBReader;\n    }());\n    // Abstract operations for the readers.\n    function IsReadableStreamBYOBReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamBYOBReaderRead(reader, view) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        // Controllers must implement this.\n        return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n    }\n    // Helper functions for the ReadableStreamBYOBReader.\n    function byobReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n    }\n\n    var ReadableStream = /** @class */ (function () {\n        function ReadableStream(underlyingSource, strategy) {\n            if (underlyingSource === void 0) { underlyingSource = {}; }\n            if (strategy === void 0) { strategy = {}; }\n            InitializeReadableStream(this);\n            var size = strategy.size;\n            var highWaterMark = strategy.highWaterMark;\n            var type = underlyingSource.type;\n            var typeString = String(type);\n            if (typeString === 'bytes') {\n                if (size !== undefined) {\n                    throw new RangeError('The strategy for a byte stream cannot have a size function');\n                }\n                if (highWaterMark === undefined) {\n                    highWaterMark = 0;\n                }\n                highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n                SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n            }\n            else if (type === undefined) {\n                var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\n                if (highWaterMark === undefined) {\n                    highWaterMark = 1;\n                }\n                highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n                SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n            }\n            else {\n                throw new RangeError('Invalid type is specified');\n            }\n        }\n        Object.defineProperty(ReadableStream.prototype, \"locked\", {\n            get: function () {\n                if (IsReadableStream(this) === false) {\n                    throw streamBrandCheckException$1('locked');\n                }\n                return IsReadableStreamLocked(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStream.prototype.cancel = function (reason) {\n            if (IsReadableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n            }\n            return ReadableStreamCancel(this, reason);\n        };\n        ReadableStream.prototype.getReader = function (_a) {\n            var mode = (_a === void 0 ? {} : _a).mode;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('getReader');\n            }\n            if (mode === undefined) {\n                return AcquireReadableStreamDefaultReader(this, true);\n            }\n            mode = String(mode);\n            if (mode === 'byob') {\n                return AcquireReadableStreamBYOBReader(this, true);\n            }\n            throw new RangeError('Invalid mode is specified');\n        };\n        ReadableStream.prototype.pipeThrough = function (_a, _b) {\n            var writable = _a.writable, readable = _a.readable;\n            var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('pipeThrough');\n            }\n            if (IsWritableStream(writable) === false) {\n                throw new TypeError('writable argument to pipeThrough must be a WritableStream');\n            }\n            if (IsReadableStream(readable) === false) {\n                throw new TypeError('readable argument to pipeThrough must be a ReadableStream');\n            }\n            preventClose = Boolean(preventClose);\n            preventAbort = Boolean(preventAbort);\n            preventCancel = Boolean(preventCancel);\n            if (signal !== undefined && !isAbortSignal(signal)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough\\'s signal option must be an AbortSignal');\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n            }\n            if (IsWritableStreamLocked(writable) === true) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n            }\n            var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);\n            setPromiseIsHandledToTrue(promise);\n            return readable;\n        };\n        ReadableStream.prototype.pipeTo = function (dest, _a) {\n            var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;\n            if (IsReadableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n            }\n            if (IsWritableStream(dest) === false) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n            }\n            preventClose = Boolean(preventClose);\n            preventAbort = Boolean(preventAbort);\n            preventCancel = Boolean(preventCancel);\n            if (signal !== undefined && !isAbortSignal(signal)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s signal option must be an AbortSignal'));\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n            }\n            if (IsWritableStreamLocked(dest) === true) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n            }\n            return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);\n        };\n        ReadableStream.prototype.tee = function () {\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('tee');\n            }\n            var branches = ReadableStreamTee(this);\n            return createArrayFromList(branches);\n        };\n        ReadableStream.prototype.getIterator = function (_a) {\n            var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('getIterator');\n            }\n            return AcquireReadableStreamAsyncIterator(this, preventCancel);\n        };\n        return ReadableStream;\n    }());\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n            value: ReadableStream.prototype.getIterator,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStream.\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeReadableStream(stream) {\n        stream._state = 'readable';\n        stream._reader = undefined;\n        stream._storedError = undefined;\n        stream._disturbed = false;\n    }\n    function IsReadableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function IsReadableStreamLocked(stream) {\n        if (stream._reader === undefined) {\n            return false;\n        }\n        return true;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamCancel(stream, reason) {\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        ReadableStreamClose(stream);\n        var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n        return transformPromiseWith(sourceCancelPromise, noop);\n    }\n    function ReadableStreamClose(stream) {\n        stream._state = 'closed';\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function ReadableStreamError(stream, e) {\n        stream._state = 'errored';\n        stream._storedError = e;\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._reject(e);\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n        else {\n            reader._readIntoRequests.forEach(function (readIntoRequest) {\n                readIntoRequest._reject(e);\n            });\n            reader._readIntoRequests = new SimpleQueue();\n        }\n        defaultReaderClosedPromiseReject(reader, e);\n    }\n    // Helper functions for the ReadableStream.\n    function streamBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n    }\n\n    var ByteLengthQueuingStrategy = /** @class */ (function () {\n        function ByteLengthQueuingStrategy(_a) {\n            var highWaterMark = _a.highWaterMark;\n            this.highWaterMark = highWaterMark;\n        }\n        ByteLengthQueuingStrategy.prototype.size = function (chunk) {\n            return chunk.byteLength;\n        };\n        return ByteLengthQueuingStrategy;\n    }());\n\n    var CountQueuingStrategy = /** @class */ (function () {\n        function CountQueuingStrategy(_a) {\n            var highWaterMark = _a.highWaterMark;\n            this.highWaterMark = highWaterMark;\n        }\n        CountQueuingStrategy.prototype.size = function () {\n            return 1;\n        };\n        return CountQueuingStrategy;\n    }());\n\n    // Class TransformStream\n    var TransformStream = /** @class */ (function () {\n        function TransformStream(transformer, writableStrategy, readableStrategy) {\n            if (transformer === void 0) { transformer = {}; }\n            if (writableStrategy === void 0) { writableStrategy = {}; }\n            if (readableStrategy === void 0) { readableStrategy = {}; }\n            var writableSizeFunction = writableStrategy.size;\n            var writableHighWaterMark = writableStrategy.highWaterMark;\n            var readableSizeFunction = readableStrategy.size;\n            var readableHighWaterMark = readableStrategy.highWaterMark;\n            var writableType = transformer.writableType;\n            if (writableType !== undefined) {\n                throw new RangeError('Invalid writable type specified');\n            }\n            var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);\n            if (writableHighWaterMark === undefined) {\n                writableHighWaterMark = 1;\n            }\n            writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);\n            var readableType = transformer.readableType;\n            if (readableType !== undefined) {\n                throw new RangeError('Invalid readable type specified');\n            }\n            var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);\n            if (readableHighWaterMark === undefined) {\n                readableHighWaterMark = 0;\n            }\n            readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);\n            var startPromise_resolve;\n            var startPromise = newPromise(function (resolve) {\n                startPromise_resolve = resolve;\n            });\n            InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n            SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n            var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);\n            startPromise_resolve(startResult);\n        }\n        Object.defineProperty(TransformStream.prototype, \"readable\", {\n            get: function () {\n                if (IsTransformStream(this) === false) {\n                    throw streamBrandCheckException$2('readable');\n                }\n                return this._readable;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(TransformStream.prototype, \"writable\", {\n            get: function () {\n                if (IsTransformStream(this) === false) {\n                    throw streamBrandCheckException$2('writable');\n                }\n                return this._writable;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        return TransformStream;\n    }());\n    function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n        function startAlgorithm() {\n            return startPromise;\n        }\n        function writeAlgorithm(chunk) {\n            return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n        }\n        function abortAlgorithm(reason) {\n            return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n        }\n        function closeAlgorithm() {\n            return TransformStreamDefaultSinkCloseAlgorithm(stream);\n        }\n        stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n        function pullAlgorithm() {\n            return TransformStreamDefaultSourcePullAlgorithm(stream);\n        }\n        function cancelAlgorithm(reason) {\n            TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n            return promiseResolvedWith(undefined);\n        }\n        stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n        // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n        stream._backpressure = undefined;\n        stream._backpressureChangePromise = undefined;\n        stream._backpressureChangePromise_resolve = undefined;\n        TransformStreamSetBackpressure(stream, true);\n        // Used by IsWritableStream() which is called by SetUpTransformStreamDefaultController().\n        stream._transformStreamController = undefined;\n    }\n    function IsTransformStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    // This is a no-op if both sides are already errored.\n    function TransformStreamError(stream, e) {\n        ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n        TransformStreamErrorWritableAndUnblockWrite(stream, e);\n    }\n    function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n        TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n        WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n        if (stream._backpressure === true) {\n            // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n            // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n            // _backpressure is set.\n            TransformStreamSetBackpressure(stream, false);\n        }\n    }\n    function TransformStreamSetBackpressure(stream, backpressure) {\n        // Passes also when called during construction.\n        if (stream._backpressureChangePromise !== undefined) {\n            stream._backpressureChangePromise_resolve();\n        }\n        stream._backpressureChangePromise = newPromise(function (resolve) {\n            stream._backpressureChangePromise_resolve = resolve;\n        });\n        stream._backpressure = backpressure;\n    }\n    var TransformStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function TransformStreamDefaultController() {\n            throw new TypeError('TransformStreamDefaultController instances cannot be created directly');\n        }\n        Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsTransformStreamDefaultController(this) === false) {\n                    throw defaultControllerBrandCheckException$1('desiredSize');\n                }\n                var readableController = this._controlledTransformStream._readable._readableStreamController;\n                return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('enqueue');\n            }\n            TransformStreamDefaultControllerEnqueue(this, chunk);\n        };\n        TransformStreamDefaultController.prototype.error = function (reason) {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('error');\n            }\n            TransformStreamDefaultControllerError(this, reason);\n        };\n        TransformStreamDefaultController.prototype.terminate = function () {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('terminate');\n            }\n            TransformStreamDefaultControllerTerminate(this);\n        };\n        return TransformStreamDefaultController;\n    }());\n    // Transform Stream Default Controller Abstract Operations\n    function IsTransformStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n            return false;\n        }\n        return true;\n    }\n    function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n        controller._controlledTransformStream = stream;\n        stream._transformStreamController = controller;\n        controller._transformAlgorithm = transformAlgorithm;\n        controller._flushAlgorithm = flushAlgorithm;\n    }\n    function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n        var controller = Object.create(TransformStreamDefaultController.prototype);\n        var transformAlgorithm = function (chunk) {\n            try {\n                TransformStreamDefaultControllerEnqueue(controller, chunk);\n                return promiseResolvedWith(undefined);\n            }\n            catch (transformResultE) {\n                return promiseRejectedWith(transformResultE);\n            }\n        };\n        var transformMethod = transformer.transform;\n        if (transformMethod !== undefined) {\n            if (typeof transformMethod !== 'function') {\n                throw new TypeError('transform is not a method');\n            }\n            transformAlgorithm = function (chunk) { return PromiseCall(transformMethod, transformer, [chunk, controller]); };\n        }\n        var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);\n        SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n    }\n    function TransformStreamDefaultControllerClearAlgorithms(controller) {\n        controller._transformAlgorithm = undefined;\n        controller._flushAlgorithm = undefined;\n    }\n    function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {\n            throw new TypeError('Readable side is not in a state that permits enqueue');\n        }\n        // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n        // accept TransformStreamDefaultControllerEnqueue() calls.\n        try {\n            ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n        }\n        catch (e) {\n            // This happens when readableStrategy.size() throws.\n            TransformStreamErrorWritableAndUnblockWrite(stream, e);\n            throw stream._readable._storedError;\n        }\n        var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n        if (backpressure !== stream._backpressure) {\n            TransformStreamSetBackpressure(stream, true);\n        }\n    }\n    function TransformStreamDefaultControllerError(controller, e) {\n        TransformStreamError(controller._controlledTransformStream, e);\n    }\n    function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n        var transformPromise = controller._transformAlgorithm(chunk);\n        return transformPromiseWith(transformPromise, undefined, function (r) {\n            TransformStreamError(controller._controlledTransformStream, r);\n            throw r;\n        });\n    }\n    function TransformStreamDefaultControllerTerminate(controller) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\n            ReadableStreamDefaultControllerClose(readableController);\n        }\n        var error = new TypeError('TransformStream terminated');\n        TransformStreamErrorWritableAndUnblockWrite(stream, error);\n    }\n    // TransformStreamDefaultSink Algorithms\n    function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n        var controller = stream._transformStreamController;\n        if (stream._backpressure === true) {\n            var backpressureChangePromise = stream._backpressureChangePromise;\n            return transformPromiseWith(backpressureChangePromise, function () {\n                var writable = stream._writable;\n                var state = writable._state;\n                if (state === 'erroring') {\n                    throw writable._storedError;\n                }\n                return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n            });\n        }\n        return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n    }\n    function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n        // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n        // errored.\n        TransformStreamError(stream, reason);\n        return promiseResolvedWith(undefined);\n    }\n    function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        var readable = stream._readable;\n        var controller = stream._transformStreamController;\n        var flushPromise = controller._flushAlgorithm();\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        // Return a promise that is fulfilled with undefined on success.\n        return transformPromiseWith(flushPromise, function () {\n            if (readable._state === 'errored') {\n                throw readable._storedError;\n            }\n            var readableController = readable._readableStreamController;\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\n                ReadableStreamDefaultControllerClose(readableController);\n            }\n        }, function (r) {\n            TransformStreamError(stream, r);\n            throw readable._storedError;\n        });\n    }\n    // TransformStreamDefaultSource Algorithms\n    function TransformStreamDefaultSourcePullAlgorithm(stream) {\n        // Invariant. Enforced by the promises returned by start() and pull().\n        TransformStreamSetBackpressure(stream, false);\n        // Prevent the next pull() call until there is backpressure.\n        return stream._backpressureChangePromise;\n    }\n    // Helper functions for the TransformStreamDefaultController.\n    function defaultControllerBrandCheckException$1(name) {\n        return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n    }\n    // Helper functions for the TransformStream.\n    function streamBrandCheckException$2(name) {\n        return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n    }\n\n    exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n    exports.CountQueuingStrategy = CountQueuingStrategy;\n    exports.ReadableStream = ReadableStream;\n    exports.TransformStream = TransformStream;\n    exports.WritableStream = WritableStream;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","require('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var nativeMethod = NativePrototype[KEY];\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(value) {\n        nativeMethod.call(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY == 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        nativeMethod.call(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  // eslint-disable-next-line max-len\n  if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n    new NativeConstructor().entries().next();\n  })))) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.REQUIRED = true;\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + ++id, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  REQUIRED: false,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.1.3.6 Map.prototype.get(key)\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // 23.1.3.9 Map.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // 23.2.3.1 Set.prototype.add(value)\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return C;\n  },\n  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","require('../../modules/es.set');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.REQUIRED = true;\n  var WeakMapPrototype = $WeakMap.prototype;\n  var nativeDelete = WeakMapPrototype['delete'];\n  var nativeHas = WeakMapPrototype.has;\n  var nativeGet = WeakMapPrototype.get;\n  var nativeSet = WeakMapPrototype.set;\n  redefineAll(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete.call(this, key) || state.frozen['delete'](key);\n      } return nativeDelete.call(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) || state.frozen.has(key);\n      } return nativeHas.call(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n      } return nativeGet.call(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet.call(this, key, value);\n      return this;\n    }\n  });\n}\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n  return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.entries.splice(index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: undefined\n      });\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    redefineAll(C.prototype, {\n      // 23.3.3.2 WeakMap.prototype.delete(key)\n      // 23.4.3.3 WeakSet.prototype.delete(value)\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && $has(data, state.id) && delete data[state.id];\n      },\n      // 23.3.3.4 WeakMap.prototype.has(key)\n      // 23.4.3.4 WeakSet.prototype.has(value)\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && $has(data, state.id);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.3.3.3 WeakMap.prototype.get(key)\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          return data ? data[state.id] : undefined;\n        }\n      },\n      // 23.3.3.5 WeakMap.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // 23.4.3.1 WeakSet.prototype.add(value)\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return C;\n  }\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else if (IS_EVERY) return false;  // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","require('../../modules/es.string.code-point-at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'codePointAt');\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","require('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n      );\n    } return elements.join('');\n  }\n});\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.github.io/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.github.io/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars\n    stringify: function stringify(it, replacer, space) {\n      var args = [it];\n      var index = 1;\n      var $replacer;\n      while (arguments.length > index) args.push(arguments[index++]);\n      $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return $stringify.apply(null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return nativeGetOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = String(requireObjectCoercible($this));\n    var stringLength = S.length;\n    var fillStr = fillString === undefined ? ' ' : String(fillString);\n    var intMaxLength = toLength(maxLength);\n    var fillLen, stringFiller;\n    if (intMaxLength <= stringLength || fillStr == '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n  var str = String(requireObjectCoercible(this));\n  var result = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","require('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.github.io/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.github.io/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n  entries: function entries(O) {\n    return $entries(O);\n  }\n});\n","/* Copyright 2012 Mozilla Foundation\n *\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/* eslint no-var: error */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isSameOrigin,\n  MissingPDFException,\n  PasswordException,\n  setVerbosityLevel,\n  shadow,\n  stringToBytes,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  loadScript,\n  PageViewport,\n  RenderingCancelledException,\n  StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { NodeCanvasFactory, NodeCMapReaderFactory } from \"./node_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { apiCompatibilityParams } from \"./api_compatibility.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { WebGLContext } from \"./webgl.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nconst DefaultCanvasFactory =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n    ? NodeCanvasFactory\n    : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n    ? NodeCMapReaderFactory\n    : DOMCMapReaderFactory;\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n *   parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n *   {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type IPDFStreamFactory\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n *   that takes document initialization parameters (including a \"url\") and\n *   returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n  createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n *            Int16Array | Uint16Array |\n *            Int32Array | Uint32Array | Float32Array |\n *            Float64Array\n * } TypedArray\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} [url] - The URL of the PDF.\n * @property {TypedArray|Array<number>|string} [data] - Binary PDF data. Use\n *    typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n *    BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n *   cross-site Access-Control requests should be made using credentials such\n *   as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n *   or all of the pdf data. Used by the extension since some data is already\n *   loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n *   reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n *   transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n *   per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n *   parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n *   from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n *   attempting to recover valid absolute URLs for annotations, and outline\n *   items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n *   located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n *   packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n *   reading built-in CMap files. Providing a custom factory is useful for\n *   environments without Fetch API or `XMLHttpRequest` support, such as\n *   Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n *   `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n *   PDF data cannot be successfully parsed, instead of attempting to recover\n *   whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n *   pixels, i.e. width * height. Images above this value will not be rendered.\n *   Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n *   as JavaScript. Primarily used to improve performance of font rendering, and\n *   when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n *   OpenType fonts and loaded via `@font-face` rules. If disabled, fonts will\n *   be rendered using a built-in font renderer that constructs the glyphs with\n *   primitive path commands. The default value is `false`.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n *   which are unused during rendering of PDF documents, when exporting the\n *   parsed font data from the worker-thread. This may be useful for debugging\n *   purposes (and backwards compatibility), but note that it will lead to\n *   increased memory usage. The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n *   context to create elements with and to load resources, such as fonts,\n *   into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n *   files. When enabled, and if the server supports partial content requests,\n *   then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n *   By default PDF.js attempts to load PDF files in chunks. The default value\n *   is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n *   data. When range requests are enabled PDF.js will automatically keep\n *   fetching more data even if it isn't needed to display the current page.\n *   The default value is `false`.\n *\n *   NOTE: It is also necessary to disable streaming, see above, in order for\n *   disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n *   (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Object<string, boolean>} streamTypes - Used stream types in the\n *   document (an item is set to true if specific stream ID was used in the\n *   document).\n * @property {Object<string, boolean>} fontTypes - Used font types in the\n *   document (an item is set to true if specific font ID was used in the\n *   document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src -\n *   Can be a URL to where a PDF file is located, a typed array (Uint8Array)\n *   already populated with data or parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n  const task = new PDFDocumentLoadingTask();\n\n  let source;\n  if (typeof src === \"string\") {\n    source = { url: src };\n  } else if (isArrayBuffer(src)) {\n    source = { data: src };\n  } else if (src instanceof PDFDataRangeTransport) {\n    source = { range: src };\n  } else {\n    if (typeof src !== \"object\") {\n      throw new Error(\n        \"Invalid parameter in getDocument, \" +\n          \"need either Uint8Array, string or a parameter object\"\n      );\n    }\n    if (!src.url && !src.data && !src.range) {\n      throw new Error(\n        \"Invalid parameter object: need either .data, .range or .url\"\n      );\n    }\n    source = src;\n  }\n  const params = Object.create(null);\n  let rangeTransport = null,\n    worker = null;\n\n  for (const key in source) {\n    if (key === \"url\" && typeof window !== \"undefined\") {\n      // The full path is required in the 'url' field.\n      params[key] = new URL(source[key], window.location).href;\n      continue;\n    } else if (key === \"range\") {\n      rangeTransport = source[key];\n      continue;\n    } else if (key === \"worker\") {\n      worker = source[key];\n      continue;\n    } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n      // Converting string or array-like data to Uint8Array.\n      const pdfBytes = source[key];\n      if (typeof pdfBytes === \"string\") {\n        params[key] = stringToBytes(pdfBytes);\n      } else if (\n        typeof pdfBytes === \"object\" &&\n        pdfBytes !== null &&\n        !isNaN(pdfBytes.length)\n      ) {\n        params[key] = new Uint8Array(pdfBytes);\n      } else if (isArrayBuffer(pdfBytes)) {\n        params[key] = new Uint8Array(pdfBytes);\n      } else {\n        throw new Error(\n          \"Invalid PDF binary data: either typed array, \" +\n            \"string or array-like object is expected in the \" +\n            \"data property.\"\n        );\n      }\n      continue;\n    }\n    params[key] = source[key];\n  }\n\n  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n  params.CMapReaderFactory =\n    params.CMapReaderFactory || DefaultCMapReaderFactory;\n  params.ignoreErrors = params.stopAtErrors !== true;\n  params.fontExtraProperties = params.fontExtraProperties === true;\n  params.pdfBug = params.pdfBug === true;\n\n  if (!Number.isInteger(params.maxImageSize)) {\n    params.maxImageSize = -1;\n  }\n  if (typeof params.isEvalSupported !== \"boolean\") {\n    params.isEvalSupported = true;\n  }\n  if (typeof params.disableFontFace !== \"boolean\") {\n    params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n  }\n  if (typeof params.ownerDocument === \"undefined\") {\n    params.ownerDocument = globalThis.document;\n  }\n\n  if (typeof params.disableRange !== \"boolean\") {\n    params.disableRange = false;\n  }\n  if (typeof params.disableStream !== \"boolean\") {\n    params.disableStream = false;\n  }\n  if (typeof params.disableAutoFetch !== \"boolean\") {\n    params.disableAutoFetch = false;\n  }\n\n  // Set the main-thread verbosity level.\n  setVerbosityLevel(params.verbosity);\n\n  if (!worker) {\n    const workerParams = {\n      verbosity: params.verbosity,\n      port: GlobalWorkerOptions.workerPort,\n    };\n    // Worker was not provided -- creating and owning our own. If message port\n    // is specified in global worker options, using it.\n    worker = workerParams.port\n      ? PDFWorker.fromPort(workerParams)\n      : new PDFWorker(workerParams);\n    task._worker = worker;\n  }\n  const docId = task.docId;\n  worker.promise\n    .then(function () {\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n\n      const workerIdPromise = _fetchDocument(\n        worker,\n        params,\n        rangeTransport,\n        docId\n      );\n      const networkStreamPromise = new Promise(function (resolve) {\n        let networkStream;\n        if (rangeTransport) {\n          networkStream = new PDFDataTransportStream(\n            {\n              length: params.length,\n              initialData: params.initialData,\n              progressiveDone: params.progressiveDone,\n              disableRange: params.disableRange,\n              disableStream: params.disableStream,\n            },\n            rangeTransport\n          );\n        } else if (!params.data) {\n          networkStream = createPDFNetworkStream({\n            url: params.url,\n            length: params.length,\n            httpHeaders: params.httpHeaders,\n            withCredentials: params.withCredentials,\n            rangeChunkSize: params.rangeChunkSize,\n            disableRange: params.disableRange,\n            disableStream: params.disableStream,\n          });\n        }\n        resolve(networkStream);\n      });\n\n      return Promise.all([workerIdPromise, networkStreamPromise]).then(\n        function ([workerId, networkStream]) {\n          if (task.destroyed) {\n            throw new Error(\"Loading aborted\");\n          }\n\n          const messageHandler = new MessageHandler(\n            docId,\n            workerId,\n            worker.port\n          );\n          messageHandler.postMessageTransfers = worker.postMessageTransfers;\n          const transport = new WorkerTransport(\n            messageHandler,\n            task,\n            networkStream,\n            params\n          );\n          task._transport = transport;\n          messageHandler.send(\"Ready\", null);\n        }\n      );\n    })\n    .catch(task._capability.reject);\n\n  return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise} A promise that is resolved when the worker ID of the\n *   `MessageHandler` is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n  if (worker.destroyed) {\n    return Promise.reject(new Error(\"Worker was destroyed\"));\n  }\n\n  if (pdfDataRangeTransport) {\n    source.length = pdfDataRangeTransport.length;\n    source.initialData = pdfDataRangeTransport.initialData;\n    source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n  }\n  return worker.messageHandler\n    .sendWithPromise(\"GetDocRequest\", {\n      docId,\n      apiVersion:\n        typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n          ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n          : null,\n      // Only send the required properties, and *not* the entire object.\n      source: {\n        data: source.data,\n        url: source.url,\n        password: source.password,\n        disableAutoFetch: source.disableAutoFetch,\n        rangeChunkSize: source.rangeChunkSize,\n        length: source.length,\n      },\n      maxImageSize: source.maxImageSize,\n      disableFontFace: source.disableFontFace,\n      postMessageTransfers: worker.postMessageTransfers,\n      docBaseUrl: source.docBaseUrl,\n      ignoreErrors: source.ignoreErrors,\n      isEvalSupported: source.isEvalSupported,\n      fontExtraProperties: source.fontExtraProperties,\n    })\n    .then(function (workerId) {\n      if (worker.destroyed) {\n        throw new Error(\"Worker was destroyed\");\n      }\n      return workerId;\n    });\n}\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n *\n * @typedef {Object} PDFDocumentLoadingTask\n * @property {string} docId - Unique identifier for the document loading task.\n * @property {boolean} destroyed - Whether the loading task is destroyed or not.\n * @property {function} [onPassword] - Callback to request a password if a wrong\n *   or no password was provided. The callback receives two parameters: a\n *   function that should be called with the new password, and a reason (see\n *   {@link PasswordResponses}).\n * @property {function} [onProgress] - Callback to be able to monitor the\n *   loading progress of the PDF file (necessary to implement e.g. a loading\n *   bar). The callback receives an {Object} with the properties `loaded`\n *   ({number}) and `total` ({number}) that indicate how many bytes are loaded.\n * @property {function} [onUnsupportedFeature] - Callback for when an\n *   unsupported feature is used in the PDF document. The callback receives an\n *   {@link UNSUPPORTED_FEATURES} argument.\n * @property {Promise<PDFDocumentProxy>} promise - Promise for document loading\n *   task completion.\n * @property {function} destroy - Abort all network requests and destroy\n *   the worker. Returns a promise that is resolved when destruction is\n *   completed.\n */\n\n/**\n * @type {any}\n * @ignore\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n  let nextDocumentId = 0;\n\n  /**\n   * The loading task controls the operations required to load a PDF document\n   * (such as network requests) and provides a way to listen for completion,\n   * after which individual pages can be rendered.\n   */\n  // eslint-disable-next-line no-shadow\n  class PDFDocumentLoadingTask {\n    constructor() {\n      this._capability = createPromiseCapability();\n      this._transport = null;\n      this._worker = null;\n\n      /**\n       * Unique identifier for the document loading task.\n       * @type {string}\n       */\n      this.docId = \"d\" + nextDocumentId++;\n\n      /**\n       * Whether the loading task is destroyed or not.\n       * @type {boolean}\n       */\n      this.destroyed = false;\n\n      /**\n       * Callback to request a password if a wrong or no password was provided.\n       * The callback receives two parameters: a function that should be called\n       * with the new password, and a reason (see {@link PasswordResponses}).\n       * @type {function}\n       */\n      this.onPassword = null;\n\n      /**\n       * Callback to be able to monitor the loading progress of the PDF file\n       * (necessary to implement e.g. a loading bar). The callback receives\n       * an {Object} with the properties `loaded` ({number}) and `total`\n       * ({number}) that indicate how many bytes are loaded.\n       * @type {function}\n       */\n      this.onProgress = null;\n\n      /**\n       * Callback for when an unsupported feature is used in the PDF document.\n       * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n       * @type {function}\n       */\n      this.onUnsupportedFeature = null;\n    }\n\n    /**\n     * Promise for document loading task completion.\n     * @type {Promise<PDFDocumentProxy>}\n     */\n    get promise() {\n      return this._capability.promise;\n    }\n\n    /**\n     * @returns {Promise<void>} A promise that is resolved when destruction is\n     *   completed.\n     */\n    destroy() {\n      this.destroyed = true;\n\n      const transportDestroyed = !this._transport\n        ? Promise.resolve()\n        : this._transport.destroy();\n      return transportDestroyed.then(() => {\n        this._transport = null;\n        if (this._worker) {\n          this._worker.destroy();\n          this._worker = null;\n        }\n      });\n    }\n  }\n  return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n  /**\n   * @param {number} length\n   * @param {Uint8Array} initialData\n   * @param {boolean} [progressiveDone]\n   */\n  constructor(length, initialData, progressiveDone = false) {\n    this.length = length;\n    this.initialData = initialData;\n    this.progressiveDone = progressiveDone;\n\n    this._rangeListeners = [];\n    this._progressListeners = [];\n    this._progressiveReadListeners = [];\n    this._progressiveDoneListeners = [];\n    this._readyCapability = createPromiseCapability();\n  }\n\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  addProgressiveDoneListener(listener) {\n    this._progressiveDoneListeners.push(listener);\n  }\n\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  onDataProgress(loaded, total) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressListeners) {\n        listener(loaded, total);\n      }\n    });\n  }\n\n  onDataProgressiveRead(chunk) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveReadListeners) {\n        listener(chunk);\n      }\n    });\n  }\n\n  onDataProgressiveDone() {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveDoneListeners) {\n        listener();\n      }\n    });\n  }\n\n  transportReady() {\n    this._readyCapability.resolve();\n  }\n\n  requestDataRange(begin, end) {\n    unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n  }\n\n  abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport) {\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n  }\n\n  /**\n   * @type {AnnotationStorage} Storage for annotation data in forms.\n   */\n  get annotationStorage() {\n    return shadow(this, \"annotationStorage\", new AnnotationStorage());\n  }\n\n  /**\n   * @type {number} Total number of pages in the PDF file.\n   */\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n\n  /**\n   * @type {string} A (not guaranteed to be) unique ID to identify a PDF.\n   */\n  get fingerprint() {\n    return this._pdfInfo.fingerprint;\n  }\n\n  /**\n   * @param {number} pageNumber - The page number to get. The first page is 1.\n   * @returns {Promise<PDFPageProxy>} A promise that is resolved with\n   *   a {@link PDFPageProxy} object.\n   */\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n\n  /**\n   * @param {{num: number, gen: number}} ref - The page reference. Must have\n   *   the `num` and `gen` properties.\n   * @returns {Promise<{num: number, gen: number}>} A promise that is resolved\n   *   with the page index (starting from zero) that is associated with the\n   *   reference.\n   */\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n\n  /**\n   * @returns {Promise<Object<string, Array<any>>>} A promise that is resolved\n   *   with a mapping from named destinations to references.\n   *\n   * This can be slow for large documents. Use `getDestination` instead.\n   */\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n\n  /**\n   * @param {string} id - The named destination to get.\n   * @returns {Promise<Array<any>>} A promise that is resolved with all\n   *   information of the given named destination.\n   */\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with\n   *   an {Array} containing the page labels that correspond to the page\n   *   indexes, or `null` when no page labels are present in the PDF file.\n   */\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page layout name.\n   */\n  getPageLayout() {\n    return this._transport.getPageLayout();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page mode name.\n   */\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with an\n   *   {Object} containing the viewer preferences, or `null` when no viewer\n   *   preferences are present in the PDF file.\n   */\n  getViewerPreferences() {\n    return this._transport.getViewerPreferences();\n  }\n\n  /**\n   * @returns {Promise<any | null>} A promise that is resolved with an {Array}\n   *   containing the destination, or `null` when no open action is present\n   *   in the PDF.\n   */\n  getOpenAction() {\n    return this._transport.getOpenAction();\n  }\n\n  /**\n   * @returns {Promise<any>} A promise that is resolved with a lookup table\n   *   for mapping named attachments to their content.\n   */\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with\n   *   an {Array} of all the JavaScript strings in the name tree, or `null`\n   *   if no JavaScript exists.\n   */\n  getJavaScript() {\n    return this._transport.getJavaScript();\n  }\n\n  /**\n   * @typedef {Object} OutlineNode\n   * @property {string} title\n   * @property {boolean} bold\n   * @property {boolean} italic\n   * @property {Uint8ClampedArray} color - The color in RGB format to use for\n   *   display purposes.\n   * @property {string | Array<any> | null} dest\n   * @property {string | null} url\n   * @property {string | undefined} unsafeUrl\n   * @property {boolean | undefined} newWindow\n   * @property {number | undefined} count\n   * @property {Array<OutlineNode>} items\n   */\n\n  /**\n   * @returns {Promise<Array<OutlineNode>>} A promise that is resolved with an\n   *   {Array} that is a tree outline (if it has one) of the PDF file.\n   */\n  getOutline() {\n    return this._transport.getOutline();\n  }\n\n  /**\n   * @returns {Promise<OptionalContentConfig>} A promise that is resolved with\n   *   an {@link OptionalContentConfig} that contains all the optional content\n   *   groups (assuming that the document has any).\n   */\n  getOptionalContentConfig() {\n    return this._transport.getOptionalContentConfig();\n  }\n\n  /**\n   * @returns {Promise<Array<number> | null>} A promise that is resolved with\n   *   an {Array} that contains the permission flags for the PDF document, or\n   *   `null` when no permissions are present in the PDF file.\n   */\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n\n  /**\n   * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n   *   resolved with an {Object} that has `info` and `metadata` properties.\n   *   `info` is an {Object} filled with anything available in the information\n   *   dictionary and similarly `metadata` is a {Metadata} object with\n   *   information from the metadata section of the PDF.\n   */\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n\n  /**\n   * @returns {Promise<TypedArray>} A promise that is resolved with a\n   *   {TypedArray} that has the raw data from the PDF.\n   */\n  getData() {\n    return this._transport.getData();\n  }\n\n  /**\n   * @returns {Promise<{ length: number }>} A promise that is resolved when the\n   *   document's data is loaded. It is resolved with an {Object} that contains\n   *   the `length` property that indicates size of the PDF data in bytes.\n   */\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n\n  /**\n   * @returns {Promise<PDFDocumentStats>} A promise this is resolved with\n   *   current statistics about document structures (see\n   *   {@link PDFDocumentStats}).\n   */\n  getStats() {\n    return this._transport.getStats();\n  }\n\n  /**\n   * Cleans up resources allocated by the document on both the main and worker\n   * threads.\n   *\n   * NOTE: Do not, under any circumstances, call this method when rendering is\n   * currently ongoing since that may lead to rendering errors.\n   *\n   * @returns {Promise} A promise that is resolved when clean-up has finished.\n   */\n  cleanup() {\n    return this._transport.startCleanup();\n  }\n\n  /**\n   * Destroys the current document instance and terminates the worker.\n   */\n  destroy() {\n    return this.loadingTask.destroy();\n  }\n\n  /**\n   * @type {DocumentInitParameters} A subset of the current\n   *   {DocumentInitParameters}, which are either needed in the viewer and/or\n   *   whose default values may be affected by the `apiCompatibilityParams`.\n   */\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n\n  /**\n   * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n   */\n  get loadingTask() {\n    return this._transport.loadingTask;\n  }\n\n  /**\n   * @param {AnnotationStorage} annotationStorage - Storage for annotation\n   *   data in forms.\n   * @returns {Promise<Uint8Array>} A promise that is resolved with a\n   *   {Uint8Array} containing the full data of the saved document.\n   */\n  saveDocument(annotationStorage) {\n    return this._transport.saveDocument(annotationStorage);\n  }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n *   the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n *   flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - Replaces all occurrences of\n *   whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n *   same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem>} items - Array of {@link TextItem} objects.\n * @property {Object<string, TextStyle>} styles - {@link TextStyle} objects,\n *   indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array<any>} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n *   can be either 'display' (viewable annotations) or 'print' (printable\n *   annotations). If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n *   the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display' or 'print'.\n *   The default value is 'display'.\n * @property {boolean} [enableWebGL] - Enables WebGL accelerated rendering for\n *   some operations. The default value is `false`.\n * @property {boolean} [renderInteractiveForms] - Whether or not interactive\n *   form elements are rendered in the display layer. If so, we do not render\n *   them on the canvas as well.\n * @property {Array<any>} [transform] - Additional transform, applied just\n *   before viewport transform.\n * @property {Object} [imageLayer] - An object that has `beginLayout`,\n *   `endLayout` and `appendImage` functions.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n *   when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n *   Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n *   <color> value, a `CanvasGradient` object (a linear or radial gradient) or\n *   a `CanvasPattern` object (a repetitive image). The default value is\n *   'rgb(255,255,255)'.\n * @property {AnnotationStorage} [annotationStorage] - Storage for annotation\n *   data in forms.\n * @property {Promise<OptionalContentConfig>} [optionalContentConfigPromise] -\n *   A promise that should resolve with an {@link OptionalContentConfig}\n *   created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n *   the configuration will be fetched automatically with the default visibility\n *   states set.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array<number>} fnArray - Array containing the operator functions.\n * @property {Array<any>} argsArray - Array containing the arguments of the\n *   functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n  constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._ownerDocument = ownerDocument;\n    this._transport = transport;\n    this._stats = pdfBug ? new StatTimer() : null;\n    this._pdfBug = pdfBug;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n\n    this.cleanupAfterRender = false;\n    this.pendingCleanup = false;\n    this._intentStates = new Map();\n    this.destroyed = false;\n  }\n\n  /**\n   * @type {number} Page number of the page. First page is 1.\n   */\n  get pageNumber() {\n    return this._pageIndex + 1;\n  }\n\n  /**\n   * @type {number} The number of degrees the page is rotated clockwise.\n   */\n  get rotate() {\n    return this._pageInfo.rotate;\n  }\n\n  /**\n   * @type {Object} The reference that points to this page. It has `num` and\n   *   `gen` properties.\n   */\n  get ref() {\n    return this._pageInfo.ref;\n  }\n\n  /**\n   * @type {number} The default size of units in 1/72nds of an inch.\n   */\n  get userUnit() {\n    return this._pageInfo.userUnit;\n  }\n\n  /**\n   * @type {Array<number>} An array of the visible portion of the PDF page in\n   *   user space units [x1, y1, x2, y2].\n   */\n  get view() {\n    return this._pageInfo.view;\n  }\n\n  /**\n   * @param {GetViewportParameters} params - Viewport parameters.\n   * @returns {PageViewport} Contains 'width' and 'height' properties\n   *   along with transforms required for rendering.\n   */\n  getViewport({\n    scale,\n    rotation = this.rotate,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.view,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * @param {GetAnnotationsParameters} params - Annotation parameters.\n   * @returns {Promise<Array<any>>} A promise that is resolved with an\n   *   {Array} of the annotation objects.\n   */\n  getAnnotations({ intent = null } = {}) {\n    if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n      this.annotationsPromise = this._transport.getAnnotations(\n        this._pageIndex,\n        intent\n      );\n      this.annotationsIntent = intent;\n    }\n    return this.annotationsPromise;\n  }\n\n  /**\n   * Begins the process of rendering a page to the desired context.\n   *\n   * @param {RenderParameters} params Page render parameters.\n   * @returns {RenderTask} An object that contains a promise that is\n   *   resolved when the page finishes rendering.\n   */\n  render({\n    canvasContext,\n    viewport,\n    intent = \"display\",\n    enableWebGL = false,\n    renderInteractiveForms = false,\n    transform = null,\n    imageLayer = null,\n    canvasFactory = null,\n    background = null,\n    annotationStorage = null,\n    optionalContentConfigPromise = null,\n  }) {\n    if (this._stats) {\n      this._stats.time(\"Overall\");\n    }\n\n    const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n    // If there was a pending destroy, cancel it so no cleanup happens during\n    // this call to render.\n    this.pendingCleanup = false;\n\n    if (!optionalContentConfigPromise) {\n      optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n    }\n\n    let intentState = this._intentStates.get(renderingIntent);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(renderingIntent, intentState);\n    }\n\n    // Ensure that a pending `streamReader` cancel timeout is always aborted.\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n\n    const canvasFactoryInstance =\n      canvasFactory ||\n      new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n    const webGLContext = new WebGLContext({\n      enable: enableWebGL,\n    });\n\n    // If there's no displayReadyCapability yet, then the operatorList\n    // was never requested before. Make the request and create the promise.\n    if (!intentState.displayReadyCapability) {\n      intentState.displayReadyCapability = createPromiseCapability();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n      this._pumpOperatorList({\n        pageIndex: this._pageIndex,\n        intent: renderingIntent,\n        renderInteractiveForms: renderInteractiveForms === true,\n        annotationStorage:\n          (annotationStorage && annotationStorage.getAll()) || null,\n      });\n    }\n\n    const complete = error => {\n      const i = intentState.renderTasks.indexOf(internalRenderTask);\n      if (i >= 0) {\n        intentState.renderTasks.splice(i, 1);\n      }\n\n      // Attempt to reduce memory usage during *printing*, by always running\n      // cleanup once rendering has finished (regardless of cleanupAfterRender).\n      if (this.cleanupAfterRender || renderingIntent === \"print\") {\n        this.pendingCleanup = true;\n      }\n      this._tryCleanup();\n\n      if (error) {\n        internalRenderTask.capability.reject(error);\n\n        this._abortOperatorList({\n          intentState,\n          reason: error,\n        });\n      } else {\n        internalRenderTask.capability.resolve();\n      }\n      if (this._stats) {\n        this._stats.timeEnd(\"Rendering\");\n        this._stats.timeEnd(\"Overall\");\n      }\n    };\n\n    const internalRenderTask = new InternalRenderTask({\n      callback: complete,\n      // Only include the required properties, and *not* the entire object.\n      params: {\n        canvasContext,\n        viewport,\n        transform,\n        imageLayer,\n        background,\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: canvasFactoryInstance,\n      webGLContext,\n      useRequestAnimationFrame: renderingIntent !== \"print\",\n      pdfBug: this._pdfBug,\n    });\n\n    if (!intentState.renderTasks) {\n      intentState.renderTasks = [];\n    }\n    intentState.renderTasks.push(internalRenderTask);\n    const renderTask = internalRenderTask.task;\n\n    Promise.all([\n      intentState.displayReadyCapability.promise,\n      optionalContentConfigPromise,\n    ])\n      .then(([transparency, optionalContentConfig]) => {\n        if (this.pendingCleanup) {\n          complete();\n          return;\n        }\n        if (this._stats) {\n          this._stats.time(\"Rendering\");\n        }\n        internalRenderTask.initializeGraphics({\n          transparency,\n          optionalContentConfig,\n        });\n        internalRenderTask.operatorListChanged();\n      })\n      .catch(complete);\n\n    return renderTask;\n  }\n\n  /**\n   * @returns {Promise<PDFOperatorList>} A promise resolved with an\n   *   {@link PDFOperatorList} object that represents page's operator list.\n   */\n  getOperatorList() {\n    function operatorListChanged() {\n      if (intentState.operatorList.lastChunk) {\n        intentState.opListReadCapability.resolve(intentState.operatorList);\n\n        const i = intentState.renderTasks.indexOf(opListTask);\n        if (i >= 0) {\n          intentState.renderTasks.splice(i, 1);\n        }\n      }\n    }\n\n    const renderingIntent = \"oplist\";\n    let intentState = this._intentStates.get(renderingIntent);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(renderingIntent, intentState);\n    }\n    let opListTask;\n\n    if (!intentState.opListReadCapability) {\n      opListTask = Object.create(null);\n      opListTask.operatorListChanged = operatorListChanged;\n      intentState.opListReadCapability = createPromiseCapability();\n      intentState.renderTasks = [];\n      intentState.renderTasks.push(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n      this._pumpOperatorList({\n        pageIndex: this._pageIndex,\n        intent: renderingIntent,\n      });\n    }\n    return intentState.opListReadCapability.promise;\n  }\n\n  /**\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {ReadableStream} Stream for reading text content chunks.\n   */\n  streamTextContent({\n    normalizeWhitespace = false,\n    disableCombineTextItems = false,\n  } = {}) {\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n    return this._transport.messageHandler.sendWithStream(\n      \"GetTextContent\",\n      {\n        pageIndex: this._pageIndex,\n        normalizeWhitespace: normalizeWhitespace === true,\n        combineTextItems: disableCombineTextItems !== true,\n      },\n      {\n        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n        size(textContent) {\n          return textContent.items.length;\n        },\n      }\n    );\n  }\n\n  /**\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {Promise<TextContent>} A promise that is resolved with a\n   *   {@link TextContent} object that represents the page's text content.\n   */\n  getTextContent(params = {}) {\n    const readableStream = this.streamTextContent(params);\n\n    return new Promise(function (resolve, reject) {\n      function pump() {\n        reader.read().then(function ({ value, done }) {\n          if (done) {\n            resolve(textContent);\n            return;\n          }\n          Object.assign(textContent.styles, value.styles);\n          textContent.items.push(...value.items);\n          pump();\n        }, reject);\n      }\n\n      const reader = readableStream.getReader();\n      const textContent = {\n        items: [],\n        styles: Object.create(null),\n      };\n      pump();\n    });\n  }\n\n  /**\n   * Destroys the page object.\n   * @private\n   */\n  _destroy() {\n    this.destroyed = true;\n    this._transport.pageCache[this._pageIndex] = null;\n\n    const waitOn = [];\n    for (const [intent, intentState] of this._intentStates) {\n      this._abortOperatorList({\n        intentState,\n        reason: new Error(\"Page was destroyed.\"),\n        force: true,\n      });\n\n      if (intent === \"oplist\") {\n        // Avoid errors below, since the renderTasks are just stubs.\n        continue;\n      }\n      for (const internalRenderTask of intentState.renderTasks) {\n        waitOn.push(internalRenderTask.completed);\n        internalRenderTask.cancel();\n      }\n    }\n    this.objs.clear();\n    this.annotationsPromise = null;\n    this.pendingCleanup = false;\n    return Promise.all(waitOn);\n  }\n\n  /**\n   * Cleans up resources allocated by the page.\n   *\n   * @param {boolean} [resetStats] - Reset page stats, if enabled.\n   *   The default value is `false`.\n   * @returns {boolean} Indicates if clean-up was successfully run.\n   */\n  cleanup(resetStats = false) {\n    this.pendingCleanup = true;\n    return this._tryCleanup(resetStats);\n  }\n\n  /**\n   * Attempts to clean up if rendering is in a state where that's possible.\n   * @private\n   */\n  _tryCleanup(resetStats = false) {\n    if (!this.pendingCleanup) {\n      return false;\n    }\n    for (const { renderTasks, operatorList } of this._intentStates.values()) {\n      if (renderTasks.length !== 0 || !operatorList.lastChunk) {\n        return false;\n      }\n    }\n\n    this._intentStates.clear();\n    this.objs.clear();\n    this.annotationsPromise = null;\n    if (resetStats && this._stats) {\n      this._stats = new StatTimer();\n    }\n    this.pendingCleanup = false;\n    return true;\n  }\n\n  /**\n   * @private\n   */\n  _startRenderPage(transparency, intent) {\n    const intentState = this._intentStates.get(intent);\n    if (!intentState) {\n      return; // Rendering was cancelled.\n    }\n    if (this._stats) {\n      this._stats.timeEnd(\"Page Request\");\n    }\n    // TODO Refactor RenderPageRequest to separate rendering\n    // and operator list logic\n    if (intentState.displayReadyCapability) {\n      intentState.displayReadyCapability.resolve(transparency);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _renderPageChunk(operatorListChunk, intentState) {\n    // Add the new chunk to the current operator list.\n    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n    }\n    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n    // Notify all the rendering tasks there are more operators to be consumed.\n    for (let i = 0; i < intentState.renderTasks.length; i++) {\n      intentState.renderTasks[i].operatorListChanged();\n    }\n\n    if (operatorListChunk.lastChunk) {\n      this._tryCleanup();\n    }\n  }\n\n  /**\n   * @private\n   */\n  _pumpOperatorList(args) {\n    assert(\n      args.intent,\n      'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.'\n    );\n\n    const readableStream = this._transport.messageHandler.sendWithStream(\n      \"GetOperatorList\",\n      args\n    );\n    const reader = readableStream.getReader();\n\n    const intentState = this._intentStates.get(args.intent);\n    intentState.streamReader = reader;\n\n    const pump = () => {\n      reader.read().then(\n        ({ value, done }) => {\n          if (done) {\n            intentState.streamReader = null;\n            return;\n          }\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          this._renderPageChunk(value, intentState);\n          pump();\n        },\n        reason => {\n          intentState.streamReader = null;\n\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          if (intentState.operatorList) {\n            // Mark operator list as complete.\n            intentState.operatorList.lastChunk = true;\n\n            for (let i = 0; i < intentState.renderTasks.length; i++) {\n              intentState.renderTasks[i].operatorListChanged();\n            }\n            this._tryCleanup();\n          }\n\n          if (intentState.displayReadyCapability) {\n            intentState.displayReadyCapability.reject(reason);\n          } else if (intentState.opListReadCapability) {\n            intentState.opListReadCapability.reject(reason);\n          } else {\n            throw reason;\n          }\n        }\n      );\n    };\n    pump();\n  }\n\n  /**\n   * @private\n   */\n  _abortOperatorList({ intentState, reason, force = false }) {\n    assert(\n      reason instanceof Error ||\n        (typeof reason === \"object\" && reason !== null),\n      'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.'\n    );\n\n    if (!intentState.streamReader) {\n      return;\n    }\n    if (!force) {\n      // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n      // multiple render() calls on the same canvas, won't break all rendering.\n      if (intentState.renderTasks.length !== 0) {\n        return;\n      }\n      // Don't immediately abort parsing on the worker-thread when rendering is\n      // cancelled, since that will unnecessarily delay re-rendering when (for\n      // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n      if (reason instanceof RenderingCancelledException) {\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          this._abortOperatorList({ intentState, reason, force: true });\n          intentState.streamReaderCancelTimeout = null;\n        }, RENDERING_CANCELLED_TIMEOUT);\n        return;\n      }\n    }\n    intentState.streamReader.cancel(\n      new AbortException(reason && reason.message)\n    );\n    intentState.streamReader = null;\n\n    if (this._transport.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    // Remove the current `intentState`, since a cancelled `getOperatorList`\n    // call on the worker-thread cannot be re-started...\n    for (const [intent, curIntentState] of this._intentStates) {\n      if (curIntentState === intentState) {\n        this._intentStates.delete(intent);\n        break;\n      }\n    }\n    // ... and force clean-up to ensure that any old state is always removed.\n    this.cleanup();\n  }\n\n  /**\n   * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n   */\n  get stats() {\n    return this._stats;\n  }\n}\n\nclass LoopbackPort {\n  constructor(defer = true) {\n    this._listeners = [];\n    this._defer = defer;\n    this._deferred = Promise.resolve(undefined);\n  }\n\n  postMessage(obj, transfers) {\n    function cloneValue(value) {\n      // Trying to perform a structured clone close to the spec, including\n      // transfers.\n      if (typeof value !== \"object\" || value === null) {\n        return value;\n      }\n      if (cloned.has(value)) {\n        // already cloned the object\n        return cloned.get(value);\n      }\n      let buffer, result;\n      if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n        // We found object with ArrayBuffer (typed array).\n        const transferable = transfers && transfers.includes(buffer);\n        if (transferable) {\n          result = new value.constructor(\n            buffer,\n            value.byteOffset,\n            value.byteLength\n          );\n        } else {\n          result = new value.constructor(value);\n        }\n        cloned.set(value, result);\n        return result;\n      }\n      result = Array.isArray(value) ? [] : {};\n      cloned.set(value, result); // adding to cache now for cyclic references\n      // Cloning all value and object properties, however ignoring properties\n      // defined via getter.\n      for (const i in value) {\n        let desc,\n          p = value;\n        while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n          p = Object.getPrototypeOf(p);\n        }\n        if (typeof desc.value === \"undefined\") {\n          continue;\n        }\n        if (typeof desc.value === \"function\") {\n          if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n            throw new Error(\n              `LoopbackPort.postMessage - cannot clone: ${value[i]}`\n            );\n          }\n          continue;\n        }\n        result[i] = cloneValue(desc.value);\n      }\n      return result;\n    }\n\n    if (!this._defer) {\n      this._listeners.forEach(listener => {\n        listener.call(this, { data: obj });\n      });\n      return;\n    }\n\n    const cloned = new WeakMap();\n    const e = { data: cloneValue(obj) };\n    this._deferred.then(() => {\n      this._listeners.forEach(listener => {\n        listener.call(this, e);\n      });\n    });\n  }\n\n  addEventListener(name, listener) {\n    this._listeners.push(listener);\n  }\n\n  removeEventListener(name, listener) {\n    const i = this._listeners.indexOf(listener);\n    this._listeners.splice(i, 1);\n  }\n\n  terminate() {\n    this._listeners.length = 0;\n  }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level; the\n *   constants from {@link VerbosityLevel} should be used.\n */\n\n/** @type {any} */\nconst PDFWorker = (function PDFWorkerClosure() {\n  const pdfWorkerPorts = new WeakMap();\n  let isWorkerDisabled = false;\n  let fallbackWorkerSrc;\n  let nextFakeWorkerId = 0;\n  let fakeWorkerCapability;\n\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n    // eslint-disable-next-line no-undef\n    if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n      // Workers aren't supported in Node.js, force-disabling them there.\n      isWorkerDisabled = true;\n\n      if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"LIB\")) {\n        fallbackWorkerSrc = \"../pdf.worker.js\";\n      } else {\n        fallbackWorkerSrc = \"./pdf.worker.js\";\n      }\n    } else if (typeof document === \"object\" && \"currentScript\" in document) {\n      const pdfjsFilePath =\n        document.currentScript && document.currentScript.src;\n      if (pdfjsFilePath) {\n        fallbackWorkerSrc = pdfjsFilePath.replace(\n          /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n          \".worker$1$2\"\n        );\n      }\n    }\n  }\n\n  function getWorkerSrc() {\n    if (GlobalWorkerOptions.workerSrc) {\n      return GlobalWorkerOptions.workerSrc;\n    }\n    if (typeof fallbackWorkerSrc !== \"undefined\") {\n      if (!isNodeJS) {\n        deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n      }\n      return fallbackWorkerSrc;\n    }\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  function getMainThreadWorkerMessageHandler() {\n    let mainWorkerMessageHandler;\n    try {\n      mainWorkerMessageHandler =\n        globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n    } catch (ex) {\n      /* Ignore errors. */\n    }\n    return mainWorkerMessageHandler || null;\n  }\n\n  // Loads worker code into main thread.\n  function setupFakeWorkerGlobal() {\n    if (fakeWorkerCapability) {\n      return fakeWorkerCapability.promise;\n    }\n    fakeWorkerCapability = createPromiseCapability();\n\n    const loader = async function () {\n      const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n      if (mainWorkerMessageHandler) {\n        // The worker was already loaded using e.g. a `<script>` tag.\n        return mainWorkerMessageHandler;\n      }\n      if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n        if (typeof SystemJS !== \"object\") {\n          // Manually load SystemJS, since it's only necessary for fake workers.\n          await loadScript(\"../node_modules/systemjs/dist/system.js\");\n          await loadScript(\"../systemjs.config.js\");\n        }\n        const worker = await SystemJS.import(\"pdfjs/core/worker.js\");\n        return worker.WorkerMessageHandler;\n      }\n      if (\n        PDFJSDev.test(\"GENERIC\") &&\n        isNodeJS &&\n        // eslint-disable-next-line no-undef\n        typeof __non_webpack_require__ === \"function\"\n      ) {\n        // Since bundlers, such as Webpack, cannot be told to leave `require`\n        // statements alone we are thus forced to jump through hoops in order\n        // to prevent `Critical dependency: ...` warnings in third-party\n        // deployments of the built `pdf.js`/`pdf.worker.js` files; see\n        // https://github.com/webpack/webpack/issues/8826\n        //\n        // The following hack is based on the assumption that code running in\n        // Node.js won't ever be affected by e.g. Content Security Policies that\n        // prevent the use of `eval`. If that ever occurs, we should revert this\n        // to a normal `__non_webpack_require__` statement and simply document\n        // the Webpack warnings instead (telling users to ignore them).\n        //\n        // eslint-disable-next-line no-eval\n        const worker = eval(\"require\")(getWorkerSrc());\n        return worker.WorkerMessageHandler;\n      }\n      await loadScript(getWorkerSrc());\n      return window.pdfjsWorker.WorkerMessageHandler;\n    };\n    loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n\n    return fakeWorkerCapability.promise;\n  }\n\n  function createCDNWrapper(url) {\n    // We will rely on blob URL's property to specify origin.\n    // We want this function to fail in case if createObjectURL or Blob do not\n    // exist or fail for some reason -- our Worker creation will fail anyway.\n    const wrapper = \"importScripts('\" + url + \"');\";\n    return URL.createObjectURL(new Blob([wrapper]));\n  }\n\n  /**\n   * PDF.js web worker abstraction that controls the instantiation of PDF\n   * documents. Message handlers are used to pass information from the main\n   * thread to the worker thread and vice versa. If the creation of a web\n   * worker is not possible, a \"fake\" worker will be used instead.\n   */\n  // eslint-disable-next-line no-shadow\n  class PDFWorker {\n    /**\n     * @param {PDFWorkerParameters} params - Worker initialization parameters.\n     */\n    constructor({\n      name = null,\n      port = null,\n      verbosity = getVerbosityLevel(),\n    } = {}) {\n      if (port && pdfWorkerPorts.has(port)) {\n        throw new Error(\"Cannot use more than one PDFWorker per port\");\n      }\n\n      this.name = name;\n      this.destroyed = false;\n      this.postMessageTransfers = true;\n      this.verbosity = verbosity;\n\n      this._readyCapability = createPromiseCapability();\n      this._port = null;\n      this._webWorker = null;\n      this._messageHandler = null;\n\n      if (port) {\n        pdfWorkerPorts.set(port, this);\n        this._initializeFromPort(port);\n        return;\n      }\n      this._initialize();\n    }\n\n    get promise() {\n      return this._readyCapability.promise;\n    }\n\n    get port() {\n      return this._port;\n    }\n\n    get messageHandler() {\n      return this._messageHandler;\n    }\n\n    _initializeFromPort(port) {\n      this._port = port;\n      this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n      this._messageHandler.on(\"ready\", function () {\n        // Ignoring 'ready' event -- MessageHandler shall be already initialized\n        // and ready to accept the messages.\n      });\n      this._readyCapability.resolve();\n    }\n\n    _initialize() {\n      // If worker support isn't disabled explicit and the browser has worker\n      // support, create a new web worker and test if it/the browser fulfills\n      // all requirements to run parts of pdf.js in a web worker.\n      // Right now, the requirement is, that an Uint8Array is still an\n      // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n      if (\n        typeof Worker !== \"undefined\" &&\n        !isWorkerDisabled &&\n        !getMainThreadWorkerMessageHandler()\n      ) {\n        let workerSrc = getWorkerSrc();\n\n        try {\n          // Wraps workerSrc path into blob URL, if the former does not belong\n          // to the same origin.\n          if (\n            typeof PDFJSDev !== \"undefined\" &&\n            PDFJSDev.test(\"GENERIC\") &&\n            !isSameOrigin(window.location.href, workerSrc)\n          ) {\n            workerSrc = createCDNWrapper(\n              new URL(workerSrc, window.location).href\n            );\n          }\n\n          // Some versions of FF can't create a worker on localhost, see:\n          // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n          const worker = new Worker(workerSrc);\n          const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n          const terminateEarly = () => {\n            worker.removeEventListener(\"error\", onWorkerError);\n            messageHandler.destroy();\n            worker.terminate();\n            if (this.destroyed) {\n              this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n            } else {\n              // Fall back to fake worker if the termination is caused by an\n              // error (e.g. NetworkError / SecurityError).\n              this._setupFakeWorker();\n            }\n          };\n\n          const onWorkerError = () => {\n            if (!this._webWorker) {\n              // Worker failed to initialize due to an error. Clean up and fall\n              // back to the fake worker.\n              terminateEarly();\n            }\n          };\n          worker.addEventListener(\"error\", onWorkerError);\n\n          messageHandler.on(\"test\", data => {\n            worker.removeEventListener(\"error\", onWorkerError);\n            if (this.destroyed) {\n              terminateEarly();\n              return; // worker was destroyed\n            }\n            if (data) {\n              // supportTypedArray\n              this._messageHandler = messageHandler;\n              this._port = worker;\n              this._webWorker = worker;\n              if (!data.supportTransfers) {\n                this.postMessageTransfers = false;\n              }\n              this._readyCapability.resolve();\n              // Send global setting, e.g. verbosity level.\n              messageHandler.send(\"configure\", {\n                verbosity: this.verbosity,\n              });\n            } else {\n              this._setupFakeWorker();\n              messageHandler.destroy();\n              worker.terminate();\n            }\n          });\n\n          messageHandler.on(\"ready\", data => {\n            worker.removeEventListener(\"error\", onWorkerError);\n            if (this.destroyed) {\n              terminateEarly();\n              return; // worker was destroyed\n            }\n            try {\n              sendTest();\n            } catch (e) {\n              // We need fallback to a faked worker.\n              this._setupFakeWorker();\n            }\n          });\n\n          const sendTest = () => {\n            const testObj = new Uint8Array([\n              this.postMessageTransfers ? 255 : 0,\n            ]);\n            // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n            // typed array. Also, checking if we can use transfers.\n            try {\n              messageHandler.send(\"test\", testObj, [testObj.buffer]);\n            } catch (ex) {\n              warn(\"Cannot use postMessage transfers.\");\n              testObj[0] = 0;\n              messageHandler.send(\"test\", testObj);\n            }\n          };\n\n          // It might take time for worker to initialize (especially when AMD\n          // loader is used). We will try to send test immediately, and then\n          // when 'ready' message will arrive. The worker shall process only\n          // first received 'test'.\n          sendTest();\n          return;\n        } catch (e) {\n          info(\"The worker has been disabled.\");\n        }\n      }\n      // Either workers are disabled, not supported or have thrown an exception.\n      // Thus, we fallback to a faked worker.\n      this._setupFakeWorker();\n    }\n\n    _setupFakeWorker() {\n      if (!isWorkerDisabled) {\n        warn(\"Setting up fake worker.\");\n        isWorkerDisabled = true;\n      }\n\n      setupFakeWorkerGlobal()\n        .then(WorkerMessageHandler => {\n          if (this.destroyed) {\n            this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n            return;\n          }\n          const port = new LoopbackPort();\n          this._port = port;\n\n          // All fake workers use the same port, making id unique.\n          const id = \"fake\" + nextFakeWorkerId++;\n\n          // If the main thread is our worker, setup the handling for the\n          // messages -- the main thread sends to it self.\n          const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n          WorkerMessageHandler.setup(workerHandler, port);\n\n          const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n          this._messageHandler = messageHandler;\n          this._readyCapability.resolve();\n          // Send global setting, e.g. verbosity level.\n          messageHandler.send(\"configure\", {\n            verbosity: this.verbosity,\n          });\n        })\n        .catch(reason => {\n          this._readyCapability.reject(\n            new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n          );\n        });\n    }\n\n    /**\n     * Destroys the worker instance.\n     */\n    destroy() {\n      this.destroyed = true;\n      if (this._webWorker) {\n        // We need to terminate only web worker created resource.\n        this._webWorker.terminate();\n        this._webWorker = null;\n      }\n      pdfWorkerPorts.delete(this._port);\n      this._port = null;\n      if (this._messageHandler) {\n        this._messageHandler.destroy();\n        this._messageHandler = null;\n      }\n    }\n\n    /**\n     * @param {PDFWorkerParameters} params - The worker initialization\n     *   parameters.\n     */\n    static fromPort(params) {\n      if (!params || !params.port) {\n        throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n      }\n      if (pdfWorkerPorts.has(params.port)) {\n        return pdfWorkerPorts.get(params.port);\n      }\n      return new PDFWorker(params);\n    }\n\n    static getWorkerSrc() {\n      return getWorkerSrc();\n    }\n  }\n  return PDFWorker;\n})();\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n  constructor(messageHandler, loadingTask, networkStream, params) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader({\n      docId: loadingTask.docId,\n      onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n      ownerDocument: params.ownerDocument,\n    });\n    this._params = params;\n    this.CMapReaderFactory = new params.CMapReaderFactory({\n      baseUrl: params.cMapUrl,\n      isCompressed: params.cMapPacked,\n    });\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n    this._passwordCapability = null;\n\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n\n    this.pageCache = [];\n    this.pagePromises = [];\n    this.downloadInfoCapability = createPromiseCapability();\n\n    this.setupMessageHandler();\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = createPromiseCapability();\n\n    if (this._passwordCapability) {\n      this._passwordCapability.reject(\n        new Error(\"Worker was destroyed during onPassword callback\")\n      );\n    }\n\n    const waitOn = [];\n    // We need to wait for all renderings to be completed, e.g.\n    // timeout/rAF can take a long time.\n    this.pageCache.forEach(function (page) {\n      if (page) {\n        waitOn.push(page._destroy());\n      }\n    });\n    this.pageCache.length = 0;\n    this.pagePromises.length = 0;\n    // We also need to wait for the worker to finish its long running tasks.\n    const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n    waitOn.push(terminated);\n    Promise.all(waitOn).then(() => {\n      this.fontLoader.clear();\n      if (this._networkStream) {\n        this._networkStream.cancelAllRequests(\n          new AbortException(\"Worker was terminated.\")\n        );\n      }\n\n      if (this.messageHandler) {\n        this.messageHandler.destroy();\n        this.messageHandler = null;\n      }\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n\n  setupMessageHandler() {\n    const { messageHandler, loadingTask } = this;\n\n    messageHandler.on(\"GetReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetReader - no `IPDFStream` instance available.\"\n      );\n      this._fullReader = this._networkStream.getFullReader();\n      this._fullReader.onProgress = evt => {\n        this._lastProgress = {\n          loaded: evt.loaded,\n          total: evt.total,\n        };\n      };\n      sink.onPull = () => {\n        this._fullReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              isArrayBuffer(value),\n              \"GetReader - expected an ArrayBuffer.\"\n            );\n            // Enqueue data chunk into sink, and transfer it\n            // to other side as `Transferable` object.\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        this._fullReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"ReaderHeadersReady\", data => {\n      const headersCapability = createPromiseCapability();\n      const fullReader = this._fullReader;\n      fullReader.headersReady.then(() => {\n        // If stream or range are disabled, it's our only way to report\n        // loading progress.\n        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n          if (this._lastProgress && loadingTask.onProgress) {\n            loadingTask.onProgress(this._lastProgress);\n          }\n          fullReader.onProgress = evt => {\n            if (loadingTask.onProgress) {\n              loadingTask.onProgress({\n                loaded: evt.loaded,\n                total: evt.total,\n              });\n            }\n          };\n        }\n\n        headersCapability.resolve({\n          isStreamingSupported: fullReader.isStreamingSupported,\n          isRangeSupported: fullReader.isRangeSupported,\n          contentLength: fullReader.contentLength,\n        });\n      }, headersCapability.reject);\n\n      return headersCapability.promise;\n    });\n\n    messageHandler.on(\"GetRangeReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetRangeReader - no `IPDFStream` instance available.\"\n      );\n      const rangeReader = this._networkStream.getRangeReader(\n        data.begin,\n        data.end\n      );\n\n      // When streaming is enabled, it's possible that the data requested here\n      // has already been fetched via the `_fullRequestReader` implementation.\n      // However, given that the PDF data is loaded asynchronously on the\n      // main-thread and then sent via `postMessage` to the worker-thread,\n      // it may not have been available during parsing (hence the attempt to\n      // use range requests here).\n      //\n      // To avoid wasting time and resources here, we'll thus *not* dispatch\n      // range requests if the data was already loaded but has not been sent to\n      // the worker-thread yet (which will happen via the `_fullRequestReader`).\n      if (!rangeReader) {\n        sink.close();\n        return;\n      }\n\n      sink.onPull = () => {\n        rangeReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              isArrayBuffer(value),\n              \"GetRangeReader - expected an ArrayBuffer.\"\n            );\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        rangeReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"GetDoc\", ({ pdfInfo }) => {\n      this._numPages = pdfInfo.numPages;\n      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n    });\n\n    messageHandler.on(\"DocException\", function (ex) {\n      let reason;\n      switch (ex.name) {\n        case \"PasswordException\":\n          reason = new PasswordException(ex.message, ex.code);\n          break;\n        case \"InvalidPDFException\":\n          reason = new InvalidPDFException(ex.message);\n          break;\n        case \"MissingPDFException\":\n          reason = new MissingPDFException(ex.message);\n          break;\n        case \"UnexpectedResponseException\":\n          reason = new UnexpectedResponseException(ex.message, ex.status);\n          break;\n        case \"UnknownErrorException\":\n          reason = new UnknownErrorException(ex.message, ex.details);\n          break;\n      }\n      if (!(reason instanceof Error)) {\n        const msg = \"DocException - expected a valid Error.\";\n        if (\n          typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")\n        ) {\n          unreachable(msg);\n        } else {\n          warn(msg);\n        }\n      }\n      loadingTask._capability.reject(reason);\n    });\n\n    messageHandler.on(\"PasswordRequest\", exception => {\n      this._passwordCapability = createPromiseCapability();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = password => {\n          this._passwordCapability.resolve({\n            password,\n          });\n        };\n        try {\n          loadingTask.onPassword(updatePassword, exception.code);\n        } catch (ex) {\n          this._passwordCapability.reject(ex);\n        }\n      } else {\n        this._passwordCapability.reject(\n          new PasswordException(exception.message, exception.code)\n        );\n      }\n      return this._passwordCapability.promise;\n    });\n\n    messageHandler.on(\"DataLoaded\", data => {\n      // For consistency: Ensure that progress is always reported when the\n      // entire PDF file has been loaded, regardless of how it was fetched.\n      if (loadingTask.onProgress) {\n        loadingTask.onProgress({\n          loaded: data.length,\n          total: data.length,\n        });\n      }\n      this.downloadInfoCapability.resolve(data);\n    });\n\n    messageHandler.on(\"StartRenderPage\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.pageCache[data.pageIndex];\n      page._startRenderPage(data.transparency, data.intent);\n    });\n\n    messageHandler.on(\"commonobj\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const [id, type, exportedData] = data;\n      if (this.commonObjs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Font\":\n          const params = this._params;\n\n          if (\"error\" in exportedData) {\n            const exportedError = exportedData.error;\n            warn(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n\n          let fontRegistry = null;\n          if (\n            params.pdfBug &&\n            globalThis.FontInspector &&\n            globalThis.FontInspector.enabled\n          ) {\n            fontRegistry = {\n              registerFont(font, url) {\n                globalThis.FontInspector.fontAdded(font, url);\n              },\n            };\n          }\n          const font = new FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n            fontRegistry,\n          });\n\n          this.fontLoader\n            .bind(font)\n            .catch(reason => {\n              return messageHandler.sendWithPromise(\"FontFallback\", { id });\n            })\n            .finally(() => {\n              if (!params.fontExtraProperties && font.data) {\n                // Immediately release the `font.data` property once the font\n                // has been attached to the DOM, since it's no longer needed,\n                // rather than waiting for a `PDFDocumentProxy.cleanup` call.\n                // Since `font.data` could be very large, e.g. in some cases\n                // multiple megabytes, this will help reduce memory usage.\n                font.data = null;\n              }\n              this.commonObjs.resolve(id, font);\n            });\n          break;\n        case \"FontPath\":\n        case \"Image\":\n          this.commonObjs.resolve(id, exportedData);\n          break;\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n    });\n\n    messageHandler.on(\"obj\", data => {\n      if (this.destroyed) {\n        // Ignore any pending requests if the worker was terminated.\n        return undefined;\n      }\n\n      const [id, pageIndex, type, imageData] = data;\n      const pageProxy = this.pageCache[pageIndex];\n      if (pageProxy.objs.has(id)) {\n        return undefined;\n      }\n\n      switch (type) {\n        case \"Image\":\n          pageProxy.objs.resolve(id, imageData);\n\n          // Heuristic that will allow us not to store large data.\n          const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n          if (\n            imageData &&\n            \"data\" in imageData &&\n            imageData.data.length > MAX_IMAGE_SIZE_TO_STORE\n          ) {\n            pageProxy.cleanupAfterRender = true;\n          }\n          break;\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n      return undefined;\n    });\n\n    messageHandler.on(\"DocProgress\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      if (loadingTask.onProgress) {\n        loadingTask.onProgress({\n          loaded: data.loaded,\n          total: data.total,\n        });\n      }\n    });\n\n    messageHandler.on(\n      \"UnsupportedFeature\",\n      this._onUnsupportedFeature.bind(this)\n    );\n\n    messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n      if (this.destroyed) {\n        sink.error(new Error(\"Worker was destroyed\"));\n        return;\n      }\n      let fetched = false;\n\n      sink.onPull = () => {\n        if (fetched) {\n          sink.close();\n          return;\n        }\n        fetched = true;\n\n        this.CMapReaderFactory.fetch(data)\n          .then(function (builtInCMap) {\n            sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n          })\n          .catch(function (reason) {\n            sink.error(reason);\n          });\n      };\n    });\n  }\n\n  _onUnsupportedFeature({ featureId }) {\n    if (this.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    if (this.loadingTask.onUnsupportedFeature) {\n      this.loadingTask.onUnsupportedFeature(featureId);\n    }\n  }\n\n  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n\n  getPage(pageNumber) {\n    if (\n      !Number.isInteger(pageNumber) ||\n      pageNumber <= 0 ||\n      pageNumber > this._numPages\n    ) {\n      return Promise.reject(new Error(\"Invalid page request\"));\n    }\n\n    const pageIndex = pageNumber - 1;\n    if (pageIndex in this.pagePromises) {\n      return this.pagePromises[pageIndex];\n    }\n    const promise = this.messageHandler\n      .sendWithPromise(\"GetPage\", {\n        pageIndex,\n      })\n      .then(pageInfo => {\n        if (this.destroyed) {\n          throw new Error(\"Transport destroyed\");\n        }\n        const page = new PDFPageProxy(\n          pageIndex,\n          pageInfo,\n          this,\n          this._params.ownerDocument,\n          this._params.pdfBug\n        );\n        this.pageCache[pageIndex] = page;\n        return page;\n      });\n    this.pagePromises[pageIndex] = promise;\n    return promise;\n  }\n\n  getPageIndex(ref) {\n    return this.messageHandler\n      .sendWithPromise(\"GetPageIndex\", {\n        ref,\n      })\n      .catch(function (reason) {\n        return Promise.reject(new Error(reason));\n      });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex,\n      intent,\n    });\n  }\n\n  saveDocument(annotationStorage) {\n    return this.messageHandler\n      .sendWithPromise(\"SaveDocument\", {\n        numPages: this._numPages,\n        annotationStorage:\n          (annotationStorage && annotationStorage.getAll()) || null,\n        filename: this._fullReader ? this._fullReader.filename : null,\n      })\n      .finally(() => {\n        if (annotationStorage) {\n          annotationStorage.resetModified();\n        }\n      });\n  }\n\n  getDestinations() {\n    return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n  }\n\n  getDestination(id) {\n    if (typeof id !== \"string\") {\n      return Promise.reject(new Error(\"Invalid destination request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetDestination\", {\n      id,\n    });\n  }\n\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n  }\n\n  getPageLayout() {\n    return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n  }\n\n  getPageMode() {\n    return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n  }\n\n  getViewerPreferences() {\n    return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n  }\n\n  getOpenAction() {\n    return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n  }\n\n  getAttachments() {\n    return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n  }\n\n  getJavaScript() {\n    return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n  }\n\n  getOutline() {\n    return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n  }\n\n  getOptionalContentConfig() {\n    return this.messageHandler\n      .sendWithPromise(\"GetOptionalContentConfig\", null)\n      .then(results => {\n        return new OptionalContentConfig(results);\n      });\n  }\n\n  getPermissions() {\n    return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n  }\n\n  getMetadata() {\n    return this.messageHandler\n      .sendWithPromise(\"GetMetadata\", null)\n      .then(results => {\n        return {\n          info: results[0],\n          metadata: results[1] ? new Metadata(results[1]) : null,\n          contentDispositionFilename: this._fullReader\n            ? this._fullReader.filename\n            : null,\n        };\n      });\n  }\n\n  getStats() {\n    return this.messageHandler.sendWithPromise(\"GetStats\", null);\n  }\n\n  startCleanup() {\n    return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(() => {\n      for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n        const page = this.pageCache[i];\n        if (page) {\n          const cleanupSuccessful = page.cleanup();\n\n          if (!cleanupSuccessful) {\n            throw new Error(\n              `startCleanup: Page ${i + 1} is currently rendering.`\n            );\n          }\n        }\n      }\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n    });\n  }\n\n  get loadingParams() {\n    const params = this._params;\n    return shadow(this, \"loadingParams\", {\n      disableAutoFetch: params.disableAutoFetch,\n      disableFontFace: params.disableFontFace,\n    });\n  }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n * @ignore\n */\nclass PDFObjects {\n  constructor() {\n    this._objs = Object.create(null);\n  }\n\n  /**\n   * Ensures there is an object defined for `objId`.\n   * @private\n   */\n  _ensureObj(objId) {\n    if (this._objs[objId]) {\n      return this._objs[objId];\n    }\n    return (this._objs[objId] = {\n      capability: createPromiseCapability(),\n      data: null,\n      resolved: false,\n    });\n  }\n\n  /**\n   * If called *without* callback, this returns the data of `objId` but the\n   * object needs to be resolved. If it isn't, this method throws.\n   *\n   * If called *with* a callback, the callback is called with the data of the\n   * object once the object is resolved. That means, if you call this method\n   * and the object is already resolved, the callback gets called right away.\n   */\n  get(objId, callback = null) {\n    // If there is a callback, then the get can be async and the object is\n    // not required to be resolved right now.\n    if (callback) {\n      this._ensureObj(objId).capability.promise.then(callback);\n      return null;\n    }\n    // If there isn't a callback, the user expects to get the resolved data\n    // directly.\n    const obj = this._objs[objId];\n    // If there isn't an object yet or the object isn't resolved, then the\n    // data isn't ready yet!\n    if (!obj || !obj.resolved) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n    return obj.data;\n  }\n\n  has(objId) {\n    const obj = this._objs[objId];\n    return obj ? obj.resolved : false;\n  }\n\n  /**\n   * Resolves the object `objId` with optional `data`.\n   */\n  resolve(objId, data) {\n    const obj = this._ensureObj(objId);\n\n    obj.resolved = true;\n    obj.data = data;\n    obj.capability.resolve(data);\n  }\n\n  clear() {\n    this._objs = Object.create(null);\n  }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n  constructor(internalRenderTask) {\n    this._internalRenderTask = internalRenderTask;\n\n    /**\n     * Callback for incremental rendering -- a function that will be called\n     * each time the rendering is paused.  To continue rendering call the\n     * function that is the first argument to the callback.\n     * @type {function}\n     */\n    this.onContinue = null;\n  }\n\n  /**\n   * Promise for rendering task completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._internalRenderTask.capability.promise;\n  }\n\n  /**\n   * Cancels the rendering task. If the task is currently rendering it will\n   * not be cancelled until graphics pauses with a timeout. The promise that\n   * this object extends will be rejected when cancelled.\n   */\n  cancel() {\n    this._internalRenderTask.cancel();\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nconst InternalRenderTask = (function InternalRenderTaskClosure() {\n  const canvasInRendering = new WeakSet();\n\n  // eslint-disable-next-line no-shadow\n  class InternalRenderTask {\n    constructor({\n      callback,\n      params,\n      objs,\n      commonObjs,\n      operatorList,\n      pageIndex,\n      canvasFactory,\n      webGLContext,\n      useRequestAnimationFrame = false,\n      pdfBug = false,\n    }) {\n      this.callback = callback;\n      this.params = params;\n      this.objs = objs;\n      this.commonObjs = commonObjs;\n      this.operatorListIdx = null;\n      this.operatorList = operatorList;\n      this._pageIndex = pageIndex;\n      this.canvasFactory = canvasFactory;\n      this.webGLContext = webGLContext;\n      this._pdfBug = pdfBug;\n\n      this.running = false;\n      this.graphicsReadyCallback = null;\n      this.graphicsReady = false;\n      this._useRequestAnimationFrame =\n        useRequestAnimationFrame === true && typeof window !== \"undefined\";\n      this.cancelled = false;\n      this.capability = createPromiseCapability();\n      this.task = new RenderTask(this);\n      // caching this-bound methods\n      this._continueBound = this._continue.bind(this);\n      this._scheduleNextBound = this._scheduleNext.bind(this);\n      this._nextBound = this._next.bind(this);\n      this._canvas = params.canvasContext.canvas;\n    }\n\n    get completed() {\n      return this.capability.promise.catch(function () {\n        // Ignoring errors, since we only want to know when rendering is\n        // no longer pending.\n      });\n    }\n\n    initializeGraphics({ transparency = false, optionalContentConfig }) {\n      if (this.cancelled) {\n        return;\n      }\n      if (this._canvas) {\n        if (canvasInRendering.has(this._canvas)) {\n          throw new Error(\n            \"Cannot use the same canvas during multiple render() operations. \" +\n              \"Use different canvas or ensure previous operations were \" +\n              \"cancelled or completed.\"\n          );\n        }\n        canvasInRendering.add(this._canvas);\n      }\n\n      if (\n        this._pdfBug &&\n        globalThis.StepperManager &&\n        globalThis.StepperManager.enabled\n      ) {\n        this.stepper = globalThis.StepperManager.create(this._pageIndex);\n        this.stepper.init(this.operatorList);\n        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n      }\n      const {\n        canvasContext,\n        viewport,\n        transform,\n        imageLayer,\n        background,\n      } = this.params;\n\n      this.gfx = new CanvasGraphics(\n        canvasContext,\n        this.commonObjs,\n        this.objs,\n        this.canvasFactory,\n        this.webGLContext,\n        imageLayer,\n        optionalContentConfig\n      );\n      this.gfx.beginDrawing({\n        transform,\n        viewport,\n        transparency,\n        background,\n      });\n      this.operatorListIdx = 0;\n      this.graphicsReady = true;\n      if (this.graphicsReadyCallback) {\n        this.graphicsReadyCallback();\n      }\n    }\n\n    cancel(error = null) {\n      this.running = false;\n      this.cancelled = true;\n      if (this.gfx) {\n        this.gfx.endDrawing();\n      }\n      if (this._canvas) {\n        canvasInRendering.delete(this._canvas);\n      }\n      this.callback(\n        error ||\n          new RenderingCancelledException(\n            `Rendering cancelled, page ${this._pageIndex + 1}`,\n            \"canvas\"\n          )\n      );\n    }\n\n    operatorListChanged() {\n      if (!this.graphicsReady) {\n        if (!this.graphicsReadyCallback) {\n          this.graphicsReadyCallback = this._continueBound;\n        }\n        return;\n      }\n\n      if (this.stepper) {\n        this.stepper.updateOperatorList(this.operatorList);\n      }\n\n      if (this.running) {\n        return;\n      }\n      this._continue();\n    }\n\n    _continue() {\n      this.running = true;\n      if (this.cancelled) {\n        return;\n      }\n      if (this.task.onContinue) {\n        this.task.onContinue(this._scheduleNextBound);\n      } else {\n        this._scheduleNext();\n      }\n    }\n\n    _scheduleNext() {\n      if (this._useRequestAnimationFrame) {\n        window.requestAnimationFrame(() => {\n          this._nextBound().catch(this.cancel.bind(this));\n        });\n      } else {\n        Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\n      }\n    }\n\n    async _next() {\n      if (this.cancelled) {\n        return;\n      }\n      this.operatorListIdx = this.gfx.executeOperatorList(\n        this.operatorList,\n        this.operatorListIdx,\n        this._continueBound,\n        this.stepper\n      );\n      if (this.operatorListIdx === this.operatorList.argsArray.length) {\n        this.running = false;\n        if (this.operatorList.lastChunk) {\n          this.gfx.endDrawing();\n          if (this._canvas) {\n            canvasInRendering.delete(this._canvas);\n          }\n          this.callback();\n        }\n      }\n    }\n  }\n  return InternalRenderTask;\n})();\n\n/** @type {string} */\nconst version =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n/** @type {string} */\nconst build =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : null;\n\nexport {\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  PDFDocumentProxy,\n  PDFPageProxy,\n  setPDFNetworkStreamFactory,\n  version,\n  build,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\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 {\n  assert,\n  bytesToString,\n  IsEvalSupportedCached,\n  shadow,\n  string32,\n  unreachable,\n  UNSUPPORTED_FEATURES,\n  warn,\n} from \"../shared/util.js\";\n\nclass BaseFontLoader {\n  constructor({\n    docId,\n    onUnsupportedFeature,\n    ownerDocument = globalThis.document,\n  }) {\n    if (this.constructor === BaseFontLoader) {\n      unreachable(\"Cannot initialize BaseFontLoader.\");\n    }\n    this.docId = docId;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this._document = ownerDocument;\n\n    this.nativeFontFaces = [];\n    this.styleElement = null;\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.push(nativeFontFace);\n    this._document.fonts.add(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    let styleElement = this.styleElement;\n    if (!styleElement) {\n      styleElement = this.styleElement = this._document.createElement(\"style\");\n      styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n      this._document.documentElement\n        .getElementsByTagName(\"head\")[0]\n        .appendChild(styleElement);\n    }\n\n    const styleSheet = styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n\n  clear() {\n    this.nativeFontFaces.forEach(nativeFontFace => {\n      this._document.fonts.delete(nativeFontFace);\n    });\n    this.nativeFontFaces.length = 0;\n\n    if (this.styleElement) {\n      // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n\n  async bind(font) {\n    // Add the font to the DOM only once; skip if the font is already loaded.\n    if (font.attached || font.missingFile) {\n      return;\n    }\n    font.attached = true;\n\n    if (this.isFontLoadingAPISupported) {\n      const nativeFontFace = font.createNativeFontFace();\n      if (nativeFontFace) {\n        this.addNativeFontFace(nativeFontFace);\n        try {\n          await nativeFontFace.loaded;\n        } catch (ex) {\n          this._onUnsupportedFeature({\n            featureId: UNSUPPORTED_FEATURES.errorFontLoadNative,\n          });\n          warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n          // When font loading failed, fall back to the built-in font renderer.\n          font.disableFontFace = true;\n          throw ex;\n        }\n      }\n      return; // The font was, asynchronously, loaded.\n    }\n\n    // !this.isFontLoadingAPISupported\n    const rule = font.createFontFaceRule();\n    if (rule) {\n      this.insertRule(rule);\n\n      if (this.isSyncFontLoadingSupported) {\n        return; // The font was, synchronously, loaded.\n      }\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n        this._prepareFontLoadEvent([rule], [font], request);\n      });\n      // The font was, asynchronously, loaded.\n    }\n  }\n\n  _queueLoadingCallback(callback) {\n    unreachable(\"Abstract method `_queueLoadingCallback`.\");\n  }\n\n  get isFontLoadingAPISupported() {\n    const supported =\n      typeof this._document !== \"undefined\" && !!this._document.fonts;\n    return shadow(this, \"isFontLoadingAPISupported\", supported);\n  }\n\n  // eslint-disable-next-line getter-return\n  get isSyncFontLoadingSupported() {\n    unreachable(\"Abstract method `isSyncFontLoadingSupported`.\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get _loadTestFont() {\n    unreachable(\"Abstract method `_loadTestFont`.\");\n  }\n\n  _prepareFontLoadEvent(rules, fontsToLoad, request) {\n    unreachable(\"Abstract method `_prepareFontLoadEvent`.\");\n  }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  FontLoader = class MozcentralFontLoader extends BaseFontLoader {\n    get isSyncFontLoadingSupported() {\n      return shadow(this, \"isSyncFontLoadingSupported\", true);\n    }\n  };\n} else {\n  // PDFJSDev.test('CHROME || GENERIC')\n\n  FontLoader = class GenericFontLoader extends BaseFontLoader {\n    constructor(params) {\n      super(params);\n      this.loadingContext = {\n        requests: [],\n        nextRequestId: 0,\n      };\n      this.loadTestFontId = 0;\n    }\n\n    get isSyncFontLoadingSupported() {\n      let supported = false;\n      if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n        if (typeof navigator === \"undefined\") {\n          // Node.js - we can pretend that sync font loading is supported.\n          supported = true;\n        } else {\n          // User agent string sniffing is bad, but there is no reliable way to\n          // tell if the font is fully loaded and ready to be used with canvas.\n          const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(\n            navigator.userAgent\n          );\n          if (m && m[1] >= 14) {\n            supported = true;\n          }\n          // TODO - other browsers...\n        }\n      }\n      return shadow(this, \"isSyncFontLoadingSupported\", supported);\n    }\n\n    _queueLoadingCallback(callback) {\n      function completeRequest() {\n        assert(!request.done, \"completeRequest() cannot be called twice.\");\n        request.done = true;\n\n        // Sending all completed requests in order of how they were queued.\n        while (context.requests.length > 0 && context.requests[0].done) {\n          const otherRequest = context.requests.shift();\n          setTimeout(otherRequest.callback, 0);\n        }\n      }\n\n      const context = this.loadingContext;\n      const request = {\n        id: `pdfjs-font-loading-${context.nextRequestId++}`,\n        done: false,\n        complete: completeRequest,\n        callback,\n      };\n      context.requests.push(request);\n      return request;\n    }\n\n    get _loadTestFont() {\n      const getLoadTestFont = function () {\n        // This is a CFF font with 1 glyph for '.' that fills its entire width\n        // and height.\n        return atob(\n          \"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" +\n            \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" +\n            \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" +\n            \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" +\n            \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" +\n            \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" +\n            \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" +\n            \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" +\n            \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" +\n            \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" +\n            \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" +\n            \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" +\n            \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" +\n            \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" +\n            \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" +\n            \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" +\n            \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\"\n        );\n      };\n      return shadow(this, \"_loadTestFont\", getLoadTestFont());\n    }\n\n    _prepareFontLoadEvent(rules, fonts, request) {\n      /** Hack begin */\n      // There's currently no event when a font has finished downloading so the\n      // following code is a dirty hack to 'guess' when a font is ready.\n      // It's assumed fonts are loaded in order, so add a known test font after\n      // the desired fonts and then test for the loading of that test font.\n\n      function int32(data, offset) {\n        return (\n          (data.charCodeAt(offset) << 24) |\n          (data.charCodeAt(offset + 1) << 16) |\n          (data.charCodeAt(offset + 2) << 8) |\n          (data.charCodeAt(offset + 3) & 0xff)\n        );\n      }\n      function spliceString(s, offset, remove, insert) {\n        const chunk1 = s.substring(0, offset);\n        const chunk2 = s.substring(offset + remove);\n        return chunk1 + insert + chunk2;\n      }\n      let i, ii;\n\n      // The temporary canvas is used to determine if fonts are loaded.\n      const canvas = this._document.createElement(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      const ctx = canvas.getContext(\"2d\");\n\n      let called = 0;\n      function isFontReady(name, callback) {\n        called++;\n        // With setTimeout clamping this gives the font ~100ms to load.\n        if (called > 30) {\n          warn(\"Load test font never loaded.\");\n          callback();\n          return;\n        }\n        ctx.font = \"30px \" + name;\n        ctx.fillText(\".\", 0, 20);\n        const imageData = ctx.getImageData(0, 0, 1, 1);\n        if (imageData.data[3] > 0) {\n          callback();\n          return;\n        }\n        setTimeout(isFontReady.bind(null, name, callback));\n      }\n\n      const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n      // Chromium seems to cache fonts based on a hash of the actual font data,\n      // so the font must be modified for each load test else it will appear to\n      // be loaded already.\n      // TODO: This could maybe be made faster by avoiding the btoa of the full\n      // font by splitting it in chunks before hand and padding the font id.\n      let data = this._loadTestFont;\n      const COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n      data = spliceString(\n        data,\n        COMMENT_OFFSET,\n        loadTestFontId.length,\n        loadTestFontId\n      );\n      // CFF checksum is important for IE, adjusting it\n      const CFF_CHECKSUM_OFFSET = 16;\n      const XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n      let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n      for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n        checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n      }\n      if (i < loadTestFontId.length) {\n        // align to 4 bytes boundary\n        checksum =\n          (checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i)) | 0;\n      }\n      data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n      const url = `url(data:font/opentype;base64,${btoa(data)});`;\n      const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n      this.insertRule(rule);\n\n      const names = [];\n      for (i = 0, ii = fonts.length; i < ii; i++) {\n        names.push(fonts[i].loadedName);\n      }\n      names.push(loadTestFontId);\n\n      const div = this._document.createElement(\"div\");\n      div.style.visibility = \"hidden\";\n      div.style.width = div.style.height = \"10px\";\n      div.style.position = \"absolute\";\n      div.style.top = div.style.left = \"0px\";\n\n      for (i = 0, ii = names.length; i < ii; ++i) {\n        const span = this._document.createElement(\"span\");\n        span.textContent = \"Hi\";\n        span.style.fontFamily = names[i];\n        div.appendChild(span);\n      }\n      this._document.body.appendChild(div);\n\n      isFontReady(loadTestFontId, () => {\n        this._document.body.removeChild(div);\n        request.complete();\n      });\n      /** Hack end */\n    }\n  };\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nclass FontFaceObject {\n  constructor(\n    translatedData,\n    {\n      isEvalSupported = true,\n      disableFontFace = false,\n      ignoreErrors = false,\n      onUnsupportedFeature = null,\n      fontRegistry = null,\n    }\n  ) {\n    this.compiledGlyphs = Object.create(null);\n    // importing translated data\n    for (const i in translatedData) {\n      this[i] = translatedData[i];\n    }\n    this.isEvalSupported = isEvalSupported !== false;\n    this.disableFontFace = disableFontFace === true;\n    this.ignoreErrors = ignoreErrors === true;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this.fontRegistry = fontRegistry;\n  }\n\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this);\n    }\n    return nativeFontFace;\n  }\n\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const data = bytesToString(new Uint8Array(this.data));\n    // Add the @font-face rule to the document.\n    const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n    const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this, url);\n    }\n    return rule;\n  }\n\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n\n    let cmds, current;\n    try {\n      cmds = objs.get(this.loadedName + \"_path_\" + character);\n    } catch (ex) {\n      if (!this.ignoreErrors) {\n        throw ex;\n      }\n      if (this._onUnsupportedFeature) {\n        this._onUnsupportedFeature({\n          featureId: UNSUPPORTED_FEATURES.errorFontGetPath,\n        });\n      }\n      warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n      return (this.compiledGlyphs[character] = function (c, size) {\n        // No-op function, to allow rendering to continue.\n      });\n    }\n\n    // If we can, compile cmds into JS for MAXIMUM SPEED...\n    if (this.isEvalSupported && IsEvalSupportedCached.value) {\n      let args,\n        js = \"\";\n      for (let i = 0, ii = cmds.length; i < ii; i++) {\n        current = cmds[i];\n\n        if (current.args !== undefined) {\n          args = current.args.join(\",\");\n        } else {\n          args = \"\";\n        }\n        js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n      }\n      // eslint-disable-next-line no-new-func\n      return (this.compiledGlyphs[character] = new Function(\"c\", \"size\", js));\n    }\n    // ... but fall back on using Function.prototype.apply() if we're\n    // blocked from using eval() for whatever reason (like CSP policies).\n    return (this.compiledGlyphs[character] = function (c, size) {\n      for (let i = 0, ii = cmds.length; i < ii; i++) {\n        current = cmds[i];\n\n        if (current.cmd === \"scale\") {\n          current.args = [size, -size];\n        }\n        c[current.cmd].apply(c, current.args);\n      }\n    });\n  }\n}\n\nexport { FontFaceObject, FontLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\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/* globals __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport { BaseCanvasFactory, BaseCMapReaderFactory } from \"./display_utils.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { unreachable } from \"../shared/util.js\";\n\nlet NodeCanvasFactory = class {\n  constructor() {\n    unreachable(\"Not implemented: NodeCanvasFactory\");\n  }\n};\n\nlet NodeCMapReaderFactory = class {\n  constructor() {\n    unreachable(\"Not implemented: NodeCMapReaderFactory\");\n  }\n};\n\nif ((typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS) {\n  NodeCanvasFactory = class extends BaseCanvasFactory {\n    create(width, height) {\n      if (width <= 0 || height <= 0) {\n        throw new Error(\"Invalid canvas size\");\n      }\n      const Canvas = __non_webpack_require__(\"canvas\");\n      const canvas = Canvas.createCanvas(width, height);\n      return {\n        canvas,\n        context: canvas.getContext(\"2d\"),\n      };\n    }\n  };\n\n  NodeCMapReaderFactory = class extends BaseCMapReaderFactory {\n    _fetchData(url, compressionType) {\n      return new Promise((resolve, reject) => {\n        const fs = __non_webpack_require__(\"fs\");\n        fs.readFile(url, (error, data) => {\n          if (error || !data) {\n            reject(new Error(error));\n            return;\n          }\n          resolve({ cMapData: new Uint8Array(data), compressionType });\n        });\n      });\n    }\n  };\n}\n\nexport { NodeCanvasFactory, NodeCMapReaderFactory };\n","/* Copyright 2020 Mozilla Foundation\n *\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 * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n  constructor() {\n    this._storage = new Map();\n    this._modified = false;\n\n    // Callbacks to signal when the modification state is set or reset.\n    // This is used by the viewer to only bind on `beforeunload` if forms\n    // are actually edited to prevent doing so unconditionally since that\n    // can have undesirable efffects.\n    this.onSetModified = null;\n    this.onResetModified = null;\n  }\n\n  /**\n   * Get the value for a given key if it exists\n   * or store and return the default value\n   *\n   * @public\n   * @memberof AnnotationStorage\n   * @param {string} key\n   * @param {Object} defaultValue\n   * @returns {Object}\n   */\n  getOrCreateValue(key, defaultValue) {\n    if (this._storage.has(key)) {\n      return this._storage.get(key);\n    }\n\n    this._storage.set(key, defaultValue);\n    return defaultValue;\n  }\n\n  /**\n   * Set the value for a given key\n   *\n   * @public\n   * @memberof AnnotationStorage\n   * @param {string} key\n   * @param {Object} value\n   */\n  setValue(key, value) {\n    if (this._storage.get(key) !== value) {\n      this._setModified();\n    }\n    this._storage.set(key, value);\n  }\n\n  getAll() {\n    if (this._storage.size === 0) {\n      return null;\n    }\n    return Object.fromEntries(this._storage);\n  }\n\n  get size() {\n    return this._storage.size;\n  }\n\n  /**\n   * @private\n   */\n  _setModified() {\n    if (!this._modified) {\n      this._modified = true;\n      if (typeof this.onSetModified === \"function\") {\n        this.onSetModified();\n      }\n    }\n  }\n\n  resetModified() {\n    if (this._modified) {\n      this._modified = false;\n      if (typeof this.onResetModified === \"function\") {\n        this.onResetModified();\n      }\n    }\n  }\n}\n\nexport { AnnotationStorage };\n","/* Copyright 2018 Mozilla Foundation\n *\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 { isNodeJS } from \"../shared/is_node.js\";\n\nconst compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n  // Support: Node.js\n  (function checkFontFace() {\n    // Node.js is missing native support for `@font-face`.\n    if (isNodeJS) {\n      compatibilityParams.disableFontFace = true;\n    }\n  })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\n\nexport { apiCompatibilityParams };\n","/* Copyright 2012 Mozilla Foundation\n *\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 {\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  IsLittleEndianCached,\n  isNum,\n  OPS,\n  shadow,\n  TextRenderingMode,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { getShadingPatternFromIR, TilingPattern } from \"./pattern_helper.js\";\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n\n// Minimal font size that would be used during canvas fillText operations.\nvar MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\n\n// Heuristic value used when enforcing minimum line widths.\nvar MIN_WIDTH_FACTOR = 0.65;\n\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\n\nvar FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\n  // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n  if (!ctx.mozCurrentTransform) {\n    ctx._originalSave = ctx.save;\n    ctx._originalRestore = ctx.restore;\n    ctx._originalRotate = ctx.rotate;\n    ctx._originalScale = ctx.scale;\n    ctx._originalTranslate = ctx.translate;\n    ctx._originalTransform = ctx.transform;\n    ctx._originalSetTransform = ctx.setTransform;\n\n    ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n    ctx._transformStack = [];\n\n    Object.defineProperty(ctx, \"mozCurrentTransform\", {\n      get: function getCurrentTransform() {\n        return this._transformMatrix;\n      },\n    });\n\n    Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n      get: function getCurrentTransformInverse() {\n        // Calculation done using WolframAlpha:\n        // http://www.wolframalpha.com/input/?\n        //   i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n        var m = this._transformMatrix;\n        var a = m[0],\n          b = m[1],\n          c = m[2],\n          d = m[3],\n          e = m[4],\n          f = m[5];\n\n        var ad_bc = a * d - b * c;\n        var bc_ad = b * c - a * d;\n\n        return [\n          d / ad_bc,\n          b / bc_ad,\n          c / bc_ad,\n          a / ad_bc,\n          (d * e - c * f) / bc_ad,\n          (b * e - a * f) / ad_bc,\n        ];\n      },\n    });\n\n    ctx.save = function ctxSave() {\n      var old = this._transformMatrix;\n      this._transformStack.push(old);\n      this._transformMatrix = old.slice(0, 6);\n\n      this._originalSave();\n    };\n\n    ctx.restore = function ctxRestore() {\n      var prev = this._transformStack.pop();\n      if (prev) {\n        this._transformMatrix = prev;\n        this._originalRestore();\n      }\n    };\n\n    ctx.translate = function ctxTranslate(x, y) {\n      var m = this._transformMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n\n      this._originalTranslate(x, y);\n    };\n\n    ctx.scale = function ctxScale(x, y) {\n      var m = this._transformMatrix;\n      m[0] = m[0] * x;\n      m[1] = m[1] * x;\n      m[2] = m[2] * y;\n      m[3] = m[3] * y;\n\n      this._originalScale(x, y);\n    };\n\n    ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * a + m[2] * b,\n        m[1] * a + m[3] * b,\n        m[0] * c + m[2] * d,\n        m[1] * c + m[3] * d,\n        m[0] * e + m[2] * f + m[4],\n        m[1] * e + m[3] * f + m[5],\n      ];\n\n      ctx._originalTransform(a, b, c, d, e, f);\n    };\n\n    ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n      this._transformMatrix = [a, b, c, d, e, f];\n\n      ctx._originalSetTransform(a, b, c, d, e, f);\n    };\n\n    ctx.rotate = function ctxRotate(angle) {\n      var cosValue = Math.cos(angle);\n      var sinValue = Math.sin(angle);\n\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * cosValue + m[2] * sinValue,\n        m[1] * cosValue + m[3] * sinValue,\n        m[0] * -sinValue + m[2] * cosValue,\n        m[1] * -sinValue + m[3] * cosValue,\n        m[4],\n        m[5],\n      ];\n\n      this._originalRotate(angle);\n    };\n  }\n}\n\nvar CachedCanvases = (function CachedCanvasesClosure() {\n  // eslint-disable-next-line no-shadow\n  function CachedCanvases(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n  CachedCanvases.prototype = {\n    getCanvas: function CachedCanvases_getCanvas(\n      id,\n      width,\n      height,\n      trackTransform\n    ) {\n      var canvasEntry;\n      if (this.cache[id] !== undefined) {\n        canvasEntry = this.cache[id];\n        this.canvasFactory.reset(canvasEntry, width, height);\n        // reset canvas transform for emulated mozCurrentTransform, if needed\n        canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n      } else {\n        canvasEntry = this.canvasFactory.create(width, height);\n        this.cache[id] = canvasEntry;\n      }\n      if (trackTransform) {\n        addContextCurrentTransform(canvasEntry.context);\n      }\n      return canvasEntry;\n    },\n    clear() {\n      for (var id in this.cache) {\n        var canvasEntry = this.cache[id];\n        this.canvasFactory.destroy(canvasEntry);\n        delete this.cache[id];\n      }\n    },\n  };\n  return CachedCanvases;\n})();\n\nfunction compileType3Glyph(imgData) {\n  var POINT_TO_PROCESS_LIMIT = 1000;\n\n  var width = imgData.width,\n    height = imgData.height;\n  var i,\n    j,\n    j0,\n    width1 = width + 1;\n  var points = new Uint8Array(width1 * (height + 1));\n  // prettier-ignore\n  var POINT_TYPES =\n      new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n\n  // decodes bit-packed mask data\n  var lineSize = (width + 7) & ~7,\n    data0 = imgData.data;\n  var data = new Uint8Array(lineSize * height),\n    pos = 0,\n    ii;\n  for (i = 0, ii = data0.length; i < ii; i++) {\n    var mask = 128,\n      elem = data0[i];\n    while (mask > 0) {\n      data[pos++] = elem & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  // finding interesting points: every point is located between mask pixels,\n  // so there will be points of the (width + 1)x(height + 1) grid. Every point\n  // will have flags assigned based on neighboring mask pixels:\n  //   4 | 8\n  //   --P--\n  //   2 | 1\n  // We are interested only in points with the flags:\n  //   - outside corners: 1, 2, 4, 8;\n  //   - inside corners: 7, 11, 13, 14;\n  //   - and, intersections: 5, 10.\n  var count = 0;\n  pos = 0;\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    // 'sum' is the position of the current pixel configuration in the 'TYPES'\n    // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n    var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum =\n        (sum >> 2) +\n        (data[pos + 1] ? 4 : 0) +\n        (data[pos - lineSize + 1] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos++;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  // building outlines\n  var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  var outlines = [];\n  for (i = 0; count && i <= height; i++) {\n    var p = i * width1;\n    var end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    var coords = [p % width1, i];\n\n    var type = points[p],\n      p0 = p,\n      pp;\n    do {\n      var step = steps[type];\n      do {\n        p += step;\n      } while (!points[p]);\n\n      pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        // set new direction\n        type = pp;\n        // delete mark\n        points[p] = 0;\n      } else {\n        // type is 5 or 10, ie, a crossing\n        // set new direction\n        type = pp & ((0x33 * type) >> 4);\n        // set new type for \"future hit\"\n        points[p] &= (type >> 2) | (type << 2);\n      }\n\n      coords.push(p % width1);\n      coords.push((p / width1) | 0);\n\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n    outlines.push(coords);\n    --i;\n  }\n\n  var drawOutline = function (c) {\n    c.save();\n    // the path shall be painted in [0..1]x[0..1] space\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.beginPath();\n    for (let k = 0, kk = outlines.length; k < kk; k++) {\n      var o = outlines[k];\n      c.moveTo(o[0], o[1]);\n      for (let l = 2, ll = o.length; l < ll; l += 2) {\n        c.lineTo(o[l], o[l + 1]);\n      }\n    }\n    c.fill();\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nvar CanvasExtraState = (function CanvasExtraStateClosure() {\n  // eslint-disable-next-line no-shadow\n  function CanvasExtraState() {\n    // Are soft masks and alpha values shapes or opacities?\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = IDENTITY_MATRIX;\n    this.textMatrixScale = 1;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textRise = 0;\n    // Default fore and background colors\n    this.fillColor = \"#000000\";\n    this.strokeColor = \"#000000\";\n    this.patternFill = false;\n    // Note: fill alpha applies to all non-stroking operations\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.activeSMask = null;\n    this.resumeSMaskCtx = null; // nonclonable field (see the save method below)\n    this.transferMaps = null;\n  }\n\n  CanvasExtraState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    },\n    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    },\n  };\n  return CanvasExtraState;\n})();\n\n/**\n * @type {any}\n */\nvar CanvasGraphics = (function CanvasGraphicsClosure() {\n  // Defines the time the executeOperatorList is going to be executing\n  // before it stops and shedules a continue of execution.\n  var EXECUTION_TIME = 15;\n  // Defines the number of steps before checking the execution time\n  var EXECUTION_STEPS = 10;\n\n  // eslint-disable-next-line no-shadow\n  function CanvasGraphics(\n    canvasCtx,\n    commonObjs,\n    objs,\n    canvasFactory,\n    webGLContext,\n    imageLayer,\n    optionalContentConfig\n  ) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState();\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.webGLContext = webGLContext;\n    this.imageLayer = imageLayer;\n    this.groupStack = [];\n    this.processingType3 = null;\n    // Patterns are painted relative to the initial page/form transform, see pdf\n    // spec 8.7.2 NOTE 1.\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.smaskCounter = 0;\n    this.tempSMask = null;\n    this.contentVisible = true;\n    this.markedContentStack = [];\n    this.optionalContentConfig = optionalContentConfig;\n    this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n    if (canvasCtx) {\n      // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n      // the transformation must already be set in canvasCtx._transformMatrix.\n      addContextCurrentTransform(canvasCtx);\n    }\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  function putBinaryImageData(ctx, imgData, transferMaps = null) {\n    if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n      ctx.putImageData(imgData, 0, 0);\n      return;\n    }\n\n    // Put the image data to the canvas in chunks, rather than putting the\n    // whole image at once.  This saves JS memory, because the ImageData object\n    // is smaller. It also possibly saves C++ memory within the implementation\n    // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n    // the data passed to putImageData()). |n| shouldn't be too small, however,\n    // because too many putImageData() calls will slow things down.\n    //\n    // Note: as written, if the last chunk is partial, the putImageData() call\n    // will (conceptually) put pixels past the bounds of the canvas.  But\n    // that's ok; any such pixels are ignored.\n\n    var height = imgData.height,\n      width = imgData.width;\n    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n    var srcPos = 0,\n      destPos;\n    var src = imgData.data;\n    var dest = chunkImgData.data;\n    var i, j, thisChunkHeight, elemsInThisChunk;\n\n    let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n    if (transferMaps) {\n      switch (transferMaps.length) {\n        case 1:\n          transferMapRed = transferMaps[0];\n          transferMapGreen = transferMaps[0];\n          transferMapBlue = transferMaps[0];\n          transferMapGray = transferMaps[0];\n          break;\n        case 4:\n          transferMapRed = transferMaps[0];\n          transferMapGreen = transferMaps[1];\n          transferMapBlue = transferMaps[2];\n          transferMapGray = transferMaps[3];\n          break;\n      }\n    }\n\n    // There are multiple forms in which the pixel data can be passed, and\n    // imgData.kind tells us which one this is.\n    if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n      // Grayscale, 1 bit per pixel (i.e. black-and-white).\n      var srcLength = src.byteLength;\n      var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n      var dest32DataLength = dest32.length;\n      var fullSrcDiff = (width + 7) >> 3;\n      var white = 0xffffffff;\n      var black = IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n      if (transferMapGray) {\n        if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n          [white, black] = [black, white];\n        }\n      }\n\n      for (i = 0; i < totalChunks; i++) {\n        thisChunkHeight =\n          i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n        destPos = 0;\n        for (j = 0; j < thisChunkHeight; j++) {\n          var srcDiff = srcLength - srcPos;\n          let k = 0;\n          var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n          var kEndUnrolled = kEnd & ~7;\n          var mask = 0;\n          var srcByte = 0;\n          for (; k < kEndUnrolled; k += 8) {\n            srcByte = src[srcPos++];\n            dest32[destPos++] = srcByte & 128 ? white : black;\n            dest32[destPos++] = srcByte & 64 ? white : black;\n            dest32[destPos++] = srcByte & 32 ? white : black;\n            dest32[destPos++] = srcByte & 16 ? white : black;\n            dest32[destPos++] = srcByte & 8 ? white : black;\n            dest32[destPos++] = srcByte & 4 ? white : black;\n            dest32[destPos++] = srcByte & 2 ? white : black;\n            dest32[destPos++] = srcByte & 1 ? white : black;\n          }\n          for (; k < kEnd; k++) {\n            if (mask === 0) {\n              srcByte = src[srcPos++];\n              mask = 128;\n            }\n\n            dest32[destPos++] = srcByte & mask ? white : black;\n            mask >>= 1;\n          }\n        }\n        // We ran out of input. Make all remaining pixels transparent.\n        while (destPos < dest32DataLength) {\n          dest32[destPos++] = 0;\n        }\n\n        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n      }\n    } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n      // RGBA, 32-bits per pixel.\n      const hasTransferMaps = !!(\n        transferMapRed ||\n        transferMapGreen ||\n        transferMapBlue\n      );\n\n      j = 0;\n      elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n      for (i = 0; i < fullChunks; i++) {\n        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n        srcPos += elemsInThisChunk;\n\n        if (hasTransferMaps) {\n          for (let k = 0; k < elemsInThisChunk; k += 4) {\n            if (transferMapRed) {\n              dest[k + 0] = transferMapRed[dest[k + 0]];\n            }\n            if (transferMapGreen) {\n              dest[k + 1] = transferMapGreen[dest[k + 1]];\n            }\n            if (transferMapBlue) {\n              dest[k + 2] = transferMapBlue[dest[k + 2]];\n            }\n          }\n        }\n\n        ctx.putImageData(chunkImgData, 0, j);\n        j += FULL_CHUNK_HEIGHT;\n      }\n      if (i < totalChunks) {\n        elemsInThisChunk = width * partialChunkHeight * 4;\n        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n        if (hasTransferMaps) {\n          for (let k = 0; k < elemsInThisChunk; k += 4) {\n            if (transferMapRed) {\n              dest[k + 0] = transferMapRed[dest[k + 0]];\n            }\n            if (transferMapGreen) {\n              dest[k + 1] = transferMapGreen[dest[k + 1]];\n            }\n            if (transferMapBlue) {\n              dest[k + 2] = transferMapBlue[dest[k + 2]];\n            }\n          }\n        }\n\n        ctx.putImageData(chunkImgData, 0, j);\n      }\n    } else if (imgData.kind === ImageKind.RGB_24BPP) {\n      // RGB, 24-bits per pixel.\n      const hasTransferMaps = !!(\n        transferMapRed ||\n        transferMapGreen ||\n        transferMapBlue\n      );\n\n      thisChunkHeight = FULL_CHUNK_HEIGHT;\n      elemsInThisChunk = width * thisChunkHeight;\n      for (i = 0; i < totalChunks; i++) {\n        if (i >= fullChunks) {\n          thisChunkHeight = partialChunkHeight;\n          elemsInThisChunk = width * thisChunkHeight;\n        }\n\n        destPos = 0;\n        for (j = elemsInThisChunk; j--; ) {\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = 255;\n        }\n\n        if (hasTransferMaps) {\n          for (let k = 0; k < destPos; k += 4) {\n            if (transferMapRed) {\n              dest[k + 0] = transferMapRed[dest[k + 0]];\n            }\n            if (transferMapGreen) {\n              dest[k + 1] = transferMapGreen[dest[k + 1]];\n            }\n            if (transferMapBlue) {\n              dest[k + 2] = transferMapBlue[dest[k + 2]];\n            }\n          }\n        }\n\n        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n      }\n    } else {\n      throw new Error(`bad image kind: ${imgData.kind}`);\n    }\n  }\n\n  function putBinaryImageMask(ctx, imgData) {\n    var height = imgData.height,\n      width = imgData.width;\n    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n    var srcPos = 0;\n    var src = imgData.data;\n    var dest = chunkImgData.data;\n\n    for (var i = 0; i < totalChunks; i++) {\n      var thisChunkHeight =\n        i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n      // Expand the mask so it can be used by the canvas.  Any required\n      // inversion has already been handled.\n      var destPos = 3; // alpha component offset\n      for (var j = 0; j < thisChunkHeight; j++) {\n        var mask = 0;\n        for (var k = 0; k < width; k++) {\n          if (!mask) {\n            var elem = src[srcPos++];\n            mask = 128;\n          }\n          dest[destPos] = elem & mask ? 0 : 255;\n          destPos += 4;\n          mask >>= 1;\n        }\n      }\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  }\n\n  function copyCtxState(sourceCtx, destCtx) {\n    var properties = [\n      \"strokeStyle\",\n      \"fillStyle\",\n      \"fillRule\",\n      \"globalAlpha\",\n      \"lineWidth\",\n      \"lineCap\",\n      \"lineJoin\",\n      \"miterLimit\",\n      \"globalCompositeOperation\",\n      \"font\",\n    ];\n    for (var i = 0, ii = properties.length; i < ii; i++) {\n      var property = properties[i];\n      if (sourceCtx[property] !== undefined) {\n        destCtx[property] = sourceCtx[property];\n      }\n    }\n    if (sourceCtx.setLineDash !== undefined) {\n      destCtx.setLineDash(sourceCtx.getLineDash());\n      destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n    }\n  }\n\n  function resetCtxToDefault(ctx) {\n    ctx.strokeStyle = \"#000000\";\n    ctx.fillStyle = \"#000000\";\n    ctx.fillRule = \"nonzero\";\n    ctx.globalAlpha = 1;\n    ctx.lineWidth = 1;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 10;\n    ctx.globalCompositeOperation = \"source-over\";\n    ctx.font = \"10px sans-serif\";\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash([]);\n      ctx.lineDashOffset = 0;\n    }\n  }\n\n  function composeSMaskBackdrop(bytes, r0, g0, b0) {\n    var length = bytes.length;\n    for (var i = 3; i < length; i += 4) {\n      var alpha = bytes[i];\n      if (alpha === 0) {\n        bytes[i - 3] = r0;\n        bytes[i - 2] = g0;\n        bytes[i - 1] = b0;\n      } else if (alpha < 255) {\n        var alpha_ = 255 - alpha;\n        bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n        bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n        bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n      }\n    }\n  }\n\n  function composeSMaskAlpha(maskData, layerData, transferMap) {\n    var length = maskData.length;\n    var scale = 1 / 255;\n    for (var i = 3; i < length; i += 4) {\n      var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n      layerData[i] = (layerData[i] * alpha * scale) | 0;\n    }\n  }\n\n  function composeSMaskLuminosity(maskData, layerData, transferMap) {\n    var length = maskData.length;\n    for (var i = 3; i < length; i += 4) {\n      var y =\n        maskData[i - 3] * 77 + // * 0.3 / 255 * 0x10000\n        maskData[i - 2] * 152 + // * 0.59 ....\n        maskData[i - 1] * 28; // * 0.11 ....\n      layerData[i] = transferMap\n        ? (layerData[i] * transferMap[y >> 8]) >> 8\n        : (layerData[i] * y) >> 16;\n    }\n  }\n\n  function genericComposeSMask(\n    maskCtx,\n    layerCtx,\n    width,\n    height,\n    subtype,\n    backdrop,\n    transferMap\n  ) {\n    var hasBackdrop = !!backdrop;\n    var r0 = hasBackdrop ? backdrop[0] : 0;\n    var g0 = hasBackdrop ? backdrop[1] : 0;\n    var b0 = hasBackdrop ? backdrop[2] : 0;\n\n    var composeFn;\n    if (subtype === \"Luminosity\") {\n      composeFn = composeSMaskLuminosity;\n    } else {\n      composeFn = composeSMaskAlpha;\n    }\n\n    // processing image in chunks to save memory\n    var PIXELS_TO_PROCESS = 1048576;\n    var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n    for (var row = 0; row < height; row += chunkSize) {\n      var chunkHeight = Math.min(chunkSize, height - row);\n      var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n      var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n      if (hasBackdrop) {\n        composeSMaskBackdrop(maskData.data, r0, g0, b0);\n      }\n      composeFn(maskData.data, layerData.data, transferMap);\n\n      maskCtx.putImageData(layerData, 0, row);\n    }\n  }\n\n  function composeSMask(ctx, smask, layerCtx, webGLContext) {\n    var mask = smask.canvas;\n    var maskCtx = smask.context;\n\n    ctx.setTransform(\n      smask.scaleX,\n      0,\n      0,\n      smask.scaleY,\n      smask.offsetX,\n      smask.offsetY\n    );\n\n    var backdrop = smask.backdrop || null;\n    if (!smask.transferMap && webGLContext.isEnabled) {\n      const composed = webGLContext.composeSMask({\n        layer: layerCtx.canvas,\n        mask,\n        properties: {\n          subtype: smask.subtype,\n          backdrop,\n        },\n      });\n      ctx.setTransform(1, 0, 0, 1, 0, 0);\n      ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n      return;\n    }\n    genericComposeSMask(\n      maskCtx,\n      layerCtx,\n      mask.width,\n      mask.height,\n      smask.subtype,\n      backdrop,\n      smask.transferMap\n    );\n    ctx.drawImage(mask, 0, 0);\n  }\n\n  var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n  var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n  var NORMAL_CLIP = {};\n  var EO_CLIP = {};\n\n  CanvasGraphics.prototype = {\n    beginDrawing({\n      transform,\n      viewport,\n      transparency = false,\n      background = null,\n    }) {\n      // For pdfs that use blend modes we have to clear the canvas else certain\n      // blend modes can look wrong since we'd be blending with a white\n      // backdrop. The problem with a transparent backdrop though is we then\n      // don't get sub pixel anti aliasing on text, creating temporary\n      // transparent canvas when we have blend modes.\n      var width = this.ctx.canvas.width;\n      var height = this.ctx.canvas.height;\n\n      this.ctx.save();\n      this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n      this.ctx.fillRect(0, 0, width, height);\n      this.ctx.restore();\n\n      if (transparency) {\n        var transparentCanvas = this.cachedCanvases.getCanvas(\n          \"transparent\",\n          width,\n          height,\n          true\n        );\n        this.compositeCtx = this.ctx;\n        this.transparentCanvas = transparentCanvas.canvas;\n        this.ctx = transparentCanvas.context;\n        this.ctx.save();\n        // The transform can be applied before rendering, transferring it to\n        // the new canvas.\n        this.ctx.transform.apply(\n          this.ctx,\n          this.compositeCtx.mozCurrentTransform\n        );\n      }\n\n      this.ctx.save();\n      resetCtxToDefault(this.ctx);\n      if (transform) {\n        this.ctx.transform.apply(this.ctx, transform);\n      }\n      this.ctx.transform.apply(this.ctx, viewport.transform);\n\n      this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n      if (this.imageLayer) {\n        this.imageLayer.beginLayout();\n      }\n    },\n\n    executeOperatorList: function CanvasGraphics_executeOperatorList(\n      operatorList,\n      executionStartIdx,\n      continueCallback,\n      stepper\n    ) {\n      var argsArray = operatorList.argsArray;\n      var fnArray = operatorList.fnArray;\n      var i = executionStartIdx || 0;\n      var argsArrayLen = argsArray.length;\n\n      // Sometimes the OperatorList to execute is empty.\n      if (argsArrayLen === i) {\n        return i;\n      }\n\n      var chunkOperations =\n        argsArrayLen - i > EXECUTION_STEPS &&\n        typeof continueCallback === \"function\";\n      var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n      var steps = 0;\n\n      var commonObjs = this.commonObjs;\n      var objs = this.objs;\n      var fnId;\n\n      while (true) {\n        if (stepper !== undefined && i === stepper.nextBreakPoint) {\n          stepper.breakIt(i, continueCallback);\n          return i;\n        }\n\n        fnId = fnArray[i];\n\n        if (fnId !== OPS.dependency) {\n          this[fnId].apply(this, argsArray[i]);\n        } else {\n          for (const depObjId of argsArray[i]) {\n            const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n            // If the promise isn't resolved yet, add the continueCallback\n            // to the promise and bail out.\n            if (!objsPool.has(depObjId)) {\n              objsPool.get(depObjId, continueCallback);\n              return i;\n            }\n          }\n        }\n\n        i++;\n\n        // If the entire operatorList was executed, stop as were done.\n        if (i === argsArrayLen) {\n          return i;\n        }\n\n        // If the execution took longer then a certain amount of time and\n        // `continueCallback` is specified, interrupt the execution.\n        if (chunkOperations && ++steps > EXECUTION_STEPS) {\n          if (Date.now() > endTime) {\n            continueCallback();\n            return i;\n          }\n          steps = 0;\n        }\n\n        // If the operatorList isn't executed completely yet OR the execution\n        // time was short enough, do another execution round.\n      }\n    },\n\n    endDrawing: function CanvasGraphics_endDrawing() {\n      // Finishing all opened operations such as SMask group painting.\n      if (this.current.activeSMask !== null) {\n        this.endSMaskGroup();\n      }\n\n      this.ctx.restore();\n\n      if (this.transparentCanvas) {\n        this.ctx = this.compositeCtx;\n        this.ctx.save();\n        this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n        this.ctx.drawImage(this.transparentCanvas, 0, 0);\n        this.ctx.restore();\n        this.transparentCanvas = null;\n      }\n\n      this.cachedCanvases.clear();\n      this.webGLContext.clear();\n\n      if (this.imageLayer) {\n        this.imageLayer.endLayout();\n      }\n    },\n\n    // Graphics state\n    setLineWidth: function CanvasGraphics_setLineWidth(width) {\n      this.current.lineWidth = width;\n      this.ctx.lineWidth = width;\n    },\n    setLineCap: function CanvasGraphics_setLineCap(style) {\n      this.ctx.lineCap = LINE_CAP_STYLES[style];\n    },\n    setLineJoin: function CanvasGraphics_setLineJoin(style) {\n      this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n    },\n    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n      this.ctx.miterLimit = limit;\n    },\n    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n      var ctx = this.ctx;\n      if (ctx.setLineDash !== undefined) {\n        ctx.setLineDash(dashArray);\n        ctx.lineDashOffset = dashPhase;\n      }\n    },\n    setRenderingIntent(intent) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    },\n    setFlatness(flatness) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    },\n    setGState: function CanvasGraphics_setGState(states) {\n      for (var i = 0, ii = states.length; i < ii; i++) {\n        var state = states[i];\n        var key = state[0];\n        var value = state[1];\n\n        switch (key) {\n          case \"LW\":\n            this.setLineWidth(value);\n            break;\n          case \"LC\":\n            this.setLineCap(value);\n            break;\n          case \"LJ\":\n            this.setLineJoin(value);\n            break;\n          case \"ML\":\n            this.setMiterLimit(value);\n            break;\n          case \"D\":\n            this.setDash(value[0], value[1]);\n            break;\n          case \"RI\":\n            this.setRenderingIntent(value);\n            break;\n          case \"FL\":\n            this.setFlatness(value);\n            break;\n          case \"Font\":\n            this.setFont(value[0], value[1]);\n            break;\n          case \"CA\":\n            this.current.strokeAlpha = state[1];\n            break;\n          case \"ca\":\n            this.current.fillAlpha = state[1];\n            this.ctx.globalAlpha = state[1];\n            break;\n          case \"BM\":\n            this.ctx.globalCompositeOperation = value;\n            break;\n          case \"SMask\":\n            if (this.current.activeSMask) {\n              // If SMask is currrenly used, it needs to be suspended or\n              // finished. Suspend only makes sense when at least one save()\n              // was performed and state needs to be reverted on restore().\n              if (\n                this.stateStack.length > 0 &&\n                this.stateStack[this.stateStack.length - 1].activeSMask ===\n                  this.current.activeSMask\n              ) {\n                this.suspendSMaskGroup();\n              } else {\n                this.endSMaskGroup();\n              }\n            }\n            this.current.activeSMask = value ? this.tempSMask : null;\n            if (this.current.activeSMask) {\n              this.beginSMaskGroup();\n            }\n            this.tempSMask = null;\n            break;\n          case \"TR\":\n            this.current.transferMaps = value;\n        }\n      }\n    },\n    beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n      var activeSMask = this.current.activeSMask;\n      var drawnWidth = activeSMask.canvas.width;\n      var drawnHeight = activeSMask.canvas.height;\n      var cacheId = \"smaskGroupAt\" + this.groupLevel;\n      var scratchCanvas = this.cachedCanvases.getCanvas(\n        cacheId,\n        drawnWidth,\n        drawnHeight,\n        true\n      );\n\n      var currentCtx = this.ctx;\n      var currentTransform = currentCtx.mozCurrentTransform;\n      this.ctx.save();\n\n      var groupCtx = scratchCanvas.context;\n      groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n      groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n      groupCtx.transform.apply(groupCtx, currentTransform);\n\n      activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n\n      copyCtxState(currentCtx, groupCtx);\n      this.ctx = groupCtx;\n      this.setGState([\n        [\"BM\", \"source-over\"],\n        [\"ca\", 1],\n        [\"CA\", 1],\n      ]);\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n    },\n    suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      // Similar to endSMaskGroup, the intermediate canvas has to be composed\n      // and future ctx state restored.\n      var groupCtx = this.ctx;\n      this.groupLevel--;\n      this.ctx = this.groupStack.pop();\n\n      composeSMask(\n        this.ctx,\n        this.current.activeSMask,\n        groupCtx,\n        this.webGLContext\n      );\n      this.ctx.restore();\n      this.ctx.save(); // save is needed since SMask will be resumed.\n      copyCtxState(groupCtx, this.ctx);\n\n      // Saving state for resuming.\n      this.current.resumeSMaskCtx = groupCtx;\n      // Transform was changed in the SMask canvas, reflecting this change on\n      // this.ctx.\n      var deltaTransform = Util.transform(\n        this.current.activeSMask.startTransformInverse,\n        groupCtx.mozCurrentTransform\n      );\n      this.ctx.transform.apply(this.ctx, deltaTransform);\n\n      // SMask was composed, the results at the groupCtx can be cleared.\n      groupCtx.save();\n      groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n      groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n      groupCtx.restore();\n    },\n    resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      // Resuming state saved by suspendSMaskGroup. We don't need to restore\n      // any groupCtx state since restore() command (the only caller) will do\n      // that for us. See also beginSMaskGroup.\n      var groupCtx = this.current.resumeSMaskCtx;\n      var currentCtx = this.ctx;\n      this.ctx = groupCtx;\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n    },\n    endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      var groupCtx = this.ctx;\n      this.groupLevel--;\n      this.ctx = this.groupStack.pop();\n\n      composeSMask(\n        this.ctx,\n        this.current.activeSMask,\n        groupCtx,\n        this.webGLContext\n      );\n      this.ctx.restore();\n      copyCtxState(groupCtx, this.ctx);\n      // Transform was changed in the SMask canvas, reflecting this change on\n      // this.ctx.\n      var deltaTransform = Util.transform(\n        this.current.activeSMask.startTransformInverse,\n        groupCtx.mozCurrentTransform\n      );\n      this.ctx.transform.apply(this.ctx, deltaTransform);\n    },\n    save: function CanvasGraphics_save() {\n      this.ctx.save();\n      var old = this.current;\n      this.stateStack.push(old);\n      this.current = old.clone();\n      this.current.resumeSMaskCtx = null;\n    },\n    restore: function CanvasGraphics_restore() {\n      // SMask was suspended, we just need to resume it.\n      if (this.current.resumeSMaskCtx) {\n        this.resumeSMaskGroup();\n      }\n      // SMask has to be finished once there is no states that are using the\n      // same SMask.\n      if (\n        this.current.activeSMask !== null &&\n        (this.stateStack.length === 0 ||\n          this.stateStack[this.stateStack.length - 1].activeSMask !==\n            this.current.activeSMask)\n      ) {\n        this.endSMaskGroup();\n      }\n\n      if (this.stateStack.length !== 0) {\n        this.current = this.stateStack.pop();\n        this.ctx.restore();\n\n        // Ensure that the clipping path is reset (fixes issue6413.pdf).\n        this.pendingClip = null;\n\n        this._cachedGetSinglePixelWidth = null;\n      }\n    },\n    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n      this.ctx.transform(a, b, c, d, e, f);\n\n      this._cachedGetSinglePixelWidth = null;\n    },\n\n    // Path\n    constructPath: function CanvasGraphics_constructPath(ops, args) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var x = current.x,\n        y = current.y;\n      for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n        switch (ops[i] | 0) {\n          case OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            var width = args[j++];\n            var height = args[j++];\n            if (width === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n              width = this.getSinglePixelWidth();\n            }\n            if (height === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n              height = this.getSinglePixelWidth();\n            }\n            var xw = x + width;\n            var yh = y + height;\n            ctx.moveTo(x, y);\n            ctx.lineTo(xw, y);\n            ctx.lineTo(xw, yh);\n            ctx.lineTo(x, yh);\n            ctx.lineTo(x, y);\n            ctx.closePath();\n            break;\n          case OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            ctx.moveTo(x, y);\n            break;\n          case OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            ctx.lineTo(x, y);\n            break;\n          case OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            ctx.bezierCurveTo(\n              args[j],\n              args[j + 1],\n              args[j + 2],\n              args[j + 3],\n              x,\n              y\n            );\n            j += 6;\n            break;\n          case OPS.curveTo2:\n            ctx.bezierCurveTo(\n              x,\n              y,\n              args[j],\n              args[j + 1],\n              args[j + 2],\n              args[j + 3]\n            );\n            x = args[j + 2];\n            y = args[j + 3];\n            j += 4;\n            break;\n          case OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n            j += 4;\n            break;\n          case OPS.closePath:\n            ctx.closePath();\n            break;\n        }\n      }\n      current.setCurrentPoint(x, y);\n    },\n    closePath: function CanvasGraphics_closePath() {\n      this.ctx.closePath();\n    },\n    stroke: function CanvasGraphics_stroke(consumePath) {\n      consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n      var ctx = this.ctx;\n      var strokeColor = this.current.strokeColor;\n      // For stroke we want to temporarily change the global alpha to the\n      // stroking alpha.\n      ctx.globalAlpha = this.current.strokeAlpha;\n      if (this.contentVisible) {\n        if (\n          strokeColor &&\n          strokeColor.hasOwnProperty(\"type\") &&\n          strokeColor.type === \"Pattern\"\n        ) {\n          // for patterns, we transform to pattern space, calculate\n          // the pattern, call stroke, and restore to user space\n          ctx.save();\n          // The current transform will be replaced while building the pattern,\n          // but the line width needs to be adjusted by the current transform,\n          // so we must scale it. To properly fix this we should be using a\n          // pattern transform instead (see #10955).\n          const transform = ctx.mozCurrentTransform;\n          const scale = Util.singularValueDecompose2dScale(transform)[0];\n          ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n          ctx.lineWidth = Math.max(\n            this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n            this.current.lineWidth * scale\n          );\n          ctx.stroke();\n          ctx.restore();\n        } else {\n          // Prevent drawing too thin lines by enforcing a minimum line width.\n          ctx.lineWidth = Math.max(\n            this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n            this.current.lineWidth\n          );\n          ctx.stroke();\n        }\n      }\n      if (consumePath) {\n        this.consumePath();\n      }\n      // Restore the global alpha to the fill alpha\n      ctx.globalAlpha = this.current.fillAlpha;\n    },\n    closeStroke: function CanvasGraphics_closeStroke() {\n      this.closePath();\n      this.stroke();\n    },\n    fill: function CanvasGraphics_fill(consumePath) {\n      consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n      var ctx = this.ctx;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n      var needRestore = false;\n\n      if (isPatternFill) {\n        ctx.save();\n        if (this.baseTransform) {\n          ctx.setTransform.apply(ctx, this.baseTransform);\n        }\n        ctx.fillStyle = fillColor.getPattern(ctx, this);\n        needRestore = true;\n      }\n\n      if (this.contentVisible) {\n        if (this.pendingEOFill) {\n          ctx.fill(\"evenodd\");\n          this.pendingEOFill = false;\n        } else {\n          ctx.fill();\n        }\n      }\n\n      if (needRestore) {\n        ctx.restore();\n      }\n      if (consumePath) {\n        this.consumePath();\n      }\n    },\n    eoFill: function CanvasGraphics_eoFill() {\n      this.pendingEOFill = true;\n      this.fill();\n    },\n    fillStroke: function CanvasGraphics_fillStroke() {\n      this.fill(false);\n      this.stroke(false);\n\n      this.consumePath();\n    },\n    eoFillStroke: function CanvasGraphics_eoFillStroke() {\n      this.pendingEOFill = true;\n      this.fillStroke();\n    },\n    closeFillStroke: function CanvasGraphics_closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    },\n    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n      this.pendingEOFill = true;\n      this.closePath();\n      this.fillStroke();\n    },\n    endPath: function CanvasGraphics_endPath() {\n      this.consumePath();\n    },\n\n    // Clipping\n    clip: function CanvasGraphics_clip() {\n      this.pendingClip = NORMAL_CLIP;\n    },\n    eoClip: function CanvasGraphics_eoClip() {\n      this.pendingClip = EO_CLIP;\n    },\n\n    // Text\n    beginText: function CanvasGraphics_beginText() {\n      this.current.textMatrix = IDENTITY_MATRIX;\n      this.current.textMatrixScale = 1;\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    endText: function CanvasGraphics_endText() {\n      var paths = this.pendingTextPaths;\n      var ctx = this.ctx;\n      if (paths === undefined) {\n        ctx.beginPath();\n        return;\n      }\n\n      ctx.save();\n      ctx.beginPath();\n      for (var i = 0; i < paths.length; i++) {\n        var path = paths[i];\n        ctx.setTransform.apply(ctx, path.transform);\n        ctx.translate(path.x, path.y);\n        path.addToPath(ctx, path.fontSize);\n      }\n      ctx.restore();\n      ctx.clip();\n      ctx.beginPath();\n      delete this.pendingTextPaths;\n    },\n    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n      this.current.charSpacing = spacing;\n    },\n    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n      this.current.wordSpacing = spacing;\n    },\n    setHScale: function CanvasGraphics_setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    },\n    setLeading: function CanvasGraphics_setLeading(leading) {\n      this.current.leading = -leading;\n    },\n    setFont: function CanvasGraphics_setFont(fontRefName, size) {\n      var fontObj = this.commonObjs.get(fontRefName);\n      var current = this.current;\n\n      if (!fontObj) {\n        throw new Error(`Can't find font for ${fontRefName}`);\n      }\n\n      current.fontMatrix = fontObj.fontMatrix\n        ? fontObj.fontMatrix\n        : FONT_IDENTITY_MATRIX;\n\n      // A valid matrix needs all main diagonal elements to be non-zero\n      // This also ensures we bypass FF bugzilla bug #719844.\n      if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n        warn(\"Invalid font matrix for font \" + fontRefName);\n      }\n\n      // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n      // and in some docs this can be negative (inverted x-y axes).\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n\n      this.current.font = fontObj;\n      this.current.fontSize = size;\n\n      if (fontObj.isType3Font) {\n        return; // we don't need ctx.font for Type3 fonts\n      }\n\n      var name = fontObj.loadedName || \"sans-serif\";\n\n      let bold = \"normal\";\n      if (fontObj.black) {\n        bold = \"900\";\n      } else if (fontObj.bold) {\n        bold = \"bold\";\n      }\n      var italic = fontObj.italic ? \"italic\" : \"normal\";\n      var typeface = `\"${name}\", ${fontObj.fallbackName}`;\n\n      // Some font backends cannot handle fonts below certain size.\n      // Keeping the font at minimal size and using the fontSizeScale to change\n      // the current transformation matrix before the fillText/strokeText.\n      // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n      let browserFontSize = size;\n      if (size < MIN_FONT_SIZE) {\n        browserFontSize = MIN_FONT_SIZE;\n      } else if (size > MAX_FONT_SIZE) {\n        browserFontSize = MAX_FONT_SIZE;\n      }\n      this.current.fontSizeScale = size / browserFontSize;\n\n      this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n    },\n    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n      this.current.textRenderingMode = mode;\n    },\n    setTextRise: function CanvasGraphics_setTextRise(rise) {\n      this.current.textRise = rise;\n    },\n    moveText: function CanvasGraphics_moveText(x, y) {\n      this.current.x = this.current.lineX += x;\n      this.current.y = this.current.lineY += y;\n    },\n    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    },\n    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n      this.current.textMatrix = [a, b, c, d, e, f];\n      this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    nextLine: function CanvasGraphics_nextLine() {\n      this.moveText(0, this.current.leading);\n    },\n\n    paintChar(character, x, y, patternTransform) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var textRenderingMode = current.textRenderingMode;\n      var fontSize = current.fontSize / current.fontSizeScale;\n      var fillStrokeMode =\n        textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n      var isAddToPathSet = !!(\n        textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n      );\n      const patternFill = current.patternFill && !font.missingFile;\n\n      var addToPath;\n      if (font.disableFontFace || isAddToPathSet || patternFill) {\n        addToPath = font.getPathGenerator(this.commonObjs, character);\n      }\n\n      if (font.disableFontFace || patternFill) {\n        ctx.save();\n        ctx.translate(x, y);\n        ctx.beginPath();\n        addToPath(ctx, fontSize);\n        if (patternTransform) {\n          ctx.setTransform.apply(ctx, patternTransform);\n        }\n        if (\n          fillStrokeMode === TextRenderingMode.FILL ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE\n        ) {\n          ctx.fill();\n        }\n        if (\n          fillStrokeMode === TextRenderingMode.STROKE ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE\n        ) {\n          ctx.stroke();\n        }\n        ctx.restore();\n      } else {\n        if (\n          fillStrokeMode === TextRenderingMode.FILL ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE\n        ) {\n          ctx.fillText(character, x, y);\n        }\n        if (\n          fillStrokeMode === TextRenderingMode.STROKE ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE\n        ) {\n          ctx.strokeText(character, x, y);\n        }\n      }\n\n      if (isAddToPathSet) {\n        var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n        paths.push({\n          transform: ctx.mozCurrentTransform,\n          x,\n          y,\n          fontSize,\n          addToPath,\n        });\n      }\n    },\n\n    get isFontSubpixelAAEnabled() {\n      // Checks if anti-aliasing is enabled when scaled text is painted.\n      // On Windows GDI scaled fonts looks bad.\n      const { context: ctx } = this.cachedCanvases.getCanvas(\n        \"isFontSubpixelAAEnabled\",\n        10,\n        10\n      );\n      ctx.scale(1.5, 1);\n      ctx.fillText(\"I\", 0, 10);\n      var data = ctx.getImageData(0, 0, 10, 10).data;\n      var enabled = false;\n      for (var i = 3; i < data.length; i += 4) {\n        if (data[i] > 0 && data[i] < 255) {\n          enabled = true;\n          break;\n        }\n      }\n      return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n    },\n\n    showText: function CanvasGraphics_showText(glyphs) {\n      var current = this.current;\n      var font = current.font;\n      if (font.isType3Font) {\n        return this.showType3Text(glyphs);\n      }\n\n      var fontSize = current.fontSize;\n      if (fontSize === 0) {\n        return undefined;\n      }\n\n      var ctx = this.ctx;\n      var fontSizeScale = current.fontSizeScale;\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var fontDirection = current.fontDirection;\n      var textHScale = current.textHScale * fontDirection;\n      var glyphsLength = glyphs.length;\n      var vertical = font.vertical;\n      var spacingDir = vertical ? 1 : -1;\n      var defaultVMetrics = font.defaultVMetrics;\n      var widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n      var simpleFillText =\n        current.textRenderingMode === TextRenderingMode.FILL &&\n        !font.disableFontFace &&\n        !current.patternFill;\n\n      ctx.save();\n      let patternTransform;\n      if (current.patternFill) {\n        // TODO: Patterns are not applied correctly to text if a non-embedded\n        // font is used. E.g. issue 8111 and ShowText-ShadingPattern.pdf.\n        ctx.save();\n        const pattern = current.fillColor.getPattern(ctx, this);\n        patternTransform = ctx.mozCurrentTransform;\n        ctx.restore();\n        ctx.fillStyle = pattern;\n      }\n      ctx.transform.apply(ctx, current.textMatrix);\n      ctx.translate(current.x, current.y + current.textRise);\n\n      if (fontDirection > 0) {\n        ctx.scale(textHScale, -1);\n      } else {\n        ctx.scale(textHScale, 1);\n      }\n\n      var lineWidth = current.lineWidth;\n      var scale = current.textMatrixScale;\n      if (scale === 0 || lineWidth === 0) {\n        var fillStrokeMode =\n          current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n        if (\n          fillStrokeMode === TextRenderingMode.STROKE ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE\n        ) {\n          this._cachedGetSinglePixelWidth = null;\n          lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n        }\n      } else {\n        lineWidth /= scale;\n      }\n\n      if (fontSizeScale !== 1.0) {\n        ctx.scale(fontSizeScale, fontSizeScale);\n        lineWidth /= fontSizeScale;\n      }\n\n      ctx.lineWidth = lineWidth;\n\n      var x = 0,\n        i;\n      for (i = 0; i < glyphsLength; ++i) {\n        var glyph = glyphs[i];\n        if (isNum(glyph)) {\n          x += (spacingDir * glyph * fontSize) / 1000;\n          continue;\n        }\n\n        var restoreNeeded = false;\n        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        var character = glyph.fontChar;\n        var accent = glyph.accent;\n        var scaledX, scaledY, scaledAccentX, scaledAccentY;\n        var width = glyph.width;\n        if (vertical) {\n          var vmetric, vx, vy;\n          vmetric = glyph.vmetric || defaultVMetrics;\n          vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n          vx = -vx * widthAdvanceScale;\n          vy = vmetric[2] * widthAdvanceScale;\n\n          width = vmetric ? -vmetric[0] : width;\n          scaledX = vx / fontSizeScale;\n          scaledY = (x + vy) / fontSizeScale;\n        } else {\n          scaledX = x / fontSizeScale;\n          scaledY = 0;\n        }\n\n        if (font.remeasure && width > 0) {\n          // Some standard fonts may not have the exact width: rescale per\n          // character if measured width is greater than expected glyph width\n          // and subpixel-aa is enabled, otherwise just center the glyph.\n          var measuredWidth =\n            ((ctx.measureText(character).width * 1000) / fontSize) *\n            fontSizeScale;\n          if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n            var characterScaleX = width / measuredWidth;\n            restoreNeeded = true;\n            ctx.save();\n            ctx.scale(characterScaleX, 1);\n            scaledX /= characterScaleX;\n          } else if (width !== measuredWidth) {\n            scaledX +=\n              (((width - measuredWidth) / 2000) * fontSize) / fontSizeScale;\n          }\n        }\n\n        // Only attempt to draw the glyph if it is actually in the embedded font\n        // file or if there isn't a font file so the fallback font is shown.\n        if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n          if (simpleFillText && !accent) {\n            // common case\n            ctx.fillText(character, scaledX, scaledY);\n          } else {\n            this.paintChar(character, scaledX, scaledY, patternTransform);\n            if (accent) {\n              scaledAccentX =\n                scaledX + (fontSize * accent.offset.x) / fontSizeScale;\n              scaledAccentY =\n                scaledY - (fontSize * accent.offset.y) / fontSizeScale;\n              this.paintChar(\n                accent.fontChar,\n                scaledAccentX,\n                scaledAccentY,\n                patternTransform\n              );\n            }\n          }\n        }\n\n        var charWidth;\n        if (vertical) {\n          charWidth = width * widthAdvanceScale - spacing * fontDirection;\n        } else {\n          charWidth = width * widthAdvanceScale + spacing * fontDirection;\n        }\n        x += charWidth;\n\n        if (restoreNeeded) {\n          ctx.restore();\n        }\n      }\n      if (vertical) {\n        current.y -= x;\n      } else {\n        current.x += x * textHScale;\n      }\n      ctx.restore();\n    },\n\n    showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n      // Type3 fonts - each glyph is a \"mini-PDF\"\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var fontSize = current.fontSize;\n      var fontDirection = current.fontDirection;\n      var spacingDir = font.vertical ? 1 : -1;\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var textHScale = current.textHScale * fontDirection;\n      var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n      var glyphsLength = glyphs.length;\n      var isTextInvisible =\n        current.textRenderingMode === TextRenderingMode.INVISIBLE;\n      var i, glyph, width, spacingLength;\n\n      if (isTextInvisible || fontSize === 0) {\n        return;\n      }\n      this._cachedGetSinglePixelWidth = null;\n\n      ctx.save();\n      ctx.transform.apply(ctx, current.textMatrix);\n      ctx.translate(current.x, current.y);\n\n      ctx.scale(textHScale, fontDirection);\n\n      for (i = 0; i < glyphsLength; ++i) {\n        glyph = glyphs[i];\n        if (isNum(glyph)) {\n          spacingLength = (spacingDir * glyph * fontSize) / 1000;\n          this.ctx.translate(spacingLength, 0);\n          current.x += spacingLength * textHScale;\n          continue;\n        }\n\n        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        var operatorList = font.charProcOperatorList[glyph.operatorListId];\n        if (!operatorList) {\n          warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n          continue;\n        }\n        if (this.contentVisible) {\n          this.processingType3 = glyph;\n          this.save();\n          ctx.scale(fontSize, fontSize);\n          ctx.transform.apply(ctx, fontMatrix);\n          this.executeOperatorList(operatorList);\n          this.restore();\n        }\n\n        var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n        width = transformed[0] * fontSize + spacing;\n\n        ctx.translate(width, 0);\n        current.x += width * textHScale;\n      }\n      ctx.restore();\n      this.processingType3 = null;\n    },\n\n    // Type3 fonts\n    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {\n      // We can safely ignore this since the width should be the same\n      // as the width in the Widths array.\n    },\n    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(\n      xWidth,\n      yWidth,\n      llx,\n      lly,\n      urx,\n      ury\n    ) {\n      // TODO According to the spec we're also suppose to ignore any operators\n      // that set color or include images while processing this type3 font.\n      this.ctx.rect(llx, lly, urx - llx, ury - lly);\n      this.clip();\n      this.endPath();\n    },\n\n    // Color\n    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n      var pattern;\n      if (IR[0] === \"TilingPattern\") {\n        var color = IR[1];\n        var baseTransform =\n          this.baseTransform || this.ctx.mozCurrentTransform.slice();\n        var canvasGraphicsFactory = {\n          createCanvasGraphics: ctx => {\n            return new CanvasGraphics(\n              ctx,\n              this.commonObjs,\n              this.objs,\n              this.canvasFactory,\n              this.webGLContext\n            );\n          },\n        };\n        pattern = new TilingPattern(\n          IR,\n          color,\n          this.ctx,\n          canvasGraphicsFactory,\n          baseTransform\n        );\n      } else {\n        pattern = getShadingPatternFromIR(IR);\n      }\n      return pattern;\n    },\n    setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n      this.current.strokeColor = this.getColorN_Pattern(arguments);\n    },\n    setFillColorN: function CanvasGraphics_setFillColorN() {\n      this.current.fillColor = this.getColorN_Pattern(arguments);\n      this.current.patternFill = true;\n    },\n    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n      this.current.patternFill = false;\n    },\n\n    shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var ctx = this.ctx;\n\n      this.save();\n      var pattern = getShadingPatternFromIR(patternIR);\n      ctx.fillStyle = pattern.getPattern(ctx, this, true);\n\n      var inv = ctx.mozCurrentTransformInverse;\n      if (inv) {\n        var canvas = ctx.canvas;\n        var width = canvas.width;\n        var height = canvas.height;\n\n        var bl = Util.applyTransform([0, 0], inv);\n        var br = Util.applyTransform([0, height], inv);\n        var ul = Util.applyTransform([width, 0], inv);\n        var ur = Util.applyTransform([width, height], inv);\n\n        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n      } else {\n        // HACK to draw the gradient onto an infinite rectangle.\n        // PDF gradients are drawn across the entire image while\n        // Canvas only allows gradients to be drawn in a rectangle\n        // The following bug should allow us to remove this.\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n      }\n\n      this.restore();\n    },\n\n    // Images\n    beginInlineImage: function CanvasGraphics_beginInlineImage() {\n      unreachable(\"Should not call beginInlineImage\");\n    },\n    beginImageData: function CanvasGraphics_beginImageData() {\n      unreachable(\"Should not call beginImageData\");\n    },\n\n    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(\n      matrix,\n      bbox\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      this.save();\n      this.baseTransformStack.push(this.baseTransform);\n\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform.apply(this, matrix);\n      }\n\n      this.baseTransform = this.ctx.mozCurrentTransform;\n\n      if (bbox) {\n        var width = bbox[2] - bbox[0];\n        var height = bbox[3] - bbox[1];\n        this.ctx.rect(bbox[0], bbox[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n    },\n\n    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n      if (!this.contentVisible) {\n        return;\n      }\n      this.restore();\n      this.baseTransform = this.baseTransformStack.pop();\n    },\n\n    beginGroup: function CanvasGraphics_beginGroup(group) {\n      if (!this.contentVisible) {\n        return;\n      }\n\n      this.save();\n      var currentCtx = this.ctx;\n      // TODO non-isolated groups - according to Rik at adobe non-isolated\n      // group results aren't usually that different and they even have tools\n      // that ignore this setting. Notes from Rik on implementing:\n      // - When you encounter an transparency group, create a new canvas with\n      // the dimensions of the bbox\n      // - copy the content from the previous canvas to the new canvas\n      // - draw as usual\n      // - remove the backdrop alpha:\n      // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n      // value of your transparency group and 'alphaBackdrop' the alpha of the\n      // backdrop\n      // - remove background color:\n      // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n      if (!group.isolated) {\n        info(\"TODO: Support non-isolated groups.\");\n      }\n\n      // TODO knockout - supposedly possible with the clever use of compositing\n      // modes.\n      if (group.knockout) {\n        warn(\"Knockout groups not supported.\");\n      }\n\n      var currentTransform = currentCtx.mozCurrentTransform;\n      if (group.matrix) {\n        currentCtx.transform.apply(currentCtx, group.matrix);\n      }\n      if (!group.bbox) {\n        throw new Error(\"Bounding box is required.\");\n      }\n\n      // Based on the current transform figure out how big the bounding box\n      // will actually be.\n      var bounds = Util.getAxialAlignedBoundingBox(\n        group.bbox,\n        currentCtx.mozCurrentTransform\n      );\n      // Clip the bounding box to the current canvas.\n      var canvasBounds = [\n        0,\n        0,\n        currentCtx.canvas.width,\n        currentCtx.canvas.height,\n      ];\n      bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n      // Use ceil in case we're between sizes so we don't create canvas that is\n      // too small and make the canvas at least 1x1 pixels.\n      var offsetX = Math.floor(bounds[0]);\n      var offsetY = Math.floor(bounds[1]);\n      var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n      var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n      var scaleX = 1,\n        scaleY = 1;\n      if (drawnWidth > MAX_GROUP_SIZE) {\n        scaleX = drawnWidth / MAX_GROUP_SIZE;\n        drawnWidth = MAX_GROUP_SIZE;\n      }\n      if (drawnHeight > MAX_GROUP_SIZE) {\n        scaleY = drawnHeight / MAX_GROUP_SIZE;\n        drawnHeight = MAX_GROUP_SIZE;\n      }\n\n      var cacheId = \"groupAt\" + this.groupLevel;\n      if (group.smask) {\n        // Using two cache entries is case if masks are used one after another.\n        cacheId += \"_smask_\" + (this.smaskCounter++ % 2);\n      }\n      var scratchCanvas = this.cachedCanvases.getCanvas(\n        cacheId,\n        drawnWidth,\n        drawnHeight,\n        true\n      );\n      var groupCtx = scratchCanvas.context;\n\n      // Since we created a new canvas that is just the size of the bounding box\n      // we have to translate the group ctx.\n      groupCtx.scale(1 / scaleX, 1 / scaleY);\n      groupCtx.translate(-offsetX, -offsetY);\n      groupCtx.transform.apply(groupCtx, currentTransform);\n\n      if (group.smask) {\n        // Saving state and cached mask to be used in setGState.\n        this.smaskStack.push({\n          canvas: scratchCanvas.canvas,\n          context: groupCtx,\n          offsetX,\n          offsetY,\n          scaleX,\n          scaleY,\n          subtype: group.smask.subtype,\n          backdrop: group.smask.backdrop,\n          transferMap: group.smask.transferMap || null,\n          startTransformInverse: null, // used during suspend operation\n        });\n      } else {\n        // Setup the current ctx so when the group is popped we draw it at the\n        // right location.\n        currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n        currentCtx.translate(offsetX, offsetY);\n        currentCtx.scale(scaleX, scaleY);\n      }\n      // The transparency group inherits all off the current graphics state\n      // except the blend mode, soft mask, and alpha constants.\n      copyCtxState(currentCtx, groupCtx);\n      this.ctx = groupCtx;\n      this.setGState([\n        [\"BM\", \"source-over\"],\n        [\"ca\", 1],\n        [\"CA\", 1],\n      ]);\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n\n      // Reseting mask state, masks will be applied on restore of the group.\n      this.current.activeSMask = null;\n    },\n\n    endGroup: function CanvasGraphics_endGroup(group) {\n      if (!this.contentVisible) {\n        return;\n      }\n      this.groupLevel--;\n      var groupCtx = this.ctx;\n      this.ctx = this.groupStack.pop();\n      // Turn off image smoothing to avoid sub pixel interpolation which can\n      // look kind of blurry for some pdfs.\n      if (this.ctx.imageSmoothingEnabled !== undefined) {\n        this.ctx.imageSmoothingEnabled = false;\n      } else {\n        this.ctx.mozImageSmoothingEnabled = false;\n      }\n      if (group.smask) {\n        this.tempSMask = this.smaskStack.pop();\n      } else {\n        this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      }\n      this.restore();\n    },\n\n    beginAnnotations: function CanvasGraphics_beginAnnotations() {\n      this.save();\n      if (this.baseTransform) {\n        this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n      }\n    },\n\n    endAnnotations: function CanvasGraphics_endAnnotations() {\n      this.restore();\n    },\n\n    beginAnnotation: function CanvasGraphics_beginAnnotation(\n      rect,\n      transform,\n      matrix\n    ) {\n      this.save();\n      resetCtxToDefault(this.ctx);\n      this.current = new CanvasExtraState();\n\n      if (Array.isArray(rect) && rect.length === 4) {\n        var width = rect[2] - rect[0];\n        var height = rect[3] - rect[1];\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n\n      this.transform.apply(this, transform);\n      this.transform.apply(this, matrix);\n    },\n\n    endAnnotation: function CanvasGraphics_endAnnotation() {\n      this.restore();\n    },\n\n    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var ctx = this.ctx;\n      var width = img.width,\n        height = img.height;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n\n      var glyph = this.processingType3;\n\n      if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n        if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n          glyph.compiled = compileType3Glyph({ data: img.data, width, height });\n        } else {\n          glyph.compiled = null;\n        }\n      }\n\n      if (glyph && glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\n\n      var maskCanvas = this.cachedCanvases.getCanvas(\n        \"maskCanvas\",\n        width,\n        height\n      );\n      var maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageMask(maskCtx, img);\n\n      maskCtx.globalCompositeOperation = \"source-in\";\n\n      maskCtx.fillStyle = isPatternFill\n        ? fillColor.getPattern(maskCtx, this)\n        : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      this.paintInlineImageXObject(maskCanvas.canvas);\n    },\n\n    paintImageMaskXObjectRepeat(\n      imgData,\n      scaleX,\n      skewX = 0,\n      skewY = 0,\n      scaleY,\n      positions\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var width = imgData.width;\n      var height = imgData.height;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n\n      var maskCanvas = this.cachedCanvases.getCanvas(\n        \"maskCanvas\",\n        width,\n        height\n      );\n      var maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageMask(maskCtx, imgData);\n\n      maskCtx.globalCompositeOperation = \"source-in\";\n\n      maskCtx.fillStyle = isPatternFill\n        ? fillColor.getPattern(maskCtx, this)\n        : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      var ctx = this.ctx;\n      for (var i = 0, ii = positions.length; i < ii; i += 2) {\n        ctx.save();\n        ctx.transform(\n          scaleX,\n          skewX,\n          skewY,\n          scaleY,\n          positions[i],\n          positions[i + 1]\n        );\n        ctx.scale(1, -1);\n        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n        ctx.restore();\n      }\n    },\n\n    paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(\n      images\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var ctx = this.ctx;\n\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n      for (var i = 0, ii = images.length; i < ii; i++) {\n        var image = images[i];\n        var width = image.width,\n          height = image.height;\n\n        var maskCanvas = this.cachedCanvases.getCanvas(\n          \"maskCanvas\",\n          width,\n          height\n        );\n        var maskCtx = maskCanvas.context;\n        maskCtx.save();\n\n        putBinaryImageMask(maskCtx, image);\n\n        maskCtx.globalCompositeOperation = \"source-in\";\n\n        maskCtx.fillStyle = isPatternFill\n          ? fillColor.getPattern(maskCtx, this)\n          : fillColor;\n        maskCtx.fillRect(0, 0, width, height);\n\n        maskCtx.restore();\n\n        ctx.save();\n        ctx.transform.apply(ctx, image.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n        ctx.restore();\n      }\n    },\n\n    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n      if (!this.contentVisible) {\n        return;\n      }\n      const imgData = objId.startsWith(\"g_\")\n        ? this.commonObjs.get(objId)\n        : this.objs.get(objId);\n      if (!imgData) {\n        warn(\"Dependent image isn't ready yet\");\n        return;\n      }\n\n      this.paintInlineImageXObject(imgData);\n    },\n\n    paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(\n      objId,\n      scaleX,\n      scaleY,\n      positions\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      const imgData = objId.startsWith(\"g_\")\n        ? this.commonObjs.get(objId)\n        : this.objs.get(objId);\n      if (!imgData) {\n        warn(\"Dependent image isn't ready yet\");\n        return;\n      }\n\n      var width = imgData.width;\n      var height = imgData.height;\n      var map = [];\n      for (var i = 0, ii = positions.length; i < ii; i += 2) {\n        map.push({\n          transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n          x: 0,\n          y: 0,\n          w: width,\n          h: height,\n        });\n      }\n      this.paintInlineImageXObjectGroup(imgData, map);\n    },\n\n    paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(\n      imgData\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var width = imgData.width;\n      var height = imgData.height;\n      var ctx = this.ctx;\n\n      this.save();\n      // scale the image to the unit square\n      ctx.scale(1 / width, -1 / height);\n\n      var currentTransform = ctx.mozCurrentTransformInverse;\n      var a = currentTransform[0],\n        b = currentTransform[1];\n      var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n      var c = currentTransform[2],\n        d = currentTransform[3];\n      var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n      var imgToPaint, tmpCanvas;\n      // typeof check is needed due to node.js support, see issue #8489\n      if (\n        (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n        !imgData.data\n      ) {\n        imgToPaint = imgData;\n      } else {\n        tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n        var tmpCtx = tmpCanvas.context;\n        putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n        imgToPaint = tmpCanvas.canvas;\n      }\n\n      var paintWidth = width,\n        paintHeight = height;\n      var tmpCanvasId = \"prescale1\";\n      // Vertical or horizontal scaling shall not be more than 2 to not lose the\n      // pixels during drawImage operation, painting on the temporary canvas(es)\n      // that are twice smaller in size.\n      while (\n        (widthScale > 2 && paintWidth > 1) ||\n        (heightScale > 2 && paintHeight > 1)\n      ) {\n        var newWidth = paintWidth,\n          newHeight = paintHeight;\n        if (widthScale > 2 && paintWidth > 1) {\n          newWidth = Math.ceil(paintWidth / 2);\n          widthScale /= paintWidth / newWidth;\n        }\n        if (heightScale > 2 && paintHeight > 1) {\n          newHeight = Math.ceil(paintHeight / 2);\n          heightScale /= paintHeight / newHeight;\n        }\n        tmpCanvas = this.cachedCanvases.getCanvas(\n          tmpCanvasId,\n          newWidth,\n          newHeight\n        );\n        tmpCtx = tmpCanvas.context;\n        tmpCtx.clearRect(0, 0, newWidth, newHeight);\n        tmpCtx.drawImage(\n          imgToPaint,\n          0,\n          0,\n          paintWidth,\n          paintHeight,\n          0,\n          0,\n          newWidth,\n          newHeight\n        );\n        imgToPaint = tmpCanvas.canvas;\n        paintWidth = newWidth;\n        paintHeight = newHeight;\n        tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n      }\n      ctx.drawImage(\n        imgToPaint,\n        0,\n        0,\n        paintWidth,\n        paintHeight,\n        0,\n        -height,\n        width,\n        height\n      );\n\n      if (this.imageLayer) {\n        var position = this.getCanvasPosition(0, -height);\n        this.imageLayer.appendImage({\n          imgData,\n          left: position[0],\n          top: position[1],\n          width: width / currentTransform[0],\n          height: height / currentTransform[3],\n        });\n      }\n      this.restore();\n    },\n\n    paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(\n      imgData,\n      map\n    ) {\n      if (!this.contentVisible) {\n        return;\n      }\n      var ctx = this.ctx;\n      var w = imgData.width;\n      var h = imgData.height;\n\n      var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n      var tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n      for (var i = 0, ii = map.length; i < ii; i++) {\n        var entry = map[i];\n        ctx.save();\n        ctx.transform.apply(ctx, entry.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(\n          tmpCanvas.canvas,\n          entry.x,\n          entry.y,\n          entry.w,\n          entry.h,\n          0,\n          -1,\n          1,\n          1\n        );\n        if (this.imageLayer) {\n          var position = this.getCanvasPosition(entry.x, entry.y);\n          this.imageLayer.appendImage({\n            imgData,\n            left: position[0],\n            top: position[1],\n            width: w,\n            height: h,\n          });\n        }\n        ctx.restore();\n      }\n    },\n\n    paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n      if (!this.contentVisible) {\n        return;\n      }\n      this.ctx.fillRect(0, 0, 1, 1);\n    },\n\n    // Marked content\n\n    markPoint: function CanvasGraphics_markPoint(tag) {\n      // TODO Marked content.\n    },\n    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n      // TODO Marked content.\n    },\n    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n      this.markedContentStack.push({\n        visible: true,\n      });\n    },\n    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n      tag,\n      properties\n    ) {\n      if (tag === \"OC\") {\n        this.markedContentStack.push({\n          visible: this.optionalContentConfig.isVisible(properties),\n        });\n      } else {\n        this.markedContentStack.push({\n          visible: true,\n        });\n      }\n      this.contentVisible = this.isContentVisible();\n    },\n    endMarkedContent: function CanvasGraphics_endMarkedContent() {\n      this.markedContentStack.pop();\n      this.contentVisible = this.isContentVisible();\n    },\n\n    // Compatibility\n\n    beginCompat: function CanvasGraphics_beginCompat() {\n      // TODO ignore undefined operators (should we do that anyway?)\n    },\n    endCompat: function CanvasGraphics_endCompat() {\n      // TODO stop ignoring undefined operators\n    },\n\n    // Helper functions\n\n    consumePath: function CanvasGraphics_consumePath() {\n      var ctx = this.ctx;\n      if (this.pendingClip) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip(\"evenodd\");\n        } else {\n          ctx.clip();\n        }\n        this.pendingClip = null;\n      }\n      ctx.beginPath();\n    },\n    getSinglePixelWidth(scale) {\n      if (this._cachedGetSinglePixelWidth === null) {\n        const inverse = this.ctx.mozCurrentTransformInverse;\n        // max of the current horizontal and vertical scale\n        this._cachedGetSinglePixelWidth = Math.sqrt(\n          Math.max(\n            inverse[0] * inverse[0] + inverse[1] * inverse[1],\n            inverse[2] * inverse[2] + inverse[3] * inverse[3]\n          )\n        );\n      }\n      return this._cachedGetSinglePixelWidth;\n    },\n    getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n      var transform = this.ctx.mozCurrentTransform;\n      return [\n        transform[0] * x + transform[2] * y + transform[4],\n        transform[1] * x + transform[3] * y + transform[5],\n      ];\n    },\n\n    isContentVisible: function CanvasGraphics_isContentVisible() {\n      for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n        if (!this.markedContentStack[i].visible) {\n          return false;\n        }\n      }\n      return true;\n    },\n  };\n\n  for (var op in OPS) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n\n  return CanvasGraphics;\n})();\n\nexport { CanvasGraphics };\n","/* Copyright 2014 Mozilla Foundation\n *\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 { FormatError, info, Util } from \"../shared/util.js\";\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox || typeof Path2D === \"undefined\") {\n    return;\n  }\n  const width = bbox[2] - bbox[0];\n  const height = bbox[3] - bbox[1];\n  const region = new Path2D();\n  region.rect(bbox[0], bbox[1], width, height);\n  ctx.clip(region);\n}\n\nShadingIRs.RadialAxial = {\n  fromIR: function RadialAxial_fromIR(raw) {\n    var type = raw[1];\n    var bbox = raw[2];\n    var colorStops = raw[3];\n    var p0 = raw[4];\n    var p1 = raw[5];\n    var r0 = raw[6];\n    var r1 = raw[7];\n    return {\n      type: \"Pattern\",\n      getPattern: function RadialAxial_getPattern(ctx) {\n        applyBoundingBox(ctx, bbox);\n        var grad;\n        if (type === \"axial\") {\n          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n        } else if (type === \"radial\") {\n          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n        }\n\n        for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n          var c = colorStops[i];\n          grad.addColorStop(c[0], c[1]);\n        }\n        return grad;\n      },\n    };\n  },\n};\n\nvar createMeshCanvas = (function createMeshCanvasClosure() {\n  function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n    // Very basic Gouraud-shaded triangle rasterization algorithm.\n    var coords = context.coords,\n      colors = context.colors;\n    var bytes = data.data,\n      rowSize = data.width * 4;\n    var tmp;\n    if (coords[p1 + 1] > coords[p2 + 1]) {\n      tmp = p1;\n      p1 = p2;\n      p2 = tmp;\n      tmp = c1;\n      c1 = c2;\n      c2 = tmp;\n    }\n    if (coords[p2 + 1] > coords[p3 + 1]) {\n      tmp = p2;\n      p2 = p3;\n      p3 = tmp;\n      tmp = c2;\n      c2 = c3;\n      c3 = tmp;\n    }\n    if (coords[p1 + 1] > coords[p2 + 1]) {\n      tmp = p1;\n      p1 = p2;\n      p2 = tmp;\n      tmp = c1;\n      c1 = c2;\n      c2 = tmp;\n    }\n    var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n    var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n    var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n    var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n    var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n    var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n    if (y1 >= y3) {\n      return;\n    }\n    var c1r = colors[c1],\n      c1g = colors[c1 + 1],\n      c1b = colors[c1 + 2];\n    var c2r = colors[c2],\n      c2g = colors[c2 + 1],\n      c2b = colors[c2 + 2];\n    var c3r = colors[c3],\n      c3g = colors[c3 + 1],\n      c3b = colors[c3 + 2];\n\n    var minY = Math.round(y1),\n      maxY = Math.round(y3);\n    var xa, car, cag, cab;\n    var xb, cbr, cbg, cbb;\n    for (var y = minY; y <= maxY; y++) {\n      if (y < y2) {\n        let k;\n        if (y < y1) {\n          k = 0;\n        } else if (y1 === y2) {\n          k = 1;\n        } else {\n          k = (y1 - y) / (y1 - y2);\n        }\n        xa = x1 - (x1 - x2) * k;\n        car = c1r - (c1r - c2r) * k;\n        cag = c1g - (c1g - c2g) * k;\n        cab = c1b - (c1b - c2b) * k;\n      } else {\n        let k;\n        if (y > y3) {\n          k = 1;\n        } else if (y2 === y3) {\n          k = 0;\n        } else {\n          k = (y2 - y) / (y2 - y3);\n        }\n        xa = x2 - (x2 - x3) * k;\n        car = c2r - (c2r - c3r) * k;\n        cag = c2g - (c2g - c3g) * k;\n        cab = c2b - (c2b - c3b) * k;\n      }\n\n      let k;\n      if (y < y1) {\n        k = 0;\n      } else if (y > y3) {\n        k = 1;\n      } else {\n        k = (y1 - y) / (y1 - y3);\n      }\n      xb = x1 - (x1 - x3) * k;\n      cbr = c1r - (c1r - c3r) * k;\n      cbg = c1g - (c1g - c3g) * k;\n      cbb = c1b - (c1b - c3b) * k;\n      var x1_ = Math.round(Math.min(xa, xb));\n      var x2_ = Math.round(Math.max(xa, xb));\n      var j = rowSize * y + x1_ * 4;\n      for (var x = x1_; x <= x2_; x++) {\n        k = (xa - x) / (xa - xb);\n        if (k < 0) {\n          k = 0;\n        } else if (k > 1) {\n          k = 1;\n        }\n        bytes[j++] = (car - (car - cbr) * k) | 0;\n        bytes[j++] = (cag - (cag - cbg) * k) | 0;\n        bytes[j++] = (cab - (cab - cbb) * k) | 0;\n        bytes[j++] = 255;\n      }\n    }\n  }\n\n  function drawFigure(data, figure, context) {\n    var ps = figure.coords;\n    var cs = figure.colors;\n    var i, ii;\n    switch (figure.type) {\n      case \"lattice\":\n        var verticesPerRow = figure.verticesPerRow;\n        var rows = Math.floor(ps.length / verticesPerRow) - 1;\n        var cols = verticesPerRow - 1;\n        for (i = 0; i < rows; i++) {\n          var q = i * verticesPerRow;\n          for (var j = 0; j < cols; j++, q++) {\n            drawTriangle(\n              data,\n              context,\n              ps[q],\n              ps[q + 1],\n              ps[q + verticesPerRow],\n              cs[q],\n              cs[q + 1],\n              cs[q + verticesPerRow]\n            );\n            drawTriangle(\n              data,\n              context,\n              ps[q + verticesPerRow + 1],\n              ps[q + 1],\n              ps[q + verticesPerRow],\n              cs[q + verticesPerRow + 1],\n              cs[q + 1],\n              cs[q + verticesPerRow]\n            );\n          }\n        }\n        break;\n      case \"triangles\":\n        for (i = 0, ii = ps.length; i < ii; i += 3) {\n          drawTriangle(\n            data,\n            context,\n            ps[i],\n            ps[i + 1],\n            ps[i + 2],\n            cs[i],\n            cs[i + 1],\n            cs[i + 2]\n          );\n        }\n        break;\n      default:\n        throw new Error(\"illegal figure\");\n    }\n  }\n\n  // eslint-disable-next-line no-shadow\n  function createMeshCanvas(\n    bounds,\n    combinesScale,\n    coords,\n    colors,\n    figures,\n    backgroundColor,\n    cachedCanvases,\n    webGLContext\n  ) {\n    // we will increase scale on some weird factor to let antialiasing take\n    // care of \"rough\" edges\n    var EXPECTED_SCALE = 1.1;\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n    // We need to keep transparent border around our pattern for fill():\n    // createPattern with 'no-repeat' will bleed edges across entire area.\n    var BORDER_SIZE = 2;\n\n    var offsetX = Math.floor(bounds[0]);\n    var offsetY = Math.floor(bounds[1]);\n    var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n    var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n\n    var width = Math.min(\n      Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    var height = Math.min(\n      Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    var scaleX = boundsWidth / width;\n    var scaleY = boundsHeight / height;\n\n    var context = {\n      coords,\n      colors,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY,\n    };\n\n    var paddedWidth = width + BORDER_SIZE * 2;\n    var paddedHeight = height + BORDER_SIZE * 2;\n\n    var canvas, tmpCanvas, i, ii;\n    if (webGLContext.isEnabled) {\n      canvas = webGLContext.drawFigures({\n        width,\n        height,\n        backgroundColor,\n        figures,\n        context,\n      });\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=972126\n      tmpCanvas = cachedCanvases.getCanvas(\n        \"mesh\",\n        paddedWidth,\n        paddedHeight,\n        false\n      );\n      tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n      canvas = tmpCanvas.canvas;\n    } else {\n      tmpCanvas = cachedCanvases.getCanvas(\n        \"mesh\",\n        paddedWidth,\n        paddedHeight,\n        false\n      );\n      var tmpCtx = tmpCanvas.context;\n\n      var data = tmpCtx.createImageData(width, height);\n      if (backgroundColor) {\n        var bytes = data.data;\n        for (i = 0, ii = bytes.length; i < ii; i += 4) {\n          bytes[i] = backgroundColor[0];\n          bytes[i + 1] = backgroundColor[1];\n          bytes[i + 2] = backgroundColor[2];\n          bytes[i + 3] = 255;\n        }\n      }\n      for (i = 0; i < figures.length; i++) {\n        drawFigure(data, figures[i], context);\n      }\n      tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n      canvas = tmpCanvas.canvas;\n    }\n\n    return {\n      canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY,\n    };\n  }\n  return createMeshCanvas;\n})();\n\nShadingIRs.Mesh = {\n  fromIR: function Mesh_fromIR(raw) {\n    // var type = raw[1];\n    var coords = raw[2];\n    var colors = raw[3];\n    var figures = raw[4];\n    var bounds = raw[5];\n    var matrix = raw[6];\n    var bbox = raw[7];\n    var background = raw[8];\n    return {\n      type: \"Pattern\",\n      getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n        applyBoundingBox(ctx, bbox);\n        var scale;\n        if (shadingFill) {\n          scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n        } else {\n          // Obtain scale from matrix and current transformation matrix.\n          scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n          if (matrix) {\n            var matrixScale = Util.singularValueDecompose2dScale(matrix);\n            scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n          }\n        }\n\n        // Rasterizing on the main thread since sending/queue large canvases\n        // might cause OOM.\n        var temporaryPatternCanvas = createMeshCanvas(\n          bounds,\n          scale,\n          coords,\n          colors,\n          figures,\n          shadingFill ? null : background,\n          owner.cachedCanvases,\n          owner.webGLContext\n        );\n\n        if (!shadingFill) {\n          ctx.setTransform.apply(ctx, owner.baseTransform);\n          if (matrix) {\n            ctx.transform.apply(ctx, matrix);\n          }\n        }\n\n        ctx.translate(\n          temporaryPatternCanvas.offsetX,\n          temporaryPatternCanvas.offsetY\n        );\n        ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n\n        return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n      },\n    };\n  },\n};\n\nShadingIRs.Dummy = {\n  fromIR: function Dummy_fromIR() {\n    return {\n      type: \"Pattern\",\n      getPattern: function Dummy_fromIR_getPattern() {\n        return \"hotpink\";\n      },\n    };\n  },\n};\n\nfunction getShadingPatternFromIR(raw) {\n  var shadingIR = ShadingIRs[raw[0]];\n  if (!shadingIR) {\n    throw new Error(`Unknown IR type: ${raw[0]}`);\n  }\n  return shadingIR.fromIR(raw);\n}\n\n/**\n * @type {any}\n */\nvar TilingPattern = (function TilingPatternClosure() {\n  var PaintType = {\n    COLORED: 1,\n    UNCOLORED: 2,\n  };\n\n  var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n\n  // eslint-disable-next-line no-shadow\n  function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n    this.type = \"Pattern\";\n    this.ctx = ctx;\n  }\n\n  TilingPattern.prototype = {\n    createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n      var operatorList = this.operatorList;\n      var bbox = this.bbox;\n      var xstep = this.xstep;\n      var ystep = this.ystep;\n      var paintType = this.paintType;\n      var tilingType = this.tilingType;\n      var color = this.color;\n      var canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n      info(\"TilingType: \" + tilingType);\n\n      // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n      // described by bbox, and may repeat regularly by shifting the cell by\n      // xstep and ystep.\n      // Because the HTML5 canvas API does not support pattern repetition with\n      // gaps in between, we use the xstep/ystep instead of the bbox's size.\n      //\n      // This has the following consequences (similarly for ystep):\n      //\n      // - If xstep is the same as bbox, then there is no observable difference.\n      //\n      // - If xstep is larger than bbox, then the pattern canvas is partially\n      //   empty: the area bounded by bbox is painted, the outside area is void.\n      //\n      // - If xstep is smaller than bbox, then the pixels between xstep and the\n      //   bbox boundary will be missing. This is INCORRECT behavior.\n      //   \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n      //   but overlapping cells without common pixels are still valid.\n      //   TODO: Fix the implementation, to allow this scenario to be painted\n      //   correctly.\n\n      var x0 = bbox[0],\n        y0 = bbox[1],\n        x1 = bbox[2],\n        y1 = bbox[3];\n\n      // Obtain scale from matrix and current transformation matrix.\n      var matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n      var curMatrixScale = Util.singularValueDecompose2dScale(\n        this.baseTransform\n      );\n      var combinedScale = [\n        matrixScale[0] * curMatrixScale[0],\n        matrixScale[1] * curMatrixScale[1],\n      ];\n\n      // Use width and height values that are as close as possible to the end\n      // result when the pattern is used. Too low value makes the pattern look\n      // blurry. Too large value makes it look too crispy.\n      var dimx = this.getSizeAndScale(\n        xstep,\n        this.ctx.canvas.width,\n        combinedScale[0]\n      );\n      var dimy = this.getSizeAndScale(\n        ystep,\n        this.ctx.canvas.height,\n        combinedScale[1]\n      );\n\n      var tmpCanvas = owner.cachedCanvases.getCanvas(\n        \"pattern\",\n        dimx.size,\n        dimy.size,\n        true\n      );\n      var tmpCtx = tmpCanvas.context;\n      var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n      graphics.groupLevel = owner.groupLevel;\n\n      this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n      graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n      // transform coordinates to pattern space\n      graphics.transform(1, 0, 0, 1, -x0, -y0);\n\n      this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n      graphics.executeOperatorList(operatorList);\n\n      this.ctx.transform(1, 0, 0, 1, x0, y0);\n\n      // Rescale canvas so that the ctx.createPattern call generates a pattern\n      // with the desired size.\n      this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n      return tmpCanvas.canvas;\n    },\n\n    getSizeAndScale: function TilingPattern_getSizeAndScale(\n      step,\n      realOutputSize,\n      scale\n    ) {\n      // xstep / ystep may be negative -- normalize.\n      step = Math.abs(step);\n      // MAX_PATTERN_SIZE is used to avoid OOM situation.\n      // Use the destination canvas's size if it is bigger than the hard-coded\n      // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n      // whole canvas.\n      var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n      var size = Math.ceil(step * scale);\n      if (size >= maxSize) {\n        size = maxSize;\n      } else {\n        scale = size / step;\n      }\n      return { scale, size };\n    },\n\n    clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        var bboxWidth = x1 - x0;\n        var bboxHeight = y1 - y0;\n        graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n        graphics.clip();\n        graphics.endPath();\n      }\n    },\n\n    setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(\n      graphics,\n      paintType,\n      color\n    ) {\n      const context = graphics.ctx,\n        current = graphics.current;\n      switch (paintType) {\n        case PaintType.COLORED:\n          var ctx = this.ctx;\n          context.fillStyle = ctx.fillStyle;\n          context.strokeStyle = ctx.strokeStyle;\n          current.fillColor = ctx.fillStyle;\n          current.strokeColor = ctx.strokeStyle;\n          break;\n        case PaintType.UNCOLORED:\n          var cssColor = Util.makeCssRgb(color[0], color[1], color[2]);\n          context.fillStyle = cssColor;\n          context.strokeStyle = cssColor;\n          // Set color needed by image masks (fixes issues 3226 and 8741).\n          current.fillColor = cssColor;\n          current.strokeColor = cssColor;\n          break;\n        default:\n          throw new FormatError(`Unsupported paint type: ${paintType}`);\n      }\n    },\n\n    getPattern: function TilingPattern_getPattern(ctx, owner) {\n      ctx = this.ctx;\n      // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n      ctx.setTransform.apply(ctx, this.baseTransform);\n      ctx.transform.apply(ctx, this.matrix);\n\n      var temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n      return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n    },\n  };\n\n  return TilingPattern;\n})();\n\nexport { getShadingPatternFromIR, TilingPattern };\n","/* Copyright 2018 Mozilla Foundation\n *\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 * @typedef {Object} GlobalWorkerOptionsType\n * @property {Worker | null} workerPort - Defines global port for worker\n *   process. Overrides the `workerSrc` option.\n * @property {string} workerSrc - A string containing the path and filename\n *   of the worker file.\n *\n *   NOTE: The `workerSrc` option should always be set, in order to prevent any\n *         issues when using the PDF.js library.\n */\n\n/** @type {GlobalWorkerOptionsType} */\nconst GlobalWorkerOptions = Object.create(null);\n\nGlobalWorkerOptions.workerPort =\n  GlobalWorkerOptions.workerPort === undefined\n    ? null\n    : GlobalWorkerOptions.workerPort;\n\nGlobalWorkerOptions.workerSrc =\n  GlobalWorkerOptions.workerSrc === undefined\n    ? \"\"\n    : GlobalWorkerOptions.workerSrc;\n\nexport { GlobalWorkerOptions };\n","/* Copyright 2018 Mozilla Foundation\n *\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/* eslint no-var: error, prefer-const: error */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  MissingPDFException,\n  UnexpectedResponseException,\n  UnknownErrorException,\n} from \"./util.js\";\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2,\n};\n\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      reason instanceof Error ||\n        (typeof reason === \"object\" && reason !== null),\n      'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n    );\n  } else {\n    if (typeof reason !== \"object\" || reason === null) {\n      return reason;\n    }\n  }\n  switch (reason.name) {\n    case \"AbortException\":\n      return new AbortException(reason.message);\n    case \"MissingPDFException\":\n      return new MissingPDFException(reason.message);\n    case \"UnexpectedResponseException\":\n      return new UnexpectedResponseException(reason.message, reason.status);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(reason.message, reason.details);\n    default:\n      return new UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.postMessageTransfers = true;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n      if (data.stream) {\n        this._processStreamMessage(data);\n        return;\n      }\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n        return;\n      }\n      const action = this.actionHandler[data.action];\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(\n          function (result) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.DATA,\n              callbackId: data.callbackId,\n              data: result,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.ERROR,\n              callbackId: data.callbackId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        return;\n      }\n      if (data.streamId) {\n        this._createStreamSink(data);\n        return;\n      }\n      action(data.data);\n    };\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        typeof handler === \"function\",\n        'MessageHandler.on: Expected \"handler\" to be a function.'\n      );\n    }\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   */\n  send(actionName, data, transfers) {\n    this._postMessage(\n      {\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        data,\n      },\n      transfers\n    );\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = createPromiseCapability();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this._postMessage(\n        {\n          sourceName: this.sourceName,\n          targetName: this.targetName,\n          action: actionName,\n          callbackId,\n          data,\n        },\n        transfers\n      );\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++;\n    const sourceName = this.sourceName;\n    const targetName = this.targetName;\n    const comObj = this.comObj;\n\n    return new ReadableStream(\n      {\n        start: controller => {\n          const startCapability = createPromiseCapability();\n          this.streamControllers[streamId] = {\n            controller,\n            startCall: startCapability,\n            pullCall: null,\n            cancelCall: null,\n            isClosed: false,\n          };\n          this._postMessage(\n            {\n              sourceName,\n              targetName,\n              action: actionName,\n              streamId,\n              data,\n              desiredSize: controller.desiredSize,\n            },\n            transfers\n          );\n          // Return Promise for Async process, to signal success/failure.\n          return startCapability.promise;\n        },\n\n        pull: controller => {\n          const pullCapability = createPromiseCapability();\n          this.streamControllers[streamId].pullCall = pullCapability;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL,\n            streamId,\n            desiredSize: controller.desiredSize,\n          });\n          // Returning Promise will not call \"pull\"\n          // again until current pull is resolved.\n          return pullCapability.promise;\n        },\n\n        cancel: reason => {\n          assert(reason instanceof Error, \"cancel must have a valid reason\");\n          const cancelCapability = createPromiseCapability();\n          this.streamControllers[streamId].cancelCall = cancelCapability;\n          this.streamControllers[streamId].isClosed = true;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL,\n            streamId,\n            reason: wrapReason(reason),\n          });\n          // Return Promise to signal success or failure.\n          return cancelCapability.promise;\n        },\n      },\n      queueingStrategy\n    );\n  }\n\n  /**\n   * @private\n   */\n  _createStreamSink(data) {\n    const self = this;\n    const action = this.actionHandler[data.action];\n    const streamId = data.streamId;\n    const sourceName = this.sourceName;\n    const targetName = data.sourceName;\n    const comObj = this.comObj;\n\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = createPromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        self._postMessage(\n          {\n            sourceName,\n            targetName,\n            stream: StreamKind.ENQUEUE,\n            streamId,\n            chunk,\n          },\n          transfers\n        );\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId,\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      },\n\n      sinkCapability: createPromiseCapability(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(\n      function () {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          success: true,\n        });\n      },\n      function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      }\n    );\n  }\n\n  /**\n   * @private\n   */\n  _processStreamMessage(data) {\n    const streamId = data.streamId;\n    const sourceName = this.sourceName;\n    const targetName = data.sourceName;\n    const comObj = this.comObj;\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].startCall.resolve();\n        } else {\n          this.streamControllers[streamId].startCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].pullCall.resolve();\n        } else {\n          this.streamControllers[streamId].pullCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        break;\n      case StreamKind.PULL:\n        // Ignore any pull after close is called.\n        if (!this.streamSinks[streamId]) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true,\n          });\n          break;\n        }\n        // Pull increases the desiredSize property of sink,\n        // so when it changes from negative to positive,\n        // set ready property as resolved promise.\n        if (\n          this.streamSinks[streamId].desiredSize <= 0 &&\n          data.desiredSize > 0\n        ) {\n          this.streamSinks[streamId].sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        this.streamSinks[streamId].desiredSize = data.desiredSize;\n        const { onPull } = this.streamSinks[data.streamId];\n        new Promise(function (resolve) {\n          resolve(onPull && onPull());\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        break;\n      case StreamKind.ENQUEUE:\n        assert(\n          this.streamControllers[streamId],\n          \"enqueue should have stream controller\"\n        );\n        if (this.streamControllers[streamId].isClosed) {\n          break;\n        }\n        this.streamControllers[streamId].controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(\n          this.streamControllers[streamId],\n          \"close should have stream controller\"\n        );\n        if (this.streamControllers[streamId].isClosed) {\n          break;\n        }\n        this.streamControllers[streamId].isClosed = true;\n        this.streamControllers[streamId].controller.close();\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(\n          this.streamControllers[streamId],\n          \"error should have stream controller\"\n        );\n        this.streamControllers[streamId].controller.error(\n          wrapReason(data.reason)\n        );\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].cancelCall.resolve();\n        } else {\n          this.streamControllers[streamId].cancelCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!this.streamSinks[streamId]) {\n          break;\n        }\n        const { onCancel } = this.streamSinks[data.streamId];\n        new Promise(function (resolve) {\n          resolve(onCancel && onCancel(wrapReason(data.reason)));\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        this.streamSinks[streamId].sinkCapability.reject(\n          wrapReason(data.reason)\n        );\n        this.streamSinks[streamId].isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  /**\n   * @private\n   */\n  async _deleteStreamController(streamId) {\n    // Delete the `streamController` only when the start, pull, and cancel\n    // capabilities have settled, to prevent `TypeError`s.\n    await Promise.allSettled(\n      [\n        this.streamControllers[streamId].startCall,\n        this.streamControllers[streamId].pullCall,\n        this.streamControllers[streamId].cancelCall,\n      ].map(function (capability) {\n        return capability && capability.promise;\n      })\n    );\n    delete this.streamControllers[streamId];\n  }\n\n  /**\n   * Sends raw message to the comObj.\n   * @param {Object} message - Raw message.\n   * @param transfers List of transfers/ArrayBuffers, or undefined.\n   * @private\n   */\n  _postMessage(message, transfers) {\n    if (transfers && this.postMessageTransfers) {\n      this.comObj.postMessage(message, transfers);\n    } else {\n      this.comObj.postMessage(message);\n    }\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n}\n\nexport { MessageHandler };\n","/* Copyright 2012 Mozilla Foundation\n *\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 \"../shared/util.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass Metadata {\n  constructor(data) {\n    assert(typeof data === \"string\", \"Metadata: input is not a string\");\n\n    // Ghostscript may produce invalid metadata, so try to repair that first.\n    data = this._repair(data);\n\n    // Convert the string to an XML document.\n    const parser = new SimpleXMLParser();\n    const xmlDocument = parser.parseFromString(data);\n\n    this._metadataMap = new Map();\n\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n\n  _repair(data) {\n    // Start by removing any \"junk\" before the first tag (see issue 10395).\n    return data\n      .replace(/^[^<]+/, \"\")\n      .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n        const bytes = codes\n          .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n            return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n          })\n          .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n            switch (name) {\n              case \"amp\":\n                return \"&\";\n              case \"apos\":\n                return \"'\";\n              case \"gt\":\n                return \">\";\n              case \"lt\":\n                return \"<\";\n              case \"quot\":\n                return '\"';\n            }\n            throw new Error(`_repair: ${name} isn't defined.`);\n          });\n\n        let chars = \"\";\n        for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n          const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n          if (\n            code >= /* Space = */ 32 &&\n            code < /* Delete = */ 127 &&\n            code !== /* '<' = */ 60 &&\n            code !== /* '>' = */ 62 &&\n            code !== /* '&' = */ 38\n          ) {\n            chars += String.fromCharCode(code);\n          } else {\n            chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n          }\n        }\n\n        return \">\" + chars;\n      });\n  }\n\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n\n    if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n      // Wrapped in <xmpmeta>\n      rdf = rdf.firstChild;\n      while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n        rdf = rdf.nextSibling;\n      }\n    }\n\n    const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n    if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n      return;\n    }\n\n    const children = rdf.childNodes;\n    for (let i = 0, ii = children.length; i < ii; i++) {\n      const desc = children[i];\n      if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n        continue;\n      }\n\n      for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n        if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n          const entry = desc.childNodes[j];\n          const name = entry.nodeName.toLowerCase();\n\n          this._metadataMap.set(name, entry.textContent.trim());\n        }\n      }\n    }\n  }\n\n  get(name) {\n    return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n  }\n\n  getAll() {\n    return Object.fromEntries(this._metadataMap);\n  }\n\n  has(name) {\n    return this._metadataMap.has(name);\n  }\n}\n\nexport { Metadata };\n","/* Copyright 2018 Mozilla Foundation\n *\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// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nclass XMLParserBase {\n  _resolveEntities(s) {\n    return s.replace(/&([^;]+);/g, (all, entity) => {\n      if (entity.substring(0, 2) === \"#x\") {\n        return String.fromCharCode(parseInt(entity.substring(2), 16));\n      } else if (entity.substring(0, 1) === \"#\") {\n        return String.fromCharCode(parseInt(entity.substring(1), 10));\n      }\n      switch (entity) {\n        case \"lt\":\n          return \"<\";\n        case \"gt\":\n          return \">\";\n        case \"amp\":\n          return \"&\";\n        case \"quot\":\n          return '\"';\n      }\n      return this.onResolveEntity(entity);\n    });\n  }\n\n  _parseContent(s, start) {\n    const attributes = [];\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (\n      pos < s.length &&\n      !isWhitespace(s, pos) &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"/\"\n    ) {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    while (\n      pos < s.length &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"/\" &&\n      s[pos] !== \"?\"\n    ) {\n      skipWs();\n      let attrName = \"\",\n        attrValue = \"\";\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n        attrName += s[pos];\n        ++pos;\n      }\n      skipWs();\n      if (s[pos] !== \"=\") {\n        return null;\n      }\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n      if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n        return null;\n      }\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n      if (attrEndIndex < 0) {\n        return null;\n      }\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue),\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n    return {\n      name,\n      attributes,\n      parsed: pos - start,\n    };\n  }\n\n  _parseProcessingInstruction(s, start) {\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (\n      pos < s.length &&\n      !isWhitespace(s, pos) &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"/\"\n    ) {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n    while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n      ++pos;\n    }\n    const value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start,\n    };\n  }\n\n  parseXml(s) {\n    let i = 0;\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n      if (ch === \"<\") {\n        ++j;\n        const ch2 = s[j];\n        let q;\n        switch (ch2) {\n          case \"/\":\n            ++j;\n            q = s.indexOf(\">\", j);\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n          case \"?\":\n            ++j;\n            const pi = this._parseProcessingInstruction(s, j);\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n          case \"!\":\n            if (s.substring(j + 1, j + 3) === \"--\") {\n              q = s.indexOf(\"-->\", j + 3);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n              q = s.indexOf(\"]]>\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n              const q2 = s.indexOf(\"[\", j + 8);\n              let complexDoctype = false;\n              q = s.indexOf(\">\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(\"]>\", j + 8);\n                if (q < 0) {\n                  this.onError(\n                    XMLParserErrorCode.UnterminatedDoctypeDeclaration\n                  );\n                  return;\n                }\n                complexDoctype = true;\n              }\n              const doctypeContent = s.substring(\n                j + 8,\n                q + (complexDoctype ? 1 : 0)\n              );\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            break;\n          default:\n            const content = this._parseContent(s, j);\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            let isClosed = false;\n            if (\n              s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n            ) {\n              isClosed = true;\n            } else if (\n              s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n            ) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== \"<\") {\n          j++;\n        }\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n      i = j;\n    }\n  }\n\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n\n  onPi(name, value) {}\n\n  onComment(text) {}\n\n  onCdata(text) {}\n\n  onDoctype(doctypeContent) {}\n\n  onText(text) {}\n\n  onBeginElement(name, attributes, isEmpty) {}\n\n  onEndElement(name) {}\n\n  onError(code) {}\n}\n\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n\n    Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n  }\n\n  get firstChild() {\n    return this.childNodes && this.childNodes[0];\n  }\n\n  get nextSibling() {\n    const childNodes = this.parentNode.childNodes;\n    if (!childNodes) {\n      return undefined;\n    }\n    const index = childNodes.indexOf(this);\n    if (index === -1) {\n      return undefined;\n    }\n    return childNodes[index + 1];\n  }\n\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || \"\";\n    }\n    return this.childNodes\n      .map(function (child) {\n        return child.textContent;\n      })\n      .join(\"\");\n  }\n\n  hasChildNodes() {\n    return this.childNodes && this.childNodes.length > 0;\n  }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n  constructor() {\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n  }\n\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined; // return undefined on error\n    }\n\n    // We should only have one root.\n    const [documentElement] = this._currentFragment;\n    if (!documentElement) {\n      return undefined; // Return undefined if no root was found.\n    }\n    return { documentElement };\n  }\n\n  onResolveEntity(name) {\n    switch (name) {\n      case \"apos\":\n        return \"'\";\n    }\n    return super.onResolveEntity(name);\n  }\n\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n\n  onCdata(text) {\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n\n  onBeginElement(name, attributes, isEmpty) {\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n    this._currentFragment.push(node);\n    if (isEmpty) {\n      return;\n    }\n    this._stack.push(this._currentFragment);\n    this._currentFragment = node.childNodes;\n  }\n\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop() || [];\n    const lastElement = this._currentFragment[this._currentFragment.length - 1];\n    if (!lastElement) {\n      return;\n    }\n    for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n      lastElement.childNodes[i].parentNode = lastElement;\n    }\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\nexport { SimpleXMLParser };\n","/* Copyright 2020 Mozilla Foundation\n *\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 */\nimport { warn } from \"../shared/util.js\";\n\nclass OptionalContentGroup {\n  constructor(name, intent) {\n    this.visible = true;\n    this.name = name;\n    this.intent = intent;\n  }\n}\n\nclass OptionalContentConfig {\n  constructor(data) {\n    this.name = null;\n    this.creator = null;\n    this._order = null;\n    this._groups = new Map();\n\n    if (data === null) {\n      return;\n    }\n    this.name = data.name;\n    this.creator = data.creator;\n    this._order = data.order;\n    for (const group of data.groups) {\n      this._groups.set(\n        group.id,\n        new OptionalContentGroup(group.name, group.intent)\n      );\n    }\n\n    if (data.baseState === \"OFF\") {\n      for (const group of this._groups) {\n        group.visible = false;\n      }\n    }\n\n    for (const on of data.on) {\n      this._groups.get(on).visible = true;\n    }\n\n    for (const off of data.off) {\n      this._groups.get(off).visible = false;\n    }\n  }\n\n  isVisible(group) {\n    if (group.type === \"OCG\") {\n      if (!this._groups.has(group.id)) {\n        warn(`Optional content group not found: ${group.id}`);\n        return true;\n      }\n      return this._groups.get(group.id).visible;\n    } else if (group.type === \"OCMD\") {\n      // Per the spec, the expression should be preferred if available. Until\n      // we implement this, just fallback to using the group policy for now.\n      if (group.expression) {\n        warn(\"Visibility expression not supported yet.\");\n      }\n      if (!group.policy || group.policy === \"AnyOn\") {\n        // Default\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this._groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOn\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this._groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      } else if (group.policy === \"AnyOff\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this._groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOff\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this._groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      }\n      warn(`Unknown optional content policy ${group.policy}.`);\n      return true;\n    }\n    warn(`Unknown group type ${group.type}.`);\n    return true;\n  }\n\n  setVisibility(id, visible = true) {\n    if (!this._groups.has(id)) {\n      warn(`Optional content group not found: ${id}`);\n      return;\n    }\n    this._groups.get(id).visible = !!visible;\n  }\n\n  getOrder() {\n    if (!this._groups.size) {\n      return null;\n    }\n    if (this._order) {\n      return this._order.slice();\n    }\n    return Array.from(this._groups.keys());\n  }\n\n  getGroups() {\n    if (!this._groups.size) {\n      return null;\n    }\n    return Object.fromEntries(this._groups);\n  }\n\n  getGroup(id) {\n    return this._groups.get(id) || null;\n  }\n}\n\nexport { OptionalContentConfig };\n","/* Copyright 2012 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport { assert, createPromiseCapability } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n  constructor(params, pdfDataRangeTransport) {\n    assert(\n      pdfDataRangeTransport,\n      'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n    );\n\n    this._queuedChunks = [];\n    this._progressiveDone = params.progressiveDone || false;\n\n    const initialData = params.initialData;\n    if (initialData && initialData.length > 0) {\n      const buffer = new Uint8Array(initialData).buffer;\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !params.disableStream;\n    this._isRangeSupported = !params.disableRange;\n    this._contentLength = params.length;\n\n    this._fullRequestReader = null;\n    this._rangeReaders = [];\n\n    this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n      this._onReceiveData({ begin, chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n      this._onProgress({ loaded, total });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n      this._onReceiveData({ chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n      this._onProgressiveDone();\n    });\n\n    this._pdfDataRangeTransport.transportReady();\n  }\n\n  _onReceiveData(args) {\n    const buffer = new Uint8Array(args.chunk).buffer;\n    if (args.begin === undefined) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader._enqueue(buffer);\n      } else {\n        this._queuedChunks.push(buffer);\n      }\n    } else {\n      const found = this._rangeReaders.some(function (rangeReader) {\n        if (rangeReader._begin !== args.begin) {\n          return false;\n        }\n        rangeReader._enqueue(buffer);\n        return true;\n      });\n      assert(\n        found,\n        \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\"\n      );\n    }\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n  }\n\n  _onProgress(evt) {\n    if (evt.total === undefined) {\n      // Reporting to first range reader, if it exists.\n      const firstReader = this._rangeReaders[0];\n      if (firstReader && firstReader.onProgress) {\n        firstReader.onProgress({ loaded: evt.loaded });\n      }\n    } else {\n      const fullReader = this._fullRequestReader;\n      if (fullReader && fullReader.onProgress) {\n        fullReader.onProgress({ loaded: evt.loaded, total: evt.total });\n      }\n    }\n  }\n\n  _onProgressiveDone() {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.progressiveDone();\n    }\n    this._progressiveDone = true;\n  }\n\n  _removeRangeReader(reader) {\n    const i = this._rangeReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFDataTransportStream.getFullReader can only be called once.\"\n    );\n    const queuedChunks = this._queuedChunks;\n    this._queuedChunks = null;\n    return new PDFDataTransportStreamReader(\n      this,\n      queuedChunks,\n      this._progressiveDone\n    );\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n    this._pdfDataRangeTransport.requestDataRange(begin, end);\n    this._rangeReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    const readers = this._rangeReaders.slice(0);\n    readers.forEach(function (rangeReader) {\n      rangeReader.cancel(reason);\n    });\n    this._pdfDataRangeTransport.abort();\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n  constructor(stream, queuedChunks, progressiveDone = false) {\n    this._stream = stream;\n    this._done = progressiveDone || false;\n    this._filename = null;\n    this._queuedChunks = queuedChunks || [];\n    this._loaded = 0;\n    for (const chunk of this._queuedChunks) {\n      this._loaded += chunk.byteLength;\n    }\n    this._requests = [];\n    this._headersReady = Promise.resolve();\n    stream._fullRequestReader = this;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // Ignore new data.\n    }\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunks.push(chunk);\n    }\n    this._loaded += chunk.byteLength;\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._stream._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._stream._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._stream._contentLength;\n  }\n\n  async read() {\n    if (this._queuedChunks.length > 0) {\n      const chunk = this._queuedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n  }\n\n  progressiveDone() {\n    if (this._done) {\n      return;\n    }\n    this._done = true;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._begin = begin;\n    this._end = end;\n    this._queuedChunk = null;\n    this._requests = [];\n    this._done = false;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // ignore new data\n    }\n    if (this._requests.length === 0) {\n      this._queuedChunk = chunk;\n    } else {\n      const requestsCapability = this._requests.shift();\n      requestsCapability.resolve({ value: chunk, done: false });\n      this._requests.forEach(function (requestCapability) {\n        requestCapability.resolve({ value: undefined, done: true });\n      });\n      this._requests = [];\n    }\n    this._done = true;\n    this._stream._removeRangeReader(this);\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._queuedChunk) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n    this._stream._removeRangeReader(this);\n  }\n}\n\nexport { PDFDataTransportStream };\n","/* Copyright 2014 Mozilla Foundation\n *\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/* eslint-disable no-multi-str */\n\nimport { shadow } from \"../shared/util.js\";\n\nclass WebGLContext {\n  constructor({ enable = false }) {\n    this._enabled = enable === true;\n  }\n\n  get isEnabled() {\n    let enabled = this._enabled;\n    if (enabled) {\n      enabled = WebGLUtils.tryInitGL();\n    }\n    return shadow(this, \"isEnabled\", enabled);\n  }\n\n  composeSMask({ layer, mask, properties }) {\n    return WebGLUtils.composeSMask(layer, mask, properties);\n  }\n\n  drawFigures({ width, height, backgroundColor, figures, context }) {\n    return WebGLUtils.drawFigures(\n      width,\n      height,\n      backgroundColor,\n      figures,\n      context\n    );\n  }\n\n  clear() {\n    WebGLUtils.cleanup();\n  }\n}\n\nvar WebGLUtils = (function WebGLUtilsClosure() {\n  function loadShader(gl, code, shaderType) {\n    var shader = gl.createShader(shaderType);\n    gl.shaderSource(shader, code);\n    gl.compileShader(shader);\n    var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n    if (!compiled) {\n      var errorMsg = gl.getShaderInfoLog(shader);\n      throw new Error(\"Error during shader compilation: \" + errorMsg);\n    }\n    return shader;\n  }\n  function createVertexShader(gl, code) {\n    return loadShader(gl, code, gl.VERTEX_SHADER);\n  }\n  function createFragmentShader(gl, code) {\n    return loadShader(gl, code, gl.FRAGMENT_SHADER);\n  }\n  function createProgram(gl, shaders) {\n    var program = gl.createProgram();\n    for (var i = 0, ii = shaders.length; i < ii; ++i) {\n      gl.attachShader(program, shaders[i]);\n    }\n    gl.linkProgram(program);\n    var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n    if (!linked) {\n      var errorMsg = gl.getProgramInfoLog(program);\n      throw new Error(\"Error during program linking: \" + errorMsg);\n    }\n    return program;\n  }\n  function createTexture(gl, image, textureId) {\n    gl.activeTexture(textureId);\n    var texture = gl.createTexture();\n    gl.bindTexture(gl.TEXTURE_2D, texture);\n\n    // Set the parameters so we can render any size image.\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n    // Upload the image into the texture.\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n    return texture;\n  }\n\n  var currentGL, currentCanvas;\n  function generateGL() {\n    if (currentGL) {\n      return;\n    }\n\n    // The temporary canvas is used in the WebGL context.\n    currentCanvas = document.createElement(\"canvas\");\n    currentGL = currentCanvas.getContext(\"webgl\", {\n      premultipliedalpha: false,\n    });\n  }\n\n  var smaskVertexShaderCode =\n    \"\\\n  attribute vec2 a_position;                                    \\\n  attribute vec2 a_texCoord;                                    \\\n                                                                \\\n  uniform vec2 u_resolution;                                    \\\n                                                                \\\n  varying vec2 v_texCoord;                                      \\\n                                                                \\\n  void main() {                                                 \\\n    vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;   \\\n    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \\\n                                                                \\\n    v_texCoord = a_texCoord;                                    \\\n  }                                                             \";\n\n  var smaskFragmentShaderCode =\n    \"\\\n  precision mediump float;                                      \\\n                                                                \\\n  uniform vec4 u_backdrop;                                      \\\n  uniform int u_subtype;                                        \\\n  uniform sampler2D u_image;                                    \\\n  uniform sampler2D u_mask;                                     \\\n                                                                \\\n  varying vec2 v_texCoord;                                      \\\n                                                                \\\n  void main() {                                                 \\\n    vec4 imageColor = texture2D(u_image, v_texCoord);           \\\n    vec4 maskColor = texture2D(u_mask, v_texCoord);             \\\n    if (u_backdrop.a > 0.0) {                                   \\\n      maskColor.rgb = maskColor.rgb * maskColor.a +             \\\n                      u_backdrop.rgb * (1.0 - maskColor.a);     \\\n    }                                                           \\\n    float lum;                                                  \\\n    if (u_subtype == 0) {                                       \\\n      lum = maskColor.a;                                        \\\n    } else {                                                    \\\n      lum = maskColor.r * 0.3 + maskColor.g * 0.59 +            \\\n            maskColor.b * 0.11;                                 \\\n    }                                                           \\\n    imageColor.a *= lum;                                        \\\n    imageColor.rgb *= imageColor.a;                             \\\n    gl_FragColor = imageColor;                                  \\\n  }                                                             \";\n\n  var smaskCache = null;\n\n  function initSmaskGL() {\n    var canvas, gl;\n\n    generateGL();\n    canvas = currentCanvas;\n    currentCanvas = null;\n    gl = currentGL;\n    currentGL = null;\n\n    // setup a GLSL program\n    var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n    var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n    var program = createProgram(gl, [vertexShader, fragmentShader]);\n    gl.useProgram(program);\n\n    var cache = {};\n    cache.gl = gl;\n    cache.canvas = canvas;\n    cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n    cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n    cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n    cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n\n    var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n    var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n    var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n\n    // provide texture coordinates for the rectangle.\n    var texCoordBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n    // prettier-ignore\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n      0.0, 0.0,\n      1.0, 0.0,\n      0.0, 1.0,\n      0.0, 1.0,\n      1.0, 0.0,\n      1.0, 1.0]), gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(texCoordLocation);\n    gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n    gl.uniform1i(texLayerLocation, 0);\n    gl.uniform1i(texMaskLocation, 1);\n\n    smaskCache = cache;\n  }\n\n  function composeSMask(layer, mask, properties) {\n    var width = layer.width,\n      height = layer.height;\n\n    if (!smaskCache) {\n      initSmaskGL();\n    }\n    var cache = smaskCache,\n      canvas = cache.canvas,\n      gl = cache.gl;\n    canvas.width = width;\n    canvas.height = height;\n    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n    gl.uniform2f(cache.resolutionLocation, width, height);\n\n    if (properties.backdrop) {\n      gl.uniform4f(\n        cache.resolutionLocation,\n        properties.backdrop[0],\n        properties.backdrop[1],\n        properties.backdrop[2],\n        1\n      );\n    } else {\n      gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n    }\n    gl.uniform1i(\n      cache.subtypeLocation,\n      properties.subtype === \"Luminosity\" ? 1 : 0\n    );\n\n    // Create a textures\n    var texture = createTexture(gl, layer, gl.TEXTURE0);\n    var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n\n    // Create a buffer and put a single clipspace rectangle in\n    // it (2 triangles)\n    var buffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n    // prettier-ignore\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n      0, 0,\n      width, 0,\n      0, height,\n      0, height,\n      width, 0,\n      width, height]), gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.positionLocation);\n    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n    // draw\n    gl.clearColor(0, 0, 0, 0);\n    gl.enable(gl.BLEND);\n    gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n    gl.clear(gl.COLOR_BUFFER_BIT);\n\n    gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n    gl.flush();\n\n    gl.deleteTexture(texture);\n    gl.deleteTexture(maskTexture);\n    gl.deleteBuffer(buffer);\n\n    return canvas;\n  }\n\n  var figuresVertexShaderCode =\n    \"\\\n  attribute vec2 a_position;                                    \\\n  attribute vec3 a_color;                                       \\\n                                                                \\\n  uniform vec2 u_resolution;                                    \\\n  uniform vec2 u_scale;                                         \\\n  uniform vec2 u_offset;                                        \\\n                                                                \\\n  varying vec4 v_color;                                         \\\n                                                                \\\n  void main() {                                                 \\\n    vec2 position = (a_position + u_offset) * u_scale;          \\\n    vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;     \\\n    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \\\n                                                                \\\n    v_color = vec4(a_color / 255.0, 1.0);                       \\\n  }                                                             \";\n\n  var figuresFragmentShaderCode =\n    \"\\\n  precision mediump float;                                      \\\n                                                                \\\n  varying vec4 v_color;                                         \\\n                                                                \\\n  void main() {                                                 \\\n    gl_FragColor = v_color;                                     \\\n  }                                                             \";\n\n  var figuresCache = null;\n\n  function initFiguresGL() {\n    var canvas, gl;\n\n    generateGL();\n    canvas = currentCanvas;\n    currentCanvas = null;\n    gl = currentGL;\n    currentGL = null;\n\n    // setup a GLSL program\n    var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n    var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n    var program = createProgram(gl, [vertexShader, fragmentShader]);\n    gl.useProgram(program);\n\n    var cache = {};\n    cache.gl = gl;\n    cache.canvas = canvas;\n    cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n    cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n    cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n    cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n    cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n\n    figuresCache = cache;\n  }\n\n  function drawFigures(width, height, backgroundColor, figures, context) {\n    if (!figuresCache) {\n      initFiguresGL();\n    }\n    var cache = figuresCache,\n      canvas = cache.canvas,\n      gl = cache.gl;\n\n    canvas.width = width;\n    canvas.height = height;\n    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n    gl.uniform2f(cache.resolutionLocation, width, height);\n\n    // count triangle points\n    var count = 0;\n    var i, ii, rows;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      switch (figures[i].type) {\n        case \"lattice\":\n          rows = (figures[i].coords.length / figures[i].verticesPerRow) | 0;\n          count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n          break;\n        case \"triangles\":\n          count += figures[i].coords.length;\n          break;\n      }\n    }\n    // transfer data\n    var coords = new Float32Array(count * 2);\n    var colors = new Uint8Array(count * 3);\n    var coordsMap = context.coords,\n      colorsMap = context.colors;\n    var pIndex = 0,\n      cIndex = 0;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      var figure = figures[i],\n        ps = figure.coords,\n        cs = figure.colors;\n      switch (figure.type) {\n        case \"lattice\":\n          var cols = figure.verticesPerRow;\n          rows = (ps.length / cols) | 0;\n          for (var row = 1; row < rows; row++) {\n            var offset = row * cols + 1;\n            for (var col = 1; col < cols; col++, offset++) {\n              coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n              coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n              coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n              coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n              coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n              coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n              colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n              colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n              colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n              colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n              colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n              colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n              colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n              colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n              colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n\n              coords[pIndex + 6] = coords[pIndex + 2];\n              coords[pIndex + 7] = coords[pIndex + 3];\n              coords[pIndex + 8] = coords[pIndex + 4];\n              coords[pIndex + 9] = coords[pIndex + 5];\n              coords[pIndex + 10] = coordsMap[ps[offset]];\n              coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n              colors[cIndex + 9] = colors[cIndex + 3];\n              colors[cIndex + 10] = colors[cIndex + 4];\n              colors[cIndex + 11] = colors[cIndex + 5];\n              colors[cIndex + 12] = colors[cIndex + 6];\n              colors[cIndex + 13] = colors[cIndex + 7];\n              colors[cIndex + 14] = colors[cIndex + 8];\n              colors[cIndex + 15] = colorsMap[cs[offset]];\n              colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n              colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n              pIndex += 12;\n              cIndex += 18;\n            }\n          }\n          break;\n        case \"triangles\":\n          for (var j = 0, jj = ps.length; j < jj; j++) {\n            coords[pIndex] = coordsMap[ps[j]];\n            coords[pIndex + 1] = coordsMap[ps[j] + 1];\n            colors[cIndex] = colorsMap[cs[j]];\n            colors[cIndex + 1] = colorsMap[cs[j] + 1];\n            colors[cIndex + 2] = colorsMap[cs[j] + 2];\n            pIndex += 2;\n            cIndex += 3;\n          }\n          break;\n      }\n    }\n\n    // draw\n    if (backgroundColor) {\n      gl.clearColor(\n        backgroundColor[0] / 255,\n        backgroundColor[1] / 255,\n        backgroundColor[2] / 255,\n        1.0\n      );\n    } else {\n      gl.clearColor(0, 0, 0, 0);\n    }\n    gl.clear(gl.COLOR_BUFFER_BIT);\n\n    var coordsBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.positionLocation);\n    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n    var colorsBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.colorLocation);\n    gl.vertexAttribPointer(\n      cache.colorLocation,\n      3,\n      gl.UNSIGNED_BYTE,\n      false,\n      0,\n      0\n    );\n\n    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n\n    gl.drawArrays(gl.TRIANGLES, 0, count);\n\n    gl.flush();\n\n    gl.deleteBuffer(coordsBuffer);\n    gl.deleteBuffer(colorsBuffer);\n\n    return canvas;\n  }\n\n  return {\n    tryInitGL() {\n      try {\n        generateGL();\n        return !!currentGL;\n      } catch (ex) {}\n      return false;\n    },\n\n    composeSMask,\n\n    drawFigures,\n\n    cleanup() {\n      if (smaskCache && smaskCache.canvas) {\n        smaskCache.canvas.width = 0;\n        smaskCache.canvas.height = 0;\n      }\n      if (figuresCache && figuresCache.canvas) {\n        figuresCache.canvas.width = 0;\n        figuresCache.canvas.height = 0;\n      }\n      smaskCache = null;\n      figuresCache = null;\n    },\n  };\n})();\n\nexport { WebGLContext };\n","/* Copyright 2014 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport {\n  addLinkAttributes,\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  LinkTarget,\n  PDFDateString,\n} from \"./display_utils.js\";\nimport {\n  AnnotationBorderStyleType,\n  AnnotationType,\n  stringToPDFString,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPage} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {Object} svgFactory\n */\n\nclass AnnotationElementFactory {\n  /**\n   * @param {AnnotationElementParameters} parameters\n   * @returns {AnnotationElement}\n   */\n  static create(parameters) {\n    const subtype = parameters.data.annotationType;\n\n    switch (subtype) {\n      case AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n\n      case AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n\n      case AnnotationType.WIDGET:\n        const fieldType = parameters.data.fieldType;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotationElement(parameters);\n          case \"Btn\":\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n            return new PushButtonWidgetAnnotationElement(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotationElement(parameters);\n        }\n        return new WidgetAnnotationElement(parameters);\n\n      case AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n\n      case AnnotationType.FREETEXT:\n        return new FreeTextAnnotationElement(parameters);\n\n      case AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n\n      case AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n\n      case AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n\n      case AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n\n      case AnnotationType.CARET:\n        return new CaretAnnotationElement(parameters);\n\n      case AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n\n      case AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n\n      case AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n\n      case AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n\n      case AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n\n      case AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n\n      case AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n\n      case AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n}\n\nclass AnnotationElement {\n  constructor(parameters, isRenderable = false, ignoreBorder = false) {\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.page = parameters.page;\n    this.viewport = parameters.viewport;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderInteractiveForms = parameters.renderInteractiveForms;\n    this.svgFactory = parameters.svgFactory;\n    this.annotationStorage = parameters.annotationStorage;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n  }\n\n  /**\n   * Create an empty container for the annotation's HTML element.\n   *\n   * @private\n   * @param {boolean} ignoreBorder\n   * @memberof AnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  _createContainer(ignoreBorder = false) {\n    const data = this.data,\n      page = this.page,\n      viewport = this.viewport;\n    const container = document.createElement(\"section\");\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n\n    container.setAttribute(\"data-annotation-id\", data.id);\n\n    // Do *not* modify `data.rect`, since that will corrupt the annotation\n    // position on subsequent calls to `_createContainer` (see issue 6804).\n    const rect = Util.normalizeRect([\n      data.rect[0],\n      page.view[3] - data.rect[1] + page.view[1],\n      data.rect[2],\n      page.view[3] - data.rect[3] + page.view[1],\n    ]);\n\n    container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n    container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;\n\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = `${data.borderStyle.width}px`;\n      if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n        // Underline styles only have a bottom border, so we do not need\n        // to adjust for all borders. This yields a similar result as\n        // Adobe Acrobat/Reader.\n        width = width - 2 * data.borderStyle.width;\n        height = height - 2 * data.borderStyle.width;\n      }\n\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n        container.style.borderRadius = radius;\n      }\n\n      switch (data.borderStyle.style) {\n        case AnnotationBorderStyleType.SOLID:\n          container.style.borderStyle = \"solid\";\n          break;\n\n        case AnnotationBorderStyleType.DASHED:\n          container.style.borderStyle = \"dashed\";\n          break;\n\n        case AnnotationBorderStyleType.BEVELED:\n          warn(\"Unimplemented border style: beveled\");\n          break;\n\n        case AnnotationBorderStyleType.INSET:\n          warn(\"Unimplemented border style: inset\");\n          break;\n\n        case AnnotationBorderStyleType.UNDERLINE:\n          container.style.borderBottomStyle = \"solid\";\n          break;\n\n        default:\n          break;\n      }\n\n      if (data.color) {\n        container.style.borderColor = Util.makeCssRgb(\n          data.color[0] | 0,\n          data.color[1] | 0,\n          data.color[2] | 0\n        );\n      } else {\n        // Transparent (invisible) border, so do not draw it at all.\n        container.style.borderWidth = 0;\n      }\n    }\n\n    container.style.left = `${rect[0]}px`;\n    container.style.top = `${rect[1]}px`;\n    container.style.width = `${width}px`;\n    container.style.height = `${height}px`;\n    return container;\n  }\n\n  /**\n   * Create a popup for the annotation's HTML element. This is used for\n   * annotations that do not have a Popup entry in the dictionary, but\n   * are of a type that works with popups (such as Highlight annotations).\n   *\n   * @private\n   * @param {HTMLSectionElement} container\n   * @param {HTMLDivElement|HTMLImageElement|null} trigger\n   * @param {Object} data\n   * @memberof AnnotationElement\n   */\n  _createPopup(container, trigger, data) {\n    // If no trigger element is specified, create it.\n    if (!trigger) {\n      trigger = document.createElement(\"div\");\n      trigger.style.height = container.style.height;\n      trigger.style.width = container.style.width;\n      container.appendChild(trigger);\n    }\n\n    const popupElement = new PopupElement({\n      container,\n      trigger,\n      color: data.color,\n      title: data.title,\n      modificationDate: data.modificationDate,\n      contents: data.contents,\n      hideWrapper: true,\n    });\n    const popup = popupElement.render();\n\n    // Position the popup next to the annotation's container.\n    popup.style.left = container.style.width;\n\n    container.appendChild(popup);\n  }\n\n  /**\n   * Render the annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof AnnotationElement\n   */\n  render() {\n    unreachable(\"Abstract method `AnnotationElement.render` called\");\n  }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.url ||\n      parameters.data.dest ||\n      parameters.data.action\n    );\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the link annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof LinkAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"linkAnnotation\";\n\n    const { data, linkService } = this;\n    const link = document.createElement(\"a\");\n\n    if (data.url) {\n      addLinkAttributes(link, {\n        url: data.url,\n        target: data.newWindow\n          ? LinkTarget.BLANK\n          : linkService.externalLinkTarget,\n        rel: linkService.externalLinkRel,\n        enabled: linkService.externalLinkEnabled,\n      });\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action);\n    } else {\n      this._bindLink(link, data.dest);\n    }\n\n    this.container.appendChild(link);\n    return this.container;\n  }\n\n  /**\n   * Bind internal links to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} destination\n   * @memberof LinkAnnotationElement\n   */\n  _bindLink(link, destination) {\n    link.href = this.linkService.getDestinationHash(destination);\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.navigateTo(destination);\n      }\n      return false;\n    };\n    if (destination) {\n      link.className = \"internalLink\";\n    }\n  }\n\n  /**\n   * Bind named actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} action\n   * @memberof LinkAnnotationElement\n   */\n  _bindNamedAction(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n    link.className = \"internalLink\";\n  }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the text annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof TextAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"textAnnotation\";\n\n    const image = document.createElement(\"img\");\n    image.style.height = this.container.style.height;\n    image.style.width = this.container.style.width;\n    image.src =\n      this.imageResourcesPath +\n      \"annotation-\" +\n      this.data.name.toLowerCase() +\n      \".svg\";\n    image.alt = \"[{{type}} Annotation]\";\n    image.dataset.l10nId = \"text_annotation_type\";\n    image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, image, this.data);\n    }\n\n    this.container.appendChild(image);\n    return this.container;\n  }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n  /**\n   * Render the widget annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof WidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // Show only the container for unsupported field types.\n    return this.container;\n  }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable =\n      parameters.renderInteractiveForms ||\n      (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the text widget annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof TextWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    this.container.className = \"textWidgetAnnotation\";\n\n    let element = null;\n    if (this.renderInteractiveForms) {\n      // NOTE: We cannot set the values using `element.value` below, since it\n      //       prevents the AnnotationLayer rasterizer in `test/driver.js`\n      //       from parsing the elements correctly for the reference tests.\n      const textContent = storage.getOrCreateValue(id, this.data.fieldValue);\n\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = textContent;\n      } else {\n        element = document.createElement(\"input\");\n        element.type = \"text\";\n        element.setAttribute(\"value\", textContent);\n      }\n\n      element.addEventListener(\"input\", function (event) {\n        storage.setValue(id, event.target.value);\n      });\n\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n\n      if (this.data.maxLen !== null) {\n        element.maxLength = this.data.maxLen;\n      }\n\n      if (this.data.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / this.data.maxLen;\n\n        element.classList.add(\"comb\");\n        element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n      }\n    } else {\n      element = document.createElement(\"div\");\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = \"middle\";\n      element.style.display = \"table-cell\";\n\n      let font = null;\n      if (\n        this.data.fontRefName &&\n        this.page.commonObjs.has(this.data.fontRefName)\n      ) {\n        font = this.page.commonObjs.get(this.data.fontRefName);\n      }\n      this._setTextStyle(element, font);\n    }\n\n    if (this.data.textAlignment !== null) {\n      element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n\n  /**\n   * Apply text styles to the text in the element.\n   *\n   * @private\n   * @param {HTMLDivElement} element\n   * @param {Object} font\n   * @memberof TextWidgetAnnotationElement\n   */\n  _setTextStyle(element, font) {\n    // TODO: This duplicates some of the logic in CanvasGraphics.setFont().\n    const style = element.style;\n    style.fontSize = `${this.data.fontSize}px`;\n    style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n    if (!font) {\n      return;\n    }\n\n    let bold = \"normal\";\n    if (font.black) {\n      bold = \"900\";\n    } else if (font.bold) {\n      bold = \"bold\";\n    }\n    style.fontWeight = bold;\n    style.fontStyle = font.italic ? \"italic\" : \"normal\";\n\n    // Use a reasonable default font if the font doesn't specify a fallback.\n    const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : \"\";\n    const fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n    style.fontFamily = fontFamily + fallbackName;\n  }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the checkbox widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof CheckboxWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    const value = storage.getOrCreateValue(\n      id,\n      data.fieldValue && data.fieldValue !== \"Off\"\n    );\n\n    this.container.className = \"buttonWidgetAnnotation checkBox\";\n\n    const element = document.createElement(\"input\");\n    element.disabled = data.readOnly;\n    element.type = \"checkbox\";\n    element.name = this.data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n\n    element.addEventListener(\"change\", function (event) {\n      storage.setValue(id, event.target.checked);\n    });\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the radio button widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof RadioButtonWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"buttonWidgetAnnotation radioButton\";\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    const value = storage.getOrCreateValue(\n      id,\n      data.fieldValue === data.buttonValue\n    );\n\n    const element = document.createElement(\"input\");\n    element.disabled = data.readOnly;\n    element.type = \"radio\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n\n    element.addEventListener(\"change\", function (event) {\n      const name = event.target.name;\n      for (const radio of document.getElementsByName(name)) {\n        if (radio !== event.target) {\n          storage.setValue(\n            radio.parentNode.getAttribute(\"data-annotation-id\"),\n            false\n          );\n        }\n      }\n      storage.setValue(id, event.target.checked);\n    });\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  /**\n   * Render the push button widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof PushButtonWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // The rendering and functionality of a push button widget annotation is\n    // equal to that of a link annotation, but may have more functionality, such\n    // as performing actions on form fields (resetting, submitting, et cetera).\n    const container = super.render();\n    container.className = \"buttonWidgetAnnotation pushButton\";\n    return container;\n  }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the choice widget annotation's HTML element in the empty\n   * container.\n   *\n   * @public\n   * @memberof ChoiceWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"choiceWidgetAnnotation\";\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    // For printing/saving we currently only support choice widgets with one\n    // option selection. Therefore, listboxes (#12189) and comboboxes (#12224)\n    // are not properly printed/saved yet, so we only store the first item in\n    // the field value array instead of the entire array. Once support for those\n    // two field types is implemented, we should use the same pattern as the\n    // other interactive widgets where the return value of `getOrCreateValue` is\n    // used and the full array of field values is stored.\n    storage.getOrCreateValue(\n      id,\n      this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null\n    );\n\n    const selectElement = document.createElement(\"select\");\n    selectElement.disabled = this.data.readOnly;\n    selectElement.name = this.data.fieldName;\n\n    if (!this.data.combo) {\n      // List boxes have a size and (optionally) multiple selection.\n      selectElement.size = this.data.options.length;\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n\n    // Insert the options into the choice field.\n    for (const option of this.data.options) {\n      const optionElement = document.createElement(\"option\");\n      optionElement.textContent = option.displayValue;\n      optionElement.value = option.exportValue;\n      if (this.data.fieldValue.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n      }\n      selectElement.appendChild(optionElement);\n    }\n\n    selectElement.addEventListener(\"input\", function (event) {\n      const options = event.target.options;\n      const value = options[options.selectedIndex].value;\n      storage.setValue(id, value);\n    });\n\n    this.container.appendChild(selectElement);\n    return this.container;\n  }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the popup annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof PopupAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // Do not render popup annotations for parent elements with these types as\n    // they create the popups themselves (because of custom trigger divs).\n    const IGNORE_TYPES = [\n      \"Line\",\n      \"Square\",\n      \"Circle\",\n      \"PolyLine\",\n      \"Polygon\",\n      \"Ink\",\n    ];\n\n    this.container.className = \"popupAnnotation\";\n\n    if (IGNORE_TYPES.includes(this.data.parentType)) {\n      return this.container;\n    }\n\n    const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n    const parentElement = this.layer.querySelector(selector);\n    if (!parentElement) {\n      return this.container;\n    }\n\n    const popup = new PopupElement({\n      container: this.container,\n      trigger: parentElement,\n      color: this.data.color,\n      title: this.data.title,\n      modificationDate: this.data.modificationDate,\n      contents: this.data.contents,\n    });\n\n    // Position the popup next to the parent annotation's container.\n    // PDF viewers ignore a popup annotation's rectangle.\n    const parentLeft = parseFloat(parentElement.style.left);\n    const parentWidth = parseFloat(parentElement.style.width);\n    this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${\n      parentElement.style.top\n    }`;\n    this.container.style.left = `${parentLeft + parentWidth}px`;\n\n    this.container.appendChild(popup.render());\n    return this.container;\n  }\n}\n\nclass PopupElement {\n  constructor(parameters) {\n    this.container = parameters.container;\n    this.trigger = parameters.trigger;\n    this.color = parameters.color;\n    this.title = parameters.title;\n    this.modificationDate = parameters.modificationDate;\n    this.contents = parameters.contents;\n    this.hideWrapper = parameters.hideWrapper || false;\n\n    this.pinned = false;\n  }\n\n  /**\n   * Render the popup's HTML element.\n   *\n   * @public\n   * @memberof PopupElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    const BACKGROUND_ENLIGHT = 0.7;\n\n    const wrapper = document.createElement(\"div\");\n    wrapper.className = \"popupWrapper\";\n\n    // For Popup annotations we hide the entire section because it contains\n    // only the popup. However, for Text annotations without a separate Popup\n    // annotation, we cannot hide the entire container as the image would\n    // disappear too. In that special case, hiding the wrapper suffices.\n    this.hideElement = this.hideWrapper ? wrapper : this.container;\n    this.hideElement.setAttribute(\"hidden\", true);\n\n    const popup = document.createElement(\"div\");\n    popup.className = \"popup\";\n\n    const color = this.color;\n    if (color) {\n      // Enlighten the color.\n      const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n      const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n      const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n      popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0);\n    }\n\n    const title = document.createElement(\"h1\");\n    title.textContent = this.title;\n    popup.appendChild(title);\n\n    // The modification date is shown in the popup instead of the creation\n    // date if it is available and can be parsed correctly, which is\n    // consistent with other viewers such as Adobe Acrobat.\n    const dateObject = PDFDateString.toDateObject(this.modificationDate);\n    if (dateObject) {\n      const modificationDate = document.createElement(\"span\");\n      modificationDate.textContent = \"{{date}}, {{time}}\";\n      modificationDate.dataset.l10nId = \"annotation_date_string\";\n      modificationDate.dataset.l10nArgs = JSON.stringify({\n        date: dateObject.toLocaleDateString(),\n        time: dateObject.toLocaleTimeString(),\n      });\n      popup.appendChild(modificationDate);\n    }\n\n    const contents = this._formatContents(this.contents);\n    popup.appendChild(contents);\n\n    // Attach the event listeners to the trigger element.\n    this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n    this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n    this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n    popup.addEventListener(\"click\", this._hide.bind(this, true));\n\n    wrapper.appendChild(popup);\n    return wrapper;\n  }\n\n  /**\n   * Format the contents of the popup by adding newlines where necessary.\n   *\n   * @private\n   * @param {string} contents\n   * @memberof PopupElement\n   * @returns {HTMLParagraphElement}\n   */\n  _formatContents(contents) {\n    const p = document.createElement(\"p\");\n    const lines = contents.split(/(?:\\r\\n?|\\n)/);\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      const line = lines[i];\n      p.appendChild(document.createTextNode(line));\n      if (i < ii - 1) {\n        p.appendChild(document.createElement(\"br\"));\n      }\n    }\n    return p;\n  }\n\n  /**\n   * Toggle the visibility of the popup.\n   *\n   * @private\n   * @memberof PopupElement\n   */\n  _toggle() {\n    if (this.pinned) {\n      this._hide(true);\n    } else {\n      this._show(true);\n    }\n  }\n\n  /**\n   * Show the popup.\n   *\n   * @private\n   * @param {boolean} pin\n   * @memberof PopupElement\n   */\n  _show(pin = false) {\n    if (pin) {\n      this.pinned = true;\n    }\n    if (this.hideElement.hasAttribute(\"hidden\")) {\n      this.hideElement.removeAttribute(\"hidden\");\n      this.container.style.zIndex += 1;\n    }\n  }\n\n  /**\n   * Hide the popup.\n   *\n   * @private\n   * @param {boolean} unpin\n   * @memberof PopupElement\n   */\n  _hide(unpin = true) {\n    if (unpin) {\n      this.pinned = false;\n    }\n    if (!this.hideElement.hasAttribute(\"hidden\") && !this.pinned) {\n      this.hideElement.setAttribute(\"hidden\", true);\n      this.container.style.zIndex -= 1;\n    }\n  }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the free text annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof FreeTextAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"freeTextAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the line annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof LineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"lineAnnotation\";\n\n    // Create an invisible line with the same starting and ending coordinates\n    // that acts as the trigger for the popup. Only the line itself should\n    // trigger the popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // PDF coordinates are calculated from a bottom left origin, so transform\n    // the line coordinates to a top left origin for the SVG element.\n    const line = this.svgFactory.createElement(\"svg:line\");\n    line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    line.setAttribute(\"stroke\", \"transparent\");\n\n    svg.appendChild(line);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the line instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, line, data);\n\n    return this.container;\n  }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the square annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof SquareAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"squareAnnotation\";\n\n    // Create an invisible square with the same rectangle that acts as the\n    // trigger for the popup. Only the square itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the square and half of\n    // the borders outside the square by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const square = this.svgFactory.createElement(\"svg:rect\");\n    square.setAttribute(\"x\", borderWidth / 2);\n    square.setAttribute(\"y\", borderWidth / 2);\n    square.setAttribute(\"width\", width - borderWidth);\n    square.setAttribute(\"height\", height - borderWidth);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    square.setAttribute(\"stroke-width\", borderWidth || 1);\n    square.setAttribute(\"stroke\", \"transparent\");\n    square.setAttribute(\"fill\", \"none\");\n\n    svg.appendChild(square);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the square instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, square, data);\n\n    return this.container;\n  }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the circle annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof CircleAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"circleAnnotation\";\n\n    // Create an invisible circle with the same ellipse that acts as the\n    // trigger for the popup. Only the circle itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the circle and half of\n    // the borders outside the circle by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const circle = this.svgFactory.createElement(\"svg:ellipse\");\n    circle.setAttribute(\"cx\", width / 2);\n    circle.setAttribute(\"cy\", height / 2);\n    circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n    circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    circle.setAttribute(\"stroke-width\", borderWidth || 1);\n    circle.setAttribute(\"stroke\", \"transparent\");\n    circle.setAttribute(\"fill\", \"none\");\n\n    svg.appendChild(circle);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the circle instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, circle, data);\n\n    return this.container;\n  }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  /**\n   * Render the polyline annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof PolylineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup. Only the polyline itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // Convert the vertices array to a single points string that the SVG\n    // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n    // calculated from a bottom left origin, so transform the polyline\n    // coordinates to a top left origin for the SVG element.\n    let points = [];\n    for (const coordinate of data.vertices) {\n      const x = coordinate.x - data.rect[0];\n      const y = data.rect[3] - coordinate.y;\n      points.push(x + \",\" + y);\n    }\n    points = points.join(\" \");\n\n    const polyline = this.svgFactory.createElement(this.svgElementName);\n    polyline.setAttribute(\"points\", points);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    polyline.setAttribute(\"stroke\", \"transparent\");\n    polyline.setAttribute(\"fill\", \"none\");\n\n    svg.appendChild(polyline);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the polyline\n    // instead of to the entire container (which is the default).\n    this._createPopup(this.container, polyline, data);\n\n    return this.container;\n  }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(parameters);\n\n    this.containerClassName = \"polygonAnnotation\";\n    this.svgElementName = \"svg:polygon\";\n  }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the caret annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof CaretAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"caretAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n    this.containerClassName = \"inkAnnotation\";\n\n    // Use the polyline SVG element since it allows us to use coordinates\n    // directly and to draw both straight lines and curves.\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  /**\n   * Render the ink annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof InkAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    for (const inkList of data.inkLists) {\n      // Convert the ink list to a single points string that the SVG\n      // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n      // calculated from a bottom left origin, so transform the polyline\n      // coordinates to a top left origin for the SVG element.\n      let points = [];\n      for (const coordinate of inkList) {\n        const x = coordinate.x - data.rect[0];\n        const y = data.rect[3] - coordinate.y;\n        points.push(`${x},${y}`);\n      }\n      points = points.join(\" \");\n\n      const polyline = this.svgFactory.createElement(this.svgElementName);\n      polyline.setAttribute(\"points\", points);\n      // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n      // won't be possible to open/close the popup (note e.g. issue 11122).\n      polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n      polyline.setAttribute(\"stroke\", \"transparent\");\n      polyline.setAttribute(\"fill\", \"none\");\n\n      // Create the popup ourselves so that we can bind it to the polyline\n      // instead of to the entire container (which is the default).\n      this._createPopup(this.container, polyline, data);\n\n      svg.appendChild(polyline);\n    }\n\n    this.container.append(svg);\n    return this.container;\n  }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the highlight annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof HighlightAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"highlightAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the underline annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof UnderlineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"underlineAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the squiggly annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof SquigglyAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"squigglyAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the strikeout annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof StrikeOutAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"strikeoutAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.title ||\n      parameters.data.contents\n    );\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the stamp annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof StampAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"stampAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, /* isRenderable = */ true);\n\n    const { filename, content } = this.data.file;\n    this.filename = getFilenameFromUrl(filename);\n    this.content = content;\n\n    if (this.linkService.eventBus) {\n      this.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n        source: this,\n        id: stringToPDFString(filename),\n        filename,\n        content,\n      });\n    }\n  }\n\n  /**\n   * Render the file attachment annotation's HTML element in the empty\n   * container.\n   *\n   * @public\n   * @memberof FileAttachmentAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = \"fileAttachmentAnnotation\";\n\n    const trigger = document.createElement(\"div\");\n    trigger.style.height = this.container.style.height;\n    trigger.style.width = this.container.style.width;\n    trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n    if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n      this._createPopup(this.container, trigger, this.data);\n    }\n\n    this.container.appendChild(trigger);\n    return this.container;\n  }\n\n  /**\n   * Download the file attachment associated with this annotation.\n   *\n   * @private\n   * @memberof FileAttachmentAnnotationElement\n   */\n  _download() {\n    if (!this.downloadManager) {\n      warn(\"Download cannot be started due to unavailable download manager\");\n      return;\n    }\n    this.downloadManager.downloadData(this.content, this.filename, \"\");\n  }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPage} page\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n */\n\nclass AnnotationLayer {\n  /**\n   * Render a new annotation layer with all annotation elements.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static render(parameters) {\n    const sortedAnnotations = [],\n      popupAnnotations = [];\n    // Ensure that Popup annotations are handled last, since they're dependant\n    // upon the parent annotation having already been rendered (please refer to\n    // the `PopupAnnotationElement.render` method); fixes issue 11362.\n    for (const data of parameters.annotations) {\n      if (!data) {\n        continue;\n      }\n      if (data.annotationType === AnnotationType.POPUP) {\n        popupAnnotations.push(data);\n        continue;\n      }\n      sortedAnnotations.push(data);\n    }\n    if (popupAnnotations.length) {\n      sortedAnnotations.push(...popupAnnotations);\n    }\n\n    for (const data of sortedAnnotations) {\n      const element = AnnotationElementFactory.create({\n        data,\n        layer: parameters.div,\n        page: parameters.page,\n        viewport: parameters.viewport,\n        linkService: parameters.linkService,\n        downloadManager: parameters.downloadManager,\n        imageResourcesPath: parameters.imageResourcesPath || \"\",\n        renderInteractiveForms:\n          typeof parameters.renderInteractiveForms === \"boolean\"\n            ? parameters.renderInteractiveForms\n            : true,\n        svgFactory: new DOMSVGFactory(),\n        annotationStorage:\n          parameters.annotationStorage || new AnnotationStorage(),\n      });\n      if (element.isRenderable) {\n        parameters.div.appendChild(element.render());\n      }\n    }\n  }\n\n  /**\n   * Update the annotation elements on existing annotation layer.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static update(parameters) {\n    for (const data of parameters.annotations) {\n      const element = parameters.div.querySelector(\n        `[data-annotation-id=\"${data.id}\"]`\n      );\n      if (element) {\n        element.style.transform = `matrix(${parameters.viewport.transform.join(\n          \",\"\n        )})`;\n      }\n    }\n    parameters.div.removeAttribute(\"hidden\");\n  }\n}\n\nexport { AnnotationLayer };\n","/* Copyright 2015 Mozilla Foundation\n *\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 {\n  AbortException,\n  createPromiseCapability,\n  Util,\n} from \"../shared/util.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {import(\"./api\").TextContent} [textContent] - Text content to\n *   render (the object is returned by the page's `getTextContent` method).\n * @property {ReadableStream} [textContentStream] - Text content stream to\n *   render (the stream is returned by the page's `streamTextContent` method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {import(\"./display_utils\").PageViewport} viewport - The target\n *   viewport to properly layout the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that are correspond\n *   to the text items of the textContent input. This is output and shall be\n *   initially be set to empty array.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n *    the `str` property of the text items of textContent input. This is output\n *   and shall be initially be set to empty array.\n * @property {number} [timeout] - Delay in milliseconds before rendering of the\n *   text runs occurs.\n * @property {boolean} [enhanceTextSelection] - Whether to turn on the text\n *   selection enhancement.\n */\n\n/**\n * @typedef {Object} TextLayerRenderTask\n * @property {Promise<void>} promise\n * @property {() => void} cancel\n * @property {(expandDivs: boolean) => void} expandTextDivs\n */\n\n/**\n * @type {(renderParameters: TextLayerRenderParameters) => TextLayerRenderTask}\n */\nvar renderTextLayer = (function renderTextLayerClosure() {\n  var MAX_TEXT_DIVS_TO_RENDER = 100000;\n\n  var NonWhitespaceRegexp = /\\S/;\n\n  function isAllWhitespace(str) {\n    return !NonWhitespaceRegexp.test(str);\n  }\n\n  function appendText(task, geom, styles) {\n    // Initialize all used properties to keep the caches monomorphic.\n    var textDiv = document.createElement(\"span\");\n    var textDivProperties = {\n      angle: 0,\n      canvasWidth: 0,\n      isWhitespace: false,\n      originalTransform: null,\n      paddingBottom: 0,\n      paddingLeft: 0,\n      paddingRight: 0,\n      paddingTop: 0,\n      scale: 1,\n    };\n\n    task._textDivs.push(textDiv);\n    if (isAllWhitespace(geom.str)) {\n      textDivProperties.isWhitespace = true;\n      task._textDivProperties.set(textDiv, textDivProperties);\n      return;\n    }\n\n    var tx = Util.transform(task._viewport.transform, geom.transform);\n    var angle = Math.atan2(tx[1], tx[0]);\n    var style = styles[geom.fontName];\n    if (style.vertical) {\n      angle += Math.PI / 2;\n    }\n    var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n    var fontAscent = fontHeight;\n    if (style.ascent) {\n      fontAscent = style.ascent * fontAscent;\n    } else if (style.descent) {\n      fontAscent = (1 + style.descent) * fontAscent;\n    }\n\n    let left, top;\n    if (angle === 0) {\n      left = tx[4];\n      top = tx[5] - fontAscent;\n    } else {\n      left = tx[4] + fontAscent * Math.sin(angle);\n      top = tx[5] - fontAscent * Math.cos(angle);\n    }\n    // Setting the style properties individually, rather than all at once,\n    // should be OK since the `textDiv` isn't appended to the document yet.\n    textDiv.style.left = `${left}px`;\n    textDiv.style.top = `${top}px`;\n    textDiv.style.fontSize = `${fontHeight}px`;\n    textDiv.style.fontFamily = style.fontFamily;\n\n    textDiv.textContent = geom.str;\n    // `fontName` is only used by the FontInspector, and we only use `dataset`\n    // here to make the font name available in the debugger.\n    if (task._fontInspectorEnabled) {\n      textDiv.dataset.fontName = geom.fontName;\n    }\n    if (angle !== 0) {\n      textDivProperties.angle = angle * (180 / Math.PI);\n    }\n    // We don't bother scaling single-char text divs, because it has very\n    // little effect on text highlighting. This makes scrolling on docs with\n    // lots of such divs a lot faster.\n    let shouldScaleText = false;\n    if (geom.str.length > 1) {\n      shouldScaleText = true;\n    } else if (geom.transform[0] !== geom.transform[3]) {\n      const absScaleX = Math.abs(geom.transform[0]),\n        absScaleY = Math.abs(geom.transform[3]);\n      // When the horizontal/vertical scaling differs significantly, also scale\n      // even single-char text to improve highlighting (fixes issue11713.pdf).\n      if (\n        absScaleX !== absScaleY &&\n        Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5\n      ) {\n        shouldScaleText = true;\n      }\n    }\n    if (shouldScaleText) {\n      if (style.vertical) {\n        textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n      } else {\n        textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n      }\n    }\n    task._textDivProperties.set(textDiv, textDivProperties);\n    if (task._textContentStream) {\n      task._layoutText(textDiv);\n    }\n\n    if (task._enhanceTextSelection) {\n      var angleCos = 1,\n        angleSin = 0;\n      if (angle !== 0) {\n        angleCos = Math.cos(angle);\n        angleSin = Math.sin(angle);\n      }\n      var divWidth =\n        (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n      var divHeight = fontHeight;\n\n      var m, b;\n      if (angle !== 0) {\n        m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n        b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n      } else {\n        b = [left, top, left + divWidth, top + divHeight];\n      }\n\n      task._bounds.push({\n        left: b[0],\n        top: b[1],\n        right: b[2],\n        bottom: b[3],\n        div: textDiv,\n        size: [divWidth, divHeight],\n        m,\n      });\n    }\n  }\n\n  function render(task) {\n    if (task._canceled) {\n      return;\n    }\n    var textDivs = task._textDivs;\n    var capability = task._capability;\n    var textDivsLength = textDivs.length;\n\n    // No point in rendering many divs as it would make the browser\n    // unusable even after the divs are rendered.\n    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n      task._renderingDone = true;\n      capability.resolve();\n      return;\n    }\n\n    if (!task._textContentStream) {\n      for (var i = 0; i < textDivsLength; i++) {\n        task._layoutText(textDivs[i]);\n      }\n    }\n\n    task._renderingDone = true;\n    capability.resolve();\n  }\n\n  function findPositiveMin(ts, offset, count) {\n    let result = 0;\n    for (let i = 0; i < count; i++) {\n      const t = ts[offset++];\n      if (t > 0) {\n        result = result ? Math.min(t, result) : t;\n      }\n    }\n    return result;\n  }\n\n  function expand(task) {\n    var bounds = task._bounds;\n    var viewport = task._viewport;\n\n    var expanded = expandBounds(viewport.width, viewport.height, bounds);\n    for (var i = 0; i < expanded.length; i++) {\n      var div = bounds[i].div;\n      var divProperties = task._textDivProperties.get(div);\n      if (divProperties.angle === 0) {\n        divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n        divProperties.paddingTop = bounds[i].top - expanded[i].top;\n        divProperties.paddingRight = expanded[i].right - bounds[i].right;\n        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n        task._textDivProperties.set(div, divProperties);\n        continue;\n      }\n      // Box is rotated -- trying to find padding so rotated div will not\n      // exceed its expanded bounds.\n      var e = expanded[i],\n        b = bounds[i];\n      var m = b.m,\n        c = m[0],\n        s = m[1];\n      // Finding intersections with expanded box.\n      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n      var ts = new Float64Array(64);\n      points.forEach(function (p, j) {\n        var t = Util.applyTransform(p, m);\n        ts[j + 0] = c && (e.left - t[0]) / c;\n        ts[j + 4] = s && (e.top - t[1]) / s;\n        ts[j + 8] = c && (e.right - t[0]) / c;\n        ts[j + 12] = s && (e.bottom - t[1]) / s;\n\n        ts[j + 16] = s && (e.left - t[0]) / -s;\n        ts[j + 20] = c && (e.top - t[1]) / c;\n        ts[j + 24] = s && (e.right - t[0]) / -s;\n        ts[j + 28] = c && (e.bottom - t[1]) / c;\n\n        ts[j + 32] = c && (e.left - t[0]) / -c;\n        ts[j + 36] = s && (e.top - t[1]) / -s;\n        ts[j + 40] = c && (e.right - t[0]) / -c;\n        ts[j + 44] = s && (e.bottom - t[1]) / -s;\n\n        ts[j + 48] = s && (e.left - t[0]) / s;\n        ts[j + 52] = c && (e.top - t[1]) / -c;\n        ts[j + 56] = s && (e.right - t[0]) / s;\n        ts[j + 60] = c && (e.bottom - t[1]) / -c;\n      });\n      // Not based on math, but to simplify calculations, using cos and sin\n      // absolute values to not exceed the box (it can but insignificantly).\n      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n      task._textDivProperties.set(div, divProperties);\n    }\n  }\n\n  function expandBounds(width, height, boxes) {\n    var bounds = boxes.map(function (box, i) {\n      return {\n        x1: box.left,\n        y1: box.top,\n        x2: box.right,\n        y2: box.bottom,\n        index: i,\n        x1New: undefined,\n        x2New: undefined,\n      };\n    });\n    expandBoundsLTR(width, bounds);\n    var expanded = new Array(boxes.length);\n    bounds.forEach(function (b) {\n      var i = b.index;\n      expanded[i] = {\n        left: b.x1New,\n        top: 0,\n        right: b.x2New,\n        bottom: 0,\n      };\n    });\n\n    // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n    // array and objects.\n    boxes.map(function (box, i) {\n      var e = expanded[i],\n        b = bounds[i];\n      b.x1 = box.top;\n      b.y1 = width - e.right;\n      b.x2 = box.bottom;\n      b.y2 = width - e.left;\n      b.index = i;\n      b.x1New = undefined;\n      b.x2New = undefined;\n    });\n    expandBoundsLTR(height, bounds);\n\n    bounds.forEach(function (b) {\n      var i = b.index;\n      expanded[i].top = b.x1New;\n      expanded[i].bottom = b.x2New;\n    });\n    return expanded;\n  }\n\n  function expandBoundsLTR(width, bounds) {\n    // Sorting by x1 coordinate and walk by the bounds in the same order.\n    bounds.sort(function (a, b) {\n      return a.x1 - b.x1 || a.index - b.index;\n    });\n\n    // First we see on the horizon is a fake boundary.\n    var fakeBoundary = {\n      x1: -Infinity,\n      y1: -Infinity,\n      x2: 0,\n      y2: Infinity,\n      index: -1,\n      x1New: 0,\n      x2New: 0,\n    };\n    var horizon = [\n      {\n        start: -Infinity,\n        end: Infinity,\n        boundary: fakeBoundary,\n      },\n    ];\n\n    bounds.forEach(function (boundary) {\n      // Searching for the affected part of horizon.\n      // TODO red-black tree or simple binary search\n      var i = 0;\n      while (i < horizon.length && horizon[i].end <= boundary.y1) {\n        i++;\n      }\n      var j = horizon.length - 1;\n      while (j >= 0 && horizon[j].start >= boundary.y2) {\n        j--;\n      }\n\n      var horizonPart, affectedBoundary;\n      var q,\n        k,\n        maxXNew = -Infinity;\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        var xNew;\n        if (affectedBoundary.x2 > boundary.x1) {\n          // In the middle of the previous element, new x shall be at the\n          // boundary start. Extending if further if the affected boundary\n          // placed on top of the current one.\n          xNew =\n            affectedBoundary.index > boundary.index\n              ? affectedBoundary.x1New\n              : boundary.x1;\n        } else if (affectedBoundary.x2New === undefined) {\n          // We have some space in between, new x in middle will be a fair\n          // choice.\n          xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n        } else {\n          // Affected boundary has x2new set, using it as new x.\n          xNew = affectedBoundary.x2New;\n        }\n        if (xNew > maxXNew) {\n          maxXNew = xNew;\n        }\n      }\n\n      // Set new x1 for current boundary.\n      boundary.x1New = maxXNew;\n\n      // Adjusts new x2 for the affected boundaries.\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        if (affectedBoundary.x2New === undefined) {\n          // Was not set yet, choosing new x if possible.\n          if (affectedBoundary.x2 > boundary.x1) {\n            // Current and affected boundaries intersect. If affected boundary\n            // is placed on top of the current, shrinking the affected.\n            if (affectedBoundary.index > boundary.index) {\n              affectedBoundary.x2New = affectedBoundary.x2;\n            }\n          } else {\n            affectedBoundary.x2New = maxXNew;\n          }\n        } else if (affectedBoundary.x2New > maxXNew) {\n          // Affected boundary is touching new x, pushing it back.\n          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n        }\n      }\n\n      // Fixing the horizon.\n      var changedHorizon = [],\n        lastBoundary = null;\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        // Checking which boundary will be visible.\n        var useBoundary =\n          affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n        if (lastBoundary === useBoundary) {\n          // Merging with previous.\n          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n        } else {\n          changedHorizon.push({\n            start: horizonPart.start,\n            end: horizonPart.end,\n            boundary: useBoundary,\n          });\n          lastBoundary = useBoundary;\n        }\n      }\n      if (horizon[i].start < boundary.y1) {\n        changedHorizon[0].start = boundary.y1;\n        changedHorizon.unshift({\n          start: horizon[i].start,\n          end: boundary.y1,\n          boundary: horizon[i].boundary,\n        });\n      }\n      if (boundary.y2 < horizon[j].end) {\n        changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n        changedHorizon.push({\n          start: boundary.y2,\n          end: horizon[j].end,\n          boundary: horizon[j].boundary,\n        });\n      }\n\n      // Set x2 new of boundary that is no longer visible (see overlapping case\n      // above).\n      // TODO more efficient, e.g. via reference counting.\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        if (affectedBoundary.x2New !== undefined) {\n          continue;\n        }\n        var used = false;\n        for (\n          k = i - 1;\n          !used && k >= 0 && horizon[k].start >= affectedBoundary.y1;\n          k--\n        ) {\n          used = horizon[k].boundary === affectedBoundary;\n        }\n        for (\n          k = j + 1;\n          !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2;\n          k++\n        ) {\n          used = horizon[k].boundary === affectedBoundary;\n        }\n        for (k = 0; !used && k < changedHorizon.length; k++) {\n          used = changedHorizon[k].boundary === affectedBoundary;\n        }\n        if (!used) {\n          affectedBoundary.x2New = maxXNew;\n        }\n      }\n\n      Array.prototype.splice.apply(\n        horizon,\n        [i, j - i + 1].concat(changedHorizon)\n      );\n    });\n\n    // Set new x2 for all unset boundaries.\n    horizon.forEach(function (horizonPart) {\n      var affectedBoundary = horizonPart.boundary;\n      if (affectedBoundary.x2New === undefined) {\n        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n      }\n    });\n  }\n\n  /**\n   * Text layer rendering task.\n   *\n   * @param {TextContent} textContent\n   * @param {HTMLElement} container\n   * @param {PageViewport} viewport\n   * @param {Array} textDivs\n   * @param {boolean} enhanceTextSelection\n   * @private\n   */\n  function TextLayerRenderTask({\n    textContent,\n    textContentStream,\n    container,\n    viewport,\n    textDivs,\n    textContentItemsStr,\n    enhanceTextSelection,\n  }) {\n    this._textContent = textContent;\n    this._textContentStream = textContentStream;\n    this._container = container;\n    this._document = container.ownerDocument;\n    this._viewport = viewport;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._enhanceTextSelection = !!enhanceTextSelection;\n    this._fontInspectorEnabled = !!(\n      globalThis.FontInspector && globalThis.FontInspector.enabled\n    );\n\n    this._reader = null;\n    this._layoutTextLastFontSize = null;\n    this._layoutTextLastFontFamily = null;\n    this._layoutTextCtx = null;\n    this._textDivProperties = new WeakMap();\n    this._renderingDone = false;\n    this._canceled = false;\n    this._capability = createPromiseCapability();\n    this._renderTimer = null;\n    this._bounds = [];\n\n    // Always clean-up the temporary canvas once rendering is no longer pending.\n    this._capability.promise\n      .finally(() => {\n        if (this._layoutTextCtx) {\n          // Zeroing the width and height cause Firefox to release graphics\n          // resources immediately, which can greatly reduce memory consumption.\n          this._layoutTextCtx.canvas.width = 0;\n          this._layoutTextCtx.canvas.height = 0;\n          this._layoutTextCtx = null;\n        }\n      })\n      .catch(() => {\n        /* Avoid \"Uncaught promise\" messages in the console. */\n      });\n  }\n  TextLayerRenderTask.prototype = {\n    get promise() {\n      return this._capability.promise;\n    },\n\n    cancel: function TextLayer_cancel() {\n      this._canceled = true;\n      if (this._reader) {\n        this._reader.cancel(new AbortException(\"TextLayer task cancelled.\"));\n        this._reader = null;\n      }\n      if (this._renderTimer !== null) {\n        clearTimeout(this._renderTimer);\n        this._renderTimer = null;\n      }\n      this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n    },\n\n    _processItems(items, styleCache) {\n      for (let i = 0, len = items.length; i < len; i++) {\n        this._textContentItemsStr.push(items[i].str);\n        appendText(this, items[i], styleCache);\n      }\n    },\n\n    _layoutText(textDiv) {\n      const textDivProperties = this._textDivProperties.get(textDiv);\n      if (textDivProperties.isWhitespace) {\n        return;\n      }\n\n      let transform = \"\";\n      if (textDivProperties.canvasWidth !== 0) {\n        const { fontSize, fontFamily } = textDiv.style;\n\n        // Only build font string and set to context if different from last.\n        if (\n          fontSize !== this._layoutTextLastFontSize ||\n          fontFamily !== this._layoutTextLastFontFamily\n        ) {\n          this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n          this._layoutTextLastFontSize = fontSize;\n          this._layoutTextLastFontFamily = fontFamily;\n        }\n        // Only measure the width for multi-char text divs, see `appendText`.\n        const { width } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n        if (width > 0) {\n          textDivProperties.scale = textDivProperties.canvasWidth / width;\n          transform = `scaleX(${textDivProperties.scale})`;\n        }\n      }\n      if (textDivProperties.angle !== 0) {\n        transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n      }\n      if (transform.length > 0) {\n        if (this._enhanceTextSelection) {\n          textDivProperties.originalTransform = transform;\n        }\n        textDiv.style.transform = transform;\n      }\n      this._textDivProperties.set(textDiv, textDivProperties);\n      this._container.appendChild(textDiv);\n    },\n\n    _render: function TextLayer_render(timeout) {\n      const capability = createPromiseCapability();\n      let styleCache = Object.create(null);\n\n      // The temporary canvas is used to measure text length in the DOM.\n      const canvas = this._document.createElement(\"canvas\");\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"MOZCENTRAL || GENERIC\")\n      ) {\n        canvas.mozOpaque = true;\n      }\n      this._layoutTextCtx = canvas.getContext(\"2d\", { alpha: false });\n\n      if (this._textContent) {\n        const textItems = this._textContent.items;\n        const textStyles = this._textContent.styles;\n        this._processItems(textItems, textStyles);\n        capability.resolve();\n      } else if (this._textContentStream) {\n        const pump = () => {\n          this._reader.read().then(({ value, done }) => {\n            if (done) {\n              capability.resolve();\n              return;\n            }\n\n            Object.assign(styleCache, value.styles);\n            this._processItems(value.items, styleCache);\n            pump();\n          }, capability.reject);\n        };\n\n        this._reader = this._textContentStream.getReader();\n        pump();\n      } else {\n        throw new Error(\n          'Neither \"textContent\" nor \"textContentStream\"' +\n            \" parameters specified.\"\n        );\n      }\n\n      capability.promise.then(() => {\n        styleCache = null;\n        if (!timeout) {\n          // Render right away\n          render(this);\n        } else {\n          // Schedule\n          this._renderTimer = setTimeout(() => {\n            render(this);\n            this._renderTimer = null;\n          }, timeout);\n        }\n      }, this._capability.reject);\n    },\n\n    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n      if (!this._enhanceTextSelection || !this._renderingDone) {\n        return;\n      }\n      if (this._bounds !== null) {\n        expand(this);\n        this._bounds = null;\n      }\n      const transformBuf = [],\n        paddingBuf = [];\n\n      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n        const div = this._textDivs[i];\n        const divProps = this._textDivProperties.get(div);\n\n        if (divProps.isWhitespace) {\n          continue;\n        }\n        if (expandDivs) {\n          transformBuf.length = 0;\n          paddingBuf.length = 0;\n\n          if (divProps.originalTransform) {\n            transformBuf.push(divProps.originalTransform);\n          }\n          if (divProps.paddingTop > 0) {\n            paddingBuf.push(`${divProps.paddingTop}px`);\n            transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n          } else {\n            paddingBuf.push(0);\n          }\n          if (divProps.paddingRight > 0) {\n            paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n          } else {\n            paddingBuf.push(0);\n          }\n          if (divProps.paddingBottom > 0) {\n            paddingBuf.push(`${divProps.paddingBottom}px`);\n          } else {\n            paddingBuf.push(0);\n          }\n          if (divProps.paddingLeft > 0) {\n            paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n            transformBuf.push(\n              `translateX(${-divProps.paddingLeft / divProps.scale}px)`\n            );\n          } else {\n            paddingBuf.push(0);\n          }\n\n          div.style.padding = paddingBuf.join(\" \");\n          if (transformBuf.length) {\n            div.style.transform = transformBuf.join(\" \");\n          }\n        } else {\n          div.style.padding = null;\n          div.style.transform = divProps.originalTransform;\n        }\n      }\n    },\n  };\n\n  // eslint-disable-next-line no-shadow\n  function renderTextLayer(renderParameters) {\n    var task = new TextLayerRenderTask({\n      textContent: renderParameters.textContent,\n      textContentStream: renderParameters.textContentStream,\n      container: renderParameters.container,\n      viewport: renderParameters.viewport,\n      textDivs: renderParameters.textDivs,\n      textContentItemsStr: renderParameters.textContentItemsStr,\n      enhanceTextSelection: renderParameters.enhanceTextSelection,\n    });\n    task._render(renderParameters.timeout);\n    return task;\n  }\n\n  return renderTextLayer;\n})();\n\nexport { renderTextLayer };\n","/* Copyright 2012 Mozilla Foundation\n *\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/* globals __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n  createObjectURL,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  isNum,\n  OPS,\n  TextRenderingMode,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { DOMSVGFactory } from \"./display_utils.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\n\n/** @type {any} */\nlet SVGGraphics = function () {\n  throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n  const SVG_DEFAULTS = {\n    fontStyle: \"normal\",\n    fontWeight: \"normal\",\n    fillColor: \"#000000\",\n  };\n  const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n  const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n  const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n  const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n  const convertImgDataToPng = (function () {\n    const PNG_HEADER = new Uint8Array([\n      0x89,\n      0x50,\n      0x4e,\n      0x47,\n      0x0d,\n      0x0a,\n      0x1a,\n      0x0a,\n    ]);\n    const CHUNK_WRAPPER_SIZE = 12;\n\n    const crcTable = new Int32Array(256);\n    for (let i = 0; i < 256; i++) {\n      let c = i;\n      for (let h = 0; h < 8; h++) {\n        if (c & 1) {\n          c = 0xedb88320 ^ ((c >> 1) & 0x7fffffff);\n        } else {\n          c = (c >> 1) & 0x7fffffff;\n        }\n      }\n      crcTable[i] = c;\n    }\n\n    function crc32(data, start, end) {\n      let crc = -1;\n      for (let i = start; i < end; i++) {\n        const a = (crc ^ data[i]) & 0xff;\n        const b = crcTable[a];\n        crc = (crc >>> 8) ^ b;\n      }\n      return crc ^ -1;\n    }\n\n    function writePngChunk(type, body, data, offset) {\n      let p = offset;\n      const len = body.length;\n\n      data[p] = (len >> 24) & 0xff;\n      data[p + 1] = (len >> 16) & 0xff;\n      data[p + 2] = (len >> 8) & 0xff;\n      data[p + 3] = len & 0xff;\n      p += 4;\n\n      data[p] = type.charCodeAt(0) & 0xff;\n      data[p + 1] = type.charCodeAt(1) & 0xff;\n      data[p + 2] = type.charCodeAt(2) & 0xff;\n      data[p + 3] = type.charCodeAt(3) & 0xff;\n      p += 4;\n\n      data.set(body, p);\n      p += body.length;\n\n      const crc = crc32(data, offset + 4, p);\n      data[p] = (crc >> 24) & 0xff;\n      data[p + 1] = (crc >> 16) & 0xff;\n      data[p + 2] = (crc >> 8) & 0xff;\n      data[p + 3] = crc & 0xff;\n    }\n\n    function adler32(data, start, end) {\n      let a = 1;\n      let b = 0;\n      for (let i = start; i < end; ++i) {\n        a = (a + (data[i] & 0xff)) % 65521;\n        b = (b + a) % 65521;\n      }\n      return (b << 16) | a;\n    }\n\n    /**\n     * @param {Uint8Array} literals The input data.\n     * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n     *   This is the required format for compressed streams in the PNG format:\n     *   http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n     */\n    function deflateSync(literals) {\n      if (!isNodeJS) {\n        // zlib is certainly not available outside of Node.js. We can either use\n        // the pako library for client-side DEFLATE compression, or use the\n        // canvas API of the browser to obtain a more optimal PNG file.\n        return deflateSyncUncompressed(literals);\n      }\n      try {\n        // NOTE: This implementation is far from perfect, but already way better\n        // than not applying any compression.\n        //\n        // A better algorithm will try to choose a good predictor/filter and\n        // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n        //\n        // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n        // Node v3.0.0   Buffer inherits from Uint8Array.\n        // Node v8.0.0   zlib.deflateSync accepts Uint8Array as input.\n        let input;\n        // eslint-disable-next-line no-undef\n        if (parseInt(process.versions.node) >= 8) {\n          input = literals;\n        } else {\n          // eslint-disable-next-line no-undef\n          input = Buffer.from(literals);\n        }\n        const output = __non_webpack_require__(\"zlib\").deflateSync(input, {\n          level: 9,\n        });\n        return output instanceof Uint8Array ? output : new Uint8Array(output);\n      } catch (e) {\n        warn(\n          \"Not compressing PNG because zlib.deflateSync is unavailable: \" + e\n        );\n      }\n\n      return deflateSyncUncompressed(literals);\n    }\n\n    // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n    function deflateSyncUncompressed(literals) {\n      let len = literals.length;\n      const maxBlockLength = 0xffff;\n\n      const deflateBlocks = Math.ceil(len / maxBlockLength);\n      const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n      let pi = 0;\n      idat[pi++] = 0x78; // compression method and flags\n      idat[pi++] = 0x9c; // flags\n\n      let pos = 0;\n      while (len > maxBlockLength) {\n        // writing non-final DEFLATE blocks type 0 and length of 65535\n        idat[pi++] = 0x00;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0x00;\n        idat[pi++] = 0x00;\n        idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n        pi += maxBlockLength;\n        pos += maxBlockLength;\n        len -= maxBlockLength;\n      }\n\n      // writing non-final DEFLATE blocks type 0\n      idat[pi++] = 0x01;\n      idat[pi++] = len & 0xff;\n      idat[pi++] = (len >> 8) & 0xff;\n      idat[pi++] = ~len & 0xffff & 0xff;\n      idat[pi++] = ((~len & 0xffff) >> 8) & 0xff;\n      idat.set(literals.subarray(pos), pi);\n      pi += literals.length - pos;\n\n      const adler = adler32(literals, 0, literals.length); // checksum\n      idat[pi++] = (adler >> 24) & 0xff;\n      idat[pi++] = (adler >> 16) & 0xff;\n      idat[pi++] = (adler >> 8) & 0xff;\n      idat[pi++] = adler & 0xff;\n      return idat;\n    }\n\n    function encode(imgData, kind, forceDataSchema, isMask) {\n      const width = imgData.width;\n      const height = imgData.height;\n      let bitDepth, colorType, lineSize;\n      const bytes = imgData.data;\n\n      switch (kind) {\n        case ImageKind.GRAYSCALE_1BPP:\n          colorType = 0;\n          bitDepth = 1;\n          lineSize = (width + 7) >> 3;\n          break;\n        case ImageKind.RGB_24BPP:\n          colorType = 2;\n          bitDepth = 8;\n          lineSize = width * 3;\n          break;\n        case ImageKind.RGBA_32BPP:\n          colorType = 6;\n          bitDepth = 8;\n          lineSize = width * 4;\n          break;\n        default:\n          throw new Error(\"invalid format\");\n      }\n\n      // prefix every row with predictor 0\n      const literals = new Uint8Array((1 + lineSize) * height);\n      let offsetLiterals = 0,\n        offsetBytes = 0;\n      for (let y = 0; y < height; ++y) {\n        literals[offsetLiterals++] = 0; // no prediction\n        literals.set(\n          bytes.subarray(offsetBytes, offsetBytes + lineSize),\n          offsetLiterals\n        );\n        offsetBytes += lineSize;\n        offsetLiterals += lineSize;\n      }\n\n      if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n        // inverting for image masks\n        offsetLiterals = 0;\n        for (let y = 0; y < height; y++) {\n          offsetLiterals++; // skipping predictor\n          for (let i = 0; i < lineSize; i++) {\n            literals[offsetLiterals++] ^= 0xff;\n          }\n        }\n      }\n\n      const ihdr = new Uint8Array([\n        (width >> 24) & 0xff,\n        (width >> 16) & 0xff,\n        (width >> 8) & 0xff,\n        width & 0xff,\n        (height >> 24) & 0xff,\n        (height >> 16) & 0xff,\n        (height >> 8) & 0xff,\n        height & 0xff,\n        bitDepth, // bit depth\n        colorType, // color type\n        0x00, // compression method\n        0x00, // filter method\n        0x00, // interlace method\n      ]);\n      const idat = deflateSync(literals);\n\n      // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n      const pngLength =\n        PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n      const data = new Uint8Array(pngLength);\n      let offset = 0;\n      data.set(PNG_HEADER, offset);\n      offset += PNG_HEADER.length;\n      writePngChunk(\"IHDR\", ihdr, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n      writePngChunk(\"IDATA\", idat, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + idat.length;\n      writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n\n      return createObjectURL(data, \"image/png\", forceDataSchema);\n    }\n\n    // eslint-disable-next-line no-shadow\n    return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n      const kind =\n        imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind;\n      return encode(imgData, kind, forceDataSchema, isMask);\n    };\n  })();\n\n  class SVGExtraState {\n    constructor() {\n      this.fontSizeScale = 1;\n      this.fontWeight = SVG_DEFAULTS.fontWeight;\n      this.fontSize = 0;\n\n      this.textMatrix = IDENTITY_MATRIX;\n      this.fontMatrix = FONT_IDENTITY_MATRIX;\n      this.leading = 0;\n      this.textRenderingMode = TextRenderingMode.FILL;\n      this.textMatrixScale = 1;\n\n      // Current point (in user coordinates)\n      this.x = 0;\n      this.y = 0;\n\n      // Start of text line (in text coordinates)\n      this.lineX = 0;\n      this.lineY = 0;\n\n      // Character and word spacing\n      this.charSpacing = 0;\n      this.wordSpacing = 0;\n      this.textHScale = 1;\n      this.textRise = 0;\n\n      // Default foreground and background colors\n      this.fillColor = SVG_DEFAULTS.fillColor;\n      this.strokeColor = \"#000000\";\n\n      this.fillAlpha = 1;\n      this.strokeAlpha = 1;\n      this.lineWidth = 1;\n      this.lineJoin = \"\";\n      this.lineCap = \"\";\n      this.miterLimit = 0;\n\n      this.dashArray = [];\n      this.dashPhase = 0;\n\n      this.dependencies = [];\n\n      // Clipping\n      this.activeClipUrl = null;\n      this.clipGroup = null;\n\n      this.maskId = \"\";\n    }\n\n    clone() {\n      return Object.create(this);\n    }\n\n    setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    }\n  }\n\n  // eslint-disable-next-line no-inner-declarations\n  function opListToTree(opList) {\n    let opTree = [];\n    const tmp = [];\n\n    for (const opListElement of opList) {\n      if (opListElement.fn === \"save\") {\n        opTree.push({ fnId: 92, fn: \"group\", items: [] });\n        tmp.push(opTree);\n        opTree = opTree[opTree.length - 1].items;\n        continue;\n      }\n\n      if (opListElement.fn === \"restore\") {\n        opTree = tmp.pop();\n      } else {\n        opTree.push(opListElement);\n      }\n    }\n    return opTree;\n  }\n\n  /**\n   * Format a float number as a string.\n   *\n   * @param value {number} - The float number to format.\n   * @returns {string}\n   */\n  // eslint-disable-next-line no-inner-declarations\n  function pf(value) {\n    if (Number.isInteger(value)) {\n      return value.toString();\n    }\n    const s = value.toFixed(10);\n    let i = s.length - 1;\n    if (s[i] !== \"0\") {\n      return s;\n    }\n\n    // Remove trailing zeros.\n    do {\n      i--;\n    } while (s[i] === \"0\");\n    return s.substring(0, s[i] === \".\" ? i : i + 1);\n  }\n\n  /**\n   * Format a transform matrix as a string. The standard rotation, scale and\n   * translation matrices are replaced by their shorter forms, and for\n   * identity matrices an empty string is returned to save memory.\n   *\n   * @param m {Array} - The transform matrix to format.\n   * @returns {string}\n   */\n  // eslint-disable-next-line no-inner-declarations\n  function pm(m) {\n    if (m[4] === 0 && m[5] === 0) {\n      if (m[1] === 0 && m[2] === 0) {\n        if (m[0] === 1 && m[3] === 1) {\n          return \"\";\n        }\n        return `scale(${pf(m[0])} ${pf(m[3])})`;\n      }\n      if (m[0] === m[3] && m[1] === -m[2]) {\n        const a = (Math.acos(m[0]) * 180) / Math.PI;\n        return `rotate(${pf(a)})`;\n      }\n    } else {\n      if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n        return `translate(${pf(m[4])} ${pf(m[5])})`;\n      }\n    }\n    return (\n      `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n      `${pf(m[5])})`\n    );\n  }\n\n  // The counts below are relevant for all pages, so they have to be global\n  // instead of being members of `SVGGraphics` (which is recreated for\n  // each page).\n  let clipCount = 0;\n  let maskCount = 0;\n  let shadingCount = 0;\n\n  // eslint-disable-next-line no-shadow\n  SVGGraphics = class SVGGraphics {\n    constructor(commonObjs, objs, forceDataSchema = false) {\n      this.svgFactory = new DOMSVGFactory();\n\n      this.current = new SVGExtraState();\n      this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n      this.transformStack = [];\n      this.extraStack = [];\n      this.commonObjs = commonObjs;\n      this.objs = objs;\n      this.pendingClip = null;\n      this.pendingEOFill = false;\n\n      this.embedFonts = false;\n      this.embeddedFonts = Object.create(null);\n      this.cssStyle = null;\n      this.forceDataSchema = !!forceDataSchema;\n\n      // In `src/shared/util.js` the operator names are mapped to IDs.\n      // The list below represents the reverse of that, i.e., it maps IDs\n      // to operator names.\n      this._operatorIdMapping = [];\n      for (const op in OPS) {\n        this._operatorIdMapping[OPS[op]] = op;\n      }\n    }\n\n    save() {\n      this.transformStack.push(this.transformMatrix);\n      const old = this.current;\n      this.extraStack.push(old);\n      this.current = old.clone();\n    }\n\n    restore() {\n      this.transformMatrix = this.transformStack.pop();\n      this.current = this.extraStack.pop();\n      this.pendingClip = null;\n      this.tgrp = null;\n    }\n\n    group(items) {\n      this.save();\n      this.executeOpTree(items);\n      this.restore();\n    }\n\n    loadDependencies(operatorList) {\n      const fnArray = operatorList.fnArray;\n      const argsArray = operatorList.argsArray;\n\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        if (fnArray[i] !== OPS.dependency) {\n          continue;\n        }\n\n        for (const obj of argsArray[i]) {\n          const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n          const promise = new Promise(resolve => {\n            objsPool.get(obj, resolve);\n          });\n          this.current.dependencies.push(promise);\n        }\n      }\n      return Promise.all(this.current.dependencies);\n    }\n\n    transform(a, b, c, d, e, f) {\n      const transformMatrix = [a, b, c, d, e, f];\n      this.transformMatrix = Util.transform(\n        this.transformMatrix,\n        transformMatrix\n      );\n      this.tgrp = null;\n    }\n\n    getSVG(operatorList, viewport) {\n      this.viewport = viewport;\n\n      const svgElement = this._initialize(viewport);\n      return this.loadDependencies(operatorList).then(() => {\n        this.transformMatrix = IDENTITY_MATRIX;\n        this.executeOpTree(this.convertOpList(operatorList));\n        return svgElement;\n      });\n    }\n\n    convertOpList(operatorList) {\n      const operatorIdMapping = this._operatorIdMapping;\n      const argsArray = operatorList.argsArray;\n      const fnArray = operatorList.fnArray;\n      const opList = [];\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        const fnId = fnArray[i];\n        opList.push({\n          fnId,\n          fn: operatorIdMapping[fnId],\n          args: argsArray[i],\n        });\n      }\n      return opListToTree(opList);\n    }\n\n    executeOpTree(opTree) {\n      for (const opTreeElement of opTree) {\n        const fn = opTreeElement.fn;\n        const fnId = opTreeElement.fnId;\n        const args = opTreeElement.args;\n\n        switch (fnId | 0) {\n          case OPS.beginText:\n            this.beginText();\n            break;\n          case OPS.dependency:\n            // Handled in `loadDependencies`, so no warning should be shown.\n            break;\n          case OPS.setLeading:\n            this.setLeading(args);\n            break;\n          case OPS.setLeadingMoveText:\n            this.setLeadingMoveText(args[0], args[1]);\n            break;\n          case OPS.setFont:\n            this.setFont(args);\n            break;\n          case OPS.showText:\n            this.showText(args[0]);\n            break;\n          case OPS.showSpacedText:\n            this.showText(args[0]);\n            break;\n          case OPS.endText:\n            this.endText();\n            break;\n          case OPS.moveText:\n            this.moveText(args[0], args[1]);\n            break;\n          case OPS.setCharSpacing:\n            this.setCharSpacing(args[0]);\n            break;\n          case OPS.setWordSpacing:\n            this.setWordSpacing(args[0]);\n            break;\n          case OPS.setHScale:\n            this.setHScale(args[0]);\n            break;\n          case OPS.setTextMatrix:\n            this.setTextMatrix(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            break;\n          case OPS.setTextRise:\n            this.setTextRise(args[0]);\n            break;\n          case OPS.setTextRenderingMode:\n            this.setTextRenderingMode(args[0]);\n            break;\n          case OPS.setLineWidth:\n            this.setLineWidth(args[0]);\n            break;\n          case OPS.setLineJoin:\n            this.setLineJoin(args[0]);\n            break;\n          case OPS.setLineCap:\n            this.setLineCap(args[0]);\n            break;\n          case OPS.setMiterLimit:\n            this.setMiterLimit(args[0]);\n            break;\n          case OPS.setFillRGBColor:\n            this.setFillRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setStrokeRGBColor:\n            this.setStrokeRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setStrokeColorN:\n            this.setStrokeColorN(args);\n            break;\n          case OPS.setFillColorN:\n            this.setFillColorN(args);\n            break;\n          case OPS.shadingFill:\n            this.shadingFill(args[0]);\n            break;\n          case OPS.setDash:\n            this.setDash(args[0], args[1]);\n            break;\n          case OPS.setRenderingIntent:\n            this.setRenderingIntent(args[0]);\n            break;\n          case OPS.setFlatness:\n            this.setFlatness(args[0]);\n            break;\n          case OPS.setGState:\n            this.setGState(args[0]);\n            break;\n          case OPS.fill:\n            this.fill();\n            break;\n          case OPS.eoFill:\n            this.eoFill();\n            break;\n          case OPS.stroke:\n            this.stroke();\n            break;\n          case OPS.fillStroke:\n            this.fillStroke();\n            break;\n          case OPS.eoFillStroke:\n            this.eoFillStroke();\n            break;\n          case OPS.clip:\n            this.clip(\"nonzero\");\n            break;\n          case OPS.eoClip:\n            this.clip(\"evenodd\");\n            break;\n          case OPS.paintSolidColorImageMask:\n            this.paintSolidColorImageMask();\n            break;\n          case OPS.paintImageXObject:\n            this.paintImageXObject(args[0]);\n            break;\n          case OPS.paintInlineImageXObject:\n            this.paintInlineImageXObject(args[0]);\n            break;\n          case OPS.paintImageMaskXObject:\n            this.paintImageMaskXObject(args[0]);\n            break;\n          case OPS.paintFormXObjectBegin:\n            this.paintFormXObjectBegin(args[0], args[1]);\n            break;\n          case OPS.paintFormXObjectEnd:\n            this.paintFormXObjectEnd();\n            break;\n          case OPS.closePath:\n            this.closePath();\n            break;\n          case OPS.closeStroke:\n            this.closeStroke();\n            break;\n          case OPS.closeFillStroke:\n            this.closeFillStroke();\n            break;\n          case OPS.closeEOFillStroke:\n            this.closeEOFillStroke();\n            break;\n          case OPS.nextLine:\n            this.nextLine();\n            break;\n          case OPS.transform:\n            this.transform(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            break;\n          case OPS.constructPath:\n            this.constructPath(args[0], args[1]);\n            break;\n          case OPS.endPath:\n            this.endPath();\n            break;\n          case 92:\n            this.group(opTreeElement.items);\n            break;\n          default:\n            warn(`Unimplemented operator ${fn}`);\n            break;\n        }\n      }\n    }\n\n    setWordSpacing(wordSpacing) {\n      this.current.wordSpacing = wordSpacing;\n    }\n\n    setCharSpacing(charSpacing) {\n      this.current.charSpacing = charSpacing;\n    }\n\n    nextLine() {\n      this.moveText(0, this.current.leading);\n    }\n\n    setTextMatrix(a, b, c, d, e, f) {\n      const current = this.current;\n      current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n      current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtElement.appendChild(current.tspan);\n    }\n\n    beginText() {\n      const current = this.current;\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n      current.textMatrix = IDENTITY_MATRIX;\n      current.lineMatrix = IDENTITY_MATRIX;\n      current.textMatrixScale = 1;\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    moveText(x, y) {\n      const current = this.current;\n      current.x = current.lineX += x;\n      current.y = current.lineY += y;\n\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n    }\n\n    showText(glyphs) {\n      const current = this.current;\n      const font = current.font;\n      const fontSize = current.fontSize;\n      if (fontSize === 0) {\n        return;\n      }\n\n      const fontSizeScale = current.fontSizeScale;\n      const charSpacing = current.charSpacing;\n      const wordSpacing = current.wordSpacing;\n      const fontDirection = current.fontDirection;\n      const textHScale = current.textHScale * fontDirection;\n      const vertical = font.vertical;\n      const spacingDir = vertical ? 1 : -1;\n      const defaultVMetrics = font.defaultVMetrics;\n      const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n      let x = 0;\n      for (const glyph of glyphs) {\n        if (glyph === null) {\n          // Word break\n          x += fontDirection * wordSpacing;\n          continue;\n        } else if (isNum(glyph)) {\n          x += (spacingDir * glyph * fontSize) / 1000;\n          continue;\n        }\n\n        const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        const character = glyph.fontChar;\n        let scaledX, scaledY;\n        let width = glyph.width;\n        if (vertical) {\n          let vx;\n          const vmetric = glyph.vmetric || defaultVMetrics;\n          vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n          vx = -vx * widthAdvanceScale;\n          const vy = vmetric[2] * widthAdvanceScale;\n\n          width = vmetric ? -vmetric[0] : width;\n          scaledX = vx / fontSizeScale;\n          scaledY = (x + vy) / fontSizeScale;\n        } else {\n          scaledX = x / fontSizeScale;\n          scaledY = 0;\n        }\n\n        if (glyph.isInFont || font.missingFile) {\n          current.xcoords.push(current.x + scaledX);\n          if (vertical) {\n            current.ycoords.push(-current.y + scaledY);\n          }\n          current.tspan.textContent += character;\n        } else {\n          // TODO: To assist with text selection, we should replace the missing\n          // character with a space character if charWidth is not zero.\n          // But we cannot just do \"character = ' '\", because the ' ' character\n          // might actually map to a different glyph.\n        }\n\n        let charWidth;\n        if (vertical) {\n          charWidth = width * widthAdvanceScale - spacing * fontDirection;\n        } else {\n          charWidth = width * widthAdvanceScale + spacing * fontDirection;\n        }\n\n        x += charWidth;\n      }\n      current.tspan.setAttributeNS(\n        null,\n        \"x\",\n        current.xcoords.map(pf).join(\" \")\n      );\n      if (vertical) {\n        current.tspan.setAttributeNS(\n          null,\n          \"y\",\n          current.ycoords.map(pf).join(\" \")\n        );\n      } else {\n        current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      }\n\n      if (vertical) {\n        current.y -= x;\n      } else {\n        current.x += x * textHScale;\n      }\n\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n        current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n      }\n      if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n        current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n      }\n\n      const fillStrokeMode =\n        current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n          current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n        }\n        if (current.fillAlpha < 1) {\n          current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        }\n      } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n        // Workaround for Firefox: We must set fill=\"transparent\" because\n        // fill=\"none\" would generate an empty clipping path.\n        current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n      } else {\n        current.tspan.setAttributeNS(null, \"fill\", \"none\");\n      }\n\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        const lineWidthScale = 1 / (current.textMatrixScale || 1);\n        this._setStrokeAttributes(current.tspan, lineWidthScale);\n      }\n\n      // Include the text rise in the text matrix since the `pm` function\n      // creates the SVG element's `translate` entry (work on a copy to avoid\n      // altering the original text matrix).\n      let textMatrix = current.textMatrix;\n      if (current.textRise !== 0) {\n        textMatrix = textMatrix.slice();\n        textMatrix[5] += current.textRise;\n      }\n\n      current.txtElement.setAttributeNS(\n        null,\n        \"transform\",\n        `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`\n      );\n      current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n      current.txtElement.appendChild(current.tspan);\n      current.txtgrp.appendChild(current.txtElement);\n\n      this._ensureTransformGroup().appendChild(current.txtElement);\n    }\n\n    setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    }\n\n    addFontStyle(fontObj) {\n      if (!fontObj.data) {\n        throw new Error(\n          \"addFontStyle: No font data available, \" +\n            'ensure that the \"fontExtraProperties\" API parameter is set.'\n        );\n      }\n      if (!this.cssStyle) {\n        this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n        this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n        this.defs.appendChild(this.cssStyle);\n      }\n\n      const url = createObjectURL(\n        fontObj.data,\n        fontObj.mimetype,\n        this.forceDataSchema\n      );\n      this.cssStyle.textContent +=\n        `@font-face { font-family: \"${fontObj.loadedName}\";` +\n        ` src: url(${url}); }\\n`;\n    }\n\n    setFont(details) {\n      const current = this.current;\n      const fontObj = this.commonObjs.get(details[0]);\n      let size = details[1];\n      current.font = fontObj;\n\n      if (\n        this.embedFonts &&\n        !fontObj.missingFile &&\n        !this.embeddedFonts[fontObj.loadedName]\n      ) {\n        this.addFontStyle(fontObj);\n        this.embeddedFonts[fontObj.loadedName] = fontObj;\n      }\n\n      current.fontMatrix = fontObj.fontMatrix\n        ? fontObj.fontMatrix\n        : FONT_IDENTITY_MATRIX;\n\n      let bold = \"normal\";\n      if (fontObj.black) {\n        bold = \"900\";\n      } else if (fontObj.bold) {\n        bold = \"bold\";\n      }\n      const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n      current.fontSize = size;\n      current.fontFamily = fontObj.loadedName;\n      current.fontWeight = bold;\n      current.fontStyle = italic;\n\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    endText() {\n      const current = this.current;\n      if (\n        current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG &&\n        current.txtElement &&\n        current.txtElement.hasChildNodes()\n      ) {\n        // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n        current.element = current.txtElement;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    // Path properties\n    setLineWidth(width) {\n      if (width > 0) {\n        this.current.lineWidth = width;\n      }\n    }\n\n    setLineCap(style) {\n      this.current.lineCap = LINE_CAP_STYLES[style];\n    }\n\n    setLineJoin(style) {\n      this.current.lineJoin = LINE_JOIN_STYLES[style];\n    }\n\n    setMiterLimit(limit) {\n      this.current.miterLimit = limit;\n    }\n\n    setStrokeAlpha(strokeAlpha) {\n      this.current.strokeAlpha = strokeAlpha;\n    }\n\n    setStrokeRGBColor(r, g, b) {\n      this.current.strokeColor = Util.makeCssRgb(r, g, b);\n    }\n\n    setFillAlpha(fillAlpha) {\n      this.current.fillAlpha = fillAlpha;\n    }\n\n    setFillRGBColor(r, g, b) {\n      this.current.fillColor = Util.makeCssRgb(r, g, b);\n      this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      this.current.xcoords = [];\n      this.current.ycoords = [];\n    }\n\n    setStrokeColorN(args) {\n      this.current.strokeColor = this._makeColorN_Pattern(args);\n    }\n\n    setFillColorN(args) {\n      this.current.fillColor = this._makeColorN_Pattern(args);\n    }\n\n    shadingFill(args) {\n      const width = this.viewport.width;\n      const height = this.viewport.height;\n      const inv = Util.inverseTransform(this.transformMatrix);\n      const bl = Util.applyTransform([0, 0], inv);\n      const br = Util.applyTransform([0, height], inv);\n      const ul = Util.applyTransform([width, 0], inv);\n      const ur = Util.applyTransform([width, height], inv);\n      const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n      const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n      const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n      const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", x0);\n      rect.setAttributeNS(null, \"y\", y0);\n      rect.setAttributeNS(null, \"width\", x1 - x0);\n      rect.setAttributeNS(null, \"height\", y1 - y0);\n      rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n      if (this.current.fillAlpha < 1) {\n        rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n      }\n      this._ensureTransformGroup().appendChild(rect);\n    }\n\n    /**\n     * @private\n     */\n    _makeColorN_Pattern(args) {\n      if (args[0] === \"TilingPattern\") {\n        return this._makeTilingPattern(args);\n      }\n      return this._makeShadingPattern(args);\n    }\n\n    /**\n     * @private\n     */\n    _makeTilingPattern(args) {\n      const color = args[1];\n      const operatorList = args[2];\n      const matrix = args[3] || IDENTITY_MATRIX;\n      const [x0, y0, x1, y1] = args[4];\n      const xstep = args[5];\n      const ystep = args[6];\n      const paintType = args[7];\n\n      const tilingId = `shading${shadingCount++}`;\n      const [tx0, ty0] = Util.applyTransform([x0, y0], matrix);\n      const [tx1, ty1] = Util.applyTransform([x1, y1], matrix);\n      const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n      const txstep = xstep * xscale;\n      const tystep = ystep * yscale;\n\n      const tiling = this.svgFactory.createElement(\"svg:pattern\");\n      tiling.setAttributeNS(null, \"id\", tilingId);\n      tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n      tiling.setAttributeNS(null, \"width\", txstep);\n      tiling.setAttributeNS(null, \"height\", tystep);\n      tiling.setAttributeNS(null, \"x\", `${tx0}`);\n      tiling.setAttributeNS(null, \"y\", `${ty0}`);\n\n      // Save current state.\n      const svg = this.svg;\n      const transformMatrix = this.transformMatrix;\n      const fillColor = this.current.fillColor;\n      const strokeColor = this.current.strokeColor;\n\n      const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n      this.svg = bbox;\n      this.transformMatrix = matrix;\n      if (paintType === 2) {\n        const cssColor = Util.makeCssRgb(...color);\n        this.current.fillColor = cssColor;\n        this.current.strokeColor = cssColor;\n      }\n      this.executeOpTree(this.convertOpList(operatorList));\n\n      // Restore saved state.\n      this.svg = svg;\n      this.transformMatrix = transformMatrix;\n      this.current.fillColor = fillColor;\n      this.current.strokeColor = strokeColor;\n\n      tiling.appendChild(bbox.childNodes[0]);\n      this.defs.appendChild(tiling);\n      return `url(#${tilingId})`;\n    }\n\n    /**\n     * @private\n     */\n    _makeShadingPattern(args) {\n      switch (args[0]) {\n        case \"RadialAxial\":\n          const shadingId = `shading${shadingCount++}`;\n          const colorStops = args[3];\n          let gradient;\n\n          switch (args[1]) {\n            case \"axial\":\n              const point0 = args[4];\n              const point1 = args[5];\n              gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"x1\", point0[0]);\n              gradient.setAttributeNS(null, \"y1\", point0[1]);\n              gradient.setAttributeNS(null, \"x2\", point1[0]);\n              gradient.setAttributeNS(null, \"y2\", point1[1]);\n              break;\n            case \"radial\":\n              const focalPoint = args[4];\n              const circlePoint = args[5];\n              const focalRadius = args[6];\n              const circleRadius = args[7];\n              gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n              gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n              gradient.setAttributeNS(null, \"r\", circleRadius);\n              gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n              gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n              gradient.setAttributeNS(null, \"fr\", focalRadius);\n              break;\n            default:\n              throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n          }\n          for (const colorStop of colorStops) {\n            const stop = this.svgFactory.createElement(\"svg:stop\");\n            stop.setAttributeNS(null, \"offset\", colorStop[0]);\n            stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n            gradient.appendChild(stop);\n          }\n          this.defs.appendChild(gradient);\n          return `url(#${shadingId})`;\n        case \"Mesh\":\n          warn(\"Unimplemented pattern Mesh\");\n          return null;\n        case \"Dummy\":\n          return \"hotpink\";\n        default:\n          throw new Error(`Unknown IR type: ${args[0]}`);\n      }\n    }\n\n    setDash(dashArray, dashPhase) {\n      this.current.dashArray = dashArray;\n      this.current.dashPhase = dashPhase;\n    }\n\n    constructPath(ops, args) {\n      const current = this.current;\n      let x = current.x,\n        y = current.y;\n      let d = [];\n      let j = 0;\n\n      for (const op of ops) {\n        switch (op | 0) {\n          case OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            const width = args[j++];\n            const height = args[j++];\n            const xw = x + width;\n            const yh = y + height;\n            d.push(\n              \"M\",\n              pf(x),\n              pf(y),\n              \"L\",\n              pf(xw),\n              pf(y),\n              \"L\",\n              pf(xw),\n              pf(yh),\n              \"L\",\n              pf(x),\n              pf(yh),\n              \"Z\"\n            );\n            break;\n          case OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"M\", pf(x), pf(y));\n            break;\n          case OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"L\", pf(x), pf(y));\n            break;\n          case OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            d.push(\n              \"C\",\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(args[j + 2]),\n              pf(args[j + 3]),\n              pf(x),\n              pf(y)\n            );\n            j += 6;\n            break;\n          case OPS.curveTo2:\n            d.push(\n              \"C\",\n              pf(x),\n              pf(y),\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(args[j + 2]),\n              pf(args[j + 3])\n            );\n            x = args[j + 2];\n            y = args[j + 3];\n            j += 4;\n            break;\n          case OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            d.push(\n              \"C\",\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(x),\n              pf(y),\n              pf(x),\n              pf(y)\n            );\n            j += 4;\n            break;\n          case OPS.closePath:\n            d.push(\"Z\");\n            break;\n        }\n      }\n\n      d = d.join(\" \");\n\n      if (\n        current.path &&\n        ops.length > 0 &&\n        ops[0] !== OPS.rectangle &&\n        ops[0] !== OPS.moveTo\n      ) {\n        // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n        // probably been divided into two OPS.constructPath operators by\n        // OperatorList. Append the commands to the previous path element.\n        d = current.path.getAttributeNS(null, \"d\") + d;\n      } else {\n        current.path = this.svgFactory.createElement(\"svg:path\");\n        this._ensureTransformGroup().appendChild(current.path);\n      }\n\n      current.path.setAttributeNS(null, \"d\", d);\n      current.path.setAttributeNS(null, \"fill\", \"none\");\n\n      // Saving a reference in current.element so that it can be addressed\n      // in 'fill' and 'stroke'\n      current.element = current.path;\n      current.setCurrentPoint(x, y);\n    }\n\n    endPath() {\n      const current = this.current;\n\n      // Painting operators end a path.\n      current.path = null;\n\n      if (!this.pendingClip) {\n        return;\n      }\n      if (!current.element) {\n        this.pendingClip = null;\n        return;\n      }\n\n      // Add the current path to a clipping path.\n      const clipId = `clippath${clipCount++}`;\n      const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n      clipPath.setAttributeNS(null, \"id\", clipId);\n      clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n      // A deep clone is needed when text is used as a clipping path.\n      const clipElement = current.element.cloneNode(true);\n      if (this.pendingClip === \"evenodd\") {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n      } else {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n      }\n      this.pendingClip = null;\n      clipPath.appendChild(clipElement);\n      this.defs.appendChild(clipPath);\n\n      if (current.activeClipUrl) {\n        // The previous clipping group content can go out of order -- resetting\n        // cached clipGroups.\n        current.clipGroup = null;\n        this.extraStack.forEach(function (prev) {\n          prev.clipGroup = null;\n        });\n        // Intersect with the previous clipping path.\n        clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n      }\n      current.activeClipUrl = `url(#${clipId})`;\n\n      this.tgrp = null;\n    }\n\n    clip(type) {\n      this.pendingClip = type;\n    }\n\n    closePath() {\n      const current = this.current;\n      if (current.path) {\n        const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n        current.path.setAttributeNS(null, \"d\", d);\n      }\n    }\n\n    setLeading(leading) {\n      this.current.leading = -leading;\n    }\n\n    setTextRise(textRise) {\n      this.current.textRise = textRise;\n    }\n\n    setTextRenderingMode(textRenderingMode) {\n      this.current.textRenderingMode = textRenderingMode;\n    }\n\n    setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    }\n\n    setRenderingIntent(intent) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    }\n\n    setFlatness(flatness) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    }\n\n    setGState(states) {\n      for (const [key, value] of states) {\n        switch (key) {\n          case \"LW\":\n            this.setLineWidth(value);\n            break;\n          case \"LC\":\n            this.setLineCap(value);\n            break;\n          case \"LJ\":\n            this.setLineJoin(value);\n            break;\n          case \"ML\":\n            this.setMiterLimit(value);\n            break;\n          case \"D\":\n            this.setDash(value[0], value[1]);\n            break;\n          case \"RI\":\n            this.setRenderingIntent(value);\n            break;\n          case \"FL\":\n            this.setFlatness(value);\n            break;\n          case \"Font\":\n            this.setFont(value);\n            break;\n          case \"CA\":\n            this.setStrokeAlpha(value);\n            break;\n          case \"ca\":\n            this.setFillAlpha(value);\n            break;\n          default:\n            warn(`Unimplemented graphic state operator ${key}`);\n            break;\n        }\n      }\n    }\n\n    fill() {\n      const current = this.current;\n      if (current.element) {\n        current.element.setAttributeNS(null, \"fill\", current.fillColor);\n        current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        this.endPath();\n      }\n    }\n\n    stroke() {\n      const current = this.current;\n      if (current.element) {\n        this._setStrokeAttributes(current.element);\n        current.element.setAttributeNS(null, \"fill\", \"none\");\n        this.endPath();\n      }\n    }\n\n    /**\n     * @private\n     */\n    _setStrokeAttributes(element, lineWidthScale = 1) {\n      const current = this.current;\n      let dashArray = current.dashArray;\n      if (lineWidthScale !== 1 && dashArray.length > 0) {\n        dashArray = dashArray.map(function (value) {\n          return lineWidthScale * value;\n        });\n      }\n      element.setAttributeNS(null, \"stroke\", current.strokeColor);\n      element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n      element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n      element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n      element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n      element.setAttributeNS(\n        null,\n        \"stroke-width\",\n        pf(lineWidthScale * current.lineWidth) + \"px\"\n      );\n      element.setAttributeNS(\n        null,\n        \"stroke-dasharray\",\n        dashArray.map(pf).join(\" \")\n      );\n      element.setAttributeNS(\n        null,\n        \"stroke-dashoffset\",\n        pf(lineWidthScale * current.dashPhase) + \"px\"\n      );\n    }\n\n    eoFill() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n      this.fill();\n    }\n\n    fillStroke() {\n      // Order is important since stroke wants fill to be none.\n      // First stroke, then if fill needed, it will be overwritten.\n      this.stroke();\n      this.fill();\n    }\n\n    eoFillStroke() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n      this.fillStroke();\n    }\n\n    closeStroke() {\n      this.closePath();\n      this.stroke();\n    }\n\n    closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    }\n\n    closeEOFillStroke() {\n      this.closePath();\n      this.eoFillStroke();\n    }\n\n    paintSolidColorImageMask() {\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", \"1px\");\n      rect.setAttributeNS(null, \"height\", \"1px\");\n      rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n      this._ensureTransformGroup().appendChild(rect);\n    }\n\n    paintImageXObject(objId) {\n      const imgData = objId.startsWith(\"g_\")\n        ? this.commonObjs.get(objId)\n        : this.objs.get(objId);\n      if (!imgData) {\n        warn(`Dependent image with object ID ${objId} is not ready yet`);\n        return;\n      }\n      this.paintInlineImageXObject(imgData);\n    }\n\n    paintInlineImageXObject(imgData, mask) {\n      const width = imgData.width;\n      const height = imgData.height;\n\n      const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n      const cliprect = this.svgFactory.createElement(\"svg:rect\");\n      cliprect.setAttributeNS(null, \"x\", \"0\");\n      cliprect.setAttributeNS(null, \"y\", \"0\");\n      cliprect.setAttributeNS(null, \"width\", pf(width));\n      cliprect.setAttributeNS(null, \"height\", pf(height));\n      this.current.element = cliprect;\n      this.clip(\"nonzero\");\n\n      const imgEl = this.svgFactory.createElement(\"svg:image\");\n      imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n      imgEl.setAttributeNS(null, \"x\", \"0\");\n      imgEl.setAttributeNS(null, \"y\", pf(-height));\n      imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n      imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n      imgEl.setAttributeNS(\n        null,\n        \"transform\",\n        `scale(${pf(1 / width)} ${pf(-1 / height)})`\n      );\n      if (mask) {\n        mask.appendChild(imgEl);\n      } else {\n        this._ensureTransformGroup().appendChild(imgEl);\n      }\n    }\n\n    paintImageMaskXObject(imgData) {\n      const current = this.current;\n      const width = imgData.width;\n      const height = imgData.height;\n      const fillColor = current.fillColor;\n\n      current.maskId = `mask${maskCount++}`;\n      const mask = this.svgFactory.createElement(\"svg:mask\");\n      mask.setAttributeNS(null, \"id\", current.maskId);\n\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", pf(width));\n      rect.setAttributeNS(null, \"height\", pf(height));\n      rect.setAttributeNS(null, \"fill\", fillColor);\n      rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n\n      this.defs.appendChild(mask);\n      this._ensureTransformGroup().appendChild(rect);\n\n      this.paintInlineImageXObject(imgData, mask);\n    }\n\n    paintFormXObjectBegin(matrix, bbox) {\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform(\n          matrix[0],\n          matrix[1],\n          matrix[2],\n          matrix[3],\n          matrix[4],\n          matrix[5]\n        );\n      }\n\n      if (bbox) {\n        const width = bbox[2] - bbox[0];\n        const height = bbox[3] - bbox[1];\n\n        const cliprect = this.svgFactory.createElement(\"svg:rect\");\n        cliprect.setAttributeNS(null, \"x\", bbox[0]);\n        cliprect.setAttributeNS(null, \"y\", bbox[1]);\n        cliprect.setAttributeNS(null, \"width\", pf(width));\n        cliprect.setAttributeNS(null, \"height\", pf(height));\n        this.current.element = cliprect;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    paintFormXObjectEnd() {}\n\n    /**\n     * @private\n     */\n    _initialize(viewport) {\n      const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n      // Create the definitions element.\n      const definitions = this.svgFactory.createElement(\"svg:defs\");\n      svg.appendChild(definitions);\n      this.defs = definitions;\n\n      // Create the root group element, which acts a container for all other\n      // groups and applies the viewport transform.\n      const rootGroup = this.svgFactory.createElement(\"svg:g\");\n      rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n      svg.appendChild(rootGroup);\n\n      // For the construction of the SVG image we are only interested in the\n      // root group, so we expose it as the entry point of the SVG image for\n      // the other code in this class.\n      this.svg = rootGroup;\n\n      return svg;\n    }\n\n    /**\n     * @private\n     */\n    _ensureClipGroup() {\n      if (!this.current.clipGroup) {\n        const clipGroup = this.svgFactory.createElement(\"svg:g\");\n        clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n        this.svg.appendChild(clipGroup);\n        this.current.clipGroup = clipGroup;\n      }\n      return this.current.clipGroup;\n    }\n\n    /**\n     * @private\n     */\n    _ensureTransformGroup() {\n      if (!this.tgrp) {\n        this.tgrp = this.svgFactory.createElement(\"svg:g\");\n        this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n        if (this.current.activeClipUrl) {\n          this._ensureClipGroup().appendChild(this.tgrp);\n        } else {\n          this.svg.appendChild(this.tgrp);\n        }\n      }\n      return this.tgrp;\n    }\n  };\n}\n\nexport { SVGGraphics };\n","/* Copyright 2012 Mozilla Foundation\n *\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/* globals __non_webpack_require__ */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  MissingPDFException,\n} from \"../shared/util.js\";\nimport {\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./node_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst fs = __non_webpack_require__(\"fs\");\nconst http = __non_webpack_require__(\"http\");\nconst https = __non_webpack_require__(\"https\");\nconst url = __non_webpack_require__(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n  const parsedUrl = url.parse(sourceUrl);\n  if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n    return parsedUrl;\n  }\n  // Prepending 'file:///' to Windows absolute path.\n  if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n    return url.parse(`file:///${sourceUrl}`);\n  }\n  // Changes protocol to 'file:' if url refers to filesystem.\n  if (!parsedUrl.host) {\n    parsedUrl.protocol = \"file:\";\n  }\n  return parsedUrl;\n}\n\nclass PDFNodeStream {\n  constructor(source) {\n    this.source = source;\n    this.url = parseUrl(source.url);\n    this.isHttp =\n      this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n    // Check if url refers to filesystem.\n    this.isFsUrl = this.url.protocol === \"file:\";\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNodeStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = this.isFsUrl\n      ? new PDFNodeStreamFsFullReader(this)\n      : new PDFNodeStreamFullReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(start, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const rangeReader = this.isFsUrl\n      ? new PDFNodeStreamFsRangeReader(this, start, end)\n      : new PDFNodeStreamRangeReader(this, start, end);\n    this._rangeRequestReaders.push(rangeReader);\n    return rangeReader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    const readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function (reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\nclass BaseFullReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    const source = stream.source;\n    this._contentLength = source.length; // optional\n    this._loaded = 0;\n    this._filename = null;\n\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    this._headersCapability = createPromiseCapability();\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readable to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // We need to stop reading when range is supported and streaming is\n    // disabled.\n    if (!this._isStreamingSupported && this._isRangeSupported) {\n      this._error(new AbortException(\"streaming is disabled\"));\n    }\n\n    // Destroy ReadableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nclass BaseRangeReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    this._loaded = 0;\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    const source = stream.source;\n    this._isStreamingSupported = !source.disableStream;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readableStream to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // Destroy readableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n  return {\n    protocol: parsedUrl.protocol,\n    auth: parsedUrl.auth,\n    host: parsedUrl.hostname,\n    port: parsedUrl.port,\n    path: parsedUrl.path,\n    method: \"GET\",\n    headers,\n  };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      this._headersCapability.resolve();\n      this._setReadableStream(response);\n\n      const getResponseHeader = name => {\n        // Make sure that headers name are in lower case, as mentioned\n        // here: https://nodejs.org/api/http.html#http_message_headers.\n        return this._readableStream.headers[name.toLowerCase()];\n      };\n      const {\n        allowRangeRequests,\n        suggestedLength,\n      } = validateRangeRequestCapabilities({\n        getResponseHeader,\n        isHttp: stream.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange,\n      });\n\n      this._isRangeSupported = allowRangeRequests;\n      // Setting right content length.\n      this._contentLength = suggestedLength || this._contentLength;\n\n      this._filename = extractFilenameFromHeader(getResponseHeader);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n      this._headersCapability.reject(reason);\n    });\n    // Note: `request.end(data)` is used to write `data` to request body\n    // and notify end of request. But one should always call `request.end()`\n    // even if there is no data to write -- (to notify the end of request).\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    this._httpHeaders = {};\n    for (const property in stream.httpHeaders) {\n      const value = stream.httpHeaders[property];\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n      this._httpHeaders[property] = value;\n    }\n    this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        return;\n      }\n      this._setReadableStream(response);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n    });\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    fs.lstat(path, (error, stat) => {\n      if (error) {\n        if (error.code === \"ENOENT\") {\n          error = new MissingPDFException(`Missing PDF \"${path}\".`);\n        }\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      // Setting right content length.\n      this._contentLength = stat.size;\n\n      this._setReadableStream(fs.createReadStream(path));\n      this._headersCapability.resolve();\n    });\n  }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    this._setReadableStream(fs.createReadStream(path, { start, end: end - 1 }));\n  }\n}\n\nexport { PDFNodeStream };\n","/* Copyright 2012 Mozilla Foundation\n *\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 {\n  assert,\n  MissingPDFException,\n  UnexpectedResponseException,\n} from \"../shared/util.js\";\nimport { getFilenameFromContentDispositionHeader } from \"./content_disposition.js\";\n\nfunction validateRangeRequestCapabilities({\n  getResponseHeader,\n  isHttp,\n  rangeChunkSize,\n  disableRange,\n}) {\n  assert(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n  const returnValues = {\n    allowRangeRequests: false,\n    suggestedLength: undefined,\n  };\n\n  const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n  if (!Number.isInteger(length)) {\n    return returnValues;\n  }\n\n  returnValues.suggestedLength = length;\n\n  if (length <= 2 * rangeChunkSize) {\n    // The file size is smaller than the size of two chunks, so it does not\n    // make any sense to abort the request and retry with a range request.\n    return returnValues;\n  }\n\n  if (disableRange || !isHttp) {\n    return returnValues;\n  }\n  if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n    return returnValues;\n  }\n\n  const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n  if (contentEncoding !== \"identity\") {\n    return returnValues;\n  }\n\n  returnValues.allowRangeRequests = true;\n  return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n  const contentDisposition = getResponseHeader(\"Content-Disposition\");\n  if (contentDisposition) {\n    let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n    if (filename.includes(\"%\")) {\n      try {\n        filename = decodeURIComponent(filename);\n      } catch (ex) {}\n    }\n    if (/\\.pdf$/i.test(filename)) {\n      return filename;\n    }\n  }\n  return null;\n}\n\nfunction createResponseStatusError(status, url) {\n  if (status === 404 || (status === 0 && url.startsWith(\"file:\"))) {\n    return new MissingPDFException('Missing PDF \"' + url + '\".');\n  }\n  return new UnexpectedResponseException(\n    \"Unexpected server response (\" +\n      status +\n      ') while retrieving PDF \"' +\n      url +\n      '\".',\n    status\n  );\n}\n\nfunction validateResponseStatus(status) {\n  return status === 200 || status === 206;\n}\n\nexport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\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// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Move return to the end of the function to prevent Babel from dropping the\n//   function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @returns {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n\n  // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n  let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n  // filename*n*=part\n  // filename*n=part\n  tmp = rfc2231getparam(contentDisposition);\n  if (tmp) {\n    // RFC 2047, section\n    const filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n\n  // filename=value (RFC 5987, section 4.1).\n  tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // After this line there are only function declarations. We cannot put\n  // \"return\" here for readability because babel would then drop the function\n  // declarations...\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\n      \"(?:^|;)\\\\s*\" +\n        attributePattern +\n        \"\\\\s*=\\\\s*\" +\n        // Captures: value = token | quoted-string\n        // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n        \"(\" +\n        '[^\";\\\\s][^;\\\\s]*' +\n        \"|\" +\n        '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n        \")\",\n      flags\n    );\n  }\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const bytes = Array.from(value, function (ch) {\n          return ch.charCodeAt(0) & 0xff;\n        });\n        value = decoder.decode(new Uint8Array(bytes));\n        needsEncodingFixup = false;\n      } catch (e) {\n        // TextDecoder constructor threw - unrecognized encoding.\n        // Or TextDecoder API is not available (in IE / Edge).\n        if (/^utf-?8$/i.test(encoding)) {\n          // UTF-8 is commonly used, try to support it in another way:\n          try {\n            value = decodeURIComponent(escape(value));\n            needsEncodingFixup = false;\n          } catch (err) {}\n        }\n      }\n    }\n    return value;\n  }\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      // Maybe multi-byte UTF-8.\n      value = textdecode(\"utf-8\", value);\n      if (needsEncodingFixup) {\n        // Try iso-8859-1 encoding.\n        value = textdecode(\"iso-8859-1\", value);\n      }\n    }\n    return value;\n  }\n  function rfc2231getparam(contentDispositionStr) {\n    const matches = [];\n    let match;\n    // Iterate over all filename*n= and filename*n*= with n being an integer\n    // of at least zero. Any non-zero number must not start with '0'.\n    const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n    while ((match = iter.exec(contentDispositionStr)) !== null) {\n      let [, n, quot, part] = match; // eslint-disable-line prefer-const\n      n = parseInt(n, 10);\n      if (n in matches) {\n        // Ignore anything after the invalid second filename*0.\n        if (n === 0) {\n          break;\n        }\n        continue;\n      }\n      matches[n] = [quot, part];\n    }\n    const parts = [];\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        // Numbers must be consecutive. Truncate when there is a hole.\n        break;\n      }\n      let [quot, part] = matches[n]; // eslint-disable-line prefer-const\n      part = rfc2616unquote(part);\n      if (quot) {\n        part = unescape(part);\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n      parts.push(part);\n    }\n    return parts.join(\"\");\n  }\n  function rfc2616unquote(value) {\n    if (value.startsWith('\"')) {\n      const parts = value.slice(1).split('\\\\\"');\n      // Find the first unescaped \" and terminate there.\n      for (let i = 0; i < parts.length; ++i) {\n        const quotindex = parts[i].indexOf('\"');\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1; // Truncates and stop the iteration.\n        }\n        parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n      }\n      value = parts.join('\"');\n    }\n    return value;\n  }\n  function rfc5987decode(extvalue) {\n    // Decodes \"ext-value\" from RFC 5987.\n    const encodingend = extvalue.indexOf(\"'\");\n    if (encodingend === -1) {\n      // Some servers send \"filename*=\" without encoding 'language' prefix,\n      // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n      // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n      return extvalue;\n    }\n    const encoding = extvalue.slice(0, encodingend);\n    const langvalue = extvalue.slice(encodingend + 1);\n    // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n    const value = langvalue.replace(/^[^']*'/, \"\");\n    return textdecode(encoding, value);\n  }\n  function rfc2047decode(value) {\n    // RFC 2047-decode the result. Firefox tried to drop support for it, but\n    // backed out because some servers use it - https://bugzil.la/875615\n    // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n    // We are more strict and only recognize RFC 2047-encoding if the value\n    // starts with \"=?\", since then it is likely that the full value is\n    // RFC 2047-encoded.\n\n    // Firefox also decodes words even where RFC 2047 section 5 states:\n    // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n    if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n    // RFC 2047, section 2.4\n    // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n    // charset = token (but let's restrict to characters that denote a\n    //       possibly valid encoding).\n    // encoding = q or b\n    // encoded-text = any printable ASCII character other than ? or space.\n    //        ... but Firefox permits ? and space.\n    return value.replace(\n      /=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n      function (matches, charset, encoding, text) {\n        if (encoding === \"q\" || encoding === \"Q\") {\n          // RFC 2047 section 4.2.\n          text = text.replace(/_/g, \" \");\n          text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n            return String.fromCharCode(parseInt(hex, 16));\n          });\n          return textdecode(charset, text);\n        } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n        try {\n          text = atob(text);\n        } catch (e) {}\n        return textdecode(charset, text);\n      }\n    );\n  }\n\n  return \"\";\n}\n\nexport { getFilenameFromContentDispositionHeader };\n","/* Copyright 2012 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport {\n  assert,\n  createPromiseCapability,\n  stringToBytes,\n} from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./network.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n  const data = xhr.response;\n  if (typeof data !== \"string\") {\n    return data;\n  }\n  const array = stringToBytes(data);\n  return array.buffer;\n}\n\nclass NetworkManager {\n  constructor(url, args) {\n    this.url = url;\n    args = args || {};\n    this.isHttp = /^https?:/i.test(url);\n    this.httpHeaders = (this.isHttp && args.httpHeaders) || {};\n    this.withCredentials = args.withCredentials || false;\n    this.getXhr =\n      args.getXhr ||\n      function NetworkManager_getXhr() {\n        return new XMLHttpRequest();\n      };\n\n    this.currXhrId = 0;\n    this.pendingRequests = Object.create(null);\n  }\n\n  requestRange(begin, end, listeners) {\n    const args = {\n      begin,\n      end,\n    };\n    for (const prop in listeners) {\n      args[prop] = listeners[prop];\n    }\n    return this.request(args);\n  }\n\n  requestFull(listeners) {\n    return this.request(listeners);\n  }\n\n  request(args) {\n    const xhr = this.getXhr();\n    const xhrId = this.currXhrId++;\n    const pendingRequest = (this.pendingRequests[xhrId] = {\n      xhr,\n    });\n\n    xhr.open(\"GET\", this.url);\n    xhr.withCredentials = this.withCredentials;\n    for (const property in this.httpHeaders) {\n      const value = this.httpHeaders[property];\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n      xhr.setRequestHeader(property, value);\n    }\n    if (this.isHttp && \"begin\" in args && \"end\" in args) {\n      xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n      pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n    } else {\n      pendingRequest.expectedStatus = OK_RESPONSE;\n    }\n    xhr.responseType = \"arraybuffer\";\n\n    if (args.onError) {\n      xhr.onerror = function (evt) {\n        args.onError(xhr.status);\n      };\n    }\n    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n    xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n    pendingRequest.onHeadersReceived = args.onHeadersReceived;\n    pendingRequest.onDone = args.onDone;\n    pendingRequest.onError = args.onError;\n    pendingRequest.onProgress = args.onProgress;\n\n    xhr.send(null);\n\n    return xhrId;\n  }\n\n  onProgress(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      // Maybe abortRequest was called...\n      return;\n    }\n\n    if (pendingRequest.onProgress) {\n      pendingRequest.onProgress(evt);\n    }\n  }\n\n  onStateChange(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      // Maybe abortRequest was called...\n      return;\n    }\n\n    const xhr = pendingRequest.xhr;\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (!(xhrId in this.pendingRequests)) {\n      // The XHR request might have been aborted in onHeadersReceived()\n      // callback, in which case we should abort request.\n      return;\n    }\n\n    delete this.pendingRequests[xhrId];\n\n    // Success status == 0 can be on ftp, file and other protocols.\n    if (xhr.status === 0 && this.isHttp) {\n      if (pendingRequest.onError) {\n        pendingRequest.onError(xhr.status);\n      }\n      return;\n    }\n    const xhrStatus = xhr.status || OK_RESPONSE;\n\n    // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n    // \"A server MAY ignore the Range header\". This means it's possible to\n    // get a 200 rather than a 206 response from a range request.\n    const ok_response_on_range_request =\n      xhrStatus === OK_RESPONSE &&\n      pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n    if (\n      !ok_response_on_range_request &&\n      xhrStatus !== pendingRequest.expectedStatus\n    ) {\n      if (pendingRequest.onError) {\n        pendingRequest.onError(xhr.status);\n      }\n      return;\n    }\n\n    const chunk = getArrayBuffer(xhr);\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n      const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n      pendingRequest.onDone({\n        begin: parseInt(matches[1], 10),\n        chunk,\n      });\n    } else if (chunk) {\n      pendingRequest.onDone({\n        begin: 0,\n        chunk,\n      });\n    } else if (pendingRequest.onError) {\n      pendingRequest.onError(xhr.status);\n    }\n  }\n\n  getRequestXhr(xhrId) {\n    return this.pendingRequests[xhrId].xhr;\n  }\n\n  isPendingRequest(xhrId) {\n    return xhrId in this.pendingRequests;\n  }\n\n  abortRequest(xhrId) {\n    const xhr = this.pendingRequests[xhrId].xhr;\n    delete this.pendingRequests[xhrId];\n    xhr.abort();\n  }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n  constructor(source) {\n    this._source = source;\n    this._manager = new NetworkManager(source.url, {\n      httpHeaders: source.httpHeaders,\n      withCredentials: source.withCredentials,\n    });\n    this._rangeChunkSize = source.rangeChunkSize;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  _onRangeRequestReaderClosed(reader) {\n    const i = this._rangeRequestReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeRequestReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNetworkStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFNetworkStreamFullRequestReader(\n      this._manager,\n      this._source\n    );\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFNetworkStreamRangeRequestReader(\n      this._manager,\n      begin,\n      end\n    );\n    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    const readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function (reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n  constructor(manager, source) {\n    this._manager = manager;\n\n    const args = {\n      onHeadersReceived: this._onHeadersReceived.bind(this),\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._url = source.url;\n    this._fullRequestId = manager.requestFull(args);\n    this._headersReceivedCapability = createPromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._contentLength = source.length; // Optional\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = false;\n    this._isRangeSupported = false;\n\n    this._cachedChunks = [];\n    this._requests = [];\n    this._done = false;\n    this._storedError = undefined;\n    this._filename = null;\n\n    this.onProgress = null;\n  }\n\n  _onHeadersReceived() {\n    const fullRequestXhrId = this._fullRequestId;\n    const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n    const getResponseHeader = name => {\n      return fullRequestXhr.getResponseHeader(name);\n    };\n    const {\n      allowRangeRequests,\n      suggestedLength,\n    } = validateRangeRequestCapabilities({\n      getResponseHeader,\n      isHttp: this._manager.isHttp,\n      rangeChunkSize: this._rangeChunkSize,\n      disableRange: this._disableRange,\n    });\n\n    if (allowRangeRequests) {\n      this._isRangeSupported = true;\n    }\n    // Setting right content length.\n    this._contentLength = suggestedLength || this._contentLength;\n\n    this._filename = extractFilenameFromHeader(getResponseHeader);\n\n    if (this._isRangeSupported) {\n      // NOTE: by cancelling the full request, and then issuing range\n      // requests, there will be an issue for sites where you can only\n      // request the pdf once. However, if this is the case, then the\n      // server should not be returning that it can support range requests.\n      this._manager.abortRequest(fullRequestXhrId);\n    }\n\n    this._headersReceivedCapability.resolve();\n  }\n\n  _onDone(args) {\n    if (args) {\n      if (this._requests.length > 0) {\n        const requestCapability = this._requests.shift();\n        requestCapability.resolve({ value: args.chunk, done: false });\n      } else {\n        this._cachedChunks.push(args.chunk);\n      }\n    }\n    this._done = true;\n    if (this._cachedChunks.length > 0) {\n      return;\n    }\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n  }\n\n  _onError(status) {\n    const url = this._url;\n    const exception = createResponseStatusError(status, url);\n    this._storedError = exception;\n    this._headersReceivedCapability.reject(exception);\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.reject(exception);\n    });\n    this._requests = [];\n    this._cachedChunks = [];\n  }\n\n  _onProgress(data) {\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: data.loaded,\n        total: data.lengthComputable ? data.total : this._contentLength,\n      });\n    }\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get headersReady() {\n    return this._headersReceivedCapability.promise;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._cachedChunks.length > 0) {\n      const chunk = this._cachedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._headersReceivedCapability.reject(reason);\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n    if (this._manager.isPendingRequest(this._fullRequestId)) {\n      this._manager.abortRequest(this._fullRequestId);\n    }\n    this._fullRequestReader = null;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n  constructor(manager, begin, end) {\n    this._manager = manager;\n    const args = {\n      onDone: this._onDone.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._requestId = manager.requestRange(begin, end, args);\n    this._requests = [];\n    this._queuedChunk = null;\n    this._done = false;\n\n    this.onProgress = null;\n    this.onClosed = null;\n  }\n\n  _close() {\n    if (this.onClosed) {\n      this.onClosed(this);\n    }\n  }\n\n  _onDone(data) {\n    const chunk = data.chunk;\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunk = chunk;\n    }\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n    this._close();\n  }\n\n  _onProgress(evt) {\n    if (!this.isStreamingSupported && this.onProgress) {\n      this.onProgress({\n        loaded: evt.loaded,\n      });\n    }\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._queuedChunk !== null) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true });\n    });\n    this._requests = [];\n    if (this._manager.isPendingRequest(this._requestId)) {\n      this._manager.abortRequest(this._requestId);\n    }\n    this._close();\n  }\n}\n\nexport { PDFNetworkStream };\n","/* Copyright 2012 Mozilla Foundation\n *\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/* eslint no-var: error */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n} from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./fetch_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n  return {\n    method: \"GET\",\n    headers,\n    signal: abortController && abortController.signal,\n    mode: \"cors\",\n    credentials: withCredentials ? \"include\" : \"same-origin\",\n    redirect: \"follow\",\n  };\n}\n\nfunction createHeaders(httpHeaders) {\n  const headers = new Headers();\n  for (const property in httpHeaders) {\n    const value = httpHeaders[property];\n    if (typeof value === \"undefined\") {\n      continue;\n    }\n    headers.append(property, value);\n  }\n  return headers;\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n  constructor(source) {\n    this.source = source;\n    this.isHttp = /^https?:/i.test(source.url);\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFFetchStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFFetchStreamReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFFetchStreamRangeReader(this, begin, end);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    const readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function (reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n  constructor(stream) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    this._filename = null;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._contentLength = source.length;\n    this._headersCapability = createPromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    if (typeof AbortController !== \"undefined\") {\n      this._abortController = new AbortController();\n    }\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._headers = createHeaders(this._stream.httpHeaders);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._reader = response.body.getReader();\n        this._headersCapability.resolve();\n\n        const getResponseHeader = name => {\n          return response.headers.get(name);\n        };\n        const {\n          allowRangeRequests,\n          suggestedLength,\n        } = validateRangeRequestCapabilities({\n          getResponseHeader,\n          isHttp: this._stream.isHttp,\n          rangeChunkSize: this._rangeChunkSize,\n          disableRange: this._disableRange,\n        });\n\n        this._isRangeSupported = allowRangeRequests;\n        // Setting right content length.\n        this._contentLength = suggestedLength || this._contentLength;\n\n        this._filename = extractFilenameFromHeader(getResponseHeader);\n\n        // We need to stop reading when range is supported and streaming is\n        // disabled.\n        if (!this._isStreamingSupported && this._isRangeSupported) {\n          this.cancel(new AbortException(\"Streaming is disabled.\"));\n        }\n      })\n      .catch(this._headersCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._headersCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    const buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._readCapability = createPromiseCapability();\n    this._isStreamingSupported = !source.disableStream;\n\n    if (typeof AbortController !== \"undefined\") {\n      this._abortController = new AbortController();\n    }\n\n    this._headers = createHeaders(this._stream.httpHeaders);\n    this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._readCapability.resolve();\n        this._reader = response.body.getReader();\n      })\n      .catch(reason => {\n        if (reason && reason.name === \"AbortError\") {\n          return;\n        }\n        throw reason;\n      });\n\n    this.onProgress = null;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded });\n    }\n    const buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\nexport { PDFFetchStream };\n"],"sourceRoot":""}