{"version":3,"sources":["webpack:///./node_modules/@zxing/library/esm5/core/common/BitArray.js","webpack:///./node_modules/@zxing/library/esm5/core/common/detector/WhiteRectangleDetector.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/BlockPair.js","webpack:///./src/assets/images/earn_point_error.svg","webpack:///./src/assets/images/earn_point_success.svg","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/AlignmentPattern.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/OneDReader.js","webpack:///./src/assets/images/camera.svg","webpack:///./node_modules/tesseract.js/src/worker/browser/loadImage.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/GenericGFPoly.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPatternInfo.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/RSS14Reader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DataBlock.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/EAN13Reader.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserBarcodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/ReaderException.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/ByteMatrix.js","webpack:///./src/assets/images/earn_error.svg","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ECBlocks.js","webpack:///./node_modules/@zxing/library/esm5/core/WriterException.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Mode.js","webpack:///./node_modules/tesseract.js/src/createScheduler.js","webpack:///./node_modules/@zxing/library/esm5/core/RGBLuminanceSource.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtension2Support.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GlobalHistogramBinarizer.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/Encoder.js","webpack:///./node_modules/@zxing/library/esm5/core/ChecksumException.js","webpack:///./node_modules/tesseract.js/src/worker/browser/defaultOptions.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/Code39Reader.js","webpack:///./node_modules/@zxing/library/esm5/core/ArgumentException.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Decoder.js","webpack:///./node_modules/@zxing/library/esm5/core/ArithmeticException.js","webpack:///./node_modules/@zxing/library/esm5/core/ReedSolomonException.js","webpack:///./node_modules/@zxing/library/esm5/core/BinaryBitmap.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/FinderPattern.js","webpack:///./node_modules/@zxing/library/esm5/core/Exception.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtension5Support.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DataMask.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/QRCodeDecoderMetaData.js","webpack:///./src/assets/images/earn_success.svg","webpack:///./node_modules/@zxing/library/esm5/core/util/Arrays.js","webpack:///./node_modules/resolve-url/resolve-url.js","webpack:///./node_modules/@zxing/library/esm5/core/common/HybridBinarizer.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/MultiFormatOneDReader.js","webpack:///./node_modules/@zxing/library/esm5/core/EncodeHintType.js","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?00ea","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/BitMatrixParser.js","webpack:///./src/components/Modal/CameraScanModal.vue?75b5","webpack:///./node_modules/tesseract.js/src/utils/resolvePaths.js","webpack:///./node_modules/@zxing/library/esm5/core/util/StringBuilder.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ErrorCorrectionLevel.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtensionSupport.js","webpack:///./node_modules/tesseract.js/src/worker/browser/send.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/@zxing/library/esm5/core/ResultMetadataType.js","webpack:///./node_modules/@zxing/library/esm5/core/UnsupportedOperationException.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/DecodedBitStreamParser.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserDatamatrixCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DecodedBitStreamParser.js","webpack:///./node_modules/tesseract.js/src/constants/defaultOptions.js","webpack:///./src/components/Modal/AlertError.vue?38b1","webpack:///src/components/Modal/AlertError.vue","webpack:///./src/components/Modal/AlertError.vue?19db","webpack:///./src/components/Modal/AlertError.vue","webpack:///./node_modules/@zxing/library/esm5/core/common/DecoderResult.js","webpack:///./node_modules/is-electron/index.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/Version.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GridSampler.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/BitMatrixParser.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/Code128Reader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPatternFinder.js","webpack:///./node_modules/@zxing/library/esm5/core/common/DefaultGridSampler.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/FormatInformation.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/GenericGF.js","webpack:///./node_modules/tesseract.js/src/worker/browser/terminateWorker.js","webpack:///./node_modules/tesseract.js/src/createJob.js","webpack:///./node_modules/@zxing/library/esm5/core/common/StringUtils.js","webpack:///./node_modules/tesseract.js/src/createWorker.js","webpack:///./node_modules/@zxing/library/esm5/core/FormatException.js","webpack:///./node_modules/@zxing/library/esm5/core/IllegalStateException.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/detector/Detector.js","webpack:///./src/module/EarnPoint/Index.vue?863a","webpack:///./src/core/EarnPoint/service/BzbsEarnPoint.js","webpack:///./src/components/Modal/CameraScanModal.vue?c636","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue?2346","webpack:///node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue?57e3","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?5470","webpack:///node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?9d92","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue","webpack:///src/components/Modal/CameraScanModal.vue","webpack:///./src/components/Modal/CameraScanModal.vue?f61a","webpack:///./src/components/Modal/CameraScanModal.vue","webpack:///src/module/EarnPoint/Index.vue","webpack:///./src/module/EarnPoint/Index.vue?461e","webpack:///./src/module/EarnPoint/Index.vue","webpack:///./node_modules/tesseract.js/src/worker/browser/index.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/AlignmentPatternFinder.js","webpack:///./node_modules/tesseract.js/src/worker/browser/onMessage.js","webpack:///./node_modules/tesseract.js/src/utils/log.js","webpack:///./node_modules/tesseract.js/src/utils/getEnvironment.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/DataMatrixReader.js","webpack:///./node_modules/@zxing/library/esm5/core/common/DetectorResult.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/MatrixUtil.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/EAN8Reader.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/ITFReader.js","webpack:///./node_modules/@zxing/library/esm5/core/ResultPoint.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/Detector.js","webpack:///./node_modules/@zxing/library/esm5/core/PlanarYUVLuminanceSource.js","webpack:///./node_modules/@zxing/library/esm5/core/Binarizer.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/QRCodeWriter.js","webpack:///./node_modules/ts-custom-error/dist/custom-error.mjs","webpack:///./src/assets/images/Btn_Back.svg","webpack:///./src/assets/images/close-icon.svg","webpack:///./node_modules/@zxing/library/esm5/core/Result.js","webpack:///./node_modules/@zxing/library/esm5/core/util/Float.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/ReedSolomonDecoder.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPattern.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/ReedSolomonEncoder.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ECB.js","webpack:///./node_modules/tesseract.js/src/constants/config.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Version.js","webpack:///./node_modules/@zxing/library/esm5/core/util/StringEncoding.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserMultiFormatReader.js","webpack:///./node_modules/@zxing/library/esm5/core/common/CharacterSetECI.js","webpack:///./node_modules/@zxing/library/esm5/core/util/System.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GridSamplerInstance.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/Pair.js","webpack:///./node_modules/@zxing/library/esm5/core/BarcodeFormat.js","webpack:///./node_modules/tesseract.js/src/worker/browser/spawnWorker.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANReader.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/Decoder.js","webpack:///./node_modules/tesseract.js/src/Tesseract.js","webpack:///./node_modules/@zxing/library/esm5/core/util/Integer.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./src/assets/images/icon_Error.svg","webpack:///./node_modules/tesseract.js/src/constants/OEM.js","webpack:///./node_modules/@zxing/library/esm5/core/NotFoundException.js","webpack:///./node_modules/@zxing/library/esm5/core/LuminanceSource.js","webpack:///./node_modules/tesseract.js/src/index.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/MaskUtil.js","webpack:///./node_modules/@zxing/library/esm5/core/MultiFormatWriter.js","webpack:///./node_modules/@zxing/library/esm5/browser/HTMLCanvasElementLuminanceSource.js","webpack:///./node_modules/@zxing/library/esm5/core/IllegalArgumentException.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/QRCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/MultiFormatUPCEANReader.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/RSSUtils.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/AbstractRSSReader.js","webpack:///./node_modules/@zxing/library/esm5/core/common/detector/MathUtils.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/DataCharacter.js","webpack:///./node_modules/@zxing/library/esm5/browser/VideoInputDevice.js","webpack:///./node_modules/@zxing/library/esm5/core/DecodeHintType.js","webpack:///./node_modules/@zxing/library/esm5/core/InvertedLuminanceSource.js","webpack:///./node_modules/@zxing/library/esm5/core/MultiFormatReader.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./src/components/Modal/AlertError.vue?cc76","webpack:///./node_modules/tesseract.js/src/utils/circularize.js","webpack:///./node_modules/@zxing/library/esm5/index.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/QRCode.js","webpack:///./node_modules/tesseract.js/src/constants/PSM.js","webpack:///./node_modules/jsqr/dist/jsQR.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/DataBlock.js","webpack:///./node_modules/@zxing/library/esm5/core/common/BitSource.js","webpack:///./src/module/EarnPoint/Index.vue?6159","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserQRCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserQRCodeSvgWriter.js","webpack:///./node_modules/@zxing/library/esm5/core/common/PerspectiveTransform.js","webpack:///./node_modules/tesseract.js/src/utils/getId.js","webpack:///./node_modules/@zxing/library/esm5/core/common/BitMatrix.js"],"names":["Object","defineProperty","exports","value","System_1","Integer_1","Arrays_1","IllegalArgumentException_1","BitArray","size","bits","undefined","this","Int32Array","makeArray","prototype","getSize","getSizeInBytes","Math","floor","ensureCapacity","length","newBits","default","arraycopy","get","i","set","flip","getNextSet","from","bitsOffset","currentBits","result","numberOfTrailingZeros","getNextUnset","setBulk","setRange","start","end","firstInt","lastInt","firstBit","lastBit","mask","clear","max","isRange","appendBit","bit","appendBits","numBits","numBitsLeft","appendBitArray","other","otherSize","xor","length_1","toBytes","bitOffset","array","offset","numBytes","theByte","j","getBitArray","reverse","len","oldBitsLen","x","leftOffset","currentInt","nextInt","equals","o","hashCode","toString","clone","slice","ResultPoint_1","MathUtils_1","NotFoundException_1","WhiteRectangleDetector","image","initSize","y","height","getHeight","width","getWidth","INIT_SIZE","halfsize","leftInit","rightInit","upInit","downInit","detect","left","right","up","down","sizeExceeded","aBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnRight","atLeastOneBlackPointFoundOnBottom","atLeastOneBlackPointFoundOnLeft","atLeastOneBlackPointFoundOnTop","rightBorderNotWhite","containsBlackPoint","bottomBorderNotWhite","leftBorderNotWhite","topBorderNotWhite","maxSize","z","getBlackPointOnSegment","t","centerEdges","aX","aY","bX","bY","dist","round","distance","xStep","yStep","yi","getX","yj","getY","zi","zj","xi","xj","ti","tj","CORR","a","b","fixed","horizontal","BlockPair","dataBytes","errorCorrectionBytes","getDataBytes","getErrorCorrectionBytes","module","__extends","extendStatics","d","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","create","AlignmentPattern","_super","posX","posY","estimatedModuleSize","_this","call","aboutEquals","moduleSize","abs","moduleSizeDiff","combineEstimate","newModuleSize","combinedX","combinedY","combinedModuleSize","BitArray_1","DecodeHintType_1","ResultMetadataType_1","OneDReader","decode","hints","doDecode","nfe","tryHarder","TRY_HARDER","isRotateSupported","rotatedImage","rotateCounterClockwise","metadata","getResultMetadata","orientation_1","ORIENTATION","putMetadata","points","getResultPoints","reset","maxLines","row","rowStep","middle","trunc","rowStepsAboveOrBelow","isAbove","rowNumber","getBlackRow","ignored","_loop_1","attempt","NEED_RESULT_POINT_CALLBACK","newHints_1","Map","forEach","hint","key","delete","this_1","decodeRow","re","state_1","recordPattern","counters","numCounters","index","isWhite","counterPosition","recordPatternInReverse","numTransitionsLeft","last","patternMatchVariance","pattern","maxIndividualVariance","total","patternLength","Number","POSITIVE_INFINITY","unitBarWidth","totalVariance","counter","scaledPattern","variance","resolveURL","readFromBlobOrFile","blob","Promise","resolve","reject","fileReader","FileReader","onload","onerror","target","error","code","Error","readAsArrayBuffer","loadImage","async","data","test","atob","split","map","c","charCodeAt","resp","fetch","arrayBuffer","HTMLElement","tagName","src","poster","toBlob","File","Blob","Uint8Array","GenericGF_1","GenericGFPoly","field","coefficients","coefficientsLength","firstNonZero","getCoefficients","getDegree","isZero","getCoefficient","degree","evaluateAt","coefficient","addOrSubtract","multiply","smallerCoefficients","largerCoefficients","temp","sumDiff","lengthDiff","getZero","aCoefficients","aLength","bCoefficients","bLength","product","aCoeff","multiplyScalar","scalar","multiplyByMonomial","divide","quotient","remainder","denominatorLeadingTerm","inverseDenominatorLeadingTerm","inverse","degreeDifference","scale","term","iterationQuotient","buildMonomial","alphaPower","log","FinderPatternInfo","patternCenters","bottomLeft","topLeft","topRight","getBottomLeft","getTopLeft","getTopRight","AbstractRSSReader_1","Pair_1","Result_1","StringBuilder_1","BarcodeFormat_1","FinderPattern_1","DataCharacter_1","RSSUtils_1","OneDReader_1","RSS14Reader","apply","arguments","possibleLeftPairs","possibleRightPairs","leftPair","decodePair","addOrTally","rightPair","_i","_a","getCount","_b","_c","checkChecksum","constructResult","possiblePairs","pair","found","possiblePairs_1","getValue","incrementCount","push","symbolValue","text","String","buffer","append","checkDigit","digit","charAt","leftPoints","getFinderPattern","rightPoints","RSS_14","Date","getTime","checkValue","getChecksumPortion","targetCheckValue","startEnd","findFinderPattern","parseFoundFinderPattern","resultPointCallback","center","foundPossibleResultPoint","outside","decodeDataCharacter","inside","err","outsideChar","getDataCharacterCounters","getStartEnd","numModules","elementWidth","sum","oddCounts","getOddCounts","evenCounts","getEvenCounts","oddRoundingErrors","getOddRoundingErrors","evenRoundingErrors","getEvenRoundingErrors","count","adjustOddEvenCounts","oddSum","oddChecksumPortion","evenChecksumPortion","evenSum","checksumPortion","group","oddWidest","OUTSIDE_ODD_WIDEST","evenWidest","vOdd","getRSSvalue","vEven","tEven","OUTSIDE_EVEN_TOTAL_SUBSET","gSum","OUTSIDE_GSUM","INSIDE_ODD_WIDEST","tOdd","INSIDE_ODD_TOTAL_SUBSET","INSIDE_GSUM","rightFinderPattern","getDecodeFinderCounters","rowOffset","patternStart","isFinderPattern","firstIsBlack","firstElementStart","firstCounter","copy","parseFinderValue","FINDER_PATTERNS","incrementOdd","decrementOdd","incrementEven","decrementEven","mismatch","oddParityBad","evenParityBad","increment","decrement","DataBlock","numDataCodewords","codewords","getDataBlocks","rawCodewords","version","ecLevel","getTotalCodewords","ecBlocks","getECBlocksForLevel","totalBlocks","ecBlockArray","getECBlocks","ecBlockArray_1","ecBlock","numResultBlocks","ecBlockArray_2","getDataCodewords","numBlockCodewords","getECCodewordsPerBlock","shorterBlocksTotalCodewords","longerBlocksStartAt","numCodewords","shorterBlocksNumDataCodewords","rawCodewordsOffset","iOffset","getNumDataCodewords","getCodewords","UPCEANReader_1","EAN13Reader","decodeMiddleCounters","decodeMiddle","startRange","resultString","lgPatternFound","bestMatch","decodeDigit","L_AND_G_PATTERNS","fromCharCode","counters_1","determineFirstDigit","middleRange","findGuardPattern","MIDDLE_PATTERN","fill","L_PATTERNS","counters_2","getBarcodeFormat","EAN_13","FIRST_DIGIT_ENCODINGS","BrowserCodeReader_1","MultiFormatOneDReader_1","BrowserBarcodeReader","timeBetweenScansMillis","BrowserCodeReader","Exception_1","ReaderException","ByteMatrix","bytes","getArray","setNumber","setBoolean","aByte","fillUint8Array","bytesY","otherBytesY","ECBlocks","ecCodewordsPerBlock","getNumBlocks","ecBlocks_1","getTotalECCodewords","WriterException","ModeValues","Mode","stringValue","characterCountBitsForVersions","FOR_BITS","FOR_VALUE","forBits","mode","getCharacterCountBits","versionNumber","getVersionNumber","getBits","TERMINATOR","NUMERIC","ALPHANUMERIC","STRUCTURED_APPEND","BYTE","ECI","KANJI","FNC1_FIRST_POSITION","FNC1_SECOND_POSITION","HANZI","createJob","getId","schedulerCounter","id","workers","runningWorkers","jobQueue","getQueueLen","getNumWorkers","keys","dequeue","wIds","queue","action","payload","job","w","shift","addWorker","addJob","terminate","wid","InvertedLuminanceSource_1","LuminanceSource_1","RGBLuminanceSource","luminances","dataWidth","dataHeight","top","BYTES_PER_ELEMENT","luminancesUint8Array","Uint8ClampedArray","pixel","r","g2","getRow","getMatrix","area","matrix","inputOffset","outputOffset","isCropSupported","crop","invert","UPCEANExtension2Support","decodeRowStringBuffer","extensionStartRange","extensionData","parseExtensionString","resultPoints","extensionResult","UPC_EAN_EXTENSION","putAllMetadata","checkParity","parseInt","raw","ISSUE_NUMBER","Binarizer_1","BitMatrix_1","GlobalHistogramBinarizer","source","EMPTY","buckets","LUMINANCE_BUCKETS","getLuminanceSource","initArrays","localLuminances","localBuckets","LUMINANCE_SHIFT","blackPoint","estimateBlackPoint","getBlackMatrix","localLuminances_1","createBinarizer","luminanceSize","numBuckets","maxBucketCount","firstPeak","firstPeakSize","secondPeak","secondPeakScore","distanceToBiggest","score","bestValley","bestValleyScore","fromFirst","LUMINANCE_BITS","EncodeHintType_1","CharacterSetECI_1","ReedSolomonEncoder_1","Mode_1","Version_1","MaskUtil_1","ByteMatrix_1","QRCode_1","MatrixUtil_1","StringEncoding_1","BlockPair_1","WriterException_1","Encoder","calculateMaskPenalty","applyMaskPenaltyRule1","applyMaskPenaltyRule2","applyMaskPenaltyRule3","applyMaskPenaltyRule4","encode","content","encoding","DEFAULT_BYTE_MODE_ENCODING","hasEncodingHint","CHARACTER_SET","chooseMode","headerBits","eci","getCharacterSetECIByName","appendECI","appendModeInfo","dataBits","appendBytes","QR_VERSION","getVersionForNumber","bitsNeeded","calculateBitsNeeded","willFit","recommendVersion","headerAndDataBits","numLetters","appendLengthInfo","numDataBytes","terminateBits","finalBits","interleaveWithECBytes","qrCode","setECLevel","setMode","setVersion","dimension","getDimensionForVersion","maskPattern","chooseMaskPattern","setMaskPattern","buildMatrix","setMatrix","provisionalBitsNeeded","provisionalVersion","chooseVersion","getAlphanumericCode","ALPHANUMERIC_TABLE","SJIS","getName","isOnlyDoubleByteKanji","hasNumeric","hasAlphanumeric","isDigit","byte1","minPenalty","MAX_SAFE_INTEGER","bestMaskPattern","NUM_MASK_PATTERNS","penalty","numInputBits","versionNum","numEcBytes","totalInputBytes","capacity","numBitsInLastByte","numPaddingBytes","getNumDataBytesAndNumECBytesForBlockID","numTotalBytes","numRSBlocks","blockID","numDataBytesInBlock","numECBytesInBlock","numRsBlocksInGroup2","numRsBlocksInGroup1","numTotalBytesInGroup1","numTotalBytesInGroup2","numDataBytesInGroup1","numDataBytesInGroup2","numEcBytesInGroup1","numEcBytesInGroup2","dataBytesOffset","maxNumDataBytes","maxNumEcBytes","blocks","numEcBytesInBlock","ecBytes","generateECBytes","blocks_1","block","blocks_2","toEncode","QR_CODE_FIELD_256","appendNumericBytes","appendAlphanumericBytes","append8BitBytes","appendKanjiBytes","getDigit","singleCharacter","cn","num1","num2","num3","code1","code2","uee","length_2","byte2","subtracted","encoded","UTF8","ChecksumException","dependencies","defaultOptions","workerPath","process","TESS_ENV","random","corePath","substring","WebAssembly","ChecksumException_1","FormatException_1","Code39Reader","usingCheckDigit","extendedMode","decodeRowResult","theCounters","decodedChar","lastStart","findAsteriskPattern","nextStart","toNarrowWidePattern","patternToChar","theCounters_1","lastPatternSize","theCounters_2","whiteSpaceAfterEnd","ALPHABET_STRING","indexOf","decodeExtended","CODE_39","ASTERISK_ENCODING","copyWithin","wideCounters","maxNarrowCounter","minCounter","totalWideCountersWidth","CHARACTER_ENCODINGS","decoded","next","ArgumentException","ReedSolomonDecoder_1","BitMatrixParser_1","QRCodeDecoderMetaData_1","DataBlock_1","DecodedBitStreamParser_1","Decoder","rsDecoder","decodeBooleanArray","decodeBitMatrix","parseFromBooleanArray","parser","ex","decodeBitMatrixParser","e","remask","setMirror","readVersion","readFormatInformation","mirror","setOther","getErrorCorrectionLevel","readCodewords","dataBlocks","totalBytes","dataBlocks_1","dataBlock","resultBytes","resultOffset","dataBlocks_2","codewordBytes","correctErrors","codewordsInts","ArithmeticException","ReedSolomonException","BinaryBitmap","binarizer","newSource","rotateCounterClockwise45","FinderPattern","that","ts_custom_error_1","Exception","message","CustomError","UPCEANExtension5Support","CHECK_DIGIT_ENCODINGS","determineCheckDigit","extensionChecksum","s","parseExtension5String","SUGGESTED_PRICE","currency","rawAmount","unitsString","hundredths","hundredthsString","DataMaskValues","DataMask","isMasked","unmaskBitMatrix","values","DATA_MASK_000","DATA_MASK_001","DATA_MASK_010","DATA_MASK_011","DATA_MASK_100","DATA_MASK_101","DATA_MASK_110","DATA_MASK_111","QRCodeDecoderMetaData","mirrored","isMirrored","applyMirroredCorrection","Arrays","first","second","a_1","element","copyOf","original","newLength","min","binarySearch","ar","el","comparator","numberComparator","m","n","k","cmp","root","factory","resolveUrl","numUrls","base","document","createElement","href","head","getElementsByTagName","insertBefore","firstChild","resolved","removeChild","GlobalHistogramBinarizer_1","HybridBinarizer","MINIMUM_DIMENSION","subWidth","BLOCK_SIZE_POWER","BLOCK_SIZE_MASK","subHeight","blackPoints","calculateBlackPoints","newMatrix","calculateThresholdForBlock","maxYOffset","BLOCK_SIZE","maxXOffset","yoffset","top_1","cap","xoffset","blackRow","average","thresholdBlock","threshold","stride","yy","xx","MIN_DYNAMIC_RANGE","averageNeighborBlackPoint","Code39Reader_1","Code128Reader_1","RSS14Reader_1","ITFReader_1","MultiFormatUPCEANReader_1","MultiFormatOneDReader","readers","possibleFormats","POSSIBLE_FORMATS","useCode39CheckDigit","ASSUME_CODE_39_CHECK_DIGIT","includes","EAN_8","CODE_128","ITF","reader","EncodeHintType","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","ArgumentException_1","BinaryBitmap_1","HybridBinarizer_1","HTMLCanvasElementLuminanceSource_1","VideoInputDevice_1","_hints","_stopContinuousDecode","_stopAsyncDecode","_timeBetweenDecodingAttempts","navigator","enumerable","configurable","hasNavigator","mediaDevices","isMediaDevicesSuported","enumerateDevices","millis","listVideoInputDevices","devices","videoDevices","devices_1","device","kind","deviceId","groupId","videoDevice","canEnumerateDevices","getVideoInputDevices","VideoInputDevice","findDeviceById","find","decodeFromInputVideoDevice","videoSource","decodeOnceFromVideoDevice","videoConstraints","constraints","exact","facingMode","video","decodeOnceFromConstraints","stream","getUserMedia","decodeOnceFromStream","attachStreamToVideo","decodeOnce","decodeFromInputVideoDeviceContinuously","callbackFn","decodeFromVideoDevice","decodeFromConstraints","decodeFromStream","decodeContinuously","stopAsyncDecode","stopContinuousDecode","videoElement","prepareVideoElement","addVideoSource","playVideoOnLoadAsync","playVideoOnLoad","videoEndedListener","stopStreams","videoCanPlayListener","tryPlayVideo","addEventListener","isVideoPlaying","currentTime","paused","ended","readyState","console","warn","play","getMediaElement","mediaElementId","type","mediaElement","getElementById","nodeName","toLowerCase","decodeFromImage","url","decodeFromImageUrl","decodeFromImageElement","decodeFromVideo","decodeFromVideoUrl","decodeFromVideoElement","decodeFromVideoContinuously","decodeFromVideoUrlContinuously","decodeFromVideoElementContinuously","task","prepareImageElement","imageElement","isImageLoaded","_decodeOnLoadImage","_decodeFromVideoElementSetup","_decodeOnLoadVideo","_decodeOnLoadVideoContinuously","decodeTask","imageLoadedListener","img","complete","naturalWidth","imageSource","HTMLImageElement","HTMLVideoElement","setAttribute","retryIfNotFound","retryIfChecksumOrFormatError","loop","ifNotFound","isChecksumOrFormatError","ifChecksumOrFormat","setTimeout","isNotFound","binaryBitmap","createBinaryBitmap","decodeBitmap","ctx","getCaptureCanvasContext","drawImageOnCanvas","canvas","getCaptureCanvas","luminanceSource","HTMLCanvasElementLuminanceSource","hybridBinarizer","captureCanvasContext","elem","getContext","captureCanvas","createCaptureCanvas","canvasElementContext","srcElement","drawImage","_destroyCaptureCanvas","canvasElement","videoWidth","videoHeight","naturalHeight","style","getVideoTracks","stop","_destroyVideoElement","_destroyImageElement","removeEventListener","videoPlayingEventListener","cleanVideoSource","removeAttribute","srcObject","URL","createObjectURL","FormatInformation_1","DataMask_1","BitMatrixParser","bitMatrix","parsedFormatInfo","formatInfoBits1","copyBit","formatInfoBits2","jMin","decodeFormatInformation","parsedVersion","versionBits","ijMin","theParsedVersion","decodeVersionInformation","isMirror","formatInfo","dataMask","getDataMask","functionPattern","buildFunctionPattern","readingUp","currentByte","bitsRead","col","isBrowser","options","opts","StringBuilder","deleteCharAt","substr","setCharAt","insert","ErrorCorrectionLevelValues","ErrorCorrectionLevel","fromString","L","M","Q","H","UPCEANExtension5Support_1","UPCEANExtension2Support_1","UPCEANExtensionSupport","EXTENSION_START_PATTERN","fiveSupport","twoSupport","worker","packet","postMessage","DESCRIPTORS","getKeys","toIObject","isEnum","isEntries","it","O","ResultMetadataType","UnsupportedOperationException","DecoderResult_1","BitSource_1","__1","IllegalStateException_1","DecodedBitStreamParser","resultTrailer","byteSegments","ASCII_ENCODE","decodeAsciiSegment","C40_ENCODE","decodeC40Segment","TEXT_ENCODE","decodeTextSegment","ANSIX12_ENCODE","decodeAnsiX12Segment","EDIFACT_ENCODE","decodeEdifactSegment","BASE256_ENCODE","decodeBase256Segment","PAD_ENCODE","available","upperShift","oneByte","readBits","cValues","firstByte","parseTwoBytes","cValue","C40_BASIC_SET_CHARS","c40char","C40_SHIFT2_SET_CHARS","TEXT_BASIC_SET_CHARS","textChar","TEXT_SHIFT2_SET_CHARS","TEXT_SHIFT3_SET_CHARS","secondByte","fullBitValue","edifactValue","bitsLeft","getBitOffset","codewordPosition","getByteOffset","d1","unrandomize255State","StringUtils","ISO88591","randomizedBase256Codeword","base256CodewordPosition","pseudoRandomNumber","tempVariable","DataMatrixReader_1","BrowserDatamatrixCodeReader","StringUtils_1","symbolSequence","parityData","currentCharacterSetECI","fc1InEffect","modeBits","parseECIValue","getCharacterSetECIByValue","subset","countHanzi","GB2312_SUBSET","decodeHanziSegment","decodeNumericSegment","decodeAlphanumericSegment","decodeByteSegment","decodeKanjiSegment","iae","twoBytes","assembledTwoBytes","GB2312","SHIFT_JIS","readBytes","guessEncoding","toAlphaNumericChar","ALPHANUMERIC_CHARS","nextTwoCharsBits","threeDigitsBits","twoDigitsBits","digitBits","secondThirdBytes","langPath","workerBlobURL","logger","render","_vm","_h","$createElement","_self","staticClass","windowWidth","windowHeight","ref","attrs","class","currentLocale","_v","_s","Title","domProps","Detail","backgroundColor","color","textColor","on","close","lbl","btn","submit","scopedSlots","_u","fn","$event","Log","_e","staticRenderFns","component","DecoderResult","rawBytes","structuredAppendSequenceNumber","structuredAppendParity","getRawBytes","getNumBits","setNumBits","getText","getByteSegments","getECLevel","getErrorsCorrected","errorsCorrected","setErrorsCorrected","getErasures","erasures","setErasures","getOther","hasStructuredAppend","getStructuredAppendParity","getStructuredAppendSequenceNumber","isElectron","window","versions","electron","userAgent","ecCodewords","ecBlocks1","ecBlocks2","getECCodewords","ECB","dataCodewords","Version","symbolSizeRows","symbolSizeColumns","dataRegionSizeRows","dataRegionSizeColumns","ecbArray","ecbArray_1","totalCodewords","getSymbolSizeRows","getSymbolSizeColumns","getDataRegionSizeRows","getDataRegionSizeColumns","getVersionForDimensions","numRows","numColumns","VERSIONS","buildVersions","GridSampler","checkAndNudgePoints","nudged","META","isObject","has","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","fastKey","getWeak","onFreeze","meta","NEED","KEY","mappingBitMatrix","extractDataRegion","readMappingMatrix","getVersion","Int8Array","column","corner1Read","corner2Read","corner3Read","corner4Read","readUtah","readCorner4","readCorner3","readCorner2","readCorner1","readModule","numDataRegionsRow","numDataRegionsColumn","sizeDataRegionRow","sizeDataRegionColumn","bitMatrixWithoutAlignment","dataRegionRow","dataRegionRowOffset","dataRegionColumn","dataRegionColumnOffset","readRowOffset","writeRowOffset","readColumnOffset","writeColumnOffset","Code128Reader","findStartPattern","bestVariance","MAX_AVG_VARIANCE","startCode","CODE_START_A","CODE_START_C","CODE_PATTERNS","MAX_INDIVIDUAL_VARIANCE","splice","decodeCode","codeSet","convertFNC1","ASSUME_GS1","startPatternInfo","currentRawCodesIndex","rawCodes","CODE_CODE_A","CODE_START_B","CODE_CODE_B","CODE_CODE_C","isNextShifted","lastCode","checksumTotal","multiplier","lastCharacterWasPrintable","upperMode","shiftUpperMode","unshift","CODE_STOP","reduce","previous","current","CODE_FNC_1","CODE_FNC_2","CODE_FNC_3","CODE_FNC_4_A","CODE_SHIFT","CODE_FNC_4_B","resultLength","rawCodesSize","FinderPatternInfo_1","FinderPatternFinder","possibleCenters","crossCheckStateCount","getImage","getPossibleCenters","pureBarcode","PURE_BARCODE","maxI","maxJ","iSkip","MAX_MODULES","MIN_SKIP","stateCount","currentState","foundPatternCross","confirmed","handlePossibleCenter","hasSkipped","haveMultiplyConfirmedCenters","rowSkip","findRowSkip","patternInfo","selectBestPatterns","orderBestPatterns","centerFromEnd","totalModuleSize","maxVariance","getCrossCheckStateCount","crossCheckDiagonal","startI","centerJ","maxCount","originalStateCountTotal","stateCountTotal","crossCheckVertical","NaN","crossCheckHorizontal","startJ","centerI","isNaN","point","firstConfirmedCenter","CENTER_QUORUM","confirmedCount","getEstimatedModuleSize","totalDeviation","startSize","square","stdDev","sqrt","sort","center1","center2","dA","dB","limit","possibleCenters_1","possibleCenter","GridSampler_1","PerspectiveTransform_1","DefaultGridSampler","sampleGrid","dimensionX","dimensionY","p1ToX","p1ToY","p2ToX","p2ToY","p3ToX","p3ToY","p4ToX","p4ToY","p1FromX","p1FromY","p2FromX","p2FromY","p3FromX","p3FromY","p4FromX","p4FromY","transform","quadrilateralToQuadrilateral","sampleGridWithTransform","Float32Array","iValue","transformPoints","aioobe","ErrorCorrectionLevel_1","FormatInformation","errorCorrectionLevel","numBitsDiffering","bitCount","maskedFormatInfo1","maskedFormatInfo2","doDecodeFormatInformation","FORMAT_INFO_MASK_QR","bestDifference","bestFormatInfo","FORMAT_INFO_DECODE_LOOKUP","decodeInfo","targetInfo","bitsDifference","GenericGFPoly_1","ArithmeticException_1","GenericGF","primitive","generatorBase","expTable","logTable","zero","one","getOne","exp","getGeneratorBase","toHexString","AZTEC_DATA_12","AZTEC_DATA_10","AZTEC_DATA_6","AZTEC_PARAM","DATA_MATRIX_FIELD_256","AZTEC_DATA_8","MAXICODE_FIELD_64","jobCounter","_id","canBeISO88591","canBeShiftJIS","canBeUTF8","utf8BytesLeft","utf2BytesChars","utf3BytesChars","utf4BytesChars","sjisBytesLeft","sjisKatakanaChars","sjisCurKatakanaWordLength","sjisCurDoubleBytesWordLength","sjisMaxKatakanaWordLength","sjisMaxDoubleBytesWordLength","isoHighOther","utf8bom","ASSUME_SHIFT_JIS","PLATFORM_DEFAULT_ENCODING","ISO8859_1","EUC_JP","resolvePaths","circularize","defaultOEM","spawnWorker","terminateWorker","onMessage","send","workerCounter","_options","errorHandler","resolves","rejects","setResolve","res","setReject","rej","startJob","jobId","workerId","load","writeText","path","method","args","readText","removeFile","FS","loadLanguage","langs","initialize","oem","setParameters","params","recognize","getPDF","title","textonly","status","FormatException","IllegalStateException","DetectorResult_1","GridSamplerInstance_1","WhiteRectangleDetector_1","Detector","rectangleDetector","cornerPoints","pointA","pointB","pointC","pointD","transitions","transitionsBetween","ResultPointsAndTransitions","resultPointsAndTransitionsComparator","lSideOne","lSideTwo","pointCount","getFrom","getTo","maybeTopLeft","maybeBottomRight","entries","corners","bottomRight","correctedTopRight","dimensionTop","getTransitions","dimensionRight","correctTopRightRectangular","correctTopRight","dimensionCorrected","corr","norm","cos","sin","c1","c2","isValid","l1","l2","table","sampler","getInstance","to","fromX","fromY","toX","toY","steep","dx","dy","ystep","xstep","inBlack","isBlack","o1","o2","result_alert","afterCloseModal","slot","desc","backgroundImage","storeinfo","image_header","imgEarnPoint","earnpoint","enter_code_to_earn_point","checkCode_1","enter_code","inputCode1","model","callback","$$v","code_1","expression","isPH","isUseScanCode","scanCode","btn_scan","point_1","used_code","duplicate_code","incorrect_code","blocked_code","checkCode_2","inputCode2","code_2","point_2","checkCode_3","inputCode3","code_3","point_3","checkCode_4","inputCode4","code_4","point_4","checkCode_5","inputCode5","code_5","point_5","explanation","handleSubmit","submit_two","_m","you_have","textPoint","profile_url","showError","dataError","ChangeError","isScanCode","scanInputNumber","storeStyle","handleScanResult","handleScanError","config","Vue","bzbsConfig","token","Account","getCacheToken","postEarnCode","obj","codes","strUrl","bzbModuleUrl","BzbsApi","connectBzbsPost","postCouponProcess","scan_qr_modal","onClose","onDecode","show","showscan","uploadFile","uploadBarcode","onError","onChangeInput","directives","name","rawName","isLoading","AlignmentPattern_1","AlignmentPatternFinder","startX","startY","middleI","iGen","handler","onmessage","logging","setLogging","_logging","env","importScripts","Decoder_1","Detector_1","DataMatrixReader","decoder","decoderResult","extractPureBits","NO_POINTS","detectorResult","getPoints","DATA_MATRIX","currentTimeMillis","BYTE_SEGMENTS","ERROR_CORRECTION_LEVEL","leftTopBlack","getTopLeftOnBit","rightBottomBlack","getBottomRightOnBit","bottom","matrixWidth","matrixHeight","nudge","DetectorResult","MatrixUtil","clearMatrix","embedBasicPatterns","embedTypeInfo","maybeEmbedVersionInfo","embedDataBits","embedPositionDetectionPatternsAndSeparators","embedDarkDotAtLeftBottomCorner","maybeEmbedPositionAdjustmentPatterns","embedTimingPatterns","typeInfoBits","makeTypeInfoBits","coordinates","TYPE_INFO_COORDINATES","x1","y1","x2","y2","versionInfoBits","makeVersionInfoBits","bitIndex","direction","isEmpty","getDataMaskBit","findMSBSet","numberOfLeadingZeros","calculateBCHCode","poly","msbSetInPoly","isValidMaskPattern","typeInfo","bchCode","TYPE_INFO_POLY","maskBits","TYPE_INFO_MASK_PATTERN","VERSION_INFO_POLY","embedHorizontalSeparationPattern","xStart","yStart","embedVerticalSeparationPattern","embedPositionAdjustmentPattern","patternY","POSITION_ADJUSTMENT_PATTERN","embedPositionDetectionPattern","POSITION_DETECTION_PATTERN","pdpWidth","hspWidth","vspSize","POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE","$export","$values","S","EAN8Reader","ITFReader","narrowLineWidth","decodeStart","endRange","decodeEnd","allowedLengths","ALLOWED_LENGTHS","DEFAULT_ALLOWED_LENGTHS","lengthOK","maxAllowedLength","allowedLengths_1","resultReturn","payloadStart","payloadEnd","counterDigitPair","counterBlack","counterWhite","twoK","counterDigit","endStart","skipWhiteSpace","startPattern","START_PATTERN","validateQuietZone","quietCount","endPattern","END_PATTERN_REVERSED","NotFoundException","PATTERNS","W","N","Float_1","ResultPoint","otherPoint","floatToIntBits","patterns","zeroOneDistance","oneTwoDistance","zeroTwoDistance","crossProductZ","pattern1","pattern2","FinderPatternFinder_1","AlignmentPatternFinder_1","getResultPointCallback","finder","info","processFinderPatternInfo","calculateModuleSize","computeDimension","getProvisionalVersionForDimension","modulesBetweenFPCenters","alignmentPattern","getAlignmentPatternCenters","bottomRightX","bottomRightY","correctionToTopLeft","estAlignmentX","estAlignmentY","findAlignmentInRegion","createTransform","sourceBottomRightX","sourceBottomRightY","dimMinusThree","tltrCentersDimension","tlblCentersDimension","calculateModuleSizeOneWay","otherPattern","moduleSizeEst1","sizeOfBlackWhiteBlackRunBothWays","moduleSizeEst2","sizeOfBlackWhiteBlackRun","otherToX","otherToY","state","xLimit","realX","realY","overallEstModuleSize","allowanceFactor","allowance","alignmentAreaLeftX","alignmentAreaRightX","alignmentAreaTopY","alignmentAreaBottomY","alignmentFinder","PlanarYUVLuminanceSource","yuvData","reverseHorizontal","renderThumbnail","THUMBNAIL_SCALE_FACTOR","pixels","yuv","grey","getThumbnailWidth","getThumbnailHeight","rowStart","Binarizer","Encoder_1","QRCodeWriter","contents","format","QR_CODE","quietZone","QUIET_ZONE_SIZE","ERROR_CORRECTION","MARGIN","renderResult","input","inputWidth","inputHeight","qrWidth","qrHeight","outputWidth","outputHeight","multiple","leftPadding","topPadding","output","inputY","outputY","inputX","outputX","setRegion","fixProto","fixStack","captureStackTrace","_extendStatics","_newTarget","__spreadArray","pack","l","concat","customErrorFactory","parent","bind","defineProperties","writable","Result","timestamp","resultMetadata","addResultPoints","newPoints","oldPoints","allPoints","getTimestamp","Float","ReedSolomonException_1","ReedSolomonDecoder","received","twoS","syndromeCoefficients","noError","evalResult","syndrome","sigmaOmega","runEuclideanAlgorithm","sigma","omega","errorLocations","findErrorLocations","errorMagnitudes","findErrorMagnitudes","position","R","rLast","tLast","rLastLast","tLastLast","q","dltInverse","degreeDiff","sigmaTildeAtZero","errorLocator","numErrors","errorEvaluator","xiInverse","denominator","termPlus1","combinedCount","ReedSolomonEncoder","cachedGenerators","buildGenerator","lastGenerator","nextGenerator","infoCoefficients","numZeroCoefficients","OEM","DEFAULT","ECBlocks_1","ECB_1","alignmentPatternCenters","bestVersion","VERSION_DECODE_INFO","targetVersion","UnsupportedOperationException_1","StringEncoding","encodingName","TextDecoder","decodeFallback","EncoderConstructor","TextEncoder","NONSTANDARD_allowLegacyEncoding","encodeFallback","encodingCharacterSet","characterSet","ASCII","h","decodeURIComponent","UnicodeBigUnmarked","Uint16Array","encodedURIstring","btoa","unescape","encodeURIComponent","charList","uintArray","MultiFormatReader_1","BrowserMultiFormatReader","setHints","decodeWithState","CharacterSetValueIdentifiers","CharacterSetECI","valueIdentifier","valuesParam","otherEncodingNames","VALUE_IDENTIFIER_TO_ECI","NAME_TO_ECI","VALUES_TO_ECI","otherEncodingNames_1","otherName","getValueIdentifier","Cp437","ISO8859_2","ISO8859_3","ISO8859_4","ISO8859_5","ISO8859_6","ISO8859_7","ISO8859_8","ISO8859_9","ISO8859_10","ISO8859_11","ISO8859_13","ISO8859_14","ISO8859_15","ISO8859_16","Cp1250","Cp1251","Cp1252","Cp1256","Big5","GB18030","EUC_KR","System","srcPos","dest","destPos","now","DefaultGridSampler_1","GridSamplerInstance","setGridSampler","newGridSampler","gridSampler","Pair","finderPattern","BarcodeFormat","Worker","TYPE","_t","UPCEANExtensionSupport_1","UPCEANReader","arr","widths","reversedWidths","findStartGuardPattern","foundStart","START_END_PATTERN","quietStart","startGuardRange","resultPoint_1","budello","resultPoint_2","resultPoint_3","quietEnd","resultPoint","decodeResult","extensionLength","allowedExtensions","ALLOWED_EAN_EXTENSIONS","valid","UPC_A","checkStandardUPCEANChecksum","check","getStandardUPCEANChecksum","whiteFirst","END_PATTERN","db","dataBlocksCount","createWorker","finally","Integer","MIN_VALUE_32_BITS","dP","redefineAll","anInstance","forOf","$iterDefine","setSpecies","validate","SIZE","getEntry","entry","_f","getConstructor","wrapper","NAME","IS_MAP","ADDER","C","iterable","_l","prev","callbackfn","def","setStrong","iterated","_k","TESSERACT_ONLY","LSTM_ONLY","TESSERACT_LSTM_COMBINED","LuminanceSource","sourceRow","luminance","createScheduler","Tesseract","PSM","MaskUtil","applyMaskPenaltyRule1Internal","arrayY","N2","numPenalties","isWhiteHorizontal","isWhiteVertical","N3","rowArray","numDarkCells","numTotalCells","fivePercentVariances","N4","intermediate","isHorizontal","iLimit","jLimit","numSameBitCells","prevBit","N1","QRCodeWriter_1","MultiFormatWriter","writer","tempCanvasElement","makeBufferFromCanvasImageData","imageData","getImageData","toGrayscaleBuffer","imageBuffer","grayscaleBuffer","gray","alpha","pixelR","pixelG","pixelB","rotate","getTempCanvasElement","ownerDocument","angle","tempContext","angleRadians","DEGREE_TO_RADIANS","newWidth","ceil","newHeight","translate","PI","IllegalArgumentException","QRCodeReader","getDecoder","STRUCTURED_APPEND_SEQUENCE","STRUCTURED_APPEND_PARITY","nudgedTooFarRight","nudgedTooFarDown","EAN13Reader_1","EAN8Reader_1","MultiFormatUPCEANReader","RSSUtils","maxWidth","noNarrow","widths_1","val","narrowMask","elements","bar","elmWidth","subVal","combins","lessVal","mxwElement","maxDenom","minDenom","AbstractRSSReader","decodeFinderCounters","dataCharacterCounters","finderPatterns","errors","biggestError","firstTwoSum","ratio","MIN_FINDER_PATTERN_RATIO","MAX_FINDER_PATTERN_RATIO","maxCounter","MIN_SAFE_INTEGER","MathUtils","xDiff","yDiff","DataCharacter","toJSON","DecodeHintType","InvertedLuminanceSource","delegate","invertedMatrix","QRCodeReader_1","ReaderException_1","MultiFormatReader","decodeInternal","formats","addOneDReader","some","UPC_E","CODABAR","CODE_93","RSS_EXPANDED","global","redefine","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","iter","BUGGY_ZERO","$instance","G","F","page","paragraphs","lines","words","symbols","paragraph","line","word","sym","__export","MultiFormatWriter_1","PlanarYUVLuminanceSource_1","RGBLuminanceSource_1","BitMatrix","BitSource","PerspectiveTransform","QRCodeDecoderErrorCorrectionLevel","QRCodeEncoder","QRCodeEncoderQRCode","MultiformatReader","QRCode","getMode","getMaskPattern","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_BLOCK","SINGLE_LINE","SINGLE_WORD","CIRCLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD","self","modules","installedModules","__webpack_require__","moduleId","getter","__esModule","object","property","createEmpty","addOrSubtractGF","genBase","multiplyPoly","binarizer_1","decoder_1","extractor_1","locator_1","scan","locations","locate","locations_1","location_1","extracted","extract","binaryData","chunks","location","topRightCorner","mappingFunction","topLeftCorner","bottomRightCorner","bottomLeftCorner","topRightFinderPattern","topLeftFinderPattern","bottomLeftFinderPattern","bottomRightAlignmentPattern","inversionAttempts","jsQR","providedOptions","opt","shouldInvert","tryInvertedFirst","binarize","binarized","inverted","REGION_SIZE","numBetween","Matrix","returnInverted","greyscalePixels","horizontalRegionCount","verticalRegionCount","verticalRegion","hortizontalRegion","Infinity","pixelLumosity","pow","xRegion","yRegion","lum","decodeData_1","reedsolomon_1","version_1","pushBit","byte","FORMAT_INFO_TABLE","DATA_MASKS","buildFunctionPatternMask","functionPatternMask","columnIndex","columnOffset","topRightVersionBits","bottomLeftVersionBits","VERSIONS_1","infoBits","difference","topLeftFormatInfoBits","topRightBottomRightFormatInfoBits","FORMAT_INFO_TABLE_1","ecInfo","errorCorrectionLevels","numBlocks","dataCodewordsPerBlock","shortBlockSize","smallBlockCount","largeBlockCount","decodeMatrix","resultIndex","dataBlocks_3","correctedBytes","ModeByte","BitStream_1","shiftJISTable_1","decodeNumeric","characterCountSize","num","AlphanumericCharacterCodes","decodeAlphanumeric","decodeByte","join","decodeKanji","shiftJISTable","_d","BitStream","Terminator","assignmentNumber","Numeric","numericResult","Alphanumeric","alphanumericResult","Byte","byteResult","Kanji","kanjiResult","byteOffset","toRead","bitsToNotRead","errorCount","outputBytes","evaluation","squareToQuadrilateral","p1","p2","p3","p4","dx3","dy3","a11","a12","a13","a21","a22","a23","a31","a32","a33","dx1","dx2","dy1","dy2","quadrilateralToSquare","sToQ","times","qToS","xValue","yValue","sourcePixel","MAX_FINDERPATTERNS_TO_SEARCH","MIN_QUAD_RATIO","MAX_QUAD_RATIO","reorderFinderPatterns","pattern3","twoThreeDistance","oneThreeDistance","countBlackWhiteRun","topDimension","sideDimension","countBlackWhiteRunTowardsPoint","origin","switchPoints","currentPixel","distances","rise","run","towardsEnd","awayFromEnd","middleValue","scoreBlackWhiteRun","sequence","ratios","averageSize","scorePattern","horizontalRun","verticalRun","topLeftPoint","topLeftBottomRightRun","bottomLeftPoint","bottomLeftTopRightRun","horzError","vertError","diagDownError","diagUpError","ratioError","avgSize","sizeError","recenterLocation","leftX","rightX","topY","bottomY","finderPatternQuads","activeFinderPatternQuads","alignmentPatternQuads","activeAlignmentPatternQuads","scans","_loop_2","averageFinderPatternBlocksize","validFinderPattern","averageAlignmentPatternBlocksize","validAlignmentPattern","endX_1","startX_1","endX","matchingQuads","filter","endX_2","startX_2","finderPatternGroups","lengths","otherPoints","ii","alignment","findAlignmentPattern","midTopRight","midTopLeft","midBottomLeft","centeredAlignment","bottomRightFinderPattern","modulesBetweenFinderPatterns","expectedAlignmentPattern","alignmentPatterns","sizeScore","longerBlocksTotalCodewords","longerBlocksNumDataCodewords","specialVersion","numLongerBlocks","jOffset","strong","MAP","BrowserQRCodeReader","BrowserQRCodeSvgWriter","write","writeToDom","containerElement","querySelector","svgElement","appendChild","createSVGElement","svgRectElement","createSvgRectElement","createElementNS","SVG_NS","setAttributeNS","rect","x0","y0","x3","y3","x0p","y0p","x1p","y1p","x2p","y2p","x3p","y3p","transformPointsWithValues","xValues","yValues","buildAdjoint","prefix","cnt","rowSize","imageI","parseFromString","stringRepresentation","setString","unsetString","bitsPos","rowStartPos","rowLength","nRows","pos","unset","getRowSize","setRow","rotate180","topRow","bottomRow","getEnclosingRectangle","x32","theBits","hash","lineSeparator","buildToString"],"mappings":"8HAgBAA,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAGtD,IAAIC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QACnBC,EAA6B,EAAQ,QAMrCC,EAAmD,WAcnD,SAASA,EAASC,EAAcC,QACxBC,IAAcF,GACdG,KAAKH,KAAO,EACZG,KAAKF,KAAO,IAAIG,WAAW,KAG3BD,KAAKH,KAAOA,EAERG,KAAKF,UADLC,IAAcD,GAAQ,OAASA,EACnBF,EAASM,UAAUL,GAGnBC,GA+SxB,OA3SAF,EAASO,UAAUC,QAAU,WACzB,OAAOJ,KAAKH,MAEhBD,EAASO,UAAUE,eAAiB,WAChC,OAAOC,KAAKC,OAAOP,KAAKH,KAAO,GAAK,IAExCD,EAASO,UAAUK,eAAiB,SAAUX,GAC1C,GAAIA,EAA0B,GAAnBG,KAAKF,KAAKW,OAAa,CAC9B,IAAIC,EAAUd,EAASM,UAAUL,GACjCL,EAASmB,QAAQC,UAAUZ,KAAKF,KAAM,EAAGY,EAAS,EAAGV,KAAKF,KAAKW,QAC/DT,KAAKF,KAAOY,IAOpBd,EAASO,UAAUU,IAAM,SAAUC,GAC/B,OAA+D,KAAvDd,KAAKF,KAAKQ,KAAKC,MAAMO,EAAI,KAAQ,IAAU,GAAJA,KAOnDlB,EAASO,UAAUY,IAAM,SAAUD,GAC/Bd,KAAKF,KAAKQ,KAAKC,MAAMO,EAAI,MAAQ,IAAU,GAAJA,IAO3ClB,EAASO,UAAUa,KAAO,SAAUF,GAChCd,KAAKF,KAAKQ,KAAKC,MAAMO,EAAI,MAAQ,IAAU,GAAJA,IAQ3ClB,EAASO,UAAUc,WAAa,SAAUC,GACtC,IAAIrB,EAAOG,KAAKH,KAChB,GAAIqB,GAAQrB,EACR,OAAOA,EAEX,IAAIC,EAAOE,KAAKF,KACZqB,EAAab,KAAKC,MAAMW,EAAO,IAC/BE,EAActB,EAAKqB,GAEvBC,MAAkB,IAAa,GAAPF,IAAgB,GACxC,IAAIT,EAASX,EAAKW,OAClB,MAAuB,IAAhBW,EAAmB,CACtB,KAAMD,IAAeV,EACjB,OAAOZ,EAEXuB,EAActB,EAAKqB,GAEvB,IAAIE,EAAuB,GAAbF,EAAmB1B,EAAUkB,QAAQW,sBAAsBF,GACzE,OAAOC,EAASxB,EAAOA,EAAOwB,GAOlCzB,EAASO,UAAUoB,aAAe,SAAUL,GACxC,IAAIrB,EAAOG,KAAKH,KAChB,GAAIqB,GAAQrB,EACR,OAAOA,EAEX,IAAIC,EAAOE,KAAKF,KACZqB,EAAab,KAAKC,MAAMW,EAAO,IAC/BE,GAAetB,EAAKqB,GAExBC,MAAkB,IAAa,GAAPF,IAAgB,GACxC,IAAIT,EAASX,EAAKW,OAClB,MAAuB,IAAhBW,EAAmB,CACtB,KAAMD,IAAeV,EACjB,OAAOZ,EAEXuB,GAAetB,EAAKqB,GAExB,IAAIE,EAAuB,GAAbF,EAAmB1B,EAAUkB,QAAQW,sBAAsBF,GACzE,OAAOC,EAASxB,EAAOA,EAAOwB,GASlCzB,EAASO,UAAUqB,QAAU,SAAUV,EAAWJ,GAC9CV,KAAKF,KAAKQ,KAAKC,MAAMO,EAAI,KAAOJ,GAQpCd,EAASO,UAAUsB,SAAW,SAAUC,EAAeC,GACnD,GAAIA,EAAMD,GAASA,EAAQ,GAAKC,EAAM3B,KAAKH,KACvC,MAAM,IAAIF,EAA2BgB,QAEzC,GAAIgB,IAAQD,EAAZ,CAGAC,IAIA,IAHA,IAAIC,EAAWtB,KAAKC,MAAMmB,EAAQ,IAC9BG,EAAUvB,KAAKC,MAAMoB,EAAM,IAC3B7B,EAAOE,KAAKF,KACPgB,EAAIc,EAAUd,GAAKe,EAASf,IAAK,CACtC,IAAIgB,EAAWhB,EAAIc,EAAW,EAAY,GAARF,EAC9BK,EAAUjB,EAAIe,EAAU,GAAW,GAANF,EAE7BK,GAAQ,GAAKD,IAAY,GAAKD,GAClChC,EAAKgB,IAAMkB,KAMnBpC,EAASO,UAAU8B,MAAQ,WAGvB,IAFA,IAAIC,EAAMlC,KAAKF,KAAKW,OAChBX,EAAOE,KAAKF,KACPgB,EAAI,EAAGA,EAAIoB,EAAKpB,IACrBhB,EAAKgB,GAAK,GAYlBlB,EAASO,UAAUgC,QAAU,SAAUT,EAAeC,EAAapC,GAC/D,GAAIoC,EAAMD,GAASA,EAAQ,GAAKC,EAAM3B,KAAKH,KACvC,MAAM,IAAIF,EAA2BgB,QAEzC,GAAIgB,IAAQD,EACR,OAAO,EAEXC,IAIA,IAHA,IAAIC,EAAWtB,KAAKC,MAAMmB,EAAQ,IAC9BG,EAAUvB,KAAKC,MAAMoB,EAAM,IAC3B7B,EAAOE,KAAKF,KACPgB,EAAIc,EAAUd,GAAKe,EAASf,IAAK,CACtC,IAAIgB,EAAWhB,EAAIc,EAAW,EAAY,GAARF,EAC9BK,EAAUjB,EAAIe,EAAU,GAAW,GAANF,EAE7BK,GAAQ,GAAKD,IAAY,GAAKD,GAAY,WAI9C,IAAKhC,EAAKgB,GAAKkB,MAAWzC,EAAQyC,EAAO,GACrC,OAAO,EAGf,OAAO,GAEXpC,EAASO,UAAUiC,UAAY,SAAUC,GACrCrC,KAAKQ,eAAeR,KAAKH,KAAO,GAC5BwC,IACArC,KAAKF,KAAKQ,KAAKC,MAAMP,KAAKH,KAAO,MAAQ,IAAkB,GAAZG,KAAKH,OAExDG,KAAKH,QAUTD,EAASO,UAAUmC,WAAa,SAAU/C,EAAegD,GACrD,GAAIA,EAAU,GAAKA,EAAU,GACzB,MAAM,IAAI5C,EAA2BgB,QAAQ,qCAEjDX,KAAKQ,eAAeR,KAAKH,KAAO0C,GAChBvC,KAAKoC,UACrB,IADA,IACSI,EAAcD,EAASC,EAAc,EAAGA,IAC7CxC,KAAKoC,UAAoD,KAAxC7C,GAAUiD,EAAc,EAAM,KAGvD5C,EAASO,UAAUsC,eAAiB,SAAUC,GAC1C,IAAIC,EAAYD,EAAM7C,KACtBG,KAAKQ,eAAeR,KAAKH,KAAO8C,GAChB3C,KAAKoC,UACrB,IADA,IACStB,EAAI,EAAGA,EAAI6B,EAAW7B,IAC3Bd,KAAKoC,UAAUM,EAAM7B,IAAIC,KAGjClB,EAASO,UAAUyC,IAAM,SAAUF,GAC/B,GAAI1C,KAAKH,OAAS6C,EAAM7C,KACpB,MAAM,IAAIF,EAA2BgB,QAAQ,qBAGjD,IADA,IAAIb,EAAOE,KAAKF,KACPgB,EAAI,EAAG+B,EAAW/C,EAAKW,OAAQK,EAAI+B,EAAU/B,IAGlDhB,EAAKgB,IAAM4B,EAAM5C,KAAKgB,IAW9BlB,EAASO,UAAU2C,QAAU,SAAUC,EAAmBC,EAAOC,EAAgBC,GAC7E,IAAK,IAAIpC,EAAI,EAAGA,EAAIoC,EAAUpC,IAAK,CAE/B,IADA,IAAIqC,EAAU,EACLC,EAAI,EAAGA,EAAI,EAAGA,IACfpD,KAAKa,IAAIkC,KACTI,GAAW,GAAM,EAAIC,GAEzBL,IAEJC,EAAMC,EAASnC,GAAgBqC,IAOvCvD,EAASO,UAAUkD,YAAc,WAC7B,OAAOrD,KAAKF,MAKhBF,EAASO,UAAUmD,QAAU,WAMzB,IALA,IAAI5C,EAAU,IAAIT,WAAWD,KAAKF,KAAKW,QAEnC8C,EAAMjD,KAAKC,OAAOP,KAAKH,KAAO,GAAK,IACnC2D,EAAaD,EAAM,EACnBzD,EAAOE,KAAKF,KACPgB,EAAI,EAAGA,EAAI0C,EAAY1C,IAAK,CACjC,IAAI2C,EAAI3D,EAAKgB,GACb2C,EAAMA,GAAK,EAAK,YAAoB,WAAJA,IAAmB,EACnDA,EAAMA,GAAK,EAAK,WAAoB,UAAJA,IAAmB,EACnDA,EAAMA,GAAK,EAAK,WAAoB,UAAJA,IAAmB,EACnDA,EAAMA,GAAK,EAAK,UAAoB,SAAJA,IAAmB,EACnDA,EAAMA,GAAK,GAAM,OAAoB,MAAJA,IAAmB,GACpD/C,EAAQ6C,EAAMzC,GAAe2C,EAGjC,GAAIzD,KAAKH,OAAsB,GAAb2D,EAAiB,CAC/B,IAAIE,EAA0B,GAAbF,EAAkBxD,KAAKH,KACpC8D,EAAajD,EAAQ,KAAOgD,EAChC,IAAS5C,EAAI,EAAGA,EAAI0C,EAAY1C,IAAK,CACjC,IAAI8C,EAAUlD,EAAQI,GACtB6C,GAAcC,GAAY,GAAKF,EAC/BhD,EAAQI,EAAI,GAAK6C,EACjBA,EAAaC,IAAYF,EAE7BhD,EAAQ8C,EAAa,GAAKG,EAE9B3D,KAAKF,KAAOY,GAEhBd,EAASM,UAAY,SAAUL,GAC3B,OAAO,IAAII,WAAWK,KAAKC,OAAOV,EAAO,IAAM,MAGnDD,EAASO,UAAU0D,OAAS,SAAUC,GAClC,KAAMA,aAAalE,GACf,OAAO,EAEX,IAAI8C,EAAQoB,EACZ,OAAO9D,KAAKH,OAAS6C,EAAM7C,MAAQH,EAASiB,QAAQkD,OAAO7D,KAAKF,KAAM4C,EAAM5C,OAGhFF,EAASO,UAAU4D,SAAW,WAC1B,OAAO,GAAK/D,KAAKH,KAAOH,EAASiB,QAAQoD,SAAS/D,KAAKF,OAG3DF,EAASO,UAAU6D,SAAW,WAE1B,IADA,IAAI3C,EAAS,GACJP,EAAI,EAAGjB,EAAOG,KAAKH,KAAMiB,EAAIjB,EAAMiB,IACrB,KAAV,EAAJA,KACDO,GAAU,KAEdA,GAAUrB,KAAKa,IAAIC,GAAK,IAAM,IAElC,OAAOO,GAGXzB,EAASO,UAAU8D,MAAQ,WACvB,OAAO,IAAIrE,EAASI,KAAKH,KAAMG,KAAKF,KAAKoE,UAEtCtE,EAxU2C,GA0UtDN,EAAQqB,QAAUf,G,oCCtVlBR,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAI4E,EAAgB,EAAQ,QACxBC,EAAc,EAAQ,QACtBC,EAAsB,EAAQ,QAW9BC,EAAwC,WAWxC,SAASA,EAAuBC,EAAOC,EAAkBf,EAAWgB,GAChEzE,KAAKuE,MAAQA,EACbvE,KAAK0E,OAASH,EAAMI,YACpB3E,KAAK4E,MAAQL,EAAMM,gBACf9E,IAAcyE,GAAY,OAASA,IACnCA,EAAWF,EAAuBQ,gBAElC/E,IAAc0D,GAAK,OAASA,IAC5BA,EAAIc,EAAMM,WAAa,EAAI,QAE3B9E,IAAc0E,GAAK,OAASA,IAC5BA,EAAIF,EAAMI,YAAc,EAAI,GAEhC,IAAII,EAAWP,EAAW,EAAI,EAK9B,GAJAxE,KAAKgF,SAAWvB,EAAIsB,EACpB/E,KAAKiF,UAAYxB,EAAIsB,EACrB/E,KAAKkF,OAAST,EAAIM,EAClB/E,KAAKmF,SAAWV,EAAIM,EAChB/E,KAAKkF,OAAS,GAAKlF,KAAKgF,SAAW,GAAKhF,KAAKmF,UAAYnF,KAAK0E,QAAU1E,KAAKiF,WAAajF,KAAK4E,MAC/F,MAAM,IAAIP,EAAoB1D,QAiPtC,OAhOA2D,EAAuBnE,UAAUiF,OAAS,WACtC,IAAIC,EAAOrF,KAAKgF,SACZM,EAAQtF,KAAKiF,UACbM,EAAKvF,KAAKkF,OACVM,EAAOxF,KAAKmF,SACZM,GAAe,EACfC,GAA2B,EAC3BC,GAAoC,EACpCC,GAAmC,EACnCC,GAAoC,EACpCC,GAAkC,EAClCC,GAAiC,EACjCnB,EAAQ5E,KAAK4E,MACbF,EAAS1E,KAAK0E,OAClB,MAAOgB,EAA0B,CAC7BA,GAA2B,EAI3B,IAAIM,GAAsB,EAC1B,OAAQA,IAAwBJ,IAAqCN,EAAQV,EACzEoB,EAAsBhG,KAAKiG,mBAAmBV,EAAIC,EAAMF,GAAO,GAC3DU,GACAV,IACAI,GAA2B,EAC3BE,GAAmC,GAE7BA,GACNN,IAGR,GAAIA,GAASV,EAAO,CAChBa,GAAe,EACf,MAKJ,IAAIS,GAAuB,EAC3B,OAAQA,IAAyBL,IAAsCL,EAAOd,EAC1EwB,EAAuBlG,KAAKiG,mBAAmBZ,EAAMC,EAAOE,GAAM,GAC9DU,GACAV,IACAE,GAA2B,EAC3BG,GAAoC,GAE9BA,GACNL,IAGR,GAAIA,GAAQd,EAAQ,CAChBe,GAAe,EACf,MAKJ,IAAIU,GAAqB,EACzB,OAAQA,IAAuBL,IAAoCT,GAAQ,EACvEc,EAAqBnG,KAAKiG,mBAAmBV,EAAIC,EAAMH,GAAM,GACzDc,GACAd,IACAK,GAA2B,EAC3BI,GAAkC,GAE5BA,GACNT,IAGR,GAAIA,EAAO,EAAG,CACVI,GAAe,EACf,MAKJ,IAAIW,GAAoB,EACxB,OAAQA,IAAsBL,IAAmCR,GAAM,EACnEa,EAAoBpG,KAAKiG,mBAAmBZ,EAAMC,EAAOC,GAAI,GACzDa,GACAb,IACAG,GAA2B,EAC3BK,GAAiC,GAE3BA,GACNR,IAGR,GAAIA,EAAK,EAAG,CACRE,GAAe,EACf,MAEAC,IACAC,GAAoC,GAG5C,IAAKF,GAAgBE,EAAmC,CAGpD,IAFA,IAAIU,EAAUf,EAAQD,EAClBiB,EAAI,KACCxF,EAAI,EAAS,OAANwF,GAAcxF,EAAIuF,EAASvF,IACvCwF,EAAItG,KAAKuG,uBAAuBlB,EAAMG,EAAO1E,EAAGuE,EAAOvE,EAAG0E,GAE9D,GAAS,MAALc,EACA,MAAM,IAAIjC,EAAoB1D,QAElC,IAAI6F,EAAI,KAER,IAAS1F,EAAI,EAAS,OAAN0F,GAAc1F,EAAIuF,EAASvF,IACvC0F,EAAIxG,KAAKuG,uBAAuBlB,EAAME,EAAKzE,EAAGuE,EAAOvE,EAAGyE,GAE5D,GAAS,MAALiB,EACA,MAAM,IAAInC,EAAoB1D,QAElC,IAAI8C,EAAI,KAER,IAAS3C,EAAI,EAAS,OAAN2C,GAAc3C,EAAIuF,EAASvF,IACvC2C,EAAIzD,KAAKuG,uBAAuBjB,EAAOC,EAAKzE,EAAGwE,EAAQxE,EAAGyE,GAE9D,GAAS,MAAL9B,EACA,MAAM,IAAIY,EAAoB1D,QAElC,IAAI8D,EAAI,KAER,IAAS3D,EAAI,EAAS,OAAN2D,GAAc3D,EAAIuF,EAASvF,IACvC2D,EAAIzE,KAAKuG,uBAAuBjB,EAAOE,EAAO1E,EAAGwE,EAAQxE,EAAG0E,GAEhE,GAAS,MAALf,EACA,MAAM,IAAIJ,EAAoB1D,QAElC,OAAOX,KAAKyG,YAAYhC,EAAG6B,EAAG7C,EAAG+C,GAGjC,MAAM,IAAInC,EAAoB1D,SAGtC2D,EAAuBnE,UAAUoG,uBAAyB,SAAUG,EAAcC,EAAcC,EAAcC,GAK1G,IAJA,IAAIC,EAAO1C,EAAYzD,QAAQoG,MAAM3C,EAAYzD,QAAQqG,SAASN,EAAIC,EAAIC,EAAIC,IAC1EI,GAASL,EAAKF,GAAMI,EACpBI,GAASL,EAAKF,GAAMG,EACpBvC,EAAQvE,KAAKuE,MACRzD,EAAI,EAAGA,EAAIgG,EAAMhG,IAAK,CAC3B,IAAI2C,EAAIW,EAAYzD,QAAQoG,MAAML,EAAK5F,EAAImG,GACvCxC,EAAIL,EAAYzD,QAAQoG,MAAMJ,EAAK7F,EAAIoG,GAC3C,GAAI3C,EAAM1D,IAAI4C,EAAGgB,GACb,OAAO,IAAIN,EAAcxD,QAAQ8C,EAAGgB,GAG5C,OAAO,MAeXH,EAAuBnE,UAAUsG,YAAc,SAAUhC,EAAG6B,EAAG7C,EAAG+C,GAO9D,IAAIW,EAAK1C,EAAE2C,OACPC,EAAK5C,EAAE6C,OACPC,EAAKjB,EAAEc,OACPI,EAAKlB,EAAEgB,OACPG,EAAKhE,EAAE2D,OACPM,EAAKjE,EAAE6D,OACPK,EAAKnB,EAAEY,OACPQ,EAAKpB,EAAEc,OACPO,EAAOvD,EAAuBuD,KAClC,OAAIV,EAAKnH,KAAK4E,MAAQ,EACX,CACH,IAAIT,EAAcxD,QAAQgH,EAAKE,EAAMD,EAAKC,GAC1C,IAAI1D,EAAcxD,QAAQ4G,EAAKM,EAAML,EAAKK,GAC1C,IAAI1D,EAAcxD,QAAQ8G,EAAKI,EAAMH,EAAKG,GAC1C,IAAI1D,EAAcxD,QAAQwG,EAAKU,EAAMR,EAAKQ,IAIvC,CACH,IAAI1D,EAAcxD,QAAQgH,EAAKE,EAAMD,EAAKC,GAC1C,IAAI1D,EAAcxD,QAAQ4G,EAAKM,EAAML,EAAKK,GAC1C,IAAI1D,EAAcxD,QAAQ8G,EAAKI,EAAMH,EAAKG,GAC1C,IAAI1D,EAAcxD,QAAQwG,EAAKU,EAAMR,EAAKQ,KAatDvD,EAAuBnE,UAAU8F,mBAAqB,SAAU6B,EAAWC,EAAWC,EAAeC,GACjG,IAAI1D,EAAQvE,KAAKuE,MACjB,GAAI0D,GACA,IAAK,IAAIxE,EAAIqE,EAAGrE,GAAKsE,EAAGtE,IACpB,GAAIc,EAAM1D,IAAI4C,EAAGuE,GACb,OAAO,OAKf,IAAK,IAAIvD,EAAIqD,EAAGrD,GAAKsD,EAAGtD,IACpB,GAAIF,EAAM1D,IAAImH,EAAOvD,GACjB,OAAO,EAInB,OAAO,GAEXH,EAAuBQ,UAAY,GACnCR,EAAuBuD,KAAO,EACvBvD,EA/QgC,GAiR3ChF,EAAQqB,QAAU2D,G,oCChSlBlF,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAI2I,EAA2B,WAC3B,SAASA,EAAUC,EAAWC,GAC1BpI,KAAKmI,UAAYA,EACjBnI,KAAKoI,qBAAuBA,EAQhC,OANAF,EAAU/H,UAAUkI,aAAe,WAC/B,OAAOrI,KAAKmI,WAEhBD,EAAU/H,UAAUmI,wBAA0B,WAC1C,OAAOtI,KAAKoI,sBAETF,EAXmB,GAa9B5I,EAAQqB,QAAUuH,G,uBC/BlBK,EAAOjJ,QAAU,IAA0B,4B,uBCA3CiJ,EAAOjJ,QAAU,IAA0B,8B,oCCgB3C,IAAIkJ,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAI4E,EAAgB,EAAQ,QAOxBgF,EAAkC,SAAUC,GAE5C,SAASD,EAAiBE,EAAgBC,EAAgBC,GACtD,IAAIC,EAAQJ,EAAOK,KAAKzJ,KAAMqJ,EAAMC,IAAStJ,KAE7C,OADAwJ,EAAMD,oBAAsBA,EACrBC,EAuBX,OA3BAhB,EAAUW,EAAkBC,GAU5BD,EAAiBhJ,UAAUuJ,YAAc,SAAUC,EAAsB7I,EAAasC,GAClF,GAAI9C,KAAKsJ,IAAI9I,EAAId,KAAKsH,SAAWqC,GAAcrJ,KAAKsJ,IAAIxG,EAAIpD,KAAKoH,SAAWuC,EAAY,CACpF,IAAIE,EAAiBvJ,KAAKsJ,IAAID,EAAa3J,KAAKuJ,qBAChD,OAAOM,GAAkB,GAAOA,GAAkB7J,KAAKuJ,oBAE3D,OAAO,GAMXJ,EAAiBhJ,UAAU2J,gBAAkB,SAAUhJ,EAAasC,EAAa2G,GAC7E,IAAIC,GAAahK,KAAKoH,OAAShE,GAAK,EAChC6G,GAAajK,KAAKsH,OAASxG,GAAK,EAChCoJ,GAAsBlK,KAAKuJ,oBAAsBQ,GAAiB,EACtE,OAAO,IAAIZ,EAAiBa,EAAWC,EAAWC,IAE/Cf,EA5B0B,CA6BnChF,EAAcxD,SAChBrB,EAAQqB,QAAUwI,G,oCCpDlB/J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI4K,EAAa,EAAQ,QACrBC,EAAmB,EAAQ,QAC3BC,EAAuB,EAAQ,QAC/BlG,EAAgB,EAAQ,QACxBE,EAAsB,EAAQ,QAQ9BiG,EAA4B,WAC5B,SAASA,KAwOT,OA9NAA,EAAWnK,UAAUoK,OAAS,SAAUhG,EAAOiG,GAC3C,IACI,OAAOxK,KAAKyK,SAASlG,EAAOiG,GAEhC,MAAOE,GACH,IAAIC,EAAYH,IAA6D,IAAnDA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQiK,YAC7D,GAAID,GAAapG,EAAMsG,oBAAqB,CACxC,IAAIC,EAAevG,EAAMwG,yBACrB1J,EAASrB,KAAKyK,SAASK,EAAcN,GAErCQ,EAAW3J,EAAO4J,oBAClBC,EAAgB,IACH,OAAbF,IAAiF,IAA3DA,EAASnK,IAAIwJ,EAAqB1J,QAAQwK,eAEhED,GAAiCF,EAASnK,IAAIwJ,EAAqB1J,QAAQwK,aAAe,KAE9F9J,EAAO+J,YAAYf,EAAqB1J,QAAQwK,YAAaD,GAE7D,IAAIG,EAAShK,EAAOiK,kBACpB,GAAe,OAAXD,EAEA,IADA,IAAI3G,EAASoG,EAAanG,YACjB7D,EAAI,EAAGA,EAAIuK,EAAO5K,OAAQK,IAC/BuK,EAAOvK,GAAK,IAAIqD,EAAcxD,QAAQ+D,EAAS2G,EAAOvK,GAAGwG,OAAS,EAAG+D,EAAOvK,GAAGsG,QAGvF,OAAO/F,EAGP,MAAM,IAAIgD,EAAoB1D,UAK1C2J,EAAWnK,UAAUoL,MAAQ,aAiB7BjB,EAAWnK,UAAUsK,SAAW,SAAUlG,EAAOiG,GAC7C,IAKIgB,EALA5G,EAAQL,EAAMM,WACdH,EAASH,EAAMI,YACf8G,EAAM,IAAItB,EAAWxJ,QAAQiE,GAC7B+F,EAAYH,IAA6D,IAAnDA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQiK,YACzDc,EAAUpL,KAAK4B,IAAI,EAAGwC,IAAWiG,EAAY,EAAI,IAGjDa,EADAb,EACWjG,EAGA,GAGf,IADA,IAAIiH,EAASrL,KAAKsL,MAAMlH,EAAS,GACxBjB,EAAI,EAAGA,EAAI+H,EAAU/H,IAAK,CAE/B,IAAIoI,EAAuBvL,KAAKsL,OAAOnI,EAAI,GAAK,GAC5CqI,EAAyB,KAAV,EAAJrI,GACXsI,EAAYJ,EAASD,GAAWI,EAAUD,GAAwBA,GACtE,GAAIE,EAAY,GAAKA,GAAarH,EAE9B,MAGJ,IACI+G,EAAMlH,EAAMyH,YAAYD,EAAWN,GAEvC,MAAOQ,GACH,SAuCJ,IArCA,IAAIC,EAAU,SAAUC,GACpB,GAAgB,IAAZA,IACAV,EAAInI,UAKAkH,IAA6E,IAAnEA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQyL,6BAAuC,CACpF,IAAIC,EAAa,IAAIC,IACrB9B,EAAM+B,SAAQ,SAAUC,EAAMC,GAAO,OAAOJ,EAAWtL,IAAI0L,EAAKD,MAChEH,EAAWK,OAAOtC,EAAiBzJ,QAAQyL,4BAC3C5B,EAAQ6B,EAGhB,IAEI,IAAIhL,EAASsL,EAAOC,UAAUb,EAAWN,EAAKjB,GAE9C,GAAgB,IAAZ2B,EAAe,CAEf9K,EAAO+J,YAAYf,EAAqB1J,QAAQwK,YAAa,KAE7D,IAAIE,EAAShK,EAAOiK,kBACL,OAAXD,IACAA,EAAO,GAAK,IAAIlH,EAAcxD,QAAQiE,EAAQyG,EAAO,GAAGjE,OAAS,EAAGiE,EAAO,GAAG/D,QAC9E+D,EAAO,GAAK,IAAIlH,EAAcxD,QAAQiE,EAAQyG,EAAO,GAAGjE,OAAS,EAAGiE,EAAO,GAAG/D,SAGtF,MAAO,CAAE/H,MAAO8B,GAEpB,MAAOwL,MAIPF,EAAS3M,KAGJmM,EAAU,EAAGA,EAAU,EAAGA,IAAW,CAC1C,IAAIW,EAAUZ,EAAQC,GACtB,GAAuB,kBAAZW,EACP,OAAOA,EAAQvN,OAG3B,MAAM,IAAI8E,EAAoB1D,SAelC2J,EAAWyC,cAAgB,SAAUtB,EAAK/J,EAAOsL,GAE7C,IADA,IAAIC,EAAcD,EAASvM,OAClByM,EAAQ,EAAGA,EAAQD,EAAaC,IACrCF,EAASE,GAAS,EACtB,IAAIvL,EAAM8J,EAAIrL,UACd,GAAIsB,GAASC,EACT,MAAM,IAAI0C,EAAoB1D,QAElC,IAAIwM,GAAW1B,EAAI5K,IAAIa,GACnB0L,EAAkB,EAClBtM,EAAIY,EACR,MAAOZ,EAAIa,EAAK,CACZ,GAAI8J,EAAI5K,IAAIC,KAAOqM,EACfH,EAASI,SAER,CACD,KAAMA,IAAoBH,EACtB,MAGAD,EAASI,GAAmB,EAC5BD,GAAWA,EAGnBrM,IAIJ,GAAMsM,IAAoBH,IAAgBG,IAAoBH,EAAc,GAAKnM,IAAMa,GACnF,MAAM,IAAI0C,EAAoB1D,SAGtC2J,EAAW+C,uBAAyB,SAAU5B,EAAK/J,EAAOsL,GAEtD,IAAIM,EAAqBN,EAASvM,OAC9B8M,EAAO9B,EAAI5K,IAAIa,GACnB,MAAOA,EAAQ,GAAK4L,GAAsB,EAClC7B,EAAI5K,MAAMa,KAAW6L,IACrBD,IACAC,GAAQA,GAGhB,GAAID,GAAsB,EACtB,MAAM,IAAIjJ,EAAoB1D,QAElC2J,EAAWyC,cAActB,EAAK/J,EAAQ,EAAGsL,IAY7C1C,EAAWkD,qBAAuB,SAAUR,EAAUS,EAASC,GAI3D,IAHA,IAAIT,EAAcD,EAASvM,OACvBkN,EAAQ,EACRC,EAAgB,EACX9M,EAAI,EAAGA,EAAImM,EAAanM,IAC7B6M,GAASX,EAASlM,GAClB8M,GAAiBH,EAAQ3M,GAE7B,GAAI6M,EAAQC,EAGR,OAAOC,OAAOC,kBAElB,IAAIC,EAAeJ,EAAQC,EAC3BF,GAAyBK,EAEzB,IADA,IAAIC,EAAgB,EACXvK,EAAI,EAAGA,EAAIwJ,EAAaxJ,IAAK,CAClC,IAAIwK,EAAUjB,EAASvJ,GACnByK,EAAgBT,EAAQhK,GAAKsK,EAC7BI,EAAWF,EAAUC,EAAgBD,EAAUC,EAAgBA,EAAgBD,EACnF,GAAIE,EAAWT,EACX,OAAOG,OAAOC,kBAElBE,GAAiBG,EAErB,OAAOH,EAAgBL,GAEpBrD,EAzOoB,GA2O/BhL,EAAQqB,QAAU2J,G,uBCxQlB/B,EAAOjJ,QAAU,IAA0B,kB,uBCA3C,MAAM8O,EAAa,EAAQ,QASrBC,EAAqBC,GAAQ,IAC7BC,QAAQ,CAACC,EAASC,KACpB,MAAMC,EAAa,IAAIC,WACvBD,EAAWE,OAAS,KAClBJ,EAAQE,EAAWrN,SAErBqN,EAAWG,QAAU,EAAGC,QAAUC,OAASC,aACzCP,EAAOQ,MAAM,gCAAgCD,KAE/CN,EAAWQ,kBAAkBZ,KAW3Ba,EAAYC,MAAO7K,IACvB,IAAI8K,EAAO9K,EACX,GAAqB,qBAAVA,EACT,MAAO,YAGT,GAAqB,kBAAVA,EAET,GAAI,yCAAyC+K,KAAK/K,GAChD8K,EAAOE,KAAKhL,EAAMiL,MAAM,KAAK,IAC1BA,MAAM,IACNC,IAAIC,GAAKA,EAAEC,WAAW,QACpB,CACL,MAAMC,QAAaC,MAAMzB,EAAW7J,IACpC8K,QAAaO,EAAKE,mBAEXvL,aAAiBwL,aACJ,QAAlBxL,EAAMyL,UACRX,QAAaF,EAAU5K,EAAM0L,MAET,UAAlB1L,EAAMyL,UACRX,QAAaF,EAAU5K,EAAM2L,SAET,WAAlB3L,EAAMyL,eACF,IAAIzB,QAASC,IACjBjK,EAAM4L,OAAOf,MAAOd,IAClBe,QAAahB,EAAmBC,GAChCE,UAIGjK,aAAiB6L,MAAQ7L,aAAiB8L,QACnDhB,QAAahB,EAAmB9J,IAGlC,OAAO,IAAI+L,WAAWjB,IAGxB9G,EAAOjJ,QAAU6P,G,oCCnDjB/P,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAIgR,EAAc,EAAQ,QACtB/Q,EAAW,EAAQ,QACnBG,EAA6B,EAAQ,QAUrC6Q,EAA+B,WAU/B,SAASA,EAAcC,EAAOC,GAC1B,GAA4B,IAAxBA,EAAajQ,OACb,MAAM,IAAId,EAA2BgB,QAEzCX,KAAKyQ,MAAQA,EACb,IAAIE,EAAqBD,EAAajQ,OACtC,GAAIkQ,EAAqB,GAAyB,IAApBD,EAAa,GAAU,CAEjD,IAAIE,EAAe,EACnB,MAAOA,EAAeD,GAAqD,IAA/BD,EAAaE,GACrDA,IAEAA,IAAiBD,EACjB3Q,KAAK0Q,aAAezQ,WAAWiB,KAAK,CAAC,KAGrClB,KAAK0Q,aAAe,IAAIzQ,WAAW0Q,EAAqBC,GACxDpR,EAASmB,QAAQC,UAAU8P,EAAcE,EAAc5Q,KAAK0Q,aAAc,EAAG1Q,KAAK0Q,aAAajQ,cAInGT,KAAK0Q,aAAeA,EAiM5B,OA9LAF,EAAcrQ,UAAU0Q,gBAAkB,WACtC,OAAO7Q,KAAK0Q,cAKhBF,EAAcrQ,UAAU2Q,UAAY,WAChC,OAAO9Q,KAAK0Q,aAAajQ,OAAS,GAKtC+P,EAAcrQ,UAAU4Q,OAAS,WAC7B,OAAgC,IAAzB/Q,KAAK0Q,aAAa,IAK7BF,EAAcrQ,UAAU6Q,eAAiB,SAAUC,GAC/C,OAAOjR,KAAK0Q,aAAa1Q,KAAK0Q,aAAajQ,OAAS,EAAIwQ,IAK5DT,EAAcrQ,UAAU+Q,WAAa,SAAUpJ,GAC3C,GAAU,IAANA,EAEA,OAAO9H,KAAKgR,eAAe,GAE/B,IACI3P,EADAqP,EAAe1Q,KAAK0Q,aAExB,GAAU,IAAN5I,EAAS,CAETzG,EAAS,EACT,IAAK,IAAIP,EAAI,EAAG+B,EAAW6N,EAAajQ,OAAQK,IAAM+B,EAAU/B,IAAK,CACjE,IAAIqQ,EAAcT,EAAa5P,GAC/BO,EAASkP,EAAY5P,QAAQyQ,cAAc/P,EAAQ8P,GAEvD,OAAO9P,EAEXA,EAASqP,EAAa,GACtB,IAAI7Q,EAAO6Q,EAAajQ,OACpBgQ,EAAQzQ,KAAKyQ,MACjB,IAAS3P,EAAI,EAAGA,EAAIjB,EAAMiB,IACtBO,EAASkP,EAAY5P,QAAQyQ,cAAcX,EAAMY,SAASvJ,EAAGzG,GAASqP,EAAa5P,IAEvF,OAAOO,GAEXmP,EAAcrQ,UAAUiR,cAAgB,SAAU1O,GAC9C,IAAK1C,KAAKyQ,MAAM5M,OAAOnB,EAAM+N,OACzB,MAAM,IAAI9Q,EAA2BgB,QAAQ,mDAEjD,GAAIX,KAAK+Q,SACL,OAAOrO,EAEX,GAAIA,EAAMqO,SACN,OAAO/Q,KAEX,IAAIsR,EAAsBtR,KAAK0Q,aAC3Ba,EAAqB7O,EAAMgO,aAC/B,GAAIY,EAAoB7Q,OAAS8Q,EAAmB9Q,OAAQ,CACxD,IAAI+Q,EAAOF,EACXA,EAAsBC,EACtBA,EAAqBC,EAEzB,IAAIC,EAAU,IAAIxR,WAAWsR,EAAmB9Q,QAC5CiR,EAAaH,EAAmB9Q,OAAS6Q,EAAoB7Q,OAEjEjB,EAASmB,QAAQC,UAAU2Q,EAAoB,EAAGE,EAAS,EAAGC,GAC9D,IAAK,IAAI5Q,EAAI4Q,EAAY5Q,EAAIyQ,EAAmB9Q,OAAQK,IACpD2Q,EAAQ3Q,GAAKyP,EAAY5P,QAAQyQ,cAAcE,EAAoBxQ,EAAI4Q,GAAaH,EAAmBzQ,IAE3G,OAAO,IAAI0P,EAAcxQ,KAAKyQ,MAAOgB,IAEzCjB,EAAcrQ,UAAUkR,SAAW,SAAU3O,GACzC,IAAK1C,KAAKyQ,MAAM5M,OAAOnB,EAAM+N,OACzB,MAAM,IAAI9Q,EAA2BgB,QAAQ,mDAEjD,GAAIX,KAAK+Q,UAAYrO,EAAMqO,SACvB,OAAO/Q,KAAKyQ,MAAMkB,UAQtB,IANA,IAAIC,EAAgB5R,KAAK0Q,aACrBmB,EAAUD,EAAcnR,OACxBqR,EAAgBpP,EAAMgO,aACtBqB,EAAUD,EAAcrR,OACxBuR,EAAU,IAAI/R,WAAW4R,EAAUE,EAAU,GAC7CtB,EAAQzQ,KAAKyQ,MACR3P,EAAI,EAAGA,EAAI+Q,EAAS/Q,IAEzB,IADA,IAAImR,EAASL,EAAc9Q,GAClBsC,EAAI,EAAGA,EAAI2O,EAAS3O,IACzB4O,EAAQlR,EAAIsC,GAAKmN,EAAY5P,QAAQyQ,cAAcY,EAAQlR,EAAIsC,GAAIqN,EAAMY,SAASY,EAAQH,EAAc1O,KAGhH,OAAO,IAAIoN,EAAcC,EAAOuB,IAEpCxB,EAAcrQ,UAAU+R,eAAiB,SAAUC,GAC/C,GAAe,IAAXA,EACA,OAAOnS,KAAKyQ,MAAMkB,UAEtB,GAAe,IAAXQ,EACA,OAAOnS,KAMX,IAJA,IAAIH,EAAOG,KAAK0Q,aAAajQ,OACzBgQ,EAAQzQ,KAAKyQ,MACbuB,EAAU,IAAI/R,WAAWJ,GACzB6Q,EAAe1Q,KAAK0Q,aACf5P,EAAI,EAAGA,EAAIjB,EAAMiB,IACtBkR,EAAQlR,GAAK2P,EAAMY,SAASX,EAAa5P,GAAIqR,GAEjD,OAAO,IAAI3B,EAAcC,EAAOuB,IAEpCxB,EAAcrQ,UAAUiS,mBAAqB,SAAUnB,EAAgBE,GACnE,GAAIF,EAAS,EACT,MAAM,IAAItR,EAA2BgB,QAEzC,GAAoB,IAAhBwQ,EACA,OAAOnR,KAAKyQ,MAAMkB,UAMtB,IAJA,IAAIjB,EAAe1Q,KAAK0Q,aACpB7Q,EAAO6Q,EAAajQ,OACpBuR,EAAU,IAAI/R,WAAWJ,EAAOoR,GAChCR,EAAQzQ,KAAKyQ,MACR3P,EAAI,EAAGA,EAAIjB,EAAMiB,IACtBkR,EAAQlR,GAAK2P,EAAMY,SAASX,EAAa5P,GAAIqQ,GAEjD,OAAO,IAAIX,EAAcC,EAAOuB,IAEpCxB,EAAcrQ,UAAUkS,OAAS,SAAU3P,GACvC,IAAK1C,KAAKyQ,MAAM5M,OAAOnB,EAAM+N,OACzB,MAAM,IAAI9Q,EAA2BgB,QAAQ,mDAEjD,GAAI+B,EAAMqO,SACN,MAAM,IAAIpR,EAA2BgB,QAAQ,eAEjD,IAAI8P,EAAQzQ,KAAKyQ,MACb6B,EAAW7B,EAAMkB,UACjBY,EAAYvS,KACZwS,EAAyB9P,EAAMsO,eAAetO,EAAMoO,aACpD2B,EAAgChC,EAAMiC,QAAQF,GAClD,MAAOD,EAAUzB,aAAepO,EAAMoO,cAAgByB,EAAUxB,SAAU,CACtE,IAAI4B,EAAmBJ,EAAUzB,YAAcpO,EAAMoO,YACjD8B,EAAQnC,EAAMY,SAASkB,EAAUvB,eAAeuB,EAAUzB,aAAc2B,GACxEI,EAAOnQ,EAAM0P,mBAAmBO,EAAkBC,GAClDE,EAAoBrC,EAAMsC,cAAcJ,EAAkBC,GAC9DN,EAAWA,EAASlB,cAAc0B,GAClCP,EAAYA,EAAUnB,cAAcyB,GAExC,MAAO,CAACP,EAAUC,IAGtB/B,EAAcrQ,UAAU6D,SAAW,WAE/B,IADA,IAAI3C,EAAS,GACJ4P,EAASjR,KAAK8Q,YAAaG,GAAU,EAAGA,IAAU,CACvD,IAAIE,EAAcnR,KAAKgR,eAAeC,GACtC,GAAoB,IAAhBE,EAAmB,CAUnB,GATIA,EAAc,GACd9P,GAAU,MACV8P,GAAeA,GAGX9P,EAAOZ,OAAS,IAChBY,GAAU,OAGH,IAAX4P,GAAgC,IAAhBE,EAAmB,CACnC,IAAI6B,EAAahT,KAAKyQ,MAAMwC,IAAI9B,GACb,IAAf6B,EACA3R,GAAU,IAEU,IAAf2R,EACL3R,GAAU,KAGVA,GAAU,KACVA,GAAU2R,GAGH,IAAX/B,IACe,IAAXA,EACA5P,GAAU,KAGVA,GAAU,KACVA,GAAU4P,KAK1B,OAAO5P,GAEJmP,EAhOuB,GAkOlClR,EAAQqB,QAAU6P,G,oCChPlBpR,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAOtD,IAAI2T,EAAmC,WACnC,SAASA,EAAkBC,GACvBnT,KAAKoT,WAAaD,EAAe,GACjCnT,KAAKqT,QAAUF,EAAe,GAC9BnT,KAAKsT,SAAWH,EAAe,GAWnC,OATAD,EAAkB/S,UAAUoT,cAAgB,WACxC,OAAOvT,KAAKoT,YAEhBF,EAAkB/S,UAAUqT,WAAa,WACrC,OAAOxT,KAAKqT,SAEhBH,EAAkB/S,UAAUsT,YAAc,WACtC,OAAOzT,KAAKsT,UAETJ,EAf2B,GAiBtC5T,EAAQqB,QAAUuS,G,kCCvClB,IAAI1K,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAImU,EAAsB,EAAQ,QAC9BC,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBxJ,EAAmB,EAAQ,QAC3B/F,EAAsB,EAAQ,QAC9BwP,EAAkB,EAAQ,QAC1BC,EAAkB,EAAQ,SAC1B3P,EAAgB,EAAQ,QACxB4P,EAAkB,EAAQ,QAC1BC,EAAkB,EAAQ,QAC1B5P,EAAc,EAAQ,QACtB6P,EAAa,EAAQ,QACrBzU,EAAW,EAAQ,QACnB0U,EAAe,EAAQ,QACvBC,EAA6B,SAAU/K,GAEvC,SAAS+K,IACL,IAAI3K,EAAmB,OAAXJ,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAGhE,OAFAwJ,EAAM8K,kBAAoB,GAC1B9K,EAAM+K,mBAAqB,GACpB/K,EA0XX,OA/XAhB,EAAU2L,EAAa/K,GAOvB+K,EAAYhU,UAAUyM,UAAY,SAAUb,EAAWN,EAAKjB,GACxD,IAAIgK,EAAWxU,KAAKyU,WAAWhJ,GAAK,EAAOM,EAAWvB,GACtD2J,EAAYO,WAAW1U,KAAKsU,kBAAmBE,GAC/C/I,EAAInI,UACJ,IAAIqR,EAAY3U,KAAKyU,WAAWhJ,GAAK,EAAMM,EAAWvB,GACtD2J,EAAYO,WAAW1U,KAAKuU,mBAAoBI,GAChDlJ,EAAInI,UACJ,IAAK,IAAIsR,EAAK,EAAGC,EAAK7U,KAAKsU,kBAAmBM,EAAKC,EAAGpU,OAAQmU,IAAM,CAChE,IAAIvP,EAAOwP,EAAGD,GACd,GAAIvP,EAAKyP,WAAa,EAClB,IAAK,IAAIC,EAAK,EAAGC,EAAKhV,KAAKuU,mBAAoBQ,EAAKC,EAAGvU,OAAQsU,IAAM,CACjE,IAAIzP,EAAQ0P,EAAGD,GACf,GAAIzP,EAAMwP,WAAa,GAAKX,EAAYc,cAAc5P,EAAMC,GACxD,OAAO6O,EAAYe,gBAAgB7P,EAAMC,IAKzD,MAAM,IAAIjB,EAAoB1D,SAElCwT,EAAYO,WAAa,SAAUS,EAAeC,GAC9C,GAAY,MAARA,EAAJ,CAIA,IADA,IAAIC,GAAQ,EACHT,EAAK,EAAGU,EAAkBH,EAAeP,EAAKU,EAAgB7U,OAAQmU,IAAM,CACjF,IAAIlS,EAAQ4S,EAAgBV,GAC5B,GAAIlS,EAAM6S,aAAeH,EAAKG,WAAY,CACtC7S,EAAM8S,iBACNH,GAAQ,EACR,OAGHA,GACDF,EAAcM,KAAKL,KAG3BjB,EAAYhU,UAAUoL,MAAQ,WAC1BvL,KAAKsU,kBAAkB7T,OAAS,EAChCT,KAAKuU,mBAAmB9T,OAAS,GAErC0T,EAAYe,gBAAkB,SAAUV,EAAUG,GAI9C,IAHA,IAAIe,EAAc,QAAUlB,EAASe,WAAaZ,EAAUY,WACxDI,EAAO,IAAIC,OAAOF,GAAa1R,WAC/B6R,EAAS,IAAIhC,EAAgBlT,QACxBG,EAAI,GAAK6U,EAAKlV,OAAQK,EAAI,EAAGA,IAClC+U,EAAOC,OAAO,KAElBD,EAAOC,OAAOH,GACd,IAAII,EAAa,EACjB,IAASjV,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAIkV,EAAQH,EAAOI,OAAOnV,GAAG6O,WAAW,GAAK,IAAIA,WAAW,GAC5DoG,GAA8B,KAAV,EAAJjV,GAAmB,EAAIkV,EAAQA,EAEnDD,EAAa,GAAMA,EAAa,GACb,KAAfA,IACAA,EAAa,GAEjBF,EAAOC,OAAOC,EAAW/R,YACzB,IAAIkS,EAAa1B,EAAS2B,mBAAmB7K,kBACzC8K,EAAczB,EAAUwB,mBAAmB7K,kBAC/C,OAAO,IAAIsI,EAASjT,QAAQkV,EAAO7R,WAAY,KAAM,EAAG,CAACkS,EAAW,GAAIA,EAAW,GAAIE,EAAY,GAAIA,EAAY,IAAKtC,EAAgBnT,QAAQ0V,QAAQ,IAAIC,MAAOC,YAEvKpC,EAAYc,cAAgB,SAAUT,EAAUG,GAC5C,IAAI6B,GAAchC,EAASiC,qBAAuB,GAAK9B,EAAU8B,sBAAwB,GACrFC,EAAmB,EAAIlC,EAAS2B,mBAAmBZ,WAAaZ,EAAUwB,mBAAmBZ,WAOjG,OANImB,EAAmB,IACnBA,IAEAA,EAAmB,GACnBA,IAEGF,IAAeE,GAE1BvC,EAAYhU,UAAUsU,WAAa,SAAUhJ,EAAKnG,EAAOyG,EAAWvB,GAChE,IACI,IAAImM,EAAW3W,KAAK4W,kBAAkBnL,EAAKnG,GACvCmI,EAAUzN,KAAK6W,wBAAwBpL,EAAKM,EAAWzG,EAAOqR,GAC9DG,EAA+B,MAATtM,EAAgB,KAAOA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQyL,4BACpF,GAA2B,MAAvB0K,EAA6B,CAC7B,IAAIC,GAAUJ,EAAS,GAAKA,EAAS,IAAM,EACvCrR,IAEAyR,EAAStL,EAAIrL,UAAY,EAAI2W,GAEjCD,EAAoBE,yBAAyB,IAAI7S,EAAcxD,QAAQoW,EAAQhL,IAEnF,IAAIkL,EAAUjX,KAAKkX,oBAAoBzL,EAAKgC,GAAS,GACjD0J,EAASnX,KAAKkX,oBAAoBzL,EAAKgC,GAAS,GACpD,OAAO,IAAIkG,EAAOhT,QAAQ,KAAOsW,EAAQ1B,WAAa4B,EAAO5B,WAAY0B,EAAQR,qBAAuB,EAAIU,EAAOV,qBAAsBhJ,GAE7I,MAAO2J,GACH,OAAO,OAGfjD,EAAYhU,UAAU+W,oBAAsB,SAAUzL,EAAKgC,EAAS4J,GAEhE,IADA,IAAIrK,EAAWhN,KAAKsX,2BACX7T,EAAI,EAAGA,EAAIuJ,EAASvM,OAAQgD,IACjCuJ,EAASvJ,GAAK,EAElB,GAAI4T,EACAnD,EAAavT,QAAQ0M,uBAAuB5B,EAAKgC,EAAQ8J,cAAc,GAAIvK,OAE1E,CACDkH,EAAavT,QAAQoM,cAActB,EAAKgC,EAAQ8J,cAAc,GAAK,EAAGvK,GAEtE,IAAK,IAAIlM,EAAI,EAAGsC,EAAI4J,EAASvM,OAAS,EAAGK,EAAIsC,EAAGtC,IAAKsC,IAAK,CACtD,IAAIoO,EAAOxE,EAASlM,GACpBkM,EAASlM,GAAKkM,EAAS5J,GACvB4J,EAAS5J,GAAKoO,GAGtB,IAAIgG,EAAaH,EAAc,GAAK,GAChCI,EAAerT,EAAYzD,QAAQ+W,IAAI,IAAIzX,WAAW+M,IAAawK,EACnEG,EAAY3X,KAAK4X,eACjBC,EAAa7X,KAAK8X,gBAClBC,EAAoB/X,KAAKgY,uBACzBC,EAAqBjY,KAAKkY,wBAC9B,IAASpX,EAAI,EAAGA,EAAIkM,EAASvM,OAAQK,IAAK,CACtC,IAAIvB,EAAQyN,EAASlM,GAAK2W,EACtBU,EAAQ7X,KAAKC,MAAMhB,EAAQ,IAC3B4Y,EAAQ,EACRA,EAAQ,EAEHA,EAAQ,IACbA,EAAQ,GAEZ,IAAIlV,EAAS3C,KAAKC,MAAMO,EAAI,GACT,KAAV,EAAJA,IACD6W,EAAU1U,GAAUkV,EACpBJ,EAAkB9U,GAAU1D,EAAQ4Y,IAGpCN,EAAW5U,GAAUkV,EACrBF,EAAmBhV,GAAU1D,EAAQ4Y,GAG7CnY,KAAKoY,oBAAoBf,EAAaG,GACtC,IAAIa,EAAS,EACTC,EAAqB,EACzB,IAASxX,EAAI6W,EAAUlX,OAAS,EAAGK,GAAK,EAAGA,IACvCwX,GAAsB,EACtBA,GAAsBX,EAAU7W,GAChCuX,GAAUV,EAAU7W,GAExB,IAAIyX,EAAsB,EACtBC,EAAU,EACd,IAAS1X,EAAI+W,EAAWpX,OAAS,EAAGK,GAAK,EAAGA,IACxCyX,GAAuB,EACvBA,GAAuBV,EAAW/W,GAClC0X,GAAWX,EAAW/W,GAE1B,IAAI2X,EAAkBH,EAAqB,EAAIC,EAC/C,GAAIlB,EAAa,CACb,GAAwB,KAAV,EAATgB,IAAwBA,EAAS,IAAMA,EAAS,EACjD,MAAM,IAAIhU,EAAoB1D,QAElC,IAAI+X,GAAS,GAAKL,GAAU,EACxBM,EAAYxE,EAAYyE,mBAAmBF,GAC3CG,EAAa,EAAIF,EACjBG,EAAO7E,EAAWtT,QAAQoY,YAAYpB,EAAWgB,GAAW,GAC5DK,EAAQ/E,EAAWtT,QAAQoY,YAAYlB,EAAYgB,GAAY,GAC/DI,EAAQ9E,EAAY+E,0BAA0BR,GAC9CS,EAAOhF,EAAYiF,aAAaV,GACpC,OAAO,IAAI1E,EAAgBrT,QAAQmY,EAAOG,EAAQD,EAAQG,EAAMV,GAGhE,GAAyB,KAAV,EAAVD,IAAyBA,EAAU,IAAMA,EAAU,EACpD,MAAM,IAAInU,EAAoB1D,QAE9B+X,GAAS,GAAKF,GAAW,EACzBG,EAAYxE,EAAYkF,kBAAkBX,GAC1CG,EAAa,EAAIF,EACjBG,EAAO7E,EAAWtT,QAAQoY,YAAYpB,EAAWgB,GAAW,GAC5DK,EAAQ/E,EAAWtT,QAAQoY,YAAYlB,EAAYgB,GAAY,GAJnE,IAKIS,EAAOnF,EAAYoF,wBAAwBb,GAC3CS,EAAOhF,EAAYqF,YAAYd,GACnC,OAAO,IAAI1E,EAAgBrT,QAAQqY,EAAQM,EAAOR,EAAOK,EAAMV,IAGvEtE,EAAYhU,UAAUyW,kBAAoB,SAAUnL,EAAKgO,GACrD,IAAIzM,EAAWhN,KAAK0Z,0BACpB1M,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EACd,IAAIpI,EAAQ6G,EAAIrL,UACZ+M,GAAU,EACVwM,EAAY,EAChB,MAAOA,EAAY/U,EAAO,CAEtB,GADAuI,GAAW1B,EAAI5K,IAAI8Y,GACfF,IAAuBtM,EAEvB,MAEJwM,IAIJ,IAFA,IAAIvM,EAAkB,EAClBwM,EAAeD,EACVlW,EAAIkW,EAAWlW,EAAImB,EAAOnB,IAC/B,GAAIgI,EAAI5K,IAAI4C,KAAO0J,EACfH,EAASI,SAER,CACD,GAAwB,IAApBA,EAAuB,CACvB,GAAIsG,EAAoB/S,QAAQkZ,gBAAgB7M,GAC5C,MAAO,CAAC4M,EAAcnW,GAE1BmW,GAAgB5M,EAAS,GAAKA,EAAS,GACvCA,EAAS,GAAKA,EAAS,GACvBA,EAAS,GAAKA,EAAS,GACvBA,EAAS,GAAK,EACdA,EAAS,GAAK,EACdI,SAGAA,IAEJJ,EAASI,GAAmB,EAC5BD,GAAWA,EAGnB,MAAM,IAAI9I,EAAoB1D,SAElCwT,EAAYhU,UAAU0W,wBAA0B,SAAUpL,EAAKM,EAAWzG,EAAOqR,GAE7E,IAAImD,EAAerO,EAAI5K,IAAI8V,EAAS,IAChCoD,EAAoBpD,EAAS,GAAK,EAEtC,MAAOoD,GAAqB,GAAKD,IAAiBrO,EAAI5K,IAAIkZ,GACtDA,IAEJA,IACA,IAAIC,EAAerD,EAAS,GAAKoD,EAE7B/M,EAAWhN,KAAK0Z,0BAChBO,EAAO,IAAIpR,MAAMmE,EAASvM,QAC9BjB,EAASmB,QAAQC,UAAUoM,EAAU,EAAGiN,EAAM,EAAGjN,EAASvM,OAAS,GACnEwZ,EAAK,GAAKD,EACV,IAAIza,EAAQS,KAAKka,iBAAiBD,EAAM9F,EAAYgG,iBAChDzY,EAAQqY,EACRpY,EAAMgV,EAAS,GAMnB,OALIrR,IAEA5D,EAAQ+J,EAAIrL,UAAY,EAAIsB,EAC5BC,EAAM8J,EAAIrL,UAAY,EAAIuB,GAEvB,IAAIoS,EAAgBpT,QAAQpB,EAAO,CAACwa,EAAmBpD,EAAS,IAAKjV,EAAOC,EAAKoK,IAE5FoI,EAAYhU,UAAUiY,oBAAsB,SAAUf,EAAaG,GAC/D,IAAIa,EAASjU,EAAYzD,QAAQ+W,IAAI,IAAIzX,WAAWD,KAAK4X,iBACrDY,EAAUpU,EAAYzD,QAAQ+W,IAAI,IAAIzX,WAAWD,KAAK8X,kBACtDsC,GAAe,EACfC,GAAe,EACfC,GAAgB,EAChBC,GAAgB,EAChBlD,GACIgB,EAAS,GACTgC,GAAe,EAEVhC,EAAS,IACd+B,GAAe,GAEf5B,EAAU,GACV+B,GAAgB,EAEX/B,EAAU,IACf8B,GAAgB,KAIhBjC,EAAS,GACTgC,GAAe,EAEVhC,EAAS,IACd+B,GAAe,GAEf5B,EAAU,GACV+B,GAAgB,EAEX/B,EAAU,IACf8B,GAAgB,IAGxB,IAAIE,EAAWnC,EAASG,EAAUhB,EAC9BiD,GAAyB,EAATpC,MAAoBhB,EAAc,EAAI,GACtDqD,EAAqC,KAAV,EAAVlC,GACrB,GAAiB,IAAbgC,EACA,GAAIC,EAAc,CACd,GAAIC,EACA,MAAM,IAAIrW,EAAoB1D,QAElC0Z,GAAe,MAEd,CACD,IAAKK,EACD,MAAM,IAAIrW,EAAoB1D,QAElC4Z,GAAgB,OAGnB,IAAkB,IAAdC,EACL,GAAIC,EAAc,CACd,GAAIC,EACA,MAAM,IAAIrW,EAAoB1D,QAElCyZ,GAAe,MAEd,CACD,IAAKM,EACD,MAAM,IAAIrW,EAAoB1D,QAElC2Z,GAAgB,MAGnB,IAAiB,IAAbE,EAuBL,MAAM,IAAInW,EAAoB1D,QAtB9B,GAAI8Z,EAAc,CACd,IAAKC,EACD,MAAM,IAAIrW,EAAoB1D,QAG9B0X,EAASG,GACT4B,GAAe,EACfG,GAAgB,IAGhBF,GAAe,EACfC,GAAgB,QAIpB,GAAII,EACA,MAAM,IAAIrW,EAAoB1D,QAQ1C,GAAIyZ,EAAc,CACd,GAAIC,EACA,MAAM,IAAIhW,EAAoB1D,QAElC+S,EAAoB/S,QAAQga,UAAU3a,KAAK4X,eAAgB5X,KAAKgY,wBAKpE,GAHIqC,GACA3G,EAAoB/S,QAAQia,UAAU5a,KAAK4X,eAAgB5X,KAAKgY,wBAEhEsC,EAAe,CACf,GAAIC,EACA,MAAM,IAAIlW,EAAoB1D,QAElC+S,EAAoB/S,QAAQga,UAAU3a,KAAK8X,gBAAiB9X,KAAKgY,wBAEjEuC,GACA7G,EAAoB/S,QAAQia,UAAU5a,KAAK8X,gBAAiB9X,KAAKkY,0BAGzE/D,EAAY+E,0BAA4B,CAAC,EAAG,GAAI,GAAI,GAAI,KACxD/E,EAAYoF,wBAA0B,CAAC,EAAG,GAAI,GAAI,IAClDpF,EAAYiF,aAAe,CAAC,EAAG,IAAK,IAAK,KAAM,MAC/CjF,EAAYqF,YAAc,CAAC,EAAG,IAAK,KAAM,MACzCrF,EAAYyE,mBAAqB,CAAC,EAAG,EAAG,EAAG,EAAG,GAC9CzE,EAAYkF,kBAAoB,CAAC,EAAG,EAAG,EAAG,GAC1ClF,EAAYgG,gBAAkB,CAC1B,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IAEPhG,EAhYqB,CAiY9BT,EAAoB/S,SACtBrB,EAAQqB,QAAUwT,G,oCC/YlB/U,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAII,EAA6B,EAAQ,QAQrCkb,EAA2B,WAC3B,SAASA,EAAUC,EAA0BC,GACzC/a,KAAK8a,iBAAmBA,EACxB9a,KAAK+a,UAAYA,EAgFrB,OAnEAF,EAAUG,cAAgB,SAAUC,EAAcC,EAASC,GACvD,GAAIF,EAAaxa,SAAWya,EAAQE,oBAChC,MAAM,IAAIzb,EAA2BgB,QAQzC,IAJA,IAAI0a,EAAWH,EAAQI,oBAAoBH,GAEvCI,EAAc,EACdC,EAAeH,EAASI,cACnB7G,EAAK,EAAG8G,EAAiBF,EAAc5G,EAAK8G,EAAejb,OAAQmU,IAAM,CAC9E,IAAI+G,EAAUD,EAAe9G,GAC7B2G,GAAeI,EAAQ7G,WAK3B,IAFA,IAAIzT,EAAS,IAAIwH,MAAM0S,GACnBK,EAAkB,EACb/G,EAAK,EAAGgH,EAAiBL,EAAc3G,EAAKgH,EAAepb,OAAQoU,IACxE,CAAI8G,EAAUE,EAAehH,GAC7B,IADA,IACS/T,EAAI,EAAGA,EAAI6a,EAAQ7G,WAAYhU,IAAK,CACzC,IAAIga,EAAmBa,EAAQG,mBAC3BC,EAAoBV,EAASW,yBAA2BlB,EAC5DzZ,EAAOua,KAAqB,IAAIf,EAAUC,EAAkB,IAAIxK,WAAWyL,KAKnF,IAAIE,EAA8B5a,EAAO,GAAG0Z,UAAUta,OAClDyb,EAAsB7a,EAAOZ,OAAS,EAE1C,MAAOyb,GAAuB,EAAG,CAC7B,IAAIC,EAAe9a,EAAO6a,GAAqBnB,UAAUta,OACzD,GAAI0b,IAAiBF,EACjB,MAEJC,IAEJA,IACA,IAAIE,EAAgCH,EAA8BZ,EAASW,yBAGvEK,EAAqB,EACzB,IAASvb,EAAI,EAAGA,EAAIsb,EAA+Btb,IAC/C,IAAK,IAAIsC,EAAI,EAAGA,EAAIwY,EAAiBxY,IACjC/B,EAAO+B,GAAG2X,UAAUja,GAAKma,EAAaoB,KAI9C,IAASjZ,EAAI8Y,EAAqB9Y,EAAIwY,EAAiBxY,IACnD/B,EAAO+B,GAAG2X,UAAUqB,GAAiCnB,EAAaoB,KAGtE,IAAIna,EAAMb,EAAO,GAAG0Z,UAAUta,OAC9B,IAASK,EAAIsb,EAA+Btb,EAAIoB,EAAKpB,IACjD,IAASsC,EAAI,EAAGA,EAAIwY,EAAiBxY,IAAK,CACtC,IAAIkZ,EAAUlZ,EAAI8Y,EAAsBpb,EAAIA,EAAI,EAChDO,EAAO+B,GAAG2X,UAAUuB,GAAWrB,EAAaoB,KAGpD,OAAOhb,GAEXwZ,EAAU1a,UAAUoc,oBAAsB,WACtC,OAAOvc,KAAK8a,kBAEhBD,EAAU1a,UAAUqc,aAAe,WAC/B,OAAOxc,KAAK+a,WAETF,EAnFmB,GAqF9Bvb,EAAQqB,QAAUka,G,oCC9FlB,IAAIrS,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIuU,EAAkB,EAAQ,SAC1B2I,EAAiB,EAAQ,QACzBpY,EAAsB,EAAQ,QAQ9BqY,EAA6B,SAAUtT,GAEvC,SAASsT,IACL,IAAIlT,EAAQJ,EAAOK,KAAKzJ,OAASA,KAEjC,OADAwJ,EAAMmT,qBAAuB,CAAC,EAAG,EAAG,EAAG,GAChCnT,EAgDX,OApDAhB,EAAUkU,EAAatT,GAMvBsT,EAAYvc,UAAUyc,aAAe,SAAUnR,EAAKoR,EAAYC,GAC5D,IAAI9P,EAAWhN,KAAK2c,qBACpB3P,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EAId,IAHA,IAAIrL,EAAM8J,EAAIrL,UACVuZ,EAAYkD,EAAW,GACvBE,EAAiB,EACZtZ,EAAI,EAAGA,EAAI,GAAKkW,EAAYhY,EAAK8B,IAAK,CAC3C,IAAIuZ,EAAYP,EAAe9b,QAAQsc,YAAYxR,EAAKuB,EAAU2M,EAAW8C,EAAe9b,QAAQuc,kBACpGJ,GAAgBlH,OAAOuH,aAAc,IAAIxN,WAAW,GAAKqN,EAAY,IACrE,IAAK,IAAIpI,EAAK,EAAGwI,EAAapQ,EAAU4H,EAAKwI,EAAW3c,OAAQmU,IAAM,CAClE,IAAI3G,EAAUmP,EAAWxI,GACzB+E,GAAa1L,EAEb+O,GAAa,KACbD,GAAkB,GAAM,EAAItZ,GAGpCqZ,EAAeJ,EAAYW,oBAAoBP,EAAcC,GAC7D,IAAIO,EAAcb,EAAe9b,QAAQ4c,iBAAiB9R,EAAKkO,GAAW,EAAM8C,EAAe9b,QAAQ6c,eAAgB,IAAI3U,MAAM4T,EAAe9b,QAAQ6c,eAAe/c,QAAQgd,KAAK,IACpL9D,EAAY2D,EAAY,GACxB,IAAS7Z,EAAI,EAAGA,EAAI,GAAKkW,EAAYhY,EAAK8B,IAAK,CACvCuZ,EAAYP,EAAe9b,QAAQsc,YAAYxR,EAAKuB,EAAU2M,EAAW8C,EAAe9b,QAAQ+c,YACpGZ,GAAgBlH,OAAOuH,aAAc,IAAIxN,WAAW,GAAKqN,GACzD,IAAK,IAAInI,EAAK,EAAG8I,EAAa3Q,EAAU6H,EAAK8I,EAAWld,OAAQoU,IAAM,CAC9D5G,EAAU0P,EAAW9I,GACzB8E,GAAa1L,GAGrB,MAAO,CAAE0L,UAAWA,EAAWmD,aAAcA,IAEjDJ,EAAYvc,UAAUyd,iBAAmB,WACrC,OAAO9J,EAAgBnT,QAAQkd,QAEnCnB,EAAYW,oBAAsB,SAAUP,EAAcC,GACtD,IAAK,IAAIrU,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAIqU,IAAmB/c,KAAK8d,sBAAsBpV,GAE9C,OADAoU,EAAelH,OAAOuH,aAAc,IAAIxN,WAAW,GAAKjH,GAAMoU,EACvDA,EAGf,MAAM,IAAIzY,EAAoB1D,SAElC+b,EAAYoB,sBAAwB,CAAC,EAAM,GAAM,GAAM,GAAK,GAAM,GAAM,GAAM,GAAM,GAAM,IACnFpB,EArDqB,CAsD9BD,EAAe9b,SACjBrB,EAAQqB,QAAU+b,G,oCC9FlB,IAAIlU,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIwe,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAMlCC,EAAsC,SAAU7U,GAOhD,SAAS6U,EAAqBC,EAAwB1T,GAElD,YAD+B,IAA3B0T,IAAqCA,EAAyB,KAC3D9U,EAAOK,KAAKzJ,KAAM,IAAIge,EAAwBrd,QAAQ6J,GAAQ0T,EAAwB1T,IAAUxK,KAE3G,OAVAwI,EAAUyV,EAAsB7U,GAUzB6U,EAX8B,CAYvCF,EAAoBI,mBACtB7e,EAAQ2e,qBAAuBA,G,kCClC/B,IAAIzV,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBC,EAAiC,SAAUjV,GAE3C,SAASiV,IACL,OAAkB,OAAXjV,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAU6V,EAAiBjV,GAIpBiV,EALyB,CAMlCD,EAAYzd,SACdrB,EAAQqB,QAAU0d,G,kCCVlBjf,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAGtD,IAAIG,EAAW,EAAQ,QACnBmU,EAAkB,EAAQ,QAO1ByK,EAA4B,WAC5B,SAASA,EAAW1Z,EAAeF,GAC/B1E,KAAK4E,MAAQA,EACb5E,KAAK0E,OAASA,EAEd,IADA,IAAI6Z,EAAQ,IAAI1V,MAAMnE,GACb5D,EAAI,EAAGA,IAAM4D,EAAQ5D,IAC1Byd,EAAMzd,GAAK,IAAIwP,WAAW1L,GAE9B5E,KAAKue,MAAQA,EA6EjB,OA3EAD,EAAWne,UAAUwE,UAAY,WAC7B,OAAO3E,KAAK0E,QAEhB4Z,EAAWne,UAAU0E,SAAW,WAC5B,OAAO7E,KAAK4E,OAEhB0Z,EAAWne,UAAUU,IAAM,SAAU4C,EAAWgB,GAC5C,OAAOzE,KAAKue,MAAM9Z,GAAGhB,IAKzB6a,EAAWne,UAAUqe,SAAW,WAC5B,OAAOxe,KAAKue,OAGhBD,EAAWne,UAAUse,UAAY,SAAUhb,EAAWgB,EAAWlF,GAC7DS,KAAKue,MAAM9Z,GAAGhB,GAAKlE,GAKvB+e,EAAWne,UAAUue,WAAa,SAAUjb,EAAWgB,EAAWlF,GAC9DS,KAAKue,MAAM9Z,GAAGhB,GAAkBlE,EAAQ,EAAI,GAEhD+e,EAAWne,UAAU8B,MAAQ,SAAU1C,GACnC,IAAK,IAAIqV,EAAK,EAAGC,EAAK7U,KAAKue,MAAO3J,EAAKC,EAAGpU,OAAQmU,IAAM,CACpD,IAAI+J,EAAQ9J,EAAGD,GACflV,EAASiB,QAAQie,eAAeD,EAAOpf,KAG/C+e,EAAWne,UAAU0D,OAAS,SAAUC,GACpC,KAAMA,aAAawa,GACf,OAAO,EAEX,IAAI5b,EAAQoB,EACZ,GAAI9D,KAAK4E,QAAUlC,EAAMkC,MACrB,OAAO,EAEX,GAAI5E,KAAK0E,SAAWhC,EAAMgC,OACtB,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGC,EAAS1E,KAAK0E,OAAQD,EAAIC,IAAUD,EAGhD,IAFA,IAAIoa,EAAS7e,KAAKue,MAAM9Z,GACpBqa,EAAcpc,EAAM6b,MAAM9Z,GACrBhB,EAAI,EAAGmB,EAAQ5E,KAAK4E,MAAOnB,EAAImB,IAASnB,EAC7C,GAAIob,EAAOpb,KAAOqb,EAAYrb,GAC1B,OAAO,EAInB,OAAO,GAGX6a,EAAWne,UAAU6D,SAAW,WAE5B,IADA,IAAI3C,EAAS,IAAIwS,EAAgBlT,QACxB8D,EAAI,EAAGC,EAAS1E,KAAK0E,OAAQD,EAAIC,IAAUD,EAAG,CAEnD,IADA,IAAIoa,EAAS7e,KAAKue,MAAM9Z,GACfhB,EAAI,EAAGmB,EAAQ5E,KAAK4E,MAAOnB,EAAImB,IAASnB,EAC7C,OAAQob,EAAOpb,IACX,KAAK,EACDpC,EAAOyU,OAAO,MACd,MACJ,KAAK,EACDzU,EAAOyU,OAAO,MACd,MACJ,QACIzU,EAAOyU,OAAO,MACd,MAGZzU,EAAOyU,OAAO,MAElB,OAAOzU,EAAO2C,YAEXsa,EArFoB,GAuF/Bhf,EAAQqB,QAAU2d,G,uBClHlB/V,EAAOjJ,QAAU,IAA0B,sB,kCCC3CF,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAOtD,IAAIwf,EAA0B,WAC1B,SAASA,EAASC,GAEd,IADA,IAAI3D,EAAW,GACNzG,EAAK,EAAGA,EAAKP,UAAU5T,OAAQmU,IACpCyG,EAASzG,EAAK,GAAKP,UAAUO,GAEjC5U,KAAKgf,oBAAsBA,EAC3Bhf,KAAKqb,SAAWA,EAoBpB,OAlBA0D,EAAS5e,UAAU6b,uBAAyB,WACxC,OAAOhc,KAAKgf,qBAEhBD,EAAS5e,UAAU8e,aAAe,WAG9B,IAFA,IAAItR,EAAQ,EACR0N,EAAWrb,KAAKqb,SACXzG,EAAK,EAAGsK,EAAa7D,EAAUzG,EAAKsK,EAAWze,OAAQmU,IAAM,CAClE,IAAI+G,EAAUuD,EAAWtK,GACzBjH,GAASgO,EAAQ7G,WAErB,OAAOnH,GAEXoR,EAAS5e,UAAUgf,oBAAsB,WACrC,OAAOnf,KAAKgf,oBAAsBhf,KAAKif,gBAE3CF,EAAS5e,UAAUsb,YAAc,WAC7B,OAAOzb,KAAKqb,UAET0D,EA3BkB,GA6B7Bzf,EAAQqB,QAAUoe,G,2DCpClB,IAAIvW,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBgB,EAAiC,SAAUhW,GAE3C,SAASgW,IACL,OAAkB,OAAXhW,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAU4W,EAAiBhW,GAIpBgW,EALyB,CAMlChB,EAAYzd,SACdrB,EAAQqB,QAAUye,G,oCCVlBhgB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IACI8f,EADA1f,EAA6B,EAAQ,SAEzC,SAAW0f,GACPA,EAAWA,EAAW,cAAgB,GAAK,aAC3CA,EAAWA,EAAW,WAAa,GAAK,UACxCA,EAAWA,EAAW,gBAAkB,GAAK,eAC7CA,EAAWA,EAAW,qBAAuB,GAAK,oBAClDA,EAAWA,EAAW,QAAU,GAAK,OACrCA,EAAWA,EAAW,OAAS,GAAK,MACpCA,EAAWA,EAAW,SAAW,GAAK,QACtCA,EAAWA,EAAW,uBAAyB,GAAK,sBACpDA,EAAWA,EAAW,wBAA0B,GAAK,uBAErDA,EAAWA,EAAW,SAAW,GAAK,SAX1C,CAYGA,EAAa/f,EAAQ+f,aAAe/f,EAAQ+f,WAAa,KAO5D,IAAIC,EAAsB,WACtB,SAASA,EAAK/f,EAAOggB,EAAaC,EAA+B1f,GAC7DE,KAAKT,MAAQA,EACbS,KAAKuf,YAAcA,EACnBvf,KAAKwf,8BAAgCA,EACrCxf,KAAKF,KAAOA,EACZwf,EAAKG,SAAS1e,IAAIjB,EAAME,MACxBsf,EAAKI,UAAU3e,IAAIxB,EAAOS,MA8D9B,OAvDAsf,EAAKK,QAAU,SAAU7f,GACrB,IAAI8f,EAAON,EAAKG,SAAS5e,IAAIf,GAC7B,QAAIC,IAAc6f,EACd,MAAM,IAAIjgB,EAA2BgB,QAEzC,OAAOif,GAOXN,EAAKnf,UAAU0f,sBAAwB,SAAU3E,GAC7C,IACIjY,EADA6c,EAAgB5E,EAAQ6E,mBAW5B,OARI9c,EADA6c,GAAiB,EACR,EAEJA,GAAiB,GACb,EAGA,EAEN9f,KAAKwf,8BAA8Bvc,IAE9Cqc,EAAKnf,UAAUoV,SAAW,WACtB,OAAOvV,KAAKT,OAEhB+f,EAAKnf,UAAU6f,QAAU,WACrB,OAAOhgB,KAAKF,MAEhBwf,EAAKnf,UAAU0D,OAAS,SAAUC,GAC9B,KAAMA,aAAawb,GACf,OAAO,EAEX,IAAI5c,EAAQoB,EACZ,OAAO9D,KAAKT,QAAUmD,EAAMnD,OAEhC+f,EAAKnf,UAAU6D,SAAW,WACtB,OAAOhE,KAAKuf,aAEhBD,EAAKG,SAAW,IAAInT,IACpBgT,EAAKI,UAAY,IAAIpT,IACrBgT,EAAKW,WAAa,IAAIX,EAAKD,EAAWY,WAAY,aAAchgB,WAAWiB,KAAK,CAAC,EAAG,EAAG,IAAK,GAC5Foe,EAAKY,QAAU,IAAIZ,EAAKD,EAAWa,QAAS,UAAWjgB,WAAWiB,KAAK,CAAC,GAAI,GAAI,KAAM,GACtFoe,EAAKa,aAAe,IAAIb,EAAKD,EAAWc,aAAc,eAAgBlgB,WAAWiB,KAAK,CAAC,EAAG,GAAI,KAAM,GACpGoe,EAAKc,kBAAoB,IAAId,EAAKD,EAAWe,kBAAmB,oBAAqBngB,WAAWiB,KAAK,CAAC,EAAG,EAAG,IAAK,GACjHoe,EAAKe,KAAO,IAAIf,EAAKD,EAAWgB,KAAM,OAAQpgB,WAAWiB,KAAK,CAAC,EAAG,GAAI,KAAM,GAC5Eoe,EAAKgB,IAAM,IAAIhB,EAAKD,EAAWiB,IAAK,MAAOrgB,WAAWiB,KAAK,CAAC,EAAG,EAAG,IAAK,GACvEoe,EAAKiB,MAAQ,IAAIjB,EAAKD,EAAWkB,MAAO,QAAStgB,WAAWiB,KAAK,CAAC,EAAG,GAAI,KAAM,GAC/Eoe,EAAKkB,oBAAsB,IAAIlB,EAAKD,EAAWmB,oBAAqB,sBAAuBvgB,WAAWiB,KAAK,CAAC,EAAG,EAAG,IAAK,GACvHoe,EAAKmB,qBAAuB,IAAInB,EAAKD,EAAWoB,qBAAsB,uBAAwBxgB,WAAWiB,KAAK,CAAC,EAAG,EAAG,IAAK,GAE1Hoe,EAAKoB,MAAQ,IAAIpB,EAAKD,EAAWqB,MAAO,QAASzgB,WAAWiB,KAAK,CAAC,EAAG,GAAI,KAAM,IACxEoe,EArEc,GAuEzBhgB,EAAQqB,QAAU2e,G,uBC7GlB,MAAMqB,EAAY,EAAQ,SACpB,IAAE1N,GAAQ,EAAQ,QAClB2N,EAAQ,EAAQ,QAEtB,IAAIC,EAAmB,EAEvBtY,EAAOjJ,QAAU,KACf,MAAMwhB,EAAKF,EAAM,YAAaC,GACxBE,EAAU,GACVC,EAAiB,GACvB,IAAIC,EAAW,GAEfJ,GAAoB,EAEpB,MAAMK,EAAc,IAAMD,EAASxgB,OAC7B0gB,EAAgB,IAAM/hB,OAAOgiB,KAAKL,GAAStgB,OAE3C4gB,EAAU,KACd,GAAwB,IAApBJ,EAASxgB,OAAc,CACzB,MAAM6gB,EAAOliB,OAAOgiB,KAAKL,GACzB,IAAK,IAAIjgB,EAAI,EAAGA,EAAIwgB,EAAK7gB,OAAQK,GAAK,EACpC,GAAuC,qBAA5BkgB,EAAeM,EAAKxgB,IAAqB,CAClDmgB,EAAS,GAAGF,EAAQO,EAAKxgB,KACzB,SAMFygB,EAAQ,CAACC,EAAQC,IAAY,IAC7BlT,QAAQ,CAACC,EAASC,KACpB,MAAMiT,EAAMf,EAAU,CAAEa,SAAQC,YAChCR,EAASxL,KAAKrG,MAAOuS,IACnBV,EAASW,QACTZ,EAAeW,EAAEb,IAAMY,EACvB,IACElT,QAAcmT,EAAEH,GAAQpN,MAAMpU,KAAM,IAAIyhB,EAASC,EAAIZ,MACrD,MAAO1J,GACP3I,EAAO2I,GACP,eACO4J,EAAeW,EAAEb,IACxBO,OAGJpO,EAAI,IAAI6N,WAAYY,EAAIZ,kBACxB7N,EAAI,IAAI6N,uBAAwBG,EAASxgB,UACzC4gB,MAIEQ,EAAaF,IACjBZ,EAAQY,EAAEb,IAAMa,EAChB1O,EAAI,IAAI6N,WAAYa,EAAEb,MACtB7N,EAAI,IAAI6N,yBAA0BK,OAClCE,IACOM,EAAEb,IAGLgB,EAAS1S,MAAOoS,KAAWC,KAC/B,GAAwB,IAApBN,IACF,MAAMlS,MAAM,IAAI6R,+DAElB,OAAOS,EAAMC,EAAQC,IAGjBM,EAAY3S,UAChBhQ,OAAOgiB,KAAKL,GAASxU,QAAQ6C,MAAO4S,UAC5BjB,EAAQiB,GAAKD,cAErBd,EAAW,IAGb,MAAO,CACLY,YACAC,SACAC,YACAb,cACAC,mB,oCC7DJ,IAAI3Y,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,EAAQ,QACR,IAAI0iB,EAA4B,EAAQ,QACpCC,EAAoB,EAAQ,QAC5B1iB,EAAW,EAAQ,QACnBG,EAA6B,EAAQ,QAQrCwiB,EAAoC,SAAU/Y,GAE9C,SAAS+Y,EAAmBC,EAAYxd,EAAeF,EAAgB2d,EAAmBC,EAAoBjd,EAAckd,GACxH,IAAI/Y,EAAQJ,EAAOK,KAAKzJ,KAAM4E,EAAOF,IAAW1E,KAKhD,GAJAwJ,EAAM6Y,UAAYA,EAClB7Y,EAAM8Y,WAAaA,EACnB9Y,EAAMnE,KAAOA,EACbmE,EAAM+Y,IAAMA,EACyB,IAAjCH,EAAWI,kBAAyB,CAGpC,IAFA,IAAI3iB,EAAO+E,EAAQF,EACf+d,EAAuB,IAAIC,kBAAkB7iB,GACxCoD,EAAS,EAAGA,EAASpD,EAAMoD,IAAU,CAC1C,IAAI0f,EAAQP,EAAWnf,GACnB2f,EAAKD,GAAS,GAAM,IACpBE,EAAMF,GAAS,EAAK,IACpB5a,EAAY,IAAR4a,EAERF,EAAqBxf,IAAwB2f,EAAIC,EAAK9a,GAAK,EAAK,IAEpEyB,EAAM4Y,WAAaK,OAGnBjZ,EAAM4Y,WAAaA,EAcvB,QAZIriB,IAAcsiB,IACd7Y,EAAM6Y,UAAYzd,QAElB7E,IAAcuiB,IACd9Y,EAAM8Y,WAAa5d,QAEnB3E,IAAcsF,IACdmE,EAAMnE,KAAO,QAEbtF,IAAcwiB,IACd/Y,EAAM+Y,IAAM,GAEZ/Y,EAAMnE,KAAOT,EAAQ4E,EAAM6Y,WAAa7Y,EAAM+Y,IAAM7d,EAAS8E,EAAM8Y,WACnE,MAAM,IAAI3iB,EAA2BgB,QAAQ,kDAEjD,OAAO6I,EAmDX,OAzFAhB,EAAU2Z,EAAoB/Y,GAyC9B+Y,EAAmBhiB,UAAU2iB,OAAS,SAAUre,EAAWgH,GACvD,GAAIhH,EAAI,GAAKA,GAAKzE,KAAK2E,YACnB,MAAM,IAAIhF,EAA2BgB,QAAQ,uCAAyC8D,GAE1F,IAAIG,EAAQ5E,KAAK6E,YACL,OAAR4G,QAAwB1L,IAAR0L,GAAqBA,EAAIhL,OAASmE,KAClD6G,EAAM,IAAIiX,kBAAkB9d,IAEhC,IAAI3B,GAAUwB,EAAIzE,KAAKuiB,KAAOviB,KAAKqiB,UAAYriB,KAAKqF,KAEpD,OADA7F,EAASmB,QAAQC,UAAUZ,KAAKoiB,WAAYnf,EAAQwI,EAAK,EAAG7G,GACrD6G,GAGX0W,EAAmBhiB,UAAU4iB,UAAY,WACrC,IAAIne,EAAQ5E,KAAK6E,WACbH,EAAS1E,KAAK2E,YAGlB,GAAIC,IAAU5E,KAAKqiB,WAAa3d,IAAW1E,KAAKsiB,WAC5C,OAAOtiB,KAAKoiB,WAEhB,IAAIY,EAAOpe,EAAQF,EACfue,EAAS,IAAIP,kBAAkBM,GAC/BE,EAAcljB,KAAKuiB,IAAMviB,KAAKqiB,UAAYriB,KAAKqF,KAEnD,GAAIT,IAAU5E,KAAKqiB,UAEf,OADA7iB,EAASmB,QAAQC,UAAUZ,KAAKoiB,WAAYc,EAAaD,EAAQ,EAAGD,GAC7DC,EAGX,IAAK,IAAIxe,EAAI,EAAGA,EAAIC,EAAQD,IAAK,CAC7B,IAAI0e,EAAe1e,EAAIG,EACvBpF,EAASmB,QAAQC,UAAUZ,KAAKoiB,WAAYc,EAAaD,EAAQE,EAAcve,GAC/Ese,GAAeljB,KAAKqiB,UAExB,OAAOY,GAGXd,EAAmBhiB,UAAUijB,gBAAkB,WAC3C,OAAO,GAGXjB,EAAmBhiB,UAAUkjB,KAAO,SAAUhe,EAAckd,EAAa3d,EAAeF,GACpF,OAAO,IAAIyd,EAAmBniB,KAAKoiB,WAAYxd,EAAOF,EAAQ1E,KAAKqiB,UAAWriB,KAAKsiB,WAAYtiB,KAAKqF,KAAOA,EAAMrF,KAAKuiB,IAAMA,IAEhIJ,EAAmBhiB,UAAUmjB,OAAS,WAClC,OAAO,IAAIrB,EAA0BthB,QAAQX,OAE1CmiB,EA1F4B,CA2FrCD,EAAkBvhB,SACpBrB,EAAQqB,QAAUwhB,G,oCCvHlB/iB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIuU,EAAkB,EAAQ,SAC1B2I,EAAiB,EAAQ,QACzB7I,EAAW,EAAQ,QACnBzP,EAAgB,EAAQ,QACxBkG,EAAuB,EAAQ,QAC/BhG,EAAsB,EAAQ,QAI9Bkf,EAAyC,WACzC,SAASA,IACLvjB,KAAK2c,qBAAuB,CAAC,EAAG,EAAG,EAAG,GACtC3c,KAAKwjB,sBAAwB,GAwDjC,OAtDAD,EAAwBpjB,UAAUyM,UAAY,SAAUb,EAAWN,EAAKgY,GACpE,IAAIpiB,EAASrB,KAAKwjB,sBACd7hB,EAAM3B,KAAK4c,aAAanR,EAAKgY,EAAqBpiB,GAClDyb,EAAezb,EAAO2C,WACtB0f,EAAgBH,EAAwBI,qBAAqB7G,GAC7D8G,EAAe,CACf,IAAIzf,EAAcxD,SAAS8iB,EAAoB,GAAKA,EAAoB,IAAM,EAAK1X,GACnF,IAAI5H,EAAcxD,QAAQgB,EAAKoK,IAE/B8X,EAAkB,IAAIjQ,EAASjT,QAAQmc,EAAc,KAAM,EAAG8G,EAAc9P,EAAgBnT,QAAQmjB,mBAAmB,IAAIxN,MAAOC,WAItI,OAHqB,MAAjBmN,GACAG,EAAgBE,eAAeL,GAE5BG,GAEXN,EAAwBpjB,UAAUyc,aAAe,SAAUnR,EAAKoR,EAAYC,GACxE,IAAI9P,EAAWhN,KAAK2c,qBACpB3P,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EAId,IAHA,IAAIrL,EAAM8J,EAAIrL,UACVuZ,EAAYkD,EAAW,GACvBmH,EAAc,EACTvgB,EAAI,EAAGA,EAAI,GAAKkW,EAAYhY,EAAK8B,IAAK,CAC3C,IAAIuZ,EAAYP,EAAe9b,QAAQsc,YAAYxR,EAAKuB,EAAU2M,EAAW8C,EAAe9b,QAAQuc,kBACpGJ,GAAgBlH,OAAOuH,aAAc,IAAIxN,WAAW,GAAKqN,EAAY,IACrE,IAAK,IAAIpI,EAAK,EAAGwI,EAAapQ,EAAU4H,EAAKwI,EAAW3c,OAAQmU,IAAM,CAClE,IAAI3G,EAAUmP,EAAWxI,GACzB+E,GAAa1L,EAEb+O,GAAa,KACbgH,GAAe,GAAM,EAAIvgB,GAEnB,IAANA,IAEAkW,EAAYlO,EAAIxK,WAAW0Y,GAC3BA,EAAYlO,EAAIlK,aAAaoY,IAGrC,GAA4B,IAAxBmD,EAAarc,OACb,MAAM,IAAI4D,EAAoB1D,QAElC,GAAIsjB,SAASnH,EAAa9Y,YAAc,IAAMggB,EAC1C,MAAM,IAAI3f,EAAoB1D,QAElC,OAAOgZ,GAEX4J,EAAwBI,qBAAuB,SAAUO,GACrD,OAAmB,IAAfA,EAAIzjB,OACG,KAEJ,IAAI6L,IAAI,CAAC,CAACjC,EAAqB1J,QAAQwjB,aAAcF,SAASC,OAElEX,EA3DiC,GA6D5CjkB,EAAQqB,QAAU4iB,G,oCCvElB,IAAI/a,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAI6kB,EAAc,EAAQ,QACtBja,EAAa,EAAQ,QACrBka,EAAc,EAAQ,QACtBhgB,EAAsB,EAAQ,QAY9BigB,EAA0C,SAAUlb,GAEpD,SAASkb,EAAyBC,GAC9B,IAAI/a,EAAQJ,EAAOK,KAAKzJ,KAAMukB,IAAWvkB,KAGzC,OAFAwJ,EAAM4Y,WAAakC,EAAyBE,MAC5Chb,EAAMib,QAAU,IAAIxkB,WAAWqkB,EAAyBI,mBACjDlb,EAmJX,OAxJAhB,EAAU8b,EAA0Blb,GASpCkb,EAAyBnkB,UAAU6L,YAAc,SAAUvH,EAAWgH,GAClE,IAAI8Y,EAASvkB,KAAK2kB,qBACd/f,EAAQ2f,EAAO1f,gBACP9E,IAAR0L,GAA6B,OAARA,GAAgBA,EAAIrL,UAAYwE,EACrD6G,EAAM,IAAItB,EAAWxJ,QAAQiE,GAG7B6G,EAAIxJ,QAERjC,KAAK4kB,WAAWhgB,GAGhB,IAFA,IAAIigB,EAAkBN,EAAOzB,OAAOre,EAAGzE,KAAKoiB,YACxC0C,EAAe9kB,KAAKykB,QACfhhB,EAAI,EAAGA,EAAImB,EAAOnB,IACvBqhB,GAAmC,IAArBD,EAAgBphB,KAAc6gB,EAAyBS,mBAEzE,IAAIC,EAAaV,EAAyBW,mBAAmBH,GAC7D,GAAIlgB,EAAQ,EAER,IAASnB,EAAI,EAAGA,EAAImB,EAAOnB,KACG,IAArBohB,EAAgBphB,IAAauhB,GAC9BvZ,EAAI1K,IAAI0C,OAKhB,KAAI4B,EAA4B,IAArBwf,EAAgB,GACvB9N,EAA8B,IAArB8N,EAAgB,GAC7B,IAASphB,EAAI,EAAGA,EAAImB,EAAQ,EAAGnB,IAAK,CAChC,IAAI6B,EAAiC,IAAzBuf,EAAgBphB,EAAI,IAEjB,EAATsT,EAAc1R,EAAOC,GAAS,EAAI0f,GACpCvZ,EAAI1K,IAAI0C,GAEZ4B,EAAO0R,EACPA,EAASzR,GAGjB,OAAOmG,GAIX6Y,EAAyBnkB,UAAU+kB,eAAiB,WAChD,IAAIX,EAASvkB,KAAK2kB,qBACd/f,EAAQ2f,EAAO1f,WACfH,EAAS6f,EAAO5f,YAChBse,EAAS,IAAIoB,EAAY1jB,QAAQiE,EAAOF,GAG5C1E,KAAK4kB,WAAWhgB,GAEhB,IADA,IAAIkgB,EAAe9kB,KAAKykB,QACfhgB,EAAI,EAAGA,EAAI,EAAGA,IAInB,IAHA,IAAIgH,EAAM/G,EAASD,EAAI,EACnB0gB,EAAoBZ,EAAOzB,OAAOrX,EAAKzL,KAAKoiB,YAC5C9c,EAAQhF,KAAKC,MAAe,EAARqE,EAAa,GAC5BnB,EAAInD,KAAKC,MAAMqE,EAAQ,GAAInB,EAAI6B,EAAO7B,IAAK,CAChD,IAAIkf,EAA+B,IAAvBwC,EAAkB1hB,GAC9BqhB,EAAanC,GAAS2B,EAAyBS,mBAGvD,IAAIC,EAAaV,EAAyBW,mBAAmBH,GAIzDD,EAAkBN,EAAOxB,YAC7B,IAASte,EAAI,EAAGA,EAAIC,EAAQD,IACxB,KAAIxB,EAASwB,EAAIG,EACjB,IAASnB,EAAI,EAAGA,EAAImB,EAAOnB,IAAK,CACxBkf,EAAsC,IAA9BkC,EAAgB5hB,EAASQ,GACjCkf,EAAQqC,GACR/B,EAAOliB,IAAI0C,EAAGgB,IAI1B,OAAOwe,GAGXqB,EAAyBnkB,UAAUilB,gBAAkB,SAAUb,GAC3D,OAAO,IAAID,EAAyBC,IAExCD,EAAyBnkB,UAAUykB,WAAa,SAAUS,GAClDrlB,KAAKoiB,WAAW3hB,OAAS4kB,IACzBrlB,KAAKoiB,WAAa,IAAIM,kBAAkB2C,IAG5C,IADA,IAAIZ,EAAUzkB,KAAKykB,QACVhhB,EAAI,EAAGA,EAAI6gB,EAAyBI,kBAAmBjhB,IAC5DghB,EAAQhhB,GAAK,GAGrB6gB,EAAyBW,mBAAqB,SAAUR,GAMpD,IAJA,IAAIa,EAAab,EAAQhkB,OACrB8kB,EAAiB,EACjBC,EAAY,EACZC,EAAgB,EACXhiB,EAAI,EAAGA,EAAI6hB,EAAY7hB,IACxBghB,EAAQhhB,GAAKgiB,IACbD,EAAY/hB,EACZgiB,EAAgBhB,EAAQhhB,IAExBghB,EAAQhhB,GAAK8hB,IACbA,EAAiBd,EAAQhhB,IAIjC,IAAIiiB,EAAa,EACbC,EAAkB,EACtB,IAASliB,EAAI,EAAGA,EAAI6hB,EAAY7hB,IAAK,CACjC,IAAImiB,EAAoBniB,EAAI+hB,EAExBK,EAAQpB,EAAQhhB,GAAKmiB,EAAoBA,EACzCC,EAAQF,IACRD,EAAajiB,EACbkiB,EAAkBE,GAI1B,GAAIL,EAAYE,EAAY,CACxB,IAAIlU,EAAOgU,EACXA,EAAYE,EACZA,EAAalU,EAIjB,GAAIkU,EAAaF,GAAaF,EAAa,GACvC,MAAM,IAAIjhB,EAAoB1D,QAGlC,IAAImlB,EAAaJ,EAAa,EAC1BK,GAAmB,EACvB,IAAStiB,EAAIiiB,EAAa,EAAGjiB,EAAI+hB,EAAW/hB,IAAK,CAC7C,IAAIuiB,EAAYviB,EAAI+hB,EAChBK,EAAQG,EAAYA,GAAaN,EAAajiB,IAAM8hB,EAAiBd,EAAQhhB,IAC7EoiB,EAAQE,IACRD,EAAariB,EACbsiB,EAAkBF,GAG1B,OAAOC,GAAcxB,EAAyBS,iBAElDT,EAAyB2B,eAAiB,EAC1C3B,EAAyBS,gBAAkB,EAAIT,EAAyB2B,eACxE3B,EAAyBI,kBAAoB,GAAKJ,EAAyB2B,eAC3E3B,EAAyBE,MAAQ9B,kBAAkBxhB,KAAK,CAAC,IAClDojB,EAzJkC,CA0J3CF,EAAYzjB,SACdrB,EAAQqB,QAAU2jB,G,oCCzLlBllB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAI2mB,EAAmB,EAAQ,QAC3B/b,EAAa,EAAQ,QACrBgc,EAAoB,EAAQ,QAC5B5V,EAAc,EAAQ,QACtB6V,EAAuB,EAAQ,QAC/BC,EAAS,EAAQ,QACjBC,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrBC,EAAe,EAAQ,QACvBC,EAAW,EAAQ,QACnBC,EAAe,EAAQ,QACvBC,EAAmB,EAAQ,QAC3BC,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAS5BC,EAAyB,WAEzB,SAASA,KA+fT,OA3fAA,EAAQC,qBAAuB,SAAU9D,GACrC,OAAOsD,EAAW5lB,QAAQqmB,sBAAsB/D,GAC1CsD,EAAW5lB,QAAQsmB,sBAAsBhE,GACzCsD,EAAW5lB,QAAQumB,sBAAsBjE,GACzCsD,EAAW5lB,QAAQwmB,sBAAsBlE,IAYnD6D,EAAQM,OAAS,SAAUC,EAASlM,EAAS3Q,QAC3B,IAAVA,IAAoBA,EAAQ,MAEhC,IAAI8c,EAAWR,EAAQS,2BACnBC,EAA4B,OAAVhd,QAAkBzK,IAAcyK,EAAM3J,IAAIqlB,EAAiBvlB,QAAQ8mB,eACrFD,IACAF,EAAW9c,EAAM3J,IAAIqlB,EAAiBvlB,QAAQ8mB,eAAezjB,YAIjE,IAAI4b,EAAO5f,KAAK0nB,WAAWL,EAASC,GAGhCK,EAAa,IAAIxd,EAAWxJ,QAEhC,GAAIif,IAASyG,EAAO1lB,QAAQ0f,OAASmH,GAAmBV,EAAQS,6BAA+BD,GAAW,CACtG,IAAIM,EAAMzB,EAAkBxlB,QAAQknB,yBAAyBP,QACjDvnB,IAAR6nB,GACA5nB,KAAK8nB,UAAUF,EAAKD,GAI5B3nB,KAAK+nB,eAAenI,EAAM+H,GAG1B,IAEIzM,EAFA8M,EAAW,IAAI7d,EAAWxJ,QAG9B,GAFAX,KAAKioB,YAAYZ,EAASzH,EAAMoI,EAAUV,GAE5B,OAAV9c,QAAkBzK,IAAcyK,EAAM3J,IAAIqlB,EAAiBvlB,QAAQunB,YAAa,CAChF,IAAIpI,EAAgBjS,OAAOoW,SAASzZ,EAAM3J,IAAIqlB,EAAiBvlB,QAAQunB,YAAYlkB,WAAY,IAC/FkX,EAAUoL,EAAU3lB,QAAQwnB,oBAAoBrI,GAChD,IAAIsI,EAAapoB,KAAKqoB,oBAAoBzI,EAAM+H,EAAYK,EAAU9M,GACtE,IAAKlb,KAAKsoB,QAAQF,EAAYlN,EAASC,GACnC,MAAM,IAAI0L,EAAkBlmB,QAAQ,2CAIxCua,EAAUlb,KAAKuoB,iBAAiBpN,EAASyE,EAAM+H,EAAYK,GAE/D,IAAIQ,EAAoB,IAAIre,EAAWxJ,QACvC6nB,EAAkB/lB,eAAeklB,GAEjC,IAAIc,EAAa7I,IAASyG,EAAO1lB,QAAQ0f,KAAO2H,EAAS3nB,iBAAmBgnB,EAAQ5mB,OACpFT,KAAK0oB,iBAAiBD,EAAYvN,EAAS0E,EAAM4I,GAEjDA,EAAkB/lB,eAAeulB,GACjC,IAAI3M,EAAWH,EAAQI,oBAAoBH,GACvCwN,EAAezN,EAAQE,oBAAsBC,EAAS8D,sBAE1Dnf,KAAK4oB,cAAcD,EAAcH,GAEjC,IAAIK,EAAY7oB,KAAK8oB,sBAAsBN,EAAmBtN,EAAQE,oBAAqBuN,EAActN,EAAS4D,gBAC9G8J,EAAS,IAAItC,EAAS9lB,QAC1BooB,EAAOC,WAAW7N,GAClB4N,EAAOE,QAAQrJ,GACfmJ,EAAOG,WAAWhO,GAElB,IAAIiO,EAAYjO,EAAQkO,yBACpBnG,EAAS,IAAIuD,EAAa7lB,QAAQwoB,EAAWA,GAC7CE,EAAcrpB,KAAKspB,kBAAkBT,EAAW1N,EAASD,EAAS+H,GAKtE,OAJA8F,EAAOQ,eAAeF,GAEtB3C,EAAa/lB,QAAQ6oB,YAAYX,EAAW1N,EAASD,EAASmO,EAAapG,GAC3E8F,EAAOU,UAAUxG,GACV8F,GAOXjC,EAAQyB,iBAAmB,SAAUpN,EAASyE,EAAM+H,EAAYK,GAI5D,IAAI0B,EAAwB1pB,KAAKqoB,oBAAoBzI,EAAM+H,EAAYK,EAAU1B,EAAU3lB,QAAQwnB,oBAAoB,IACnHwB,EAAqB3pB,KAAK4pB,cAAcF,EAAuBvO,GAE/DiN,EAAapoB,KAAKqoB,oBAAoBzI,EAAM+H,EAAYK,EAAU2B,GACtE,OAAO3pB,KAAK4pB,cAAcxB,EAAYjN,IAE1C2L,EAAQuB,oBAAsB,SAAUzI,EAAM+H,EAAYK,EAAU9M,GAChE,OAAOyM,EAAWvnB,UAAYwf,EAAKC,sBAAsB3E,GAAW8M,EAAS5nB,WAMjF0mB,EAAQ+C,oBAAsB,SAAU7a,GACpC,OAAIA,EAAO8X,EAAQgD,mBAAmBrpB,OAC3BqmB,EAAQgD,mBAAmB9a,IAE9B,GASZ8X,EAAQY,WAAa,SAAUL,EAASC,GAEpC,QADiB,IAAbA,IAAuBA,EAAW,MAClCnB,EAAkBxlB,QAAQopB,KAAKC,YAAc1C,GAAYtnB,KAAKiqB,sBAAsB5C,GAEpF,OAAOhB,EAAO1lB,QAAQ4f,MAI1B,IAFA,IAAI2J,GAAa,EACbC,GAAkB,EACbrpB,EAAI,EAAG+B,EAAWwkB,EAAQ5mB,OAAQK,EAAI+B,IAAY/B,EAAG,CAC1D,IAAI4O,EAAI2X,EAAQpR,OAAOnV,GACvB,GAAIgmB,EAAQsD,QAAQ1a,GAChBwa,GAAa,MAEZ,KAAmD,IAA/ClqB,KAAK6pB,oBAAoBna,EAAEC,WAAW,IAI3C,OAAO0W,EAAO1lB,QAAQ0f,KAHtB8J,GAAkB,GAM1B,OAAIA,EACO9D,EAAO1lB,QAAQwf,aAEtB+J,EACO7D,EAAO1lB,QAAQuf,QAEnBmG,EAAO1lB,QAAQ0f,MAE1ByG,EAAQmD,sBAAwB,SAAU5C,GACtC,IAAI9I,EACJ,IACIA,EAAQoI,EAAiBhmB,QAAQymB,OAAOC,EAASlB,EAAkBxlB,QAAQopB,MAE/E,MAAO9d,GACH,OAAO,EAEX,IAAIxL,EAAS8d,EAAM9d,OACnB,GAAIA,EAAS,IAAM,EACf,OAAO,EAEX,IAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAQK,GAAK,EAAG,CAChC,IAAIupB,EAAmB,IAAX9L,EAAMzd,GAClB,IAAKupB,EAAQ,KAAQA,EAAQ,OAAUA,EAAQ,KAAQA,EAAQ,KAC3D,OAAO,EAGf,OAAO,GAEXvD,EAAQwC,kBAAoB,SAAUxpB,EAAMqb,EAASD,EAAS+H,GAI1D,IAHA,IAAIqH,EAAazc,OAAO0c,iBACpBC,GAAmB,EAEdnB,EAAc,EAAGA,EAAc5C,EAAS9lB,QAAQ8pB,kBAAmBpB,IAAe,CACvF3C,EAAa/lB,QAAQ6oB,YAAY1pB,EAAMqb,EAASD,EAASmO,EAAapG,GACtE,IAAIyH,EAAU1qB,KAAK+mB,qBAAqB9D,GACpCyH,EAAUJ,IACVA,EAAaI,EACbF,EAAkBnB,GAG1B,OAAOmB,GAEX1D,EAAQ8C,cAAgB,SAAUe,EAAsBxP,GACpD,IAAK,IAAIyP,EAAa,EAAGA,GAAc,GAAIA,IAAc,CACrD,IAAI1P,EAAUoL,EAAU3lB,QAAQwnB,oBAAoByC,GACpD,GAAI9D,EAAQwB,QAAQqC,EAAczP,EAASC,GACvC,OAAOD,EAGf,MAAM,IAAI2L,EAAkBlmB,QAAQ,iBAMxCmmB,EAAQwB,QAAU,SAAUqC,EAAsBzP,EAASC,GAGvD,IAAIjY,EAAWgY,EAAQE,oBAEnBC,EAAWH,EAAQI,oBAAoBH,GACvC0P,EAAaxP,EAAS8D,sBAEtBwJ,EAAezlB,EAAW2nB,EAC1BC,GAAmBH,EAAe,GAAK,EAC3C,OAAOhC,GAAgBmC,GAK3BhE,EAAQ8B,cAAgB,SAAUD,EAAsB7oB,GACpD,IAAIirB,EAA0B,EAAfpC,EACf,GAAI7oB,EAAKM,UAAY2qB,EACjB,MAAM,IAAIlE,EAAkBlmB,QAAQ,sCAAwCb,EAAKM,UAAY,MACzF2qB,GAER,IAAK,IAAIjqB,EAAI,EAAGA,EAAI,GAAKhB,EAAKM,UAAY2qB,IAAYjqB,EAClDhB,EAAKsC,WAAU,GAInB,IAAI4oB,EAAqC,EAAjBlrB,EAAKM,UAC7B,GAAI4qB,EAAoB,EACpB,IAASlqB,EAAIkqB,EAAmBlqB,EAAI,EAAGA,IACnChB,EAAKsC,WAAU,GAIvB,IAAI6oB,EAAkBtC,EAAe7oB,EAAKO,iBAC1C,IAASS,EAAI,EAAGA,EAAImqB,IAAmBnqB,EACnChB,EAAKwC,WAA0B,KAAV,EAAJxB,GAAkB,IAAO,GAAM,GAEpD,GAAIhB,EAAKM,YAAc2qB,EACnB,MAAM,IAAIlE,EAAkBlmB,QAAQ,sCAQ5CmmB,EAAQoE,uCAAyC,SAAUC,EAAuBxC,EAAsByC,EAAqBC,EAAiBC,EAAqBC,GAC/J,GAAIF,GAAWD,EACX,MAAM,IAAIvE,EAAkBlmB,QAAQ,sBAGxC,IAAI6qB,EAAsBL,EAAgBC,EAEtCK,EAAsBL,EAAcI,EAEpCE,EAAwBprB,KAAKC,MAAM4qB,EAAgBC,GAEnDO,EAAwBD,EAAwB,EAEhDE,EAAuBtrB,KAAKC,MAAMooB,EAAeyC,GAEjDS,EAAuBD,EAAuB,EAE9CE,EAAqBJ,EAAwBE,EAE7CG,EAAqBJ,EAAwBE,EAGjD,GAAIC,IAAuBC,EACvB,MAAM,IAAIlF,EAAkBlmB,QAAQ,qBAGxC,GAAIyqB,IAAgBK,EAAsBD,EACtC,MAAM,IAAI3E,EAAkBlmB,QAAQ,sBAGxC,GAAIwqB,KACES,EAAuBE,GACrBL,GACEI,EAAuBE,GACrBP,EACR,MAAM,IAAI3E,EAAkBlmB,QAAQ,wBAEpC0qB,EAAUI,GACVH,EAAoB,GAAKM,EACzBL,EAAkB,GAAKO,IAGvBR,EAAoB,GAAKO,EACzBN,EAAkB,GAAKQ,IAO/BjF,EAAQgC,sBAAwB,SAAUhpB,EAAMqrB,EAAuBxC,EAAsByC,GAEzF,GAAItrB,EAAKO,mBAAqBsoB,EAC1B,MAAM,IAAI9B,EAAkBlmB,QAAQ,gDASxC,IALA,IAAIqrB,EAAkB,EAClBC,EAAkB,EAClBC,EAAgB,EAEhBC,EAAS,IAAItjB,MACR/H,EAAI,EAAGA,EAAIsqB,IAAetqB,EAAG,CAClC,IAAIwqB,EAAsB,IAAIrrB,WAAW,GACrCmsB,EAAoB,IAAInsB,WAAW,GACvC6mB,EAAQoE,uCAAuCC,EAAexC,EAAcyC,EAAatqB,EAAGwqB,EAAqBc,GACjH,IAAIvsB,EAAOyrB,EAAoB,GAC3BnjB,EAAY,IAAImI,WAAWzQ,GAC/BC,EAAKgD,QAAQ,EAAIkpB,EAAiB7jB,EAAW,EAAGtI,GAChD,IAAIwsB,EAAUvF,EAAQwF,gBAAgBnkB,EAAWikB,EAAkB,IACnED,EAAO1W,KAAK,IAAImR,EAAYjmB,QAAQwH,EAAWkkB,IAC/CJ,EAAkB3rB,KAAK4B,IAAI+pB,EAAiBpsB,GAC5CqsB,EAAgB5rB,KAAK4B,IAAIgqB,EAAeG,EAAQ5rB,QAChDurB,GAAmBV,EAAoB,GAE3C,GAAI3C,IAAiBqD,EACjB,MAAM,IAAInF,EAAkBlmB,QAAQ,oCAExC,IAAIU,EAAS,IAAI8I,EAAWxJ,QAE5B,IAASG,EAAI,EAAGA,EAAImrB,IAAmBnrB,EACnC,IAAK,IAAI8T,EAAK,EAAG2X,EAAWJ,EAAQvX,EAAK2X,EAAS9rB,OAAQmU,IAAM,CAC5D,IAAI4X,EAAQD,EAAS3X,GACjBzM,EAAYqkB,EAAMnkB,eAClBvH,EAAIqH,EAAU1H,QACdY,EAAOiB,WAAW6F,EAAUrH,GAAI,GAK5C,IAASA,EAAI,EAAGA,EAAIorB,IAAiBprB,EACjC,IAAK,IAAI+T,EAAK,EAAG4X,EAAWN,EAAQtX,EAAK4X,EAAShsB,OAAQoU,IAAM,CACxD2X,EAAQC,EAAS5X,GACjBwX,EAAUG,EAAMlkB,0BAChBxH,EAAIurB,EAAQ5rB,QACZY,EAAOiB,WAAW+pB,EAAQvrB,GAAI,GAI1C,GAAIqqB,IAAkB9pB,EAAOhB,iBACzB,MAAM,IAAIwmB,EAAkBlmB,QAAQ,uBAAyBwqB,EAAgB,QACzE9pB,EAAOhB,iBAAmB,YAElC,OAAOgB,GAEXylB,EAAQwF,gBAAkB,SAAUnkB,EAAWikB,GAG3C,IAFA,IAAIzD,EAAexgB,EAAU1H,OACzBisB,EAAW,IAAIzsB,WAAW0oB,EAAeyD,GACpCtrB,EAAI,EAAGA,EAAI6nB,EAAc7nB,IAC9B4rB,EAAS5rB,GAAoB,IAAfqH,EAAUrH,GAE5B,IAAIslB,EAAqBzlB,QAAQ4P,EAAY5P,QAAQgsB,mBAAmBvF,OAAOsF,EAAUN,GACzF,IAAIC,EAAU,IAAI/b,WAAW8b,GAC7B,IAAStrB,EAAI,EAAGA,EAAIsrB,EAAmBtrB,IACnCurB,EAAQvrB,GAAiB4rB,EAAS/D,EAAe7nB,GAErD,OAAOurB,GAKXvF,EAAQiB,eAAiB,SAAUnI,EAAM9f,GACrCA,EAAKwC,WAAWsd,EAAKI,UAAW,IAKpC8G,EAAQ4B,iBAAmB,SAAUD,EAAoBvN,EAAS0E,EAAM9f,GACpE,IAAIyC,EAAUqd,EAAKC,sBAAsB3E,GACzC,GAAIuN,GAAe,GAAKlmB,EACpB,MAAM,IAAIskB,EAAkBlmB,QAAQ8nB,EAAa,qBAAuB,GAAKlmB,GAAW,IAE5FzC,EAAKwC,WAAWmmB,EAAYlmB,IAKhCukB,EAAQmB,YAAc,SAAUZ,EAASzH,EAAM9f,EAAMwnB,GACjD,OAAQ1H,GACJ,KAAKyG,EAAO1lB,QAAQuf,QAChB4G,EAAQ8F,mBAAmBvF,EAASvnB,GACpC,MACJ,KAAKumB,EAAO1lB,QAAQwf,aAChB2G,EAAQ+F,wBAAwBxF,EAASvnB,GACzC,MACJ,KAAKumB,EAAO1lB,QAAQ0f,KAChByG,EAAQgG,gBAAgBzF,EAASvnB,EAAMwnB,GACvC,MACJ,KAAKjB,EAAO1lB,QAAQ4f,MAChBuG,EAAQiG,iBAAiB1F,EAASvnB,GAClC,MACJ,QACI,MAAM,IAAI+mB,EAAkBlmB,QAAQ,iBAAmBif,KAGnEkH,EAAQkG,SAAW,SAAUC,GACzB,OAAOA,EAAgBtd,WAAW,GAAK,IAE3CmX,EAAQsD,QAAU,SAAU6C,GACxB,IAAIC,EAAKpG,EAAQkG,SAASC,GAC1B,OAAOC,GAAM,GAAKA,GAAM,GAE5BpG,EAAQ8F,mBAAqB,SAAUvF,EAASvnB,GAC5C,IAAIW,EAAS4mB,EAAQ5mB,OACjBK,EAAI,EACR,MAAOA,EAAIL,EAAQ,CACf,IAAI0sB,EAAOrG,EAAQkG,SAAS3F,EAAQpR,OAAOnV,IAC3C,GAAIA,EAAI,EAAIL,EAAQ,CAEhB,IAAI2sB,EAAOtG,EAAQkG,SAAS3F,EAAQpR,OAAOnV,EAAI,IAC3CusB,EAAOvG,EAAQkG,SAAS3F,EAAQpR,OAAOnV,EAAI,IAC/ChB,EAAKwC,WAAkB,IAAP6qB,EAAoB,GAAPC,EAAYC,EAAM,IAC/CvsB,GAAK,OAEJ,GAAIA,EAAI,EAAIL,EAAQ,CAEjB2sB,EAAOtG,EAAQkG,SAAS3F,EAAQpR,OAAOnV,EAAI,IAC/ChB,EAAKwC,WAAkB,GAAP6qB,EAAYC,EAAM,GAClCtsB,GAAK,OAILhB,EAAKwC,WAAW6qB,EAAM,GACtBrsB,MAIZgmB,EAAQ+F,wBAA0B,SAAUxF,EAASvnB,GACjD,IAAIW,EAAS4mB,EAAQ5mB,OACjBK,EAAI,EACR,MAAOA,EAAIL,EAAQ,CACf,IAAI6sB,EAAQxG,EAAQ+C,oBAAoBxC,EAAQ1X,WAAW7O,IAC3D,IAAe,IAAXwsB,EACA,MAAM,IAAIzG,EAAkBlmB,QAEhC,GAAIG,EAAI,EAAIL,EAAQ,CAChB,IAAI8sB,EAAQzG,EAAQ+C,oBAAoBxC,EAAQ1X,WAAW7O,EAAI,IAC/D,IAAe,IAAXysB,EACA,MAAM,IAAI1G,EAAkBlmB,QAGhCb,EAAKwC,WAAmB,GAARgrB,EAAaC,EAAO,IACpCzsB,GAAK,OAILhB,EAAKwC,WAAWgrB,EAAO,GACvBxsB,MAIZgmB,EAAQgG,gBAAkB,SAAUzF,EAASvnB,EAAMwnB,GAC/C,IAAI/I,EACJ,IACIA,EAAQoI,EAAiBhmB,QAAQymB,OAAOC,EAASC,GAErD,MAAOkG,GACH,MAAM,IAAI3G,EAAkBlmB,QAAQ6sB,GAExC,IAAK,IAAI1sB,EAAI,EAAG2sB,EAAWlP,EAAM9d,OAAQK,IAAM2sB,EAAU3sB,IAAK,CAC1D,IAAIiH,EAAIwW,EAAMzd,GACdhB,EAAKwC,WAAWyF,EAAG,KAM3B+e,EAAQiG,iBAAmB,SAAU1F,EAASvnB,GAC1C,IAAIye,EACJ,IACIA,EAAQoI,EAAiBhmB,QAAQymB,OAAOC,EAASlB,EAAkBxlB,QAAQopB,MAE/E,MAAOyD,GACH,MAAM,IAAI3G,EAAkBlmB,QAAQ6sB,GAGxC,IADA,IAAI/sB,EAAS8d,EAAM9d,OACVK,EAAI,EAAGA,EAAIL,EAAQK,GAAK,EAAG,CAChC,IAAIupB,EAAmB,IAAX9L,EAAMzd,GACd4sB,EAAuB,IAAfnP,EAAMzd,EAAI,GAClBkO,EAASqb,GAAS,EAAK,WAAcqD,EACrCC,GAAc,EAOlB,GANI3e,GAAQ,OAAUA,GAAQ,MAC1B2e,EAAa3e,EAAO,MAEfA,GAAQ,OAAUA,GAAQ,QAC/B2e,EAAa3e,EAAO,QAEJ,IAAhB2e,EACA,MAAM,IAAI9G,EAAkBlmB,QAAQ,yBAExC,IAAIitB,EAA+B,KAAnBD,GAAc,IAA2B,IAAbA,GAC5C7tB,EAAKwC,WAAWsrB,EAAS,MAGjC9G,EAAQgB,UAAY,SAAUF,EAAK9nB,GAC/BA,EAAKwC,WAAW+jB,EAAO1lB,QAAQ2f,IAAIN,UAAW,GAE9ClgB,EAAKwC,WAAWslB,EAAIrS,WAAY,IAGpCuR,EAAQgD,mBAAqB7pB,WAAWiB,KAAK,EACxC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC7D,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,GAAI,GAC5D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAEjE4lB,EAAQS,2BAA6BpB,EAAkBxlB,QAAQktB,KAAK7D,UAC7DlD,EAjgBiB,GAmgB5BxnB,EAAQqB,QAAUmmB,G,qCC1iBlB,IAAIte,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItB0P,EAAmC,SAAU1kB,GAE7C,SAAS0kB,IACL,OAAkB,OAAX1kB,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAUslB,EAAmB1kB,GAItB0kB,EAL2B,CAMpC1P,EAAYzd,SACdrB,EAAQqB,QAAUmtB,G,sBC1BlB,oBAAmB,EAAQ,SACrB,QAAE5S,EAAO,aAAE6S,GAAiB,EAAQ,QACpCC,EAAiB,EAAQ,QAK/BzlB,EAAOjJ,QAAU,IACZ0uB,EACHC,WAAgC,qBAAZC,GAAoD,gBAAzB,6CAAYC,SACvD/f,EAAW,+BAA+B9N,KAAK8tB,SAASpqB,SAAS,IAAIE,MAAM,IAC3E,mCAAmCgX,uBAKvCmT,SAAU,wCAAwCN,EAAa,qBAAqBO,UAAU,qBAA4C,kBAAhBC,YAA2B,OAAS,c,0DCAhK,IAAI/lB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAIuU,EAAkB,EAAQ,SAC1B0a,EAAsB,EAAQ,SAC9BC,EAAoB,EAAQ,QAC5BpqB,EAAsB,EAAQ,QAC9B6P,EAAe,EAAQ,QACvBN,EAAW,EAAQ,QACnBzP,EAAgB,EAAQ,QAOxBuqB,EAA8B,SAAUtlB,GA6BxC,SAASslB,EAAaC,EAAiBC,QACX,IAApBD,IAA8BA,GAAkB,QAC/B,IAAjBC,IAA2BA,GAAe,GAC9C,IAAIplB,EAAQJ,EAAOK,KAAKzJ,OAASA,KAKjC,OAJAwJ,EAAMmlB,gBAAkBA,EACxBnlB,EAAMolB,aAAeA,EACrBplB,EAAMqlB,gBAAkB,GACxBrlB,EAAMwD,SAAW,IAAInE,MAAM,GACpBW,EA0PX,OA9RAhB,EAAUkmB,EAActlB,GAsCxBslB,EAAavuB,UAAUyM,UAAY,SAAUb,EAAWN,EAAKjB,GACzD,IAAIskB,EAAc9uB,KAAKgN,SACvB8hB,EAAYrR,KAAK,GACjBzd,KAAK6uB,gBAAkB,GACvB,IAIIE,EACAC,EALAttB,EAAQgtB,EAAaO,oBAAoBxjB,EAAKqjB,GAE9CI,EAAYzjB,EAAIxK,WAAWS,EAAM,IACjCC,EAAM8J,EAAIrL,UAGd,EAAG,CACCsuB,EAAa3hB,cAActB,EAAKyjB,EAAWJ,GAC3C,IAAIrhB,EAAUihB,EAAaS,oBAAoBL,GAC/C,GAAIrhB,EAAU,EACV,MAAM,IAAIpJ,EAAoB1D,QAElCouB,EAAcL,EAAaU,cAAc3hB,GACzCzN,KAAK6uB,iBAAmBE,EACxBC,EAAYE,EACZ,IAAK,IAAIta,EAAK,EAAGya,EAAgBP,EAAala,EAAKya,EAAc5uB,OAAQmU,IAAM,CAC3E,IAAI3G,EAAUohB,EAAcza,GAC5Bsa,GAAajhB,EAGjBihB,EAAYzjB,EAAIxK,WAAWiuB,SACN,MAAhBH,GACT/uB,KAAK6uB,gBAAkB7uB,KAAK6uB,gBAAgBP,UAAU,EAAGtuB,KAAK6uB,gBAAgBpuB,OAAS,GAGvF,IADA,IAAI6uB,EAAkB,EACbza,EAAK,EAAG0a,EAAgBT,EAAaja,EAAK0a,EAAc9uB,OAAQoU,IAAM,CACvE5G,EAAUshB,EAAc1a,GAC5Bya,GAAmBrhB,EAEvB,IAqBI6O,EArBA0S,EAAqBN,EAAYF,EAAYM,EAGjD,GAAIJ,IAAcvtB,GAA6B,EAArB6tB,EAA0BF,EAChD,MAAM,IAAIjrB,EAAoB1D,QAElC,GAAIX,KAAK2uB,gBAAiB,CAGtB,IAFA,IAAIzsB,EAAMlC,KAAK6uB,gBAAgBpuB,OAAS,EACpCkN,EAAQ,EACH7M,EAAI,EAAGA,EAAIoB,EAAKpB,IACrB6M,GAAS+gB,EAAae,gBAAgBC,QAAQ1vB,KAAK6uB,gBAAgB5Y,OAAOnV,IAE9E,GAAId,KAAK6uB,gBAAgB5Y,OAAO/T,KAASwsB,EAAae,gBAAgBxZ,OAAOtI,EAAQ,IACjF,MAAM,IAAI6gB,EAAoB7tB,QAElCX,KAAK6uB,gBAAkB7uB,KAAK6uB,gBAAgBP,UAAU,EAAGpsB,GAE7D,GAAoC,IAAhClC,KAAK6uB,gBAAgBpuB,OAErB,MAAM,IAAI4D,EAAoB1D,QAI9Bmc,EADA9c,KAAK4uB,aACUF,EAAaiB,eAAe3vB,KAAK6uB,iBAGjC7uB,KAAK6uB,gBAExB,IAAIxpB,GAAQ3D,EAAM,GAAKA,EAAM,IAAM,EAC/B4D,EAAQ0pB,EAAYM,EAAkB,EAC1C,OAAO,IAAI1b,EAASjT,QAAQmc,EAAc,KAAM,EAAG,CAAC,IAAI3Y,EAAcxD,QAAQ0E,EAAM0G,GAAY,IAAI5H,EAAcxD,QAAQ2E,EAAOyG,IAAa+H,EAAgBnT,QAAQivB,SAAS,IAAItZ,MAAOC,YAE9LmY,EAAaO,oBAAsB,SAAUxjB,EAAKuB,GAO9C,IANA,IAAIpI,EAAQ6G,EAAIrL,UACZuZ,EAAYlO,EAAIxK,WAAW,GAC3BmM,EAAkB,EAClBwM,EAAeD,EACfxM,GAAU,EACVS,EAAgBZ,EAASvM,OACpBK,EAAI6Y,EAAW7Y,EAAI8D,EAAO9D,IAC/B,GAAI2K,EAAI5K,IAAIC,KAAOqM,EACfH,EAASI,SAER,CACD,GAAIA,IAAoBQ,EAAgB,EAAG,CAEvC,GAAI5N,KAAKmvB,oBAAoBniB,KAAc0hB,EAAamB,mBACpDpkB,EAAItJ,QAAQ7B,KAAK4B,IAAI,EAAG0X,EAAetZ,KAAKC,OAAOO,EAAI8Y,GAAgB,IAAKA,GAAc,GAC1F,MAAO,CAACA,EAAc9Y,GAE1B8Y,GAAgB5M,EAAS,GAAKA,EAAS,GACvCA,EAAS8iB,WAAW,EAAG,EAAG,EAAI1iB,EAAkB,GAChDJ,EAASI,EAAkB,GAAK,EAChCJ,EAASI,GAAmB,EAC5BA,SAGAA,IAEJJ,EAASI,GAAmB,EAC5BD,GAAWA,EAGnB,MAAM,IAAI9I,EAAoB1D,SAIlC+tB,EAAaS,oBAAsB,SAAUniB,GACzC,IAEI+iB,EAFA9iB,EAAcD,EAASvM,OACvBuvB,EAAmB,EAEvB,EAAG,CAEC,IADA,IAAIC,EAAa,WACRrb,EAAK,EAAGwI,EAAapQ,EAAU4H,EAAKwI,EAAW3c,OAAQmU,IAAM,CAClE,IAAI3G,EAAUmP,EAAWxI,GACrB3G,EAAUgiB,GAAchiB,EAAU+hB,IAClCC,EAAahiB,GAGrB+hB,EAAmBC,EACnBF,EAAe,EAGf,IAFA,IAAIG,EAAyB,EACzBziB,EAAU,EACL3M,EAAI,EAAGA,EAAImM,EAAanM,IAAK,CAC9BmN,EAAUjB,EAASlM,GACnBmN,EAAU+hB,IACVviB,GAAW,GAAMR,EAAc,EAAInM,EACnCivB,IACAG,GAA0BjiB,GAGlC,GAAqB,IAAjB8hB,EAAoB,CAIpB,IAASjvB,EAAI,EAAGA,EAAImM,GAAe8iB,EAAe,EAAGjvB,IAAK,CAClDmN,EAAUjB,EAASlM,GACvB,GAAImN,EAAU+hB,IACVD,IAEe,EAAV9hB,GAAgBiiB,GACjB,OAAQ,EAIpB,OAAOziB,SAENsiB,EAAe,GACxB,OAAQ,GAEZrB,EAAaU,cAAgB,SAAU3hB,GACnC,IAAK,IAAI3M,EAAI,EAAGA,EAAI4tB,EAAayB,oBAAoB1vB,OAAQK,IACzD,GAAI4tB,EAAayB,oBAAoBrvB,KAAO2M,EACxC,OAAOihB,EAAae,gBAAgBxZ,OAAOnV,GAGnD,GAAI2M,IAAYihB,EAAamB,kBACzB,MAAO,IAEX,MAAM,IAAIxrB,EAAoB1D,SAElC+tB,EAAaiB,eAAiB,SAAU/B,GAGpC,IAFA,IAAIntB,EAASmtB,EAAQntB,OACjB2vB,EAAU,GACLtvB,EAAI,EAAGA,EAAIL,EAAQK,IAAK,CAC7B,IAAI4O,EAAIke,EAAQ3X,OAAOnV,GACvB,GAAU,MAAN4O,GAAmB,MAANA,GAAmB,MAANA,GAAmB,MAANA,EAAW,CAClD,IAAI2gB,EAAOzC,EAAQ3X,OAAOnV,EAAI,GAC1BiuB,EAAc,KAClB,OAAQrf,GACJ,IAAK,IAED,KAAI2gB,GAAQ,KAAOA,GAAQ,KAIvB,MAAM,IAAI5B,EAAkB9tB,QAH5BouB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,IAK3D,MACJ,IAAK,IAED,KAAI0gB,GAAQ,KAAOA,GAAQ,KAIvB,MAAM,IAAI5B,EAAkB9tB,QAH5BouB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,IAK3D,MACJ,IAAK,IAED,GAAI0gB,GAAQ,KAAOA,GAAQ,IACvBtB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,SAEtD,GAAI0gB,GAAQ,KAAOA,GAAQ,IAC5BtB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,SAEtD,GAAI0gB,GAAQ,KAAOA,GAAQ,IAC5BtB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,SAEtD,GAAI0gB,GAAQ,KAAOA,GAAQ,IAC5BtB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,SAEtD,GAAa,MAAT0gB,EACLtB,EAAc,UAEb,GAAa,MAATsB,EACLtB,EAAc,SAEb,GAAa,MAATsB,EACLtB,EAAc,QAEb,IAAa,MAATsB,GAAyB,MAATA,GAAyB,MAATA,EAIrC,MAAM,IAAI5B,EAAkB9tB,QAH5BouB,EAAc,IAKlB,MACJ,IAAK,IAED,GAAIsB,GAAQ,KAAOA,GAAQ,IACvBtB,EAAcnZ,OAAOuH,aAAakT,EAAK1gB,WAAW,GAAK,QAEtD,IAAa,MAAT0gB,EAIL,MAAM,IAAI5B,EAAkB9tB,QAH5BouB,EAAc,IAKlB,MAERqB,GAAWrB,EAEXjuB,SAGAsvB,GAAW1gB,EAGnB,OAAO0gB,GAEX1B,EAAae,gBAAkB,8CAM/Bf,EAAayB,oBAAsB,CAC/B,GAAO,IAAO,GAAO,IAAO,GAAO,IAAO,IAAO,GAAO,IAAO,IAC/D,IAAO,GAAO,IAAO,GAAO,IAAO,GAAO,GAAO,IAAO,GAAO,GAC/D,IAAO,GAAO,IAAO,GAAO,IAAO,GAAO,EAAO,IAAO,GAAO,GAC/D,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAC/D,IAAO,IAAO,IAElBzB,EAAamB,kBAAoB,IAC1BnB,EA/RsB,CAgS/Bxa,EAAavT,SACfrB,EAAQqB,QAAU+tB,G,oCC5UlB,IAAIlmB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBkS,EAAmC,SAAUlnB,GAE7C,SAASknB,IACL,OAAkB,OAAXlnB,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAU8nB,EAAmBlnB,GAItBknB,EAL2B,CAMpClS,EAAYzd,SACdrB,EAAQqB,QAAU2vB,G,oCCVlBlxB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI8kB,EAAc,EAAQ,QACtB9T,EAAc,EAAQ,QACtBggB,EAAuB,EAAQ,QAC/BC,EAAoB,EAAQ,QAC5BC,EAA0B,EAAQ,QAClCC,EAAc,EAAQ,QACtBC,EAA2B,EAAQ,QACnCnC,EAAsB,EAAQ,SAQ9BoC,EAAyB,WACzB,SAASA,IACL5wB,KAAK6wB,UAAY,IAAIN,EAAqB5vB,QAAQ4P,EAAY5P,QAAQgsB,mBA+H1E,OAhHAiE,EAAQzwB,UAAU2wB,mBAAqB,SAAUvsB,EAAOiG,GACpD,OAAOxK,KAAK+wB,gBAAgB1M,EAAY1jB,QAAQqwB,sBAAsBzsB,GAAQiG,IAclFomB,EAAQzwB,UAAU4wB,gBAAkB,SAAUjxB,EAAM0K,GAEhD,IAAIymB,EAAS,IAAIT,EAAkB7vB,QAAQb,GACvCoxB,EAAK,KACT,IACI,OAAOlxB,KAAKmxB,sBAAsBF,EAAQzmB,GAE9C,MAAO4mB,GACHF,EAAKE,EAET,IAEIH,EAAOI,SAEPJ,EAAOK,WAAU,GAEjBL,EAAOM,cAEPN,EAAOO,wBAQPP,EAAOQ,SACP,IAAIpwB,EAASrB,KAAKmxB,sBAAsBF,EAAQzmB,GAGhD,OADAnJ,EAAOqwB,SAAS,IAAIjB,EAAwB9vB,SAAQ,IAC7CU,EAEX,MAAO+vB,GAEH,GAAW,OAAPF,EACA,MAAMA,EAEV,MAAME,IAGdR,EAAQzwB,UAAUgxB,sBAAwB,SAAUF,EAAQzmB,GASxD,IARA,IAAI0Q,EAAU+V,EAAOM,cACjBpW,EAAU8V,EAAOO,wBAAwBG,0BAEzC5W,EAAYkW,EAAOW,gBAEnBC,EAAanB,EAAY/vB,QAAQqa,cAAcD,EAAWG,EAASC,GAEnE2W,EAAa,EACRld,EAAK,EAAGmd,EAAeF,EAAYjd,EAAKmd,EAAatxB,OAAQmU,IAAM,CACxE,IAAIod,EAAYD,EAAand,GAC7Bkd,GAAcE,EAAUzV,sBAK5B,IAHA,IAAI0V,EAAc,IAAI3hB,WAAWwhB,GAC7BI,EAAe,EAEVrd,EAAK,EAAGsd,EAAeN,EAAYhd,EAAKsd,EAAa1xB,OAAQoU,IAAM,CACpEmd,EAAYG,EAAatd,GAA7B,IACIud,EAAgBJ,EAAUxV,eAC1B1B,EAAmBkX,EAAUzV,sBACjCvc,KAAKqyB,cAAcD,EAAetX,GAClC,IAAK,IAAIha,EAAI,EAAGA,EAAIga,EAAkBha,IAClCmxB,EAAYC,KAAkBE,EAActxB,GAIpD,OAAO6vB,EAAyBhwB,QAAQ4J,OAAO0nB,EAAa/W,EAASC,EAAS3Q,IAUlFomB,EAAQzwB,UAAUkyB,cAAgB,SAAUD,EAAetX,GACpCsX,EAAc3xB,OAAjC,IAEI6xB,EAAgB,IAAIryB,WAAWmyB,GAMnC,IACIpyB,KAAK6wB,UAAUtmB,OAAO+nB,EAAeF,EAAc3xB,OAASqa,GAEhE,MAAO7O,GACH,MAAM,IAAIuiB,EAAoB7tB,QAIlC,IAAK,IAAIG,EAAI,EAAGA,EAAIga,EAAkBha,IAClCsxB,EAActxB,GAAiBwxB,EAAcxxB,IAG9C8vB,EAjIiB,GAmI5BtxB,EAAQqB,QAAUiwB,G,oCClKlB,IAAIpoB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBmU,EAAqC,SAAUnpB,GAE/C,SAASmpB,IACL,OAAkB,OAAXnpB,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAU+pB,EAAqBnpB,GAIxBmpB,EAL6B,CAMtCnU,EAAYzd,SACdrB,EAAQqB,QAAU4xB,G,oCCzBlB,IAAI/pB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBoU,EAAsC,SAAUppB,GAEhD,SAASopB,IACL,OAAkB,OAAXppB,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAUgqB,EAAsBppB,GAIzBopB,EAL8B,CAMvCpU,EAAYzd,SACdrB,EAAQqB,QAAU6xB,G,6DCVlBpzB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAII,EAA6B,EAAQ,QACrC8yB,EAA8B,WAC9B,SAASA,EAAaC,GAElB,GADA1yB,KAAK0yB,UAAYA,EACC,OAAdA,EACA,MAAM,IAAI/yB,EAA2BgB,QAAQ,+BAwGrD,OAlGA8xB,EAAatyB,UAAU0E,SAAW,WAC9B,OAAO7E,KAAK0yB,UAAU7tB,YAK1B4tB,EAAatyB,UAAUwE,UAAY,WAC/B,OAAO3E,KAAK0yB,UAAU/tB,aAa1B8tB,EAAatyB,UAAU6L,YAAc,SAAUvH,EAAWgH,GACtD,OAAOzL,KAAK0yB,UAAU1mB,YAAYvH,EAAGgH,IAWzCgnB,EAAatyB,UAAU+kB,eAAiB,WASpC,OAHoB,OAAhBllB,KAAKijB,aAAmCljB,IAAhBC,KAAKijB,SAC7BjjB,KAAKijB,OAASjjB,KAAK0yB,UAAUxN,kBAE1BllB,KAAKijB,QAKhBwP,EAAatyB,UAAUijB,gBAAkB,WACrC,OAAOpjB,KAAK0yB,UAAU/N,qBAAqBvB,mBAY/CqP,EAAatyB,UAAUkjB,KAAO,SAAUhe,EAAckd,EAAa3d,EAAeF,GAC9E,IAAIiuB,EAAY3yB,KAAK0yB,UAAU/N,qBAAqBtB,KAAKhe,EAAMkd,EAAK3d,EAAOF,GAC3E,OAAO,IAAI+tB,EAAazyB,KAAK0yB,UAAUtN,gBAAgBuN,KAK3DF,EAAatyB,UAAU0K,kBAAoB,WACvC,OAAO7K,KAAK0yB,UAAU/N,qBAAqB9Z,qBAQ/C4nB,EAAatyB,UAAU4K,uBAAyB,WAC5C,IAAI4nB,EAAY3yB,KAAK0yB,UAAU/N,qBAAqB5Z,yBACpD,OAAO,IAAI0nB,EAAazyB,KAAK0yB,UAAUtN,gBAAgBuN,KAQ3DF,EAAatyB,UAAUyyB,yBAA2B,WAC9C,IAAID,EAAY3yB,KAAK0yB,UAAU/N,qBAAqBiO,2BACpD,OAAO,IAAIH,EAAazyB,KAAK0yB,UAAUtN,gBAAgBuN,KAG3DF,EAAatyB,UAAU6D,SAAW,WAC9B,IACI,OAAOhE,KAAKklB,iBAAiBlhB,WAEjC,MAAOotB,GACH,MAAO,KAGRqB,EA5GsB,GA8GjCnzB,EAAQqB,QAAU8xB,G,oCC/HlBrzB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI4E,EAAgB,EAAQ,QACxB0uB,EAA+B,WAC/B,SAASA,EAActzB,EAAOoX,EAAUjV,EAAOC,EAAKoK,GAChD/L,KAAKT,MAAQA,EACbS,KAAK2W,SAAWA,EAChB3W,KAAKT,MAAQA,EACbS,KAAK2W,SAAWA,EAChB3W,KAAK4jB,aAAe,IAAI/a,MACxB7I,KAAK4jB,aAAanO,KAAK,IAAItR,EAAcxD,QAAQe,EAAOqK,IACxD/L,KAAK4jB,aAAanO,KAAK,IAAItR,EAAcxD,QAAQgB,EAAKoK,IAqB1D,OAnBA8mB,EAAc1yB,UAAUoV,SAAW,WAC/B,OAAOvV,KAAKT,OAEhBszB,EAAc1yB,UAAUoX,YAAc,WAClC,OAAOvX,KAAK2W,UAEhBkc,EAAc1yB,UAAUmL,gBAAkB,WACtC,OAAOtL,KAAK4jB,cAEhBiP,EAAc1yB,UAAU0D,OAAS,SAAUC,GACvC,KAAMA,aAAa+uB,GACf,OAAO,EAEX,IAAIC,EAAOhvB,EACX,OAAO9D,KAAKT,QAAUuzB,EAAKvzB,OAE/BszB,EAAc1yB,UAAU4D,SAAW,WAC/B,OAAO/D,KAAKT,OAETszB,EA7BuB,GA+BlCvzB,EAAQqB,QAAUkyB,G,6DCjClB,IAAIrqB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIwzB,EAAoB,EAAQ,QAI5BC,EAA2B,SAAU5pB,GAMrC,SAAS4pB,EAAUC,QACC,IAAZA,IAAsBA,OAAUlzB,GACpC,IAAIyJ,EAAQJ,EAAOK,KAAKzJ,KAAMizB,IAAYjzB,KAE1C,OADAwJ,EAAMypB,QAAUA,EACTzpB,EAEX,OAXAhB,EAAUwqB,EAAW5pB,GAWd4pB,EAZmB,CAa5BD,EAAkBG,aACpB5zB,EAAQqB,QAAUqyB,G,oCCjBlB5zB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIuU,EAAkB,EAAQ,SAC1B2I,EAAiB,EAAQ,QACzB7I,EAAW,EAAQ,QACnBzP,EAAgB,EAAQ,QACxBkG,EAAuB,EAAQ,QAC/BhG,EAAsB,EAAQ,QAI9B8uB,EAAyC,WACzC,SAASA,IACLnzB,KAAKozB,sBAAwB,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,EAAM,GAAM,EAAM,GACpFpzB,KAAK2c,qBAAuB,CAAC,EAAG,EAAG,EAAG,GACtC3c,KAAKwjB,sBAAwB,GAoHjC,OAlHA2P,EAAwBhzB,UAAUyM,UAAY,SAAUb,EAAWN,EAAKgY,GACpE,IAAIpiB,EAASrB,KAAKwjB,sBACd7hB,EAAM3B,KAAK4c,aAAanR,EAAKgY,EAAqBpiB,GAClDyb,EAAezb,EAAO2C,WACtB0f,EAAgByP,EAAwBxP,qBAAqB7G,GAC7D8G,EAAe,CACf,IAAIzf,EAAcxD,SAAS8iB,EAAoB,GAAKA,EAAoB,IAAM,EAAK1X,GACnF,IAAI5H,EAAcxD,QAAQgB,EAAKoK,IAE/B8X,EAAkB,IAAIjQ,EAASjT,QAAQmc,EAAc,KAAM,EAAG8G,EAAc9P,EAAgBnT,QAAQmjB,mBAAmB,IAAIxN,MAAOC,WAItI,OAHqB,MAAjBmN,GACAG,EAAgBE,eAAeL,GAE5BG,GAEXsP,EAAwBhzB,UAAUyc,aAAe,SAAUnR,EAAKoR,EAAYC,GACxE,IAAI9P,EAAWhN,KAAK2c,qBACpB3P,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,EAId,IAHA,IAAIrL,EAAM8J,EAAIrL,UACVuZ,EAAYkD,EAAW,GACvBE,EAAiB,EACZtZ,EAAI,EAAGA,EAAI,GAAKkW,EAAYhY,EAAK8B,IAAK,CAC3C,IAAIuZ,EAAYP,EAAe9b,QAAQsc,YAAYxR,EAAKuB,EAAU2M,EAAW8C,EAAe9b,QAAQuc,kBACpGJ,GAAgBlH,OAAOuH,aAAc,IAAIxN,WAAW,GAAKqN,EAAY,IACrE,IAAK,IAAIpI,EAAK,EAAGwI,EAAapQ,EAAU4H,EAAKwI,EAAW3c,OAAQmU,IAAM,CAClE,IAAI3G,EAAUmP,EAAWxI,GACzB+E,GAAa1L,EAEb+O,GAAa,KACbD,GAAkB,GAAM,EAAItZ,GAEtB,IAANA,IAEAkW,EAAYlO,EAAIxK,WAAW0Y,GAC3BA,EAAYlO,EAAIlK,aAAaoY,IAGrC,GAA4B,IAAxBmD,EAAarc,OACb,MAAM,IAAI4D,EAAoB1D,QAElC,IAAIoV,EAAa/V,KAAKqzB,oBAAoBtW,GAC1C,GAAIoW,EAAwBG,kBAAkBxW,EAAa9Y,cAAgB+R,EACvE,MAAM,IAAI1R,EAAoB1D,QAElC,OAAOgZ,GAEXwZ,EAAwBG,kBAAoB,SAAUC,GAGlD,IAFA,IAAI9yB,EAAS8yB,EAAE9yB,OACXiX,EAAM,EACD5W,EAAIL,EAAS,EAAGK,GAAK,EAAGA,GAAK,EAClC4W,GAAO6b,EAAEtd,OAAOnV,GAAG6O,WAAW,GAAK,IAAIA,WAAW,GAEtD+H,GAAO,EACP,IAAS5W,EAAIL,EAAS,EAAGK,GAAK,EAAGA,GAAK,EAClC4W,GAAO6b,EAAEtd,OAAOnV,GAAG6O,WAAW,GAAK,IAAIA,WAAW,GAGtD,OADA+H,GAAO,EACAA,EAAM,IAEjByb,EAAwBhzB,UAAUkzB,oBAAsB,SAAUtW,GAC9D,IAAK,IAAIrU,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAIqU,IAAmB/c,KAAKozB,sBAAsB1qB,GAC9C,OAAOA,EAGf,MAAM,IAAIrE,EAAoB1D,SAElCwyB,EAAwBxP,qBAAuB,SAAUO,GACrD,GAAmB,IAAfA,EAAIzjB,OACJ,OAAO,KAEX,IAAIlB,EAAQ4zB,EAAwBK,sBAAsBtP,GAC1D,OAAa,MAAT3kB,EACO,KAEJ,IAAI+M,IAAI,CAAC,CAACjC,EAAqB1J,QAAQ8yB,gBAAiBl0B,MAEnE4zB,EAAwBK,sBAAwB,SAAUtP,GACtD,IAAIwP,EACJ,OAAQxP,EAAIjO,OAAO,IACf,IAAK,IACDyd,EAAW,IACX,MACJ,IAAK,IACDA,EAAW,IACX,MACJ,IAAK,IAED,OAAQxP,GACJ,IAAK,QAED,OAAO,KACX,IAAK,QAED,MAAO,OACX,IAAK,QACD,MAAO,OAGfwP,EAAW,GACX,MACJ,QACIA,EAAW,GACX,MAER,IAAIC,EAAY1P,SAASC,EAAIoK,UAAU,IACnCsF,GAAeD,EAAY,KAAK3vB,WAChC6vB,EAAaF,EAAY,IACzBG,EAAmBD,EAAa,GAAK,IAAMA,EAAaA,EAAW7vB,WACvE,OAAO0vB,EAAWE,EAAc,IAAME,GAEnCX,EAxHiC,GA0H5C7zB,EAAQqB,QAAUwyB,G,oCCnIlB,IAAIY,EADJ30B,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,SAAWw0B,GACPA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBACtDA,EAAeA,EAAe,iBAAmB,GAAK,gBAR1D,CASGA,EAAiBz0B,EAAQy0B,iBAAmBz0B,EAAQy0B,eAAiB,KAYxE,IAAIC,EAA0B,WAE1B,SAASA,EAASz0B,EAAO00B,GACrBj0B,KAAKT,MAAQA,EACbS,KAAKi0B,SAAWA,EAwDpB,OA9CAD,EAAS7zB,UAAU+zB,gBAAkB,SAAUp0B,EAAMqpB,GACjD,IAAK,IAAIroB,EAAI,EAAGA,EAAIqoB,EAAWroB,IAC3B,IAAK,IAAIsC,EAAI,EAAGA,EAAI+lB,EAAW/lB,IACvBpD,KAAKi0B,SAASnzB,EAAGsC,IACjBtD,EAAKkB,KAAKoC,EAAGtC,IAK7BkzB,EAASG,OAAS,IAAI7nB,IAAI,CAItB,CAACynB,EAAeK,cAAe,IAAIJ,EAASD,EAAeK,eAAe,SAAUtzB,EAAWsC,GAAa,OAA4B,KAAnBtC,EAAIsC,EAAK,OAI9H,CAAC2wB,EAAeM,cAAe,IAAIL,EAASD,EAAeM,eAAe,SAAUvzB,EAAWsC,GAAa,OAAsB,KAAV,EAAJtC,OAIpH,CAACizB,EAAeO,cAAe,IAAIN,EAASD,EAAeO,eAAe,SAAUxzB,EAAWsC,GAAa,OAAOA,EAAI,IAAM,MAI7H,CAAC2wB,EAAeQ,cAAe,IAAIP,EAASD,EAAeQ,eAAe,SAAUzzB,EAAWsC,GAAa,OAAQtC,EAAIsC,GAAK,IAAM,MAInI,CAAC2wB,EAAeS,cAAe,IAAIR,EAASD,EAAeS,eAAe,SAAU1zB,EAAWsC,GAAa,OAA4D,KAAnD9C,KAAKC,MAAMO,EAAI,GAAKR,KAAKC,MAAM6C,EAAI,GAAM,OAK9J,CAAC2wB,EAAeU,cAAe,IAAIT,EAASD,EAAeU,eAAe,SAAU3zB,EAAWsC,GAAa,OAAQtC,EAAIsC,EAAK,IAAM,MAKnI,CAAC2wB,EAAeW,cAAe,IAAIV,EAASD,EAAeW,eAAe,SAAU5zB,EAAWsC,GAAa,OAAStC,EAAIsC,EAAK,EAAK,MAKnI,CAAC2wB,EAAeY,cAAe,IAAIX,EAASD,EAAeY,eAAe,SAAU7zB,EAAWsC,GAAa,OAA4C,KAAnCtC,EAAIsC,EAAMtC,EAAIsC,EAAK,EAAM,SAE3I4wB,EA5DkB,GA8D7B10B,EAAQqB,QAAUqzB,G,oCCrFlB50B,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAOtD,IAAIq1B,EAAuC,WACvC,SAASA,EAAsBC,GAC3B70B,KAAK60B,SAAWA,EAsBpB,OAjBAD,EAAsBz0B,UAAU20B,WAAa,WACzC,OAAO90B,KAAK60B,UAOhBD,EAAsBz0B,UAAU40B,wBAA0B,SAAU1pB,GAChE,GAAKrL,KAAK60B,UAAuB,OAAXxpB,KAAmBA,EAAO5K,OAAS,GAAzD,CAGA,IAAI2S,EAAa/H,EAAO,GACxBA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAK+H,IAGTwhB,EAxB+B,GA0B1Ct1B,EAAQqB,QAAUi0B,G,uBCjDlBrsB,EAAOjJ,QAAU,IAA0B,wB,oCCC3CF,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIC,EAAW,EAAQ,QACnBw1B,EAAwB,WACxB,SAASA,KAqFT,OAnFAA,EAAOnxB,OAAS,SAAUoxB,EAAOC,GAC7B,IAAKD,EACD,OAAO,EAEX,IAAKC,EACD,OAAO,EAEX,IAAKD,EAAMx0B,OACP,OAAO,EAEX,IAAKy0B,EAAOz0B,OACR,OAAO,EAEX,GAAIw0B,EAAMx0B,SAAWy0B,EAAOz0B,OACxB,OAAO,EAEX,IAAK,IAAIK,EAAI,EAAG+B,EAAWoyB,EAAMx0B,OAAQK,EAAI+B,EAAU/B,IACnD,GAAIm0B,EAAMn0B,KAAOo0B,EAAOp0B,GACpB,OAAO,EAGf,OAAO,GAEXk0B,EAAOjxB,SAAW,SAAU+D,GACxB,GAAU,OAANA,EACA,OAAO,EAGX,IADA,IAAIzG,EAAS,EACJuT,EAAK,EAAGugB,EAAMrtB,EAAG8M,EAAKugB,EAAI10B,OAAQmU,IAAM,CAC7C,IAAIwgB,EAAUD,EAAIvgB,GAClBvT,EAAS,GAAKA,EAAS+zB,EAE3B,OAAO/zB,GAEX2zB,EAAOpW,eAAiB,SAAU9W,EAAGvI,GACjC,IAAK,IAAIuB,EAAI,EAAGA,IAAMgH,EAAErH,OAAQK,IAC5BgH,EAAEhH,GAAKvB,GAGfy1B,EAAOK,OAAS,SAAUC,EAAUC,GAChC,IAAItb,EAAO,IAAIha,WAAWs1B,GAE1B,OADA/1B,EAASmB,QAAQC,UAAU00B,EAAU,EAAGrb,EAAM,EAAG3Z,KAAKk1B,IAAIF,EAAS70B,OAAQ80B,IACpEtb,GAiBX+a,EAAOS,aAAe,SAAUC,EAAIC,EAAIC,QAChC71B,IAAc61B,IACdA,EAAaZ,EAAOa,kBAExB,IAAIC,EAAI,EACJC,EAAIL,EAAGj1B,OAAS,EACpB,MAAOq1B,GAAKC,EAAG,CACX,IAAIC,EAAKD,EAAID,GAAM,EACfG,EAAML,EAAWD,EAAID,EAAGM,IAC5B,GAAIC,EAAM,EACNH,EAAIE,EAAI,MAEP,MAAIC,EAAM,GAIX,OAAOD,EAHPD,EAAIC,EAAI,GAMhB,OAAQF,EAAI,GAEhBd,EAAOa,iBAAmB,SAAU/tB,EAAGC,GACnC,OAAOD,EAAIC,GAERitB,EAtFgB,GAwF3B11B,EAAQqB,QAAUq0B,G,uBC3FlB,SAGM,SAASkB,EAAMC,GAEjB,IAAc,oEAFb,CAQHn2B,GAAM,WAEN,SAASo2B,IACP,IAAIC,EAAUhiB,UAAU5T,OAExB,GAAgB,IAAZ41B,EACF,MAAM,IAAIpnB,MAAM,wDAGlB,IAAIqnB,EAAOC,SAASC,cAAc,QAGlC,GAFAF,EAAKG,KAAOpiB,UAAU,GAEN,IAAZgiB,EACF,OAAOC,EAAKG,KAGd,IAAIC,EAAOH,SAASI,qBAAqB,QAAQ,GACjDD,EAAKE,aAAaN,EAAMI,EAAKG,YAK7B,IAHA,IACIC,EADAhvB,EAAIyuB,SAASC,cAAc,KAGtBtpB,EAAQ,EAAGA,EAAQmpB,EAASnpB,IACnCpF,EAAE2uB,KAAOpiB,UAAUnH,GACnB4pB,EAAWhvB,EAAE2uB,KACbH,EAAKG,KAAOK,EAKd,OAFAJ,EAAKK,YAAYT,GAEVQ,EAGT,OAAOV,M,oCC5BT,IAAI5tB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIy3B,EAA6B,EAAQ,QACrC3S,EAAc,EAAQ,QAkBtB4S,EAAiC,SAAU7tB,GAE3C,SAAS6tB,EAAgB1S,GACrB,IAAI/a,EAAQJ,EAAOK,KAAKzJ,KAAMukB,IAAWvkB,KAEzC,OADAwJ,EAAMyZ,OAAS,KACRzZ,EAuKX,OA3KAhB,EAAUyuB,EAAiB7tB,GAY3B6tB,EAAgB92B,UAAU+kB,eAAiB,WACvC,GAAoB,OAAhBllB,KAAKijB,OACL,OAAOjjB,KAAKijB,OAEhB,IAAIsB,EAASvkB,KAAK2kB,qBACd/f,EAAQ2f,EAAO1f,WACfH,EAAS6f,EAAO5f,YACpB,GAAIC,GAASqyB,EAAgBC,mBAAqBxyB,GAAUuyB,EAAgBC,kBAAmB,CAC3F,IAAI9U,EAAamC,EAAOxB,YACpBoU,EAAWvyB,GAASqyB,EAAgBG,iBACU,KAA7CxyB,EAAQqyB,EAAgBI,kBACzBF,IAEJ,IAAIG,EAAY5yB,GAAUuyB,EAAgBG,iBACS,KAA9C1yB,EAASuyB,EAAgBI,kBAC1BC,IAEJ,IAAIC,EAAcN,EAAgBO,qBAAqBpV,EAAY+U,EAAUG,EAAW1yB,EAAOF,GAC3F+yB,EAAY,IAAIpT,EAAY1jB,QAAQiE,EAAOF,GAC/CuyB,EAAgBS,2BAA2BtV,EAAY+U,EAAUG,EAAW1yB,EAAOF,EAAQ6yB,EAAaE,GACxGz3B,KAAKijB,OAASwU,OAIdz3B,KAAKijB,OAAS7Z,EAAOjJ,UAAU+kB,eAAezb,KAAKzJ,MAEvD,OAAOA,KAAKijB,QAGhBgU,EAAgB92B,UAAUilB,gBAAkB,SAAUb,GAClD,OAAO,IAAI0S,EAAgB1S,IAO/B0S,EAAgBS,2BAA6B,SAAUtV,EAAY+U,EAAkBG,EAAmB1yB,EAAeF,EAAgB6yB,EAAatU,GAGhJ,IAFA,IAAI0U,EAAajzB,EAASuyB,EAAgBW,WACtCC,EAAajzB,EAAQqyB,EAAgBW,WAChCnzB,EAAI,EAAGA,EAAI6yB,EAAW7yB,IAAK,CAChC,IAAIqzB,EAAUrzB,GAAKwyB,EAAgBG,iBAC/BU,EAAUH,IACVG,EAAUH,GAGd,IADA,IAAII,EAAQd,EAAgBe,IAAIvzB,EAAG,EAAG6yB,EAAY,GACzC7zB,EAAI,EAAGA,EAAI0zB,EAAU1zB,IAAK,CAC/B,IAAIw0B,EAAUx0B,GAAKwzB,EAAgBG,iBAC/Ba,EAAUJ,IACVI,EAAUJ,GAId,IAFA,IAAIxyB,EAAO4xB,EAAgBe,IAAIv0B,EAAG,EAAG0zB,EAAW,GAC5Czf,EAAM,EACDpR,GAAK,EAAGA,GAAK,EAAGA,IAAK,CAC1B,IAAI4xB,EAAWX,EAAYQ,EAAQzxB,GACnCoR,GAAOwgB,EAAS7yB,EAAO,GAAK6yB,EAAS7yB,EAAO,GAAK6yB,EAAS7yB,GAAQ6yB,EAAS7yB,EAAO,GAAK6yB,EAAS7yB,EAAO,GAE3G,IAAI8yB,EAAUzgB,EAAM,GACpBuf,EAAgBmB,eAAehW,EAAY6V,EAASH,EAASK,EAASvzB,EAAOqe,MAIzFgU,EAAgBe,IAAM,SAAUz4B,EAAei2B,EAAatzB,GACxD,OAAO3C,EAAQi2B,EAAMA,EAAMj2B,EAAQ2C,EAAMA,EAAM3C,GAKnD03B,EAAgBmB,eAAiB,SAAUhW,EAAY6V,EAAiBH,EAAiBO,EAAmBC,EAAgBrV,GACxH,IAAK,IAAIxe,EAAI,EAAGxB,EAAS60B,EAAUQ,EAASL,EAASxzB,EAAIwyB,EAAgBW,WAAYnzB,IAAKxB,GAAUq1B,EAChG,IAAK,IAAI70B,EAAI,EAAGA,EAAIwzB,EAAgBW,WAAYn0B,KAEd,IAAzB2e,EAAWnf,EAASQ,KAAc40B,GACnCpV,EAAOliB,IAAIk3B,EAAUx0B,EAAGq0B,EAAUrzB,IAUlDwyB,EAAgBO,qBAAuB,SAAUpV,EAAY+U,EAAkBG,EAAmB1yB,EAAeF,GAK7G,IAJA,IAAIizB,EAAajzB,EAASuyB,EAAgBW,WACtCC,EAAajzB,EAAQqyB,EAAgBW,WAErCL,EAAc,IAAI1uB,MAAMyuB,GACnB7yB,EAAI,EAAGA,EAAI6yB,EAAW7yB,IAAK,CAChC8yB,EAAY9yB,GAAK,IAAIxE,WAAWk3B,GAChC,IAAIW,EAAUrzB,GAAKwyB,EAAgBG,iBAC/BU,EAAUH,IACVG,EAAUH,GAEd,IAAK,IAAIl0B,EAAI,EAAGA,EAAI0zB,EAAU1zB,IAAK,CAC/B,IAAIw0B,EAAUx0B,GAAKwzB,EAAgBG,iBAC/Ba,EAAUJ,IACVI,EAAUJ,GAKd,IAHA,IAAIngB,EAAM,EACN8d,EAAM,IACNtzB,EAAM,EACDq2B,EAAK,EAAGt1B,EAAS60B,EAAUlzB,EAAQqzB,EAASM,EAAKtB,EAAgBW,WAAYW,IAAMt1B,GAAU2B,EAAO,CACzG,IAAK,IAAI4zB,EAAK,EAAGA,EAAKvB,EAAgBW,WAAYY,IAAM,CACpD,IAAI7V,EAAkC,IAA1BP,EAAWnf,EAASu1B,GAChC9gB,GAAOiL,EAEHA,EAAQ6S,IACRA,EAAM7S,GAENA,EAAQzgB,IACRA,EAAMygB,GAId,GAAIzgB,EAAMszB,EAAMyB,EAAgBwB,kBAE5B,IAAKF,IAAMt1B,GAAU2B,EAAO2zB,EAAKtB,EAAgBW,WAAYW,IAAMt1B,GAAU2B,EACzE,IAAS4zB,EAAK,EAAGA,EAAKvB,EAAgBW,WAAYY,IAC9C9gB,GAAiC,IAA1B0K,EAAWnf,EAASu1B,GAM3C,IAAIL,EAAUzgB,GAA2C,EAAnCuf,EAAgBG,iBACtC,GAAIl1B,EAAMszB,GAAOyB,EAAgBwB,oBAO7BN,EAAU3C,EAAM,EACZ/wB,EAAI,GAAKhB,EAAI,GAAG,CAOhB,IAAIi1B,GAA6BnB,EAAY9yB,EAAI,GAAGhB,GAAM,EAAI8zB,EAAY9yB,GAAGhB,EAAI,GAAM8zB,EAAY9yB,EAAI,GAAGhB,EAAI,IAAM,EAChH+xB,EAAMkD,IACNP,EAAUO,GAItBnB,EAAY9yB,GAAGhB,GAAK00B,GAG5B,OAAOZ,GAIXN,EAAgBG,iBAAmB,EACnCH,EAAgBW,WAAa,GAAKX,EAAgBG,iBAClDH,EAAgBI,gBAAkBJ,EAAgBW,WAAa,EAC/DX,EAAgBC,kBAAiD,EAA7BD,EAAgBW,WACpDX,EAAgBwB,kBAAoB,GAC7BxB,EA5KyB,CA6KlCD,EAA2Br2B,SAC7BrB,EAAQqB,QAAUs2B,G,kCC/MlB,IAAIzuB,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAIuU,EAAkB,EAAQ,SAC1B6kB,EAAiB,EAAQ,QACzBC,EAAkB,EAAQ,QAC1BC,EAAgB,EAAQ,QACxBzuB,EAAmB,EAAQ,QAC3B0uB,EAAc,EAAQ,QACtBC,EAA4B,EAAQ,QACpC10B,EAAsB,EAAQ,QAC9B6P,EAAe,EAAQ,QAKvB8kB,EAAuC,SAAU5vB,GAEjD,SAAS4vB,EAAsBxuB,GAC3B,IAAIhB,EAAQJ,EAAOK,KAAKzJ,OAASA,KACjCwJ,EAAMyvB,QAAU,GAChB,IAAIC,EAAmB1uB,EAAeA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQw4B,kBAA1C,KAC3BC,EAAsB5uB,QAA4EzK,IAAnEyK,EAAM3J,IAAIuJ,EAAiBzJ,QAAQ04B,4BA6CtE,OA5CIH,KACIA,EAAgBI,SAASxlB,EAAgBnT,QAAQkd,SACjDqb,EAAgBI,SAASxlB,EAAgBnT,QAAQ44B,SACjD/vB,EAAMyvB,QAAQxjB,KAAK,IAAIsjB,EAA0Bp4B,QAAQ6J,IAQzD0uB,EAAgBI,SAASxlB,EAAgBnT,QAAQivB,UACjDpmB,EAAMyvB,QAAQxjB,KAAK,IAAIkjB,EAAeh4B,QAAQy4B,IAK9CF,EAAgBI,SAASxlB,EAAgBnT,QAAQ64B,WACjDhwB,EAAMyvB,QAAQxjB,KAAK,IAAImjB,EAAgBj4B,SAEvCu4B,EAAgBI,SAASxlB,EAAgBnT,QAAQ84B,MACjDjwB,EAAMyvB,QAAQxjB,KAAK,IAAIqjB,EAAYn4B,SAKnCu4B,EAAgBI,SAASxlB,EAAgBnT,QAAQ0V,SACjD7M,EAAMyvB,QAAQxjB,KAAK,IAAIojB,EAAcl4B,UAMhB,IAAzB6I,EAAMyvB,QAAQx4B,SAEd+I,EAAMyvB,QAAQxjB,KAAK,IAAIkjB,EAAeh4B,SAGtC6I,EAAMyvB,QAAQxjB,KAAK,IAAIsjB,EAA0Bp4B,QAAQ6J,IACzDhB,EAAMyvB,QAAQxjB,KAAK,IAAImjB,EAAgBj4B,SACvC6I,EAAMyvB,QAAQxjB,KAAK,IAAIqjB,EAAYn4B,SACnC6I,EAAMyvB,QAAQxjB,KAAK,IAAIojB,EAAcl4B,UAGlC6I,EAkBX,OApEAhB,EAAUwwB,EAAuB5vB,GAqDjC4vB,EAAsB74B,UAAUyM,UAAY,SAAUb,EAAWN,EAAKjB,GAClE,IAAK,IAAI1J,EAAI,EAAGA,EAAId,KAAKi5B,QAAQx4B,OAAQK,IACrC,IACI,OAAOd,KAAKi5B,QAAQn4B,GAAG8L,UAAUb,EAAWN,EAAKjB,GAErD,MAAOqC,IAIX,MAAM,IAAIxI,EAAoB1D,SAGlCq4B,EAAsB74B,UAAUoL,MAAQ,WACpCvL,KAAKi5B,QAAQ1sB,SAAQ,SAAUmtB,GAAU,OAAOA,EAAOnuB,YAEpDytB,EArE+B,CAsExC9kB,EAAavT,SACfrB,EAAQqB,QAAUq4B,G,oCC5FlB,IAAIW,EAPJv6B,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAQtD,SAAWo6B,GAUPA,EAAeA,EAAe,oBAAsB,GAAK,mBAIzDA,EAAeA,EAAe,iBAAmB,GAAK,gBAItDA,EAAeA,EAAe,qBAAuB,GAAK,oBAQ1DA,EAAeA,EAAe,YAAc,GAAK,WAOjDA,EAAeA,EAAe,YAAc,GAAK,WAMjDA,EAAeA,EAAe,UAAY,GAAK,SAK/CA,EAAeA,EAAe,kBAAoB,GAAK,iBAMvDA,EAAeA,EAAe,qBAAuB,GAAK,oBAK1DA,EAAeA,EAAe,qBAAuB,GAAK,oBAQ1DA,EAAeA,EAAe,gBAAkB,GAAK,eAKrDA,EAAeA,EAAe,cAAgB,IAAM,aApExD,CAqEGA,IAAmBA,EAAiB,KACvCr6B,EAAQqB,QAAUg5B,G,kCC9FlB,W,oCCCA,IAAIC,EAAa55B,MAAQA,KAAK45B,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIxrB,WAAU,SAAUC,EAASC,GAC/C,SAASwrB,EAAU16B,GAAS,IAAM26B,EAAKF,EAAU3J,KAAK9wB,IAAW,MAAO6xB,GAAK3iB,EAAO2iB,IACpF,SAAS+I,EAAS56B,GAAS,IAAM26B,EAAKF,EAAU,SAASz6B,IAAW,MAAO6xB,GAAK3iB,EAAO2iB,IACvF,SAAS8I,EAAK74B,GAAUA,EAAO+4B,KAAO5rB,EAAQnN,EAAO9B,OAAS,IAAIw6B,GAAE,SAAUvrB,GAAWA,EAAQnN,EAAO9B,UAAW86B,KAAKJ,EAAWE,GACnID,GAAMF,EAAYA,EAAU5lB,MAAMylB,EAASC,GAAc,KAAKzJ,YAGlEiK,EAAet6B,MAAQA,KAAKs6B,aAAgB,SAAUT,EAASU,GAC/D,IAAsGC,EAAG/1B,EAAG+B,EAAGi0B,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPp0B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOq0B,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpK,KAAM0K,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOj7B,OAAUy6B,EACvJ,SAASM,EAAKhF,GAAK,OAAO,SAAUmF,GAAK,OAAOhB,EAAK,CAACnE,EAAGmF,KACzD,SAAShB,EAAKiB,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIF,EAAI,EAAG/1B,IAAM+B,EAAY,EAAR20B,EAAG,GAAS12B,EAAE,UAAY02B,EAAG,GAAK12B,EAAE,YAAc+B,EAAI/B,EAAE,YAAc+B,EAAEiD,KAAKhF,GAAI,GAAKA,EAAE4rB,SAAW7pB,EAAIA,EAAEiD,KAAKhF,EAAG02B,EAAG,KAAKf,KAAM,OAAO5zB,EAE3J,OADI/B,EAAI,EAAG+B,IAAG20B,EAAK,CAAS,EAARA,EAAG,GAAQ30B,EAAEjH,QACzB47B,EAAG,IACP,KAAK,EAAG,KAAK,EAAG30B,EAAI20B,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAEp7B,MAAO47B,EAAG,GAAIf,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASl2B,EAAI02B,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIO,MAAOX,EAAEG,KAAKQ,MAAO,SACxC,QACI,GAAM70B,EAAIk0B,EAAEG,OAAMr0B,EAAIA,EAAE/F,OAAS,GAAK+F,EAAEA,EAAE/F,OAAS,MAAkB,IAAV06B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAc30B,GAAM20B,EAAG,GAAK30B,EAAE,IAAM20B,EAAG,GAAK30B,EAAE,IAAM,CAAEk0B,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQn0B,EAAE,GAAI,CAAEk0B,EAAEC,MAAQn0B,EAAE,GAAIA,EAAI20B,EAAI,MAC7D,GAAI30B,GAAKk0B,EAAEC,MAAQn0B,EAAE,GAAI,CAAEk0B,EAAEC,MAAQn0B,EAAE,GAAIk0B,EAAEI,IAAIrlB,KAAK0lB,GAAK,MACvD30B,EAAE,IAAIk0B,EAAEI,IAAIO,MAChBX,EAAEG,KAAKQ,MAAO,SAEtBF,EAAKZ,EAAK9wB,KAAKowB,EAASa,GAC1B,MAAOtJ,GAAK+J,EAAK,CAAC,EAAG/J,GAAI3sB,EAAI,EAAK,QAAU+1B,EAAIh0B,EAAI,EACtD,GAAY,EAAR20B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE57B,MAAO47B,EAAG,GAAKA,EAAG,QAAK,EAAQf,MAAM,KAGlFh7B,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI+7B,EAAsB,EAAQ,QAC9BC,EAAiB,EAAQ,QACzB/M,EAAsB,EAAQ,SAC9BgN,EAAoB,EAAQ,QAC5B/M,EAAoB,EAAQ,QAC5BpqB,EAAsB,EAAQ,QAC9Bo3B,EAAqC,EAAQ,QAC7CC,EAAqB,EAAQ,QAM7Bvd,EAAmC,WAQnC,SAASA,EAAkBub,EAAQxb,EAAwByd,QACxB,IAA3Bzd,IAAqCA,EAAyB,KAClEle,KAAK05B,OAASA,EACd15B,KAAKke,uBAAyBA,EAC9Ble,KAAK27B,OAASA,EAId37B,KAAK47B,uBAAwB,EAI7B57B,KAAK67B,kBAAmB,EAIxB77B,KAAK87B,6BAA+B,EAk6BxC,OAh6BA18B,OAAOC,eAAe8e,EAAkBhe,UAAW,eAAgB,CAI/DU,IAAK,WACD,MAA4B,qBAAdk7B,WAElBC,YAAY,EACZC,cAAc,IAElB78B,OAAOC,eAAe8e,EAAkBhe,UAAW,yBAA0B,CAIzEU,IAAK,WACD,OAAOb,KAAKk8B,gBAAkBH,UAAUI,cAE5CH,YAAY,EACZC,cAAc,IAElB78B,OAAOC,eAAe8e,EAAkBhe,UAAW,sBAAuB,CAItEU,IAAK,WACD,SAAUb,KAAKo8B,yBAA0BL,UAAUI,aAAaE,mBAEpEL,YAAY,EACZC,cAAc,IAElB78B,OAAOC,eAAe8e,EAAkBhe,UAAW,8BAA+B,CAE9EU,IAAK,WACD,OAAOb,KAAK87B,8BAOhB/6B,IAAK,SAAUu7B,GACXt8B,KAAK87B,6BAA+BQ,EAAS,EAAI,EAAIA,GAEzDN,YAAY,EACZC,cAAc,IAElB78B,OAAOC,eAAe8e,EAAkBhe,UAAW,QAAS,CAIxDU,IAAK,WACD,OAAOb,KAAK27B,QAKhB56B,IAAK,SAAUyJ,GACXxK,KAAK27B,OAASnxB,GAAS,MAE3BwxB,YAAY,EACZC,cAAc,IAKlB9d,EAAkBhe,UAAUo8B,sBAAwB,WAChD,OAAO3C,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAIw8B,EAASC,EAAc7nB,EAAI8nB,EAAWC,EAAQC,EAAMC,EAAUlC,EAAOmC,EAASC,EAClF,OAAOzC,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EACD,IAAK36B,KAAKk8B,aACN,MAAM,IAAIjtB,MAAM,sDAEpB,IAAKjP,KAAKg9B,oBACN,MAAM,IAAI/tB,MAAM,kDAEpB,MAAO,CAAC,EAAa8sB,UAAUI,aAAaE,oBAChD,KAAK,EAGD,IAFAG,EAAU3nB,EAAG+lB,OACb6B,EAAe,GACV7nB,EAAK,EAAG8nB,EAAYF,EAAS5nB,EAAK8nB,EAAUj8B,OAAQmU,IACrD+nB,EAASD,EAAU9nB,GACnBgoB,EAAuB,UAAhBD,EAAOC,KAAmB,aAAeD,EAAOC,KAC1C,eAATA,IAGJC,EAAWF,EAAOE,UAAYF,EAAO7b,GACrC6Z,EAAQgC,EAAOhC,OAAS,iBAAmB8B,EAAah8B,OAAS,GACjEq8B,EAAUH,EAAOG,QACjBC,EAAc,CAAEF,SAAUA,EAAUlC,MAAOA,EAAOiC,KAAMA,EAAME,QAASA,GACvEL,EAAahnB,KAAKsnB,IAEtB,MAAO,CAAC,EAAcN,WAc1Cte,EAAkBhe,UAAU88B,qBAAuB,WAC/C,OAAOrD,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAIw8B,EACJ,OAAOlC,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa36B,KAAKu8B,yBAClC,KAAK,EAED,OADAC,EAAU3nB,EAAG+lB,OACN,CAAC,EAAc4B,EAAQ/sB,KAAI,SAAU/G,GAAK,OAAO,IAAIgzB,EAAmBwB,iBAAiBx0B,EAAEm0B,SAAUn0B,EAAEiyB,mBAQlIxc,EAAkBhe,UAAUg9B,eAAiB,SAAUN,GACnD,OAAOjD,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAIw8B,EACJ,OAAOlC,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa36B,KAAKu8B,yBAClC,KAAK,EAED,OADAC,EAAU3nB,EAAG+lB,OACR4B,EAGE,CAAC,EAAcA,EAAQY,MAAK,SAAU35B,GAAK,OAAOA,EAAEo5B,WAAaA,MAF7D,CAAC,EAAc,cAkB9C1e,EAAkBhe,UAAUk9B,2BAA6B,SAAUR,EAAUS,GACzE,OAAO1D,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,OAAOs6B,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa36B,KAAKu9B,0BAA0BV,EAAUS,IACtE,KAAK,EAAG,MAAO,CAAC,EAAczoB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAUo9B,0BAA4B,SAAUV,EAAUS,GACxE,OAAO1D,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAIw9B,EAAkBC,EACtB,OAAOnD,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EASD,OARA36B,KAAKuL,QAKDiyB,EAJCX,EAIkB,CAAEA,SAAU,CAAEa,MAAOb,IAHrB,CAAEc,WAAY,eAKrCF,EAAc,CAAEG,MAAOJ,GAChB,CAAC,EAAax9B,KAAK69B,0BAA0BJ,EAAaH,IACrE,KAAK,EAAG,MAAO,CAAC,EAAczoB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAU09B,0BAA4B,SAAUJ,EAAaH,GAC3E,OAAO1D,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAI89B,EACJ,OAAOxD,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAaoB,UAAUI,aAAa4B,aAAaN,IACjE,KAAK,EAED,OADAK,EAASjpB,EAAG+lB,OACL,CAAC,EAAa56B,KAAKg+B,qBAAqBF,EAAQR,IAC3D,KAAK,EAAG,MAAO,CAAC,EAAczoB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAU69B,qBAAuB,SAAUF,EAAQR,GACjE,OAAO1D,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAI49B,EAAOv8B,EACX,OAAOi5B,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAED,OADA36B,KAAKuL,QACE,CAAC,EAAavL,KAAKi+B,oBAAoBH,EAAQR,IAC1D,KAAK,EAED,OADAM,EAAQ/oB,EAAG+lB,OACJ,CAAC,EAAa56B,KAAKk+B,WAAWN,IACzC,KAAK,EAED,OADAv8B,EAASwT,EAAG+lB,OACL,CAAC,EAAcv5B,WAgB1C8c,EAAkBhe,UAAUg+B,uCAAyC,SAAUtB,EAAUS,EAAac,GAClG,OAAOxE,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,OAAOs6B,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa36B,KAAKq+B,sBAAsBxB,EAAUS,EAAac,IAC/E,KAAK,EAAG,MAAO,CAAC,EAAcvpB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAUk+B,sBAAwB,SAAUxB,EAAUS,EAAac,GACjF,OAAOxE,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAIw9B,EAAkBC,EACtB,OAAOnD,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAQD,OAHI6C,EAJCX,EAIkB,CAAEA,SAAU,CAAEa,MAAOb,IAHrB,CAAEc,WAAY,eAKrCF,EAAc,CAAEG,MAAOJ,GAChB,CAAC,EAAax9B,KAAKs+B,sBAAsBb,EAAaH,EAAac,IAC9E,KAAK,EAAG,MAAO,CAAC,EAAcvpB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAUm+B,sBAAwB,SAAUb,EAAaH,EAAac,GACpF,OAAOxE,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAI89B,EACJ,OAAOxD,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAAG,MAAO,CAAC,EAAaoB,UAAUI,aAAa4B,aAAaN,IACjE,KAAK,EAED,OADAK,EAASjpB,EAAG+lB,OACL,CAAC,EAAa56B,KAAKu+B,iBAAiBT,EAAQR,EAAac,IACpE,KAAK,EAAG,MAAO,CAAC,EAAcvpB,EAAG+lB,gBAcjDzc,EAAkBhe,UAAUo+B,iBAAmB,SAAUT,EAAQR,EAAac,GAC1E,OAAOxE,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAI49B,EACJ,OAAOtD,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAED,OADA36B,KAAKuL,QACE,CAAC,EAAavL,KAAKi+B,oBAAoBH,EAAQR,IAC1D,KAAK,EAED,OADAM,EAAQ/oB,EAAG+lB,OACJ,CAAC,EAAa56B,KAAKw+B,mBAAmBZ,EAAOQ,IACxD,KAAK,EAAG,MAAO,CAAC,EAAcvpB,EAAG+lB,gBAQjDzc,EAAkBhe,UAAUs+B,gBAAkB,WAC1Cz+B,KAAK67B,kBAAmB,GAK5B1d,EAAkBhe,UAAUu+B,qBAAuB,WAC/C1+B,KAAK47B,uBAAwB,GAQjCzd,EAAkBhe,UAAU89B,oBAAsB,SAAUH,EAAQR,GAChE,OAAO1D,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,IAAI2+B,EACJ,OAAOrE,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAKD,OAJAgE,EAAe3+B,KAAK4+B,oBAAoBtB,GACxCt9B,KAAK6+B,eAAeF,EAAcb,GAClC99B,KAAK2+B,aAAeA,EACpB3+B,KAAK89B,OAASA,EACP,CAAC,EAAa99B,KAAK8+B,qBAAqBH,IACnD,KAAK,EAED,OADA9pB,EAAG+lB,OACI,CAAC,EAAc+D,WAS1CxgB,EAAkBhe,UAAU2+B,qBAAuB,SAAUH,GACzD,IAAIn1B,EAAQxJ,KACZ,OAAO,IAAIuO,SAAQ,SAAUC,EAASC,GAAU,OAAOjF,EAAMu1B,gBAAgBJ,GAAc,WAAc,OAAOnwB,WAQpH2P,EAAkBhe,UAAU4+B,gBAAkB,SAAU3J,EAASgJ,GAC7D,IAAI50B,EAAQxJ,KACZA,KAAKg/B,mBAAqB,WAAc,OAAOx1B,EAAMy1B,eACrDj/B,KAAKk/B,qBAAuB,WAAc,OAAO11B,EAAM21B,aAAa/J,IACpEA,EAAQgK,iBAAiB,QAASp/B,KAAKg/B,oBACvC5J,EAAQgK,iBAAiB,UAAWp/B,KAAKk/B,sBACzC9J,EAAQgK,iBAAiB,UAAWhB,GAEpCp+B,KAAKm/B,aAAa/J,IAKtBjX,EAAkBhe,UAAUk/B,eAAiB,SAAUzB,GACnD,OAAOA,EAAM0B,YAAc,IAAM1B,EAAM2B,SAAW3B,EAAM4B,OAAS5B,EAAM6B,WAAa,GAMxFthB,EAAkBhe,UAAUg/B,aAAe,SAAUR,GACjD,OAAO/E,EAAU55B,UAAM,OAAQ,GAAQ,WAEnC,OAAOs6B,EAAYt6B,MAAM,SAAU+U,GAC/B,OAAQA,EAAG4lB,OACP,KAAK,EACD,GAAI36B,KAAKq/B,eAAeV,GAEpB,OADAe,QAAQC,KAAK,iDACN,CAAC,GAEZ5qB,EAAG4lB,MAAQ,EACf,KAAK,EAED,OADA5lB,EAAG8lB,KAAKplB,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAakpB,EAAaiB,QACtC,KAAK,EAED,OADA7qB,EAAG6lB,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFK7lB,EAAG6lB,OACR8E,QAAQC,KAAK,0CACN,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,WAQhCxhB,EAAkBhe,UAAU0/B,gBAAkB,SAAUC,EAAgBC,GACpE,IAAIC,EAAezJ,SAAS0J,eAAeH,GAC3C,IAAKE,EACD,MAAM,IAAI1E,EAAoB36B,QAAQ,oBAAsBm/B,EAAiB,eAEjF,GAAIE,EAAaE,SAASC,gBAAkBJ,EAAKI,cAC7C,MAAM,IAAI7E,EAAoB36B,QAAQ,oBAAsBm/B,EAAiB,gBAAkBC,EAAO,YAE1G,OAAOC,GAWX7hB,EAAkBhe,UAAUigC,gBAAkB,SAAU7b,EAAQ8b,GAC5D,IAAK9b,IAAW8b,EACZ,MAAM,IAAI/E,EAAoB36B,QAAQ,iEAE1C,OAAI0/B,IAAQ9b,EACDvkB,KAAKsgC,mBAAmBD,GAE5BrgC,KAAKugC,uBAAuBhc,IAWvCpG,EAAkBhe,UAAUqgC,gBAAkB,SAAUjc,EAAQ8b,GAC5D,IAAK9b,IAAW8b,EACZ,MAAM,IAAI/E,EAAoB36B,QAAQ,+DAE1C,OAAI0/B,IAAQ9b,EACDvkB,KAAKygC,mBAAmBJ,GAE5BrgC,KAAK0gC,uBAAuBnc,IAavCpG,EAAkBhe,UAAUwgC,4BAA8B,SAAUpc,EAAQ8b,EAAKjC,GAC7E,QAAIr+B,IAAcwkB,QAAUxkB,IAAcsgC,EACtC,MAAM,IAAI/E,EAAoB36B,QAAQ,+DAE1C,OAAI0/B,IAAQ9b,EACDvkB,KAAK4gC,+BAA+BP,EAAKjC,GAE7Cp+B,KAAK6gC,mCAAmCtc,EAAQ6Z,IAK3DjgB,EAAkBhe,UAAUogC,uBAAyB,SAAUhc,GAC3D,IAAKA,EACD,MAAM,IAAI+W,EAAoB36B,QAAQ,sCAE1CX,KAAKuL,QACL,IAEIu1B,EAFA1L,EAAUp1B,KAAK+gC,oBAAoBxc,GASvC,OARAvkB,KAAKghC,aAAe5L,EAGhB0L,EADA9gC,KAAKihC,cAAc7L,GACZp1B,KAAKk+B,WAAW9I,GAAS,GAAO,GAGhCp1B,KAAKkhC,mBAAmB9L,GAE5B0L,GAKX3iB,EAAkBhe,UAAUugC,uBAAyB,SAAUnc,GAC3D,IAAI6Q,EAAUp1B,KAAKmhC,6BAA6B5c,GAChD,OAAOvkB,KAAKohC,mBAAmBhM,IAKnCjX,EAAkBhe,UAAU0gC,mCAAqC,SAAUtc,EAAQ6Z,GAC/E,IAAIhJ,EAAUp1B,KAAKmhC,6BAA6B5c,GAChD,OAAOvkB,KAAKqhC,+BAA+BjM,EAASgJ,IAOxDjgB,EAAkBhe,UAAUghC,6BAA+B,SAAU5c,GACjE,IAAKA,EACD,MAAM,IAAI+W,EAAoB36B,QAAQ,qCAE1CX,KAAKuL,QACL,IAAI6pB,EAAUp1B,KAAK4+B,oBAAoBra,GAGvC,OADAvkB,KAAK2+B,aAAevJ,EACbA,GAKXjX,EAAkBhe,UAAUmgC,mBAAqB,SAAUD,GACvD,IAAKA,EACD,MAAM,IAAI/E,EAAoB36B,QAAQ,4BAE1CX,KAAKuL,QACL,IAAI6pB,EAAUp1B,KAAK+gC,sBACnB/gC,KAAKghC,aAAe5L,EACpB,IAAIkM,EAAathC,KAAKkhC,mBAAmB9L,GAEzC,OADAA,EAAQnlB,IAAMowB,EACPiB,GAKXnjB,EAAkBhe,UAAUsgC,mBAAqB,SAAUJ,GACvD,IAAKA,EACD,MAAM,IAAI/E,EAAoB36B,QAAQ,4BAE1CX,KAAKuL,QAEL,IAAI6pB,EAAUp1B,KAAK4+B,sBACf0C,EAAathC,KAAK0gC,uBAAuBtL,GAE7C,OADAA,EAAQnlB,IAAMowB,EACPiB,GAOXnjB,EAAkBhe,UAAUygC,+BAAiC,SAAUP,EAAKjC,GACxE,IAAKiC,EACD,MAAM,IAAI/E,EAAoB36B,QAAQ,4BAE1CX,KAAKuL,QAEL,IAAI6pB,EAAUp1B,KAAK4+B,sBACf0C,EAAathC,KAAK6gC,mCAAmCzL,EAASgJ,GAElE,OADAhJ,EAAQnlB,IAAMowB,EACPiB,GAEXnjB,EAAkBhe,UAAU+gC,mBAAqB,SAAU9L,GACvD,IAAI5rB,EAAQxJ,KACZ,OAAO,IAAIuO,SAAQ,SAAUC,EAASC,GAClCjF,EAAM+3B,oBAAsB,WAAc,OAAO/3B,EAAM00B,WAAW9I,GAAS,GAAO,GAAMiF,KAAK7rB,EAASC,IACtG2mB,EAAQgK,iBAAiB,OAAQ51B,EAAM+3B,yBAG/CpjB,EAAkBhe,UAAUihC,mBAAqB,SAAUzC,GACvD,OAAO/E,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,OAAOs6B,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAEL,MAAO,CAAC,EAAa36B,KAAK8+B,qBAAqBH,IAC/C,KAAK,EAGD,OADA9pB,EAAG+lB,OACI,CAAC,EAAa56B,KAAKk+B,WAAWS,IACzC,KAAK,EAEL,MAAO,CAAC,EAAc9pB,EAAG+lB,gBAKzCzc,EAAkBhe,UAAUkhC,+BAAiC,SAAU1C,EAAcP,GACjF,OAAOxE,EAAU55B,UAAM,OAAQ,GAAQ,WACnC,OAAOs6B,EAAYt6B,MAAM,SAAU6U,GAC/B,OAAQA,EAAG8lB,OACP,KAAK,EAEL,MAAO,CAAC,EAAa36B,KAAK8+B,qBAAqBH,IAC/C,KAAK,EAKD,OAHA9pB,EAAG+lB,OAEH56B,KAAKw+B,mBAAmBG,EAAcP,GAC/B,CAAC,WAK5BjgB,EAAkBhe,UAAU8gC,cAAgB,SAAUO,GAIlD,QAAKA,EAAIC,UAMgB,IAArBD,EAAIE,cAMZvjB,EAAkBhe,UAAU4gC,oBAAsB,SAAUY,GACxD,IAAIX,EAYJ,MAX2B,qBAAhBW,IACPX,EAAezK,SAASC,cAAc,OACtCwK,EAAap8B,MAAQ,IACrBo8B,EAAat8B,OAAS,KAEC,kBAAhBi9B,IACPX,EAAehhC,KAAK6/B,gBAAgB8B,EAAa,QAEjDA,aAAuBC,mBACvBZ,EAAeW,GAEZX,GAOX7iB,EAAkBhe,UAAUy+B,oBAAsB,SAAUtB,GACxD,IAAIqB,EAgBJ,OAfKrB,GAAmC,qBAAb/G,WACvBoI,EAAepI,SAASC,cAAc,SACtCmI,EAAa/5B,MAAQ,IACrB+5B,EAAaj6B,OAAS,KAEC,kBAAhB44B,IACPqB,EAAe3+B,KAAK6/B,gBAAgBvC,EAAa,UAEjDA,aAAuBuE,mBACvBlD,EAAerB,GAGnBqB,EAAamD,aAAa,WAAY,QACtCnD,EAAamD,aAAa,QAAS,QACnCnD,EAAamD,aAAa,cAAe,QAClCnD,GAKXxgB,EAAkBhe,UAAU+9B,WAAa,SAAU9I,EAAS2M,EAAiBC,GACzE,IAAIx4B,EAAQxJ,UACY,IAApB+hC,IAA8BA,GAAkB,QACf,IAAjCC,IAA2CA,GAA+B,GAC9EhiC,KAAK67B,kBAAmB,EACxB,IAAIoG,EAAO,SAAUzzB,EAASC,GAC1B,GAAIjF,EAAMqyB,iBAGN,OAFAptB,EAAO,IAAIpK,EAAoB1D,QAAQ,mEACvC6I,EAAMqyB,sBAAmB97B,GAG7B,IACI,IAAIsB,EAASmI,EAAMe,OAAO6qB,GAC1B5mB,EAAQnN,GAEZ,MAAO+vB,GACH,IAAI8Q,EAAaH,GAAmB3Q,aAAa/sB,EAAoB1D,QACjEwhC,EAA0B/Q,aAAa5C,EAAoB7tB,SAAWywB,aAAa3C,EAAkB9tB,QACrGyhC,EAAqBD,GAA2BH,EACpD,GAAIE,GAAcE,EAEd,OAAOC,YAAW,WAAc,OAAOJ,EAAKzzB,EAASC,KAAYjF,EAAMsyB,8BAE3ErtB,EAAO2iB,KAGf,OAAO,IAAI7iB,SAAQ,SAAUC,EAASC,GAAU,OAAOwzB,EAAKzzB,EAASC,OAKzE0P,EAAkBhe,UAAUq+B,mBAAqB,SAAUpJ,EAASgJ,GAChE,IAAI50B,EAAQxJ,KACZA,KAAK47B,uBAAwB,EAC7B,IAAIqG,EAAO,WACP,GAAIz4B,EAAMoyB,sBACNpyB,EAAMoyB,2BAAwB77B,OAGlC,IACI,IAAIsB,EAASmI,EAAMe,OAAO6qB,GAC1BgJ,EAAW/8B,EAAQ,MACnBghC,YAAW,WAAc,OAAOJ,MAAWz4B,EAAM0U,wBAErD,MAAOkT,GACHgN,EAAW,KAAMhN,GACjB,IAAI+Q,EAA0B/Q,aAAa5C,EAAoB7tB,SAAWywB,aAAa3C,EAAkB9tB,QACrG2hC,EAAalR,aAAa/sB,EAAoB1D,SAC9CwhC,GAA2BG,IAE3BD,YAAW,WAAc,OAAOJ,MAAWz4B,EAAMsyB,gCAI7DmG,KAKJ9jB,EAAkBhe,UAAUoK,OAAS,SAAU6qB,GAE3C,IAAImN,EAAeviC,KAAKwiC,mBAAmBpN,GAC3C,OAAOp1B,KAAKyiC,aAAaF,IAO7BpkB,EAAkBhe,UAAUqiC,mBAAqB,SAAUxC,GACvD,IAAI0C,EAAM1iC,KAAK2iC,wBAAwB3C,GACvChgC,KAAK4iC,kBAAkBF,EAAK1C,GAC5B,IAAI6C,EAAS7iC,KAAK8iC,iBAAiB9C,GAC/B+C,EAAkB,IAAItH,EAAmCuH,iCAAiCH,GAC1FI,EAAkB,IAAIzH,EAAkB76B,QAAQoiC,GACpD,OAAO,IAAIxH,EAAe56B,QAAQsiC,IAKtC9kB,EAAkBhe,UAAUwiC,wBAA0B,SAAU3C,GAC5D,IAAKhgC,KAAKkjC,qBAAsB,CAC5B,IAAIC,EAAOnjC,KAAK8iC,iBAAiB9C,GAC7B0C,EAAMS,EAAKC,WAAW,MAC1BpjC,KAAKkjC,qBAAuBR,EAEhC,OAAO1iC,KAAKkjC,sBAKhB/kB,EAAkBhe,UAAU2iC,iBAAmB,SAAU9C,GACrD,IAAKhgC,KAAKqjC,cAAe,CACrB,IAAIF,EAAOnjC,KAAKsjC,oBAAoBtD,GACpChgC,KAAKqjC,cAAgBF,EAEzB,OAAOnjC,KAAKqjC,eAKhBllB,EAAkBhe,UAAUyiC,kBAAoB,SAAUW,EAAsBC,GAC5ED,EAAqBE,UAAUD,EAAY,EAAG,IAKlDrlB,EAAkBhe,UAAUsiC,aAAe,SAAUF,GACjD,OAAOviC,KAAK05B,OAAOnvB,OAAOg4B,EAAcviC,KAAK27B,SAKjDxd,EAAkBhe,UAAUmjC,oBAAsB,SAAUtD,GACxD,GAAwB,qBAAbzJ,SAEP,OADAv2B,KAAK0jC,wBACE,KAEX,IACI9+B,EACAF,EAFAi/B,EAAgBpN,SAASC,cAAc,UAiB3C,MAd4B,qBAAjBwJ,IACHA,aAAwB6B,kBACxBj9B,EAAQo7B,EAAa4D,WACrBl/B,EAASs7B,EAAa6D,aAEjB7D,aAAwB4B,mBAC7Bh9B,EAAQo7B,EAAa0B,cAAgB1B,EAAap7B,MAClDF,EAASs7B,EAAa8D,eAAiB9D,EAAat7B,SAG5Di/B,EAAcI,MAAMn/B,MAAQA,EAAQ,KACpC++B,EAAcI,MAAMr/B,OAASA,EAAS,KACtCi/B,EAAc/+B,MAAQA,EACtB++B,EAAcj/B,OAASA,EAChBi/B,GAKXxlB,EAAkBhe,UAAU8+B,YAAc,WAClCj/B,KAAK89B,SACL99B,KAAK89B,OAAOkG,iBAAiBz3B,SAAQ,SAAU/F,GAAK,OAAOA,EAAEy9B,UAC7DjkC,KAAK89B,YAAS/9B,IAEY,IAA1BC,KAAK67B,kBACL77B,KAAKy+B,mBAE0B,IAA/Bz+B,KAAK47B,uBACL57B,KAAK0+B,wBAQbvgB,EAAkBhe,UAAUoL,MAAQ,WAEhCvL,KAAKi/B,cAELj/B,KAAKkkC,uBACLlkC,KAAKmkC,uBACLnkC,KAAK0jC,yBAETvlB,EAAkBhe,UAAU+jC,qBAAuB,WAC1ClkC,KAAK2+B,eAI6B,qBAA5B3+B,KAAKg/B,oBACZh/B,KAAK2+B,aAAayF,oBAAoB,QAASpkC,KAAKg/B,oBAEV,qBAAnCh/B,KAAKqkC,2BACZrkC,KAAK2+B,aAAayF,oBAAoB,UAAWpkC,KAAKqkC,2BAEjB,qBAA9BrkC,KAAKk/B,sBACZl/B,KAAK2+B,aAAayF,oBAAoB,iBAAkBpkC,KAAKk/B,sBAGjEl/B,KAAKskC,iBAAiBtkC,KAAK2+B,cAC3B3+B,KAAK2+B,kBAAe5+B,IAExBoe,EAAkBhe,UAAUgkC,qBAAuB,WAC1CnkC,KAAKghC,oBAINjhC,IAAcC,KAAKuhC,qBACnBvhC,KAAKghC,aAAaoD,oBAAoB,OAAQpkC,KAAKuhC,qBAGvDvhC,KAAKghC,aAAa/wB,SAAMlQ,EACxBC,KAAKghC,aAAauD,gBAAgB,OAClCvkC,KAAKghC,kBAAejhC,IAKxBoe,EAAkBhe,UAAUujC,sBAAwB,WAEhD1jC,KAAKkjC,0BAAuBnjC,EAC5BC,KAAKqjC,mBAAgBtjC,GAQzBoe,EAAkBhe,UAAU0+B,eAAiB,SAAUF,EAAcb,GAEjE,IAEIa,EAAa6F,UAAY1G,EAE7B,MAAO1mB,GAEHunB,EAAa1uB,IAAMw0B,IAAIC,gBAAgB5G,KAQ/C3f,EAAkBhe,UAAUmkC,iBAAmB,SAAU3F,GACrD,IACIA,EAAa6F,UAAY,KAE7B,MAAOptB,GACHunB,EAAa1uB,IAAM,GAEvBjQ,KAAK2+B,aAAa4F,gBAAgB,QAE/BpmB,EA17B2B,GA47BtC7e,EAAQ6e,kBAAoBA,G,kCC99B5B/e,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI+mB,EAAY,EAAQ,QACpBqe,EAAsB,EAAQ,QAC9BC,EAAa,EAAQ,QACrBnW,EAAoB,EAAQ,QAI5BoW,EAAiC,WAKjC,SAASA,EAAgBC,GACrB,IAAI3b,EAAY2b,EAAUngC,YAC1B,GAAIwkB,EAAY,IAA6B,KAAV,EAAZA,GACnB,MAAM,IAAIsF,EAAkB9tB,QAEhCX,KAAK8kC,UAAYA,EAsLrB,OA7KAD,EAAgB1kC,UAAUqxB,sBAAwB,WAC9C,GAA8B,OAA1BxxB,KAAK+kC,uBAAuDhlC,IAA1BC,KAAK+kC,iBACvC,OAAO/kC,KAAK+kC,iBAIhB,IADA,IAAIC,EAAkB,EACblkC,EAAI,EAAGA,EAAI,EAAGA,IACnBkkC,EAAkBhlC,KAAKilC,QAAQnkC,EAAG,EAAGkkC,GAGzCA,EAAkBhlC,KAAKilC,QAAQ,EAAG,EAAGD,GACrCA,EAAkBhlC,KAAKilC,QAAQ,EAAG,EAAGD,GACrCA,EAAkBhlC,KAAKilC,QAAQ,EAAG,EAAGD,GAErC,IAAK,IAAI5hC,EAAI,EAAGA,GAAK,EAAGA,IACpB4hC,EAAkBhlC,KAAKilC,QAAQ,EAAG7hC,EAAG4hC,GAGzC,IAAI7b,EAAYnpB,KAAK8kC,UAAUngC,YAC3BugC,EAAkB,EAClBC,EAAOhc,EAAY,EACvB,IAAS/lB,EAAI+lB,EAAY,EAAG/lB,GAAK+hC,EAAM/hC,IACnC8hC,EAAkBllC,KAAKilC,QAAQ,EAAG7hC,EAAG8hC,GAEzC,IAASpkC,EAAIqoB,EAAY,EAAGroB,EAAIqoB,EAAWroB,IACvCokC,EAAkBllC,KAAKilC,QAAQnkC,EAAG,EAAGokC,GAGzC,GADAllC,KAAK+kC,iBAAmBJ,EAAoBhkC,QAAQykC,wBAAwBJ,EAAiBE,GAC/D,OAA1BllC,KAAK+kC,iBACL,OAAO/kC,KAAK+kC,iBAEhB,MAAM,IAAItW,EAAkB9tB,SAShCkkC,EAAgB1kC,UAAUoxB,YAAc,WACpC,GAA2B,OAAvBvxB,KAAKqlC,oBAAiDtlC,IAAvBC,KAAKqlC,cACpC,OAAOrlC,KAAKqlC,cAEhB,IAAIlc,EAAYnpB,KAAK8kC,UAAUngC,YAC3BglB,EAAqBrpB,KAAKC,OAAO4oB,EAAY,IAAM,GACvD,GAAIQ,GAAsB,EACtB,OAAOrD,EAAU3lB,QAAQwnB,oBAAoBwB,GAKjD,IAFA,IAAI2b,EAAc,EACdC,EAAQpc,EAAY,GACf/lB,EAAI,EAAGA,GAAK,EAAGA,IACpB,IAAK,IAAItC,EAAIqoB,EAAY,EAAGroB,GAAKykC,EAAOzkC,IACpCwkC,EAActlC,KAAKilC,QAAQnkC,EAAGsC,EAAGkiC,GAGzC,IAAIE,EAAmBlf,EAAU3lB,QAAQ8kC,yBAAyBH,GAClE,GAAyB,OAArBE,GAA6BA,EAAiBpc,2BAA6BD,EAE3E,OADAnpB,KAAKqlC,cAAgBG,EACdA,EAGXF,EAAc,EACd,IAASxkC,EAAI,EAAGA,GAAK,EAAGA,IACpB,IAASsC,EAAI+lB,EAAY,EAAG/lB,GAAKmiC,EAAOniC,IACpCkiC,EAActlC,KAAKilC,QAAQnkC,EAAGsC,EAAGkiC,GAIzC,GADAE,EAAmBlf,EAAU3lB,QAAQ8kC,yBAAyBH,GACrC,OAArBE,GAA6BA,EAAiBpc,2BAA6BD,EAE3E,OADAnpB,KAAKqlC,cAAgBG,EACdA,EAEX,MAAM,IAAI/W,EAAkB9tB,SAEhCkkC,EAAgB1kC,UAAU8kC,QAAU,SAAUnkC,EAAWsC,EAAWkiC,GAChE,IAAIjjC,EAAMrC,KAAK0lC,SAAW1lC,KAAK8kC,UAAUjkC,IAAIuC,EAAGtC,GAAKd,KAAK8kC,UAAUjkC,IAAIC,EAAGsC,GAC3E,OAAOf,EAAOijC,GAAe,EAAK,EAAMA,GAAe,GAU3DT,EAAgB1kC,UAAUyxB,cAAgB,WACtC,IAAI+T,EAAa3lC,KAAKwxB,wBAClBtW,EAAUlb,KAAKuxB,cAGfqU,EAAWhB,EAAWjkC,QAAQwzB,OAAOtzB,IAAI8kC,EAAWE,eACpD1c,EAAYnpB,KAAK8kC,UAAUngC,YAC/BihC,EAAS1R,gBAAgBl0B,KAAK8kC,UAAW3b,GAQzC,IAPA,IAAI2c,EAAkB5qB,EAAQ6qB,uBAC1BC,GAAY,EACZ3kC,EAAS,IAAIiP,WAAW4K,EAAQE,qBAChC8W,EAAe,EACf+T,EAAc,EACdC,EAAW,EAEN9iC,EAAI+lB,EAAY,EAAG/lB,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAANA,GAGAA,IAGJ,IAAK,IAAI+U,EAAQ,EAAGA,EAAQgR,EAAWhR,IAEnC,IADA,IAAIrX,EAAIklC,EAAY7c,EAAY,EAAIhR,EAAQA,EACnCguB,EAAM,EAAGA,EAAM,EAAGA,IAElBL,EAAgBjlC,IAAIuC,EAAI+iC,EAAKrlC,KAE9BolC,IACAD,IAAgB,EACZjmC,KAAK8kC,UAAUjkC,IAAIuC,EAAI+iC,EAAKrlC,KAC5BmlC,GAAe,GAGF,IAAbC,IACA7kC,EAAO6wB,KAA8B+T,EACrCC,EAAW,EACXD,EAAc,IAK9BD,GAAaA,EAEjB,GAAI9T,IAAiBhX,EAAQE,oBACzB,MAAM,IAAIqT,EAAkB9tB,QAEhC,OAAOU,GAKXwjC,EAAgB1kC,UAAUkxB,OAAS,WAC/B,GAA8B,OAA1BrxB,KAAK+kC,iBAAT,CAGA,IAAIa,EAAWhB,EAAWjkC,QAAQwzB,OAAOn0B,KAAK+kC,iBAAiBc,eAC3D1c,EAAYnpB,KAAK8kC,UAAUngC,YAC/BihC,EAAS1R,gBAAgBl0B,KAAK8kC,UAAW3b,KAU7C0b,EAAgB1kC,UAAUmxB,UAAY,SAAUoU,GAC5C1lC,KAAKqlC,cAAgB,KACrBrlC,KAAK+kC,iBAAmB,KACxB/kC,KAAK0lC,SAAWA,GAGpBb,EAAgB1kC,UAAUsxB,OAAS,WAE/B,IADA,IAAIqT,EAAY9kC,KAAK8kC,UACZrhC,EAAI,EAAGmB,EAAQkgC,EAAUjgC,WAAYpB,EAAImB,EAAOnB,IACrD,IAAK,IAAIgB,EAAIhB,EAAI,EAAGiB,EAASogC,EAAUngC,YAAaF,EAAIC,EAAQD,IACxDqgC,EAAUjkC,IAAI4C,EAAGgB,KAAOqgC,EAAUjkC,IAAI4D,EAAGhB,KACzCqhC,EAAU9jC,KAAKyD,EAAGhB,GAClBqhC,EAAU9jC,KAAKyC,EAAGgB,KAK3BogC,EAhMyB,GAkMpCvlC,EAAQqB,QAAUkkC,G,oCC1NlB,W,uBCAA,MAAMuB,EAAoD,YAAxC,EAAQ,OAAR,CAA4B,QACxCh4B,EAAag4B,EAAY,EAAQ,QAAiB7S,GAAKA,EAE7DhrB,EAAOjJ,QAAW+mC,IAChB,MAAMC,EAAO,IAAKD,GAMlB,MALA,CAAC,WAAY,aAAc,YAAY95B,QAASE,IAClB,qBAAjB45B,EAAQ55B,KACjB65B,EAAK75B,GAAO2B,EAAWk4B,EAAK75B,OAGzB65B,I,oCCTTlnC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIgnC,EAA+B,WAC/B,SAASA,EAAchnC,QACL,IAAVA,IAAoBA,EAAQ,IAChCS,KAAKT,MAAQA,EA6BjB,OA3BAgnC,EAAcpmC,UAAU2V,OAAS,SAAUyd,GAOvC,OALIvzB,KAAKT,OADQ,kBAANg0B,EACOA,EAAEvvB,WAGF4R,OAAOuH,aAAaoW,GAE/BvzB,MAEXumC,EAAcpmC,UAAUM,OAAS,WAC7B,OAAOT,KAAKT,MAAMkB,QAEtB8lC,EAAcpmC,UAAU8V,OAAS,SAAU8f,GACvC,OAAO/1B,KAAKT,MAAM0W,OAAO8f,IAE7BwQ,EAAcpmC,UAAUqmC,aAAe,SAAUzQ,GAC7C/1B,KAAKT,MAAQS,KAAKT,MAAMknC,OAAO,EAAG1Q,GAAK/1B,KAAKT,MAAM+uB,UAAUyH,EAAI,IAEpEwQ,EAAcpmC,UAAUumC,UAAY,SAAU3Q,EAAGrmB,GAC7C1P,KAAKT,MAAQS,KAAKT,MAAMknC,OAAO,EAAG1Q,GAAKrmB,EAAI1P,KAAKT,MAAMknC,OAAO1Q,EAAI,IAErEwQ,EAAcpmC,UAAU6D,SAAW,WAC/B,OAAOhE,KAAKT,OAEhBgnC,EAAcpmC,UAAUwmC,OAAS,SAAU5Q,EAAGrmB,GAC1C1P,KAAKT,MAAQS,KAAKT,MAAMknC,OAAO,EAAG1Q,GAAKrmB,EAAI1P,KAAKT,MAAMknC,OAAO1Q,EAAIrmB,EAAEjP,SAEhE8lC,EAhCuB,GAkClCjnC,EAAQqB,QAAU4lC,G,oCCpBlBnnC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAEIqnC,EAFAtL,EAAsB,EAAQ,QAC9B37B,EAA6B,EAAQ,SAEzC,SAAWinC,GACPA,EAA2BA,EAA2B,KAAO,GAAK,IAClEA,EAA2BA,EAA2B,KAAO,GAAK,IAClEA,EAA2BA,EAA2B,KAAO,GAAK,IAClEA,EAA2BA,EAA2B,KAAO,GAAK,KAJtE,CAKGA,EAA6BtnC,EAAQsnC,6BAA+BtnC,EAAQsnC,2BAA6B,KAO5G,IAAIC,EAAsC,WACtC,SAASA,EAAqBtnC,EAAOggB,EAAazf,GAC9CE,KAAKT,MAAQA,EACbS,KAAKuf,YAAcA,EACnBvf,KAAKF,KAAOA,EACZ+mC,EAAqBpnB,SAAS1e,IAAIjB,EAAME,MACxC6mC,EAAqBnnB,UAAU3e,IAAIxB,EAAOS,MA+C9C,OA7CA6mC,EAAqB1mC,UAAUoV,SAAW,WACtC,OAAOvV,KAAKT,OAEhBsnC,EAAqB1mC,UAAU6f,QAAU,WACrC,OAAOhgB,KAAKF,MAEhB+mC,EAAqBC,WAAa,SAAUvT,GACxC,OAAQA,GACJ,IAAK,IAAK,OAAOsT,EAAqBE,EACtC,IAAK,IAAK,OAAOF,EAAqBG,EACtC,IAAK,IAAK,OAAOH,EAAqBI,EACtC,IAAK,IAAK,OAAOJ,EAAqBK,EACtC,QAAS,MAAM,IAAI5L,EAAoB36B,QAAQ4yB,EAAI,mBAG3DsT,EAAqB1mC,UAAU6D,SAAW,WACtC,OAAOhE,KAAKuf,aAEhBsnB,EAAqB1mC,UAAU0D,OAAS,SAAUC,GAC9C,KAAMA,aAAa+iC,GACf,OAAO,EAEX,IAAInkC,EAAQoB,EACZ,OAAO9D,KAAKT,QAAUmD,EAAMnD,OAMhCsnC,EAAqBlnB,QAAU,SAAU7f,GACrC,GAAIA,EAAO,GAAKA,GAAQ+mC,EAAqBpnB,SAAS5f,KAClD,MAAM,IAAIF,EAA2BgB,QAEzC,OAAOkmC,EAAqBpnB,SAAS5e,IAAIf,IAE7C+mC,EAAqBpnB,SAAW,IAAInT,IACpCu6B,EAAqBnnB,UAAY,IAAIpT,IAErCu6B,EAAqBE,EAAI,IAAIF,EAAqBD,EAA2BG,EAAG,IAAK,GAErFF,EAAqBG,EAAI,IAAIH,EAAqBD,EAA2BI,EAAG,IAAK,GAErFH,EAAqBI,EAAI,IAAIJ,EAAqBD,EAA2BK,EAAG,IAAK,GAErFJ,EAAqBK,EAAI,IAAIL,EAAqBD,EAA2BM,EAAG,IAAK,GAC9EL,EArD8B,GAuDzCvnC,EAAQqB,QAAUkmC,G,oCCxElBznC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIkd,EAAiB,EAAQ,QACzB0qB,EAA4B,EAAQ,QACpCC,EAA4B,EAAQ,QACpCC,EAAwC,WACxC,SAASA,KAcT,OAZAA,EAAuBz6B,UAAY,SAAUb,EAAWN,EAAKkO,GACzD,IAAI8J,EAAsBhH,EAAe9b,QAAQ4c,iBAAiB9R,EAAKkO,GAAW,EAAO3Z,KAAKsnC,wBAAyB,IAAIz+B,MAAM7I,KAAKsnC,wBAAwB7mC,QAAQgd,KAAK,IAC3K,IACI,IAAI8pB,EAAc,IAAIJ,EAA0BxmC,QAChD,OAAO4mC,EAAY36B,UAAUb,EAAWN,EAAKgY,GAEjD,MAAOrM,GACH,IAAIowB,EAAa,IAAIJ,EAA0BzmC,QAC/C,OAAO6mC,EAAW56B,UAAUb,EAAWN,EAAKgY,KAGpD4jB,EAAuBC,wBAA0B,CAAC,EAAG,EAAG,GACjDD,EAfgC,GAiB3C/nC,EAAQqB,QAAU0mC,G,qBC9BlB9+B,EAAOjJ,QAAU8P,MAAOq4B,EAAQC,KAC9BD,EAAOE,YAAYD,K,uBCRrB,IAAIE,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAClBC,EAAY,EAAQ,QACpBC,EAAS,EAAQ,QAAiBvN,EACtCjyB,EAAOjJ,QAAU,SAAU0oC,GACzB,OAAO,SAAUC,GACf,IAKIx7B,EALAy7B,EAAIJ,EAAUG,GACd7mB,EAAOymB,EAAQK,GACfznC,EAAS2gB,EAAK3gB,OACdK,EAAI,EACJO,EAAS,GAEb,MAAOZ,EAASK,EACd2L,EAAM2U,EAAKtgB,KACN8mC,IAAeG,EAAOt+B,KAAKy+B,EAAGz7B,IACjCpL,EAAOoU,KAAKuyB,EAAY,CAACv7B,EAAKy7B,EAAEz7B,IAAQy7B,EAAEz7B,IAG9C,OAAOpL,K,oCCMX,IAAI8mC,EARJ/oC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAStD,SAAW4oC,GAIPA,EAAmBA,EAAmB,SAAW,GAAK,QAQtDA,EAAmBA,EAAmB,eAAiB,GAAK,cAU5DA,EAAmBA,EAAmB,iBAAmB,GAAK,gBAK9DA,EAAmBA,EAAmB,0BAA4B,GAAK,yBAIvEA,EAAmBA,EAAmB,gBAAkB,GAAK,eAK7DA,EAAmBA,EAAmB,mBAAqB,GAAK,kBAKhEA,EAAmBA,EAAmB,oBAAsB,GAAK,mBAIjEA,EAAmBA,EAAmB,qBAAuB,GAAK,oBAIlEA,EAAmBA,EAAmB,yBAA2B,GAAK,wBAKtEA,EAAmBA,EAAmB,8BAAgC,GAAK,6BAK3EA,EAAmBA,EAAmB,4BAA8B,IAAM,2BA3D9E,CA4DGA,IAAuBA,EAAqB,KAC/C7oC,EAAQqB,QAAUwnC,G,oCCrFlB,IAAI3/B,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6e,EAAc,EAAQ,QAItBgqB,EAA+C,SAAUh/B,GAEzD,SAASg/B,IACL,OAAkB,OAAXh/B,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAE/D,OAJAwI,EAAU4/B,EAA+Bh/B,GAIlCg/B,EALuC,CAMhDhqB,EAAYzd,SACdrB,EAAQqB,QAAUynC,G,oCCzBlBhpC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAsBI+f,EAtBA+oB,EAAkB,EAAQ,QAC1BC,EAAc,EAAQ,QACtBz0B,EAAkB,EAAQ,QAC1B8S,EAAmB,EAAQ,QAC3B4hB,EAAM,EAAQ,QACd9Z,EAAoB,EAAQ,QAC5B+Z,EAA0B,EAAQ,SAiBtC,SAAWlpB,GACPA,EAAKA,EAAK,cAAgB,GAAK,aAC/BA,EAAKA,EAAK,gBAAkB,GAAK,eACjCA,EAAKA,EAAK,cAAgB,GAAK,aAC/BA,EAAKA,EAAK,eAAiB,GAAK,cAChCA,EAAKA,EAAK,kBAAoB,GAAK,iBACnCA,EAAKA,EAAK,kBAAoB,GAAK,iBACnCA,EAAKA,EAAK,kBAAoB,GAAK,kBAPvC,CAQGA,IAASA,EAAO,KAUnB,IAAImpB,EAAwC,WACxC,SAASA,KAgdT,OA9cAA,EAAuBl+B,OAAS,SAAUgU,GACtC,IAAIze,EAAO,IAAIwoC,EAAY3nC,QAAQ4d,GAC/Bld,EAAS,IAAIwS,EAAgBlT,QAC7B+nC,EAAgB,IAAI70B,EAAgBlT,QACpCgoC,EAAe,IAAI9/B,MACnB+W,EAAON,EAAKspB,aAChB,GACI,GAAIhpB,IAASN,EAAKspB,aACdhpB,EAAO5f,KAAK6oC,mBAAmB/oC,EAAMuB,EAAQqnC,OAE5C,CACD,OAAQ9oB,GACJ,KAAKN,EAAKwpB,WACN9oC,KAAK+oC,iBAAiBjpC,EAAMuB,GAC5B,MACJ,KAAKie,EAAK0pB,YACNhpC,KAAKipC,kBAAkBnpC,EAAMuB,GAC7B,MACJ,KAAKie,EAAK4pB,eACNlpC,KAAKmpC,qBAAqBrpC,EAAMuB,GAChC,MACJ,KAAKie,EAAK8pB,eACNppC,KAAKqpC,qBAAqBvpC,EAAMuB,GAChC,MACJ,KAAKie,EAAKgqB,eACNtpC,KAAKupC,qBAAqBzpC,EAAMuB,EAAQsnC,GACxC,MACJ,QACI,MAAM,IAAIla,EAAkB9tB,QAEpCif,EAAON,EAAKspB,oBAEXhpB,IAASN,EAAKkqB,YAAc1pC,EAAK2pC,YAAc,GAIxD,OAHIf,EAAcjoC,SAAW,GACzBY,EAAOyU,OAAO4yB,EAAc1kC,YAEzB,IAAIqkC,EAAgB1nC,QAAQ4d,EAAOld,EAAO2C,WAAoC,IAAxB2kC,EAAaloC,OAAe,KAAOkoC,EAAc,OAKlHF,EAAuBI,mBAAqB,SAAU/oC,EAAMuB,EAAQqnC,GAChE,IAAIgB,GAAa,EACjB,EAAG,CACC,IAAIC,EAAU7pC,EAAK8pC,SAAS,GAC5B,GAAgB,IAAZD,EACA,MAAM,IAAIlb,EAAkB9tB,QAE3B,GAAIgpC,GAAW,IAMhB,OALID,IACAC,GAAW,KAGftoC,EAAOyU,OAAOF,OAAOuH,aAAawsB,EAAU,IACrCrqB,EAAKspB,aAEX,GAAgB,MAAZe,EACL,OAAOrqB,EAAKkqB,WAEX,GAAIG,GAAW,IAAK,CACrB,IAAIpqC,EAAQoqC,EAAU,IAClBpqC,EAAQ,IACR8B,EAAOyU,OAAO,KAElBzU,EAAOyU,OAAO,GAAKvW,QAGnB,OAAQoqC,GACJ,KAAK,IACD,OAAOrqB,EAAKwpB,WAChB,KAAK,IACD,OAAOxpB,EAAKgqB,eAChB,KAAK,IACDjoC,EAAOyU,OAAOF,OAAOuH,aAAa,KAClC,MACJ,KAAK,IACL,KAAK,IAGD,MACJ,KAAK,IACDusB,GAAa,EACb,MACJ,KAAK,IACDroC,EAAOyU,OAAO,WACd4yB,EAAc/B,OAAO,EAAG,MACxB,MACJ,KAAK,IACDtlC,EAAOyU,OAAO,WACd4yB,EAAc/B,OAAO,EAAG,MACxB,MACJ,KAAK,IACD,OAAOrnB,EAAK4pB,eAChB,KAAK,IACD,OAAO5pB,EAAK0pB,YAChB,KAAK,IACD,OAAO1pB,EAAK8pB,eAChB,KAAK,IAID,MACJ,QAGI,GAAgB,MAAZO,GAAwC,IAArB7pC,EAAK2pC,YACxB,MAAM,IAAIhb,EAAkB9tB,QAEhC,aAGPb,EAAK2pC,YAAc,GAC5B,OAAOnqB,EAAKspB,cAKhBH,EAAuBM,iBAAmB,SAAUjpC,EAAMuB,GAItD,IAAIqoC,GAAa,EACbG,EAAU,GACVjoB,EAAQ,EACZ,EAAG,CAEC,GAAyB,IAArB9hB,EAAK2pC,YACL,OAEJ,IAAIK,EAAYhqC,EAAK8pC,SAAS,GAC9B,GAAkB,MAAdE,EACA,OAEJ9pC,KAAK+pC,cAAcD,EAAWhqC,EAAK8pC,SAAS,GAAIC,GAChD,IAAK,IAAI/oC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIkpC,EAASH,EAAQ/oC,GACrB,OAAQ8gB,GACJ,KAAK,EACD,GAAIooB,EAAS,EACTpoB,EAAQooB,EAAS,MAEhB,MAAIA,EAAShqC,KAAKiqC,oBAAoBxpC,QAWvC,MAAM,IAAIguB,EAAkB9tB,QAV5B,IAAIupC,EAAUlqC,KAAKiqC,oBAAoBD,GACnCN,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAa+sB,EAAQv6B,WAAW,GAAK,MAC1D+5B,GAAa,GAGbroC,EAAOyU,OAAOo0B,GAMtB,MACJ,KAAK,EACGR,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,MAC3CN,GAAa,GAGbroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,IAEtCpoB,EAAQ,EACR,MACJ,KAAK,EACD,GAAIooB,EAAShqC,KAAKmqC,qBAAqB1pC,OAAQ,CACvCypC,EAAUlqC,KAAKmqC,qBAAqBH,GACpCN,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAa+sB,EAAQv6B,WAAW,GAAK,MAC1D+5B,GAAa,GAGbroC,EAAOyU,OAAOo0B,QAIlB,OAAQF,GACJ,KAAK,GACD3oC,EAAOyU,OAAOF,OAAOuH,aAAa,KAClC,MACJ,KAAK,GACDusB,GAAa,EACb,MACJ,QACI,MAAM,IAAIjb,EAAkB9tB,QAGxCihB,EAAQ,EACR,MACJ,KAAK,EACG8nB,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,MAC3CN,GAAa,GAGbroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,KAE/CpoB,EAAQ,EACR,MACJ,QACI,MAAM,IAAI6M,EAAkB9tB,gBAGnCb,EAAK2pC,YAAc,IAKhChB,EAAuBQ,kBAAoB,SAAUnpC,EAAMuB,GAIvD,IAAIqoC,GAAa,EACbG,EAAU,GACVjoB,EAAQ,EACZ,EAAG,CAEC,GAAyB,IAArB9hB,EAAK2pC,YACL,OAEJ,IAAIK,EAAYhqC,EAAK8pC,SAAS,GAC9B,GAAkB,MAAdE,EACA,OAEJ9pC,KAAK+pC,cAAcD,EAAWhqC,EAAK8pC,SAAS,GAAIC,GAChD,IAAK,IAAI/oC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIkpC,EAASH,EAAQ/oC,GACrB,OAAQ8gB,GACJ,KAAK,EACD,GAAIooB,EAAS,EACTpoB,EAAQooB,EAAS,MAEhB,MAAIA,EAAShqC,KAAKoqC,qBAAqB3pC,QAWxC,MAAM,IAAIguB,EAAkB9tB,QAV5B,IAAI0pC,EAAWrqC,KAAKoqC,qBAAqBJ,GACrCN,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAaktB,EAAS16B,WAAW,GAAK,MAC3D+5B,GAAa,GAGbroC,EAAOyU,OAAOu0B,GAMtB,MACJ,KAAK,EACGX,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,MAC3CN,GAAa,GAGbroC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,IAEtCpoB,EAAQ,EACR,MACJ,KAAK,EAED,GAAIooB,EAAShqC,KAAKsqC,sBAAsB7pC,OAAQ,CACxC4pC,EAAWrqC,KAAKsqC,sBAAsBN,GACtCN,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAaktB,EAAS16B,WAAW,GAAK,MAC3D+5B,GAAa,GAGbroC,EAAOyU,OAAOu0B,QAIlB,OAAQL,GACJ,KAAK,GACD3oC,EAAOyU,OAAOF,OAAOuH,aAAa,KAClC,MACJ,KAAK,GACDusB,GAAa,EACb,MACJ,QACI,MAAM,IAAIjb,EAAkB9tB,QAGxCihB,EAAQ,EACR,MACJ,KAAK,EACD,KAAIooB,EAAShqC,KAAKuqC,sBAAsB9pC,QAYpC,MAAM,IAAIguB,EAAkB9tB,QAXxB0pC,EAAWrqC,KAAKuqC,sBAAsBP,GACtCN,GACAroC,EAAOyU,OAAOF,OAAOuH,aAAaktB,EAAS16B,WAAW,GAAK,MAC3D+5B,GAAa,GAGbroC,EAAOyU,OAAOu0B,GAElBzoB,EAAQ,EAKZ,MACJ,QACI,MAAM,IAAI6M,EAAkB9tB,gBAGnCb,EAAK2pC,YAAc,IAKhChB,EAAuBU,qBAAuB,SAAUrpC,EAAMuB,GAG1D,IAAIwoC,EAAU,GACd,EAAG,CAEC,GAAyB,IAArB/pC,EAAK2pC,YACL,OAEJ,IAAIK,EAAYhqC,EAAK8pC,SAAS,GAC9B,GAAkB,MAAdE,EACA,OAEJ9pC,KAAK+pC,cAAcD,EAAWhqC,EAAK8pC,SAAS,GAAIC,GAChD,IAAK,IAAI/oC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIkpC,EAASH,EAAQ/oC,GACrB,OAAQkpC,GACJ,KAAK,EACD3oC,EAAOyU,OAAO,MACd,MACJ,KAAK,EACDzU,EAAOyU,OAAO,KACd,MACJ,KAAK,EACDzU,EAAOyU,OAAO,KACd,MACJ,KAAK,EACDzU,EAAOyU,OAAO,KACd,MACJ,QACI,GAAIk0B,EAAS,GACT3oC,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,SAE1C,MAAIA,EAAS,IAId,MAAM,IAAIvb,EAAkB9tB,QAH5BU,EAAOyU,OAAOF,OAAOuH,aAAa6sB,EAAS,KAK/C,cAGPlqC,EAAK2pC,YAAc,IAEhChB,EAAuBsB,cAAgB,SAAUD,EAAWU,EAAYnpC,GACpE,IAAIopC,GAAgBX,GAAa,GAAKU,EAAa,EAC/Ch5B,EAAOlR,KAAKC,MAAMkqC,EAAe,MACrCppC,EAAO,GAAKmQ,EACZi5B,GAAuB,KAAPj5B,EAChBA,EAAOlR,KAAKC,MAAMkqC,EAAe,IACjCppC,EAAO,GAAKmQ,EACZnQ,EAAO,GAAKopC,EAAsB,GAAPj5B,GAK/Bi3B,EAAuBY,qBAAuB,SAAUvpC,EAAMuB,GAC1D,EAAG,CAEC,GAAIvB,EAAK2pC,aAAe,GACpB,OAEJ,IAAK,IAAI3oC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAI4pC,EAAe5qC,EAAK8pC,SAAS,GAEjC,GAAqB,KAAjBc,EAAuB,CAEvB,IAAIC,EAAW,EAAI7qC,EAAK8qC,eAIxB,YAHiB,IAAbD,GACA7qC,EAAK8pC,SAASe,IAIQ,KAAV,GAAfD,KACDA,GAAgB,IAEpBrpC,EAAOyU,OAAOF,OAAOuH,aAAautB,WAEjC5qC,EAAK2pC,YAAc,IAKhChB,EAAuBc,qBAAuB,SAAUzpC,EAAMuB,EAAQsnC,GAElE,IAEIxwB,EAFA0yB,EAAmB,EAAI/qC,EAAKgrC,gBAC5BC,EAAK/qC,KAAKgrC,oBAAoBlrC,EAAK8pC,SAAS,GAAIiB,KAYpD,GATI1yB,EADO,IAAP4yB,EACQjrC,EAAK2pC,YAAc,EAAI,EAE1BsB,EAAK,IACFA,EAGA,KAAOA,EAAK,KAAO/qC,KAAKgrC,oBAAoBlrC,EAAK8pC,SAAS,GAAIiB,KAGtE1yB,EAAQ,EACR,MAAM,IAAIsW,EAAkB9tB,QAGhC,IADA,IAAI4d,EAAQ,IAAIjO,WAAW6H,GAClBrX,EAAI,EAAGA,EAAIqX,EAAOrX,IAAK,CAG5B,GAAIhB,EAAK2pC,YAAc,EACnB,MAAM,IAAIhb,EAAkB9tB,QAEhC4d,EAAMzd,GAAKd,KAAKgrC,oBAAoBlrC,EAAK8pC,SAAS,GAAIiB,KAE1DlC,EAAalzB,KAAK8I,GAClB,IACIld,EAAOyU,OAAO6Q,EAAiBhmB,QAAQ4J,OAAOgU,EAAOgqB,EAAI0C,YAAYC,WAEzE,MAAO1d,GACH,MAAM,IAAIgb,EAAwB7nC,QAAQ,gDAAkD6sB,EAAIyF,WAMxGwV,EAAuBuC,oBAAsB,SAAUG,EAA2BC,GAC9E,IAAIC,EAAuB,IAAMD,EAA2B,IAAO,EAC/DE,EAAeH,EAA4BE,EAC/C,OAAOC,GAAgB,EAAIA,EAAeA,EAAe,KAM7D7C,EAAuBwB,oBAAsB,CACzC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE3DxB,EAAuB0B,qBAAuB,CAC1C,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAMjE1B,EAAuB2B,qBAAuB,CAC1C,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG3D3B,EAAuB6B,sBAAwB7B,EAAuB0B,qBACtE1B,EAAuB8B,sBAAwB,CAC3C,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK30B,OAAOuH,aAAa,MAEjGsrB,EAjdgC,GAmd3CnpC,EAAQqB,QAAU8nC,G,oCC7flB,IAAIjgC,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIwe,EAAsB,EAAQ,QAC9BwtB,EAAqB,EAAQ,QAM7BC,EAA6C,SAAUpiC,GAMvD,SAASoiC,EAA4BttB,GAEjC,YAD+B,IAA3BA,IAAqCA,EAAyB,KAC3D9U,EAAOK,KAAKzJ,KAAM,IAAIurC,EAAmB5qC,QAAWud,IAA2Ble,KAE1F,OATAwI,EAAUgjC,EAA6BpiC,GAShCoiC,EAVqC,CAW9CztB,EAAoBI,mBACtB7e,EAAQksC,4BAA8BA,G,oCClBtCpsC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI+oC,EAAc,EAAQ,QACtBniB,EAAoB,EAAQ,QAC5BkiB,EAAkB,EAAQ,QAC1BoD,EAAgB,EAAQ,QACxBplB,EAAS,EAAQ,QACjBxS,EAAkB,EAAQ,QAC1B8S,EAAmB,EAAQ,QAC3B8H,EAAoB,EAAQ,QAc5Bga,EAAwC,WACxC,SAASA,KAqST,OAnSAA,EAAuBl+B,OAAS,SAAUgU,EAAOrD,EAASC,EAAS3Q,GAC/D,IAAI1K,EAAO,IAAIwoC,EAAY3nC,QAAQ4d,GAC/Bld,EAAS,IAAIwS,EAAgBlT,QAC7BgoC,EAAe,IAAI9/B,MAEnB6iC,GAAkB,EAClBC,GAAc,EAClB,IACI,IAAIC,EAAyB,KACzBC,GAAc,EACdjsB,OAAO,EACX,EAAG,CAEC,GAAI9f,EAAK2pC,YAAc,EAEnB7pB,EAAOyG,EAAO1lB,QAAQsf,eAErB,CACD,IAAI6rB,EAAWhsC,EAAK8pC,SAAS,GAC7BhqB,EAAOyG,EAAO1lB,QAAQgf,QAAQmsB,GAElC,OAAQlsB,GACJ,KAAKyG,EAAO1lB,QAAQsf,WAChB,MACJ,KAAKoG,EAAO1lB,QAAQ6f,oBACpB,KAAK6F,EAAO1lB,QAAQ8f,qBAEhBorB,GAAc,EACd,MACJ,KAAKxlB,EAAO1lB,QAAQyf,kBAChB,GAAItgB,EAAK2pC,YAAc,GACnB,MAAM,IAAIhb,EAAkB9tB,QAIhC+qC,EAAiB5rC,EAAK8pC,SAAS,GAC/B+B,EAAa7rC,EAAK8pC,SAAS,GAC3B,MACJ,KAAKvjB,EAAO1lB,QAAQ2f,IAEhB,IAAI/gB,EAAQkpC,EAAuBsD,cAAcjsC,GAEjD,GADA8rC,EAAyBzlB,EAAkBxlB,QAAQqrC,0BAA0BzsC,GAC9C,OAA3BqsC,EACA,MAAM,IAAInd,EAAkB9tB,QAEhC,MACJ,KAAK0lB,EAAO1lB,QAAQ+f,MAGhB,IAAIurB,EAASnsC,EAAK8pC,SAAS,GACvBsC,EAAapsC,EAAK8pC,SAAShqB,EAAKC,sBAAsB3E,IACtD+wB,IAAWxD,EAAuB0D,eAClC1D,EAAuB2D,mBAAmBtsC,EAAMuB,EAAQ6qC,GAE5D,MACJ,QAGI,IAAI/zB,EAAQrY,EAAK8pC,SAAShqB,EAAKC,sBAAsB3E,IACrD,OAAQ0E,GACJ,KAAKyG,EAAO1lB,QAAQuf,QAChBuoB,EAAuB4D,qBAAqBvsC,EAAMuB,EAAQ8W,GAC1D,MACJ,KAAKkO,EAAO1lB,QAAQwf,aAChBsoB,EAAuB6D,0BAA0BxsC,EAAMuB,EAAQ8W,EAAO0zB,GACtE,MACJ,KAAKxlB,EAAO1lB,QAAQ0f,KAChBooB,EAAuB8D,kBAAkBzsC,EAAMuB,EAAQ8W,EAAOyzB,EAAwBjD,EAAcn+B,GACpG,MACJ,KAAK6b,EAAO1lB,QAAQ4f,MAChBkoB,EAAuB+D,mBAAmB1sC,EAAMuB,EAAQ8W,GACxD,MACJ,QACI,MAAM,IAAIsW,EAAkB9tB,QAEpC,aAEHif,IAASyG,EAAO1lB,QAAQsf,YAErC,MAAOwsB,GAEH,MAAM,IAAIhe,EAAkB9tB,QAEhC,OAAO,IAAI0nC,EAAgB1nC,QAAQ4d,EAAOld,EAAO2C,WAAoC,IAAxB2kC,EAAaloC,OAAe,KAAOkoC,EAA0B,OAAZxtB,EAAmB,KAAOA,EAAQnX,WAAY0nC,EAAgBC,IAKhLlD,EAAuB2D,mBAAqB,SAAUtsC,EAAMuB,EAAQ8W,GAEhE,GAAY,GAARA,EAAarY,EAAK2pC,YAClB,MAAM,IAAIhb,EAAkB9tB,QAIhC,IAAIkV,EAAS,IAAIvF,WAAW,EAAI6H,GAC5BlV,EAAS,EACb,MAAOkV,EAAQ,EAAG,CAEd,IAAIu0B,EAAW5sC,EAAK8pC,SAAS,IACzB+C,EAAuBD,EAAW,IAAU,EAAK,WAAeA,EAAW,GAG3EC,GAFAA,EAAoB,IAEC,MAIA,MAEzB92B,EAAO5S,GAAwB0pC,GAAqB,EAAK,IACzD92B,EAAO5S,EAAS,GAAsC,IAApB0pC,EAClC1pC,GAAU,EACVkV,IAEJ,IACI9W,EAAOyU,OAAO6Q,EAAiBhmB,QAAQ4J,OAAOsL,EAAQ41B,EAAc9qC,QAAQisC,SAGhF,MAAO3gC,GACH,MAAM,IAAIwiB,EAAkB9tB,QAAQsL,KAG5Cw8B,EAAuB+D,mBAAqB,SAAU1sC,EAAMuB,EAAQ8W,GAEhE,GAAY,GAARA,EAAarY,EAAK2pC,YAClB,MAAM,IAAIhb,EAAkB9tB,QAIhC,IAAIkV,EAAS,IAAIvF,WAAW,EAAI6H,GAC5BlV,EAAS,EACb,MAAOkV,EAAQ,EAAG,CAEd,IAAIu0B,EAAW5sC,EAAK8pC,SAAS,IACzB+C,EAAuBD,EAAW,KAAU,EAAK,WAAeA,EAAW,IAG3EC,GAFAA,EAAoB,KAEC,MAIA,MAEzB92B,EAAO5S,GAAuB0pC,GAAqB,EACnD92B,EAAO5S,EAAS,GAAiB0pC,EACjC1pC,GAAU,EACVkV,IAGJ,IACI9W,EAAOyU,OAAO6Q,EAAiBhmB,QAAQ4J,OAAOsL,EAAQ41B,EAAc9qC,QAAQksC,YAGhF,MAAO5gC,GACH,MAAM,IAAIwiB,EAAkB9tB,QAAQsL,KAG5Cw8B,EAAuB8D,kBAAoB,SAAUzsC,EAAMuB,EAAQ8W,EAAeyzB,EAAwBjD,EAAcn+B,GAEpH,GAAI,EAAI2N,EAAQrY,EAAK2pC,YACjB,MAAM,IAAIhb,EAAkB9tB,QAGhC,IADA,IAII2mB,EAJAwlB,EAAY,IAAIx8B,WAAW6H,GACtBrX,EAAI,EAAGA,EAAIqX,EAAOrX,IACvBgsC,EAAUhsC,GAAiBhB,EAAK8pC,SAAS,GASzCtiB,EAN2B,OAA3BskB,EAMWH,EAAc9qC,QAAQosC,cAAcD,EAAWtiC,GAG/CohC,EAAuB5hB,UAEtC,IACI3oB,EAAOyU,OAAO6Q,EAAiBhmB,QAAQ4J,OAAOuiC,EAAWxlB,IAE7D,MAAOrb,GACH,MAAM,IAAIwiB,EAAkB9tB,QAAQsL,GAExC08B,EAAalzB,KAAKq3B,IAEtBrE,EAAuBuE,mBAAqB,SAAUztC,GAClD,GAAIA,GAASkpC,EAAuBwE,mBAAmBxsC,OACnD,MAAM,IAAIguB,EAAkB9tB,QAEhC,OAAO8nC,EAAuBwE,mBAAmB1tC,IAErDkpC,EAAuB6D,0BAA4B,SAAUxsC,EAAMuB,EAAQ8W,EAAe0zB,GAEtF,IAAInqC,EAAQL,EAAOZ,SACnB,MAAO0X,EAAQ,EAAG,CACd,GAAIrY,EAAK2pC,YAAc,GACnB,MAAM,IAAIhb,EAAkB9tB,QAEhC,IAAIusC,EAAmBptC,EAAK8pC,SAAS,IACrCvoC,EAAOyU,OAAO2yB,EAAuBuE,mBAAmB1sC,KAAKC,MAAM2sC,EAAmB,MACtF7rC,EAAOyU,OAAO2yB,EAAuBuE,mBAAmBE,EAAmB,KAC3E/0B,GAAS,EAEb,GAAc,IAAVA,EAAa,CAEb,GAAIrY,EAAK2pC,YAAc,EACnB,MAAM,IAAIhb,EAAkB9tB,QAEhCU,EAAOyU,OAAO2yB,EAAuBuE,mBAAmBltC,EAAK8pC,SAAS,KAG1E,GAAIiC,EAEA,IAAK,IAAI/qC,EAAIY,EAAOZ,EAAIO,EAAOZ,SAAUK,IACZ,MAArBO,EAAO4U,OAAOnV,KACVA,EAAIO,EAAOZ,SAAW,GAA8B,MAAzBY,EAAO4U,OAAOnV,EAAI,GAE7CO,EAAOmlC,aAAa1lC,EAAI,GAIxBO,EAAOqlC,UAAU5lC,EAAG8U,OAAOuH,aAAa,OAM5DsrB,EAAuB4D,qBAAuB,SAAUvsC,EAAMuB,EAAQ8W,GAElE,MAAOA,GAAS,EAAG,CAEf,GAAIrY,EAAK2pC,YAAc,GACnB,MAAM,IAAIhb,EAAkB9tB,QAEhC,IAAIwsC,EAAkBrtC,EAAK8pC,SAAS,IACpC,GAAIuD,GAAmB,IACnB,MAAM,IAAI1e,EAAkB9tB,QAEhCU,EAAOyU,OAAO2yB,EAAuBuE,mBAAmB1sC,KAAKC,MAAM4sC,EAAkB,OACrF9rC,EAAOyU,OAAO2yB,EAAuBuE,mBAAmB1sC,KAAKC,MAAM4sC,EAAkB,IAAM,KAC3F9rC,EAAOyU,OAAO2yB,EAAuBuE,mBAAmBG,EAAkB,KAC1Eh1B,GAAS,EAEb,GAAc,IAAVA,EAAa,CAEb,GAAIrY,EAAK2pC,YAAc,EACnB,MAAM,IAAIhb,EAAkB9tB,QAEhC,IAAIysC,EAAgBttC,EAAK8pC,SAAS,GAClC,GAAIwD,GAAiB,IACjB,MAAM,IAAI3e,EAAkB9tB,QAEhCU,EAAOyU,OAAO2yB,EAAuBuE,mBAAmB1sC,KAAKC,MAAM6sC,EAAgB,MACnF/rC,EAAOyU,OAAO2yB,EAAuBuE,mBAAmBI,EAAgB,UAEvE,GAAc,IAAVj1B,EAAa,CAElB,GAAIrY,EAAK2pC,YAAc,EACnB,MAAM,IAAIhb,EAAkB9tB,QAEhC,IAAI0sC,EAAYvtC,EAAK8pC,SAAS,GAC9B,GAAIyD,GAAa,GACb,MAAM,IAAI5e,EAAkB9tB,QAEhCU,EAAOyU,OAAO2yB,EAAuBuE,mBAAmBK,MAGhE5E,EAAuBsD,cAAgB,SAAUjsC,GAC7C,IAAIgqC,EAAYhqC,EAAK8pC,SAAS,GAC9B,GAA2B,KAAV,IAAZE,GAED,OAAmB,IAAZA,EAEX,GAA2B,OAAV,IAAZA,GAA4B,CAE7B,IAAIU,EAAa1qC,EAAK8pC,SAAS,GAC/B,OAAsB,GAAZE,IAAqB,EAAK,WAAcU,EAEtD,GAA2B,OAAV,IAAZV,GAA4B,CAE7B,IAAIwD,EAAmBxtC,EAAK8pC,SAAS,IACrC,OAAsB,GAAZE,IAAqB,GAAM,WAAcwD,EAEvD,MAAM,IAAI7e,EAAkB9tB,SAKhC8nC,EAAuBwE,mBAAqB,gDAC5CxE,EAAuB0D,cAAgB,EAChC1D,EAtSgC,GAwS3CnpC,EAAQqB,QAAU8nC,G,qBC9UlBlgC,EAAOjJ,QAAU,CAIfiuC,SAAU,2CAMVC,eAAe,EACfC,OAAQ,S,2CCXV,IAAIC,EAAS,WAAa,IAAIC,EAAI3tC,KAAS4tC,EAAGD,EAAIE,eAAmB74B,EAAG24B,EAAIG,MAAM94B,IAAI44B,EAAG,OAAO54B,EAAG,MAAM,CAAC+4B,YAAY,eAAe,CAAEJ,EAAIK,aAAe,KAAOL,EAAIM,cAAgB,IAAKj5B,EAAG,UAAU,CAACk5B,IAAI,iBAAiBH,YAAY,cAAcI,MAAM,CAAC,GAAK,cAAc,SAAW,GAAG,OAAS,cAAc,cAAc,KAAK,CAACn5B,EAAG,MAAM,CAACo5B,MAAMT,EAAIU,eAAe,CAACr5B,EAAG,MAAM,CAAC+4B,YAAY,eAAe,CAAC/4B,EAAG,MAAM,CAAC+4B,YAAY,aAAaI,MAAM,CAAC,IAAM,EAAQ,QAAkC,IAAM,QAAQn5B,EAAG,MAAM,CAAC+4B,YAAY,8CAA8CI,MAAM,CAAC,OAAS,iBAAiB,CAACR,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIa,OAAO,cAAcx5B,EAAG,MAAM,CAAC+4B,YAAY,wCAAwCI,MAAM,CAAC,OAAS,gBAAgBM,SAAS,CAAC,UAAYd,EAAIY,GAAGZ,EAAIe,WAAW15B,EAAG,SAAS,CAAC+4B,YAAY,kBAAkBhK,MAAM,CACv0B,mBAAoB4J,EAAIgB,gBAAkBhB,EAAIgB,gBAAkB,UAChE,eAAgBhB,EAAIgB,gBAAkBhB,EAAIgB,gBAAkB,UAC5DC,MAAOjB,EAAIkB,UAAYlB,EAAIkB,UAAY,QACtCV,MAAM,CAAC,KAAO,SAAS,MAAQ,SAAS,OAAS,cAAcW,GAAG,CAAC,MAAQnB,EAAIoB,QAAQ,CAACpB,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIqB,IAAIC,IAAIC,QAAQ,kBAAkBl6B,EAAG,UAAU,CAACk5B,IAAI,iBAAiBH,YAAY,cAAcI,MAAM,CAAC,GAAK,cAAc,SAAW,GAAG,OAAS,cAAc,cAAc,IAAIgB,YAAYxB,EAAIyB,GAAG,CAAC,CAAC3iC,IAAI,eAAe4iC,GAAG,SAASnB,GAC9V,IAAIa,EAAQb,EAAIa,MACxB,MAAO,CAAC/5B,EAAG,MAAM,CAACo5B,MAAMT,EAAIU,eAAe,CAACr5B,EAAG,MAAM,CAAC+4B,YAAY,OAAO,CAAC/4B,EAAG,MAAM,CAAC+4B,YAAY,SAAS,CAAC/4B,EAAG,KAAK,CAAC+4B,YAAY,cAAcI,MAAM,CAAC,OAAS,gBAAgB,CAACR,EAAIW,GAAG,mBAAmBX,EAAIY,GAAGZ,EAAIa,OAAO,sBAAsBx5B,EAAG,MAAM,CAAC+4B,YAAY,kBAAkB,CAAC/4B,EAAG,WAAW,CAAC+4B,YAAY,iCAAiCI,MAAM,CAAC,KAAO,KAAK,OAAS,eAAeW,GAAG,CAAC,MAAQ,SAASQ,GAAQ,OAAOP,OAAW,CAAC/5B,EAAG,SAAS,CAACm5B,MAAM,CAAC,KAAO,YAAY,IAAI,aAAa,CAACn5B,EAAG,MAAM,CAAC+4B,YAAY,OAAO,CAAC/4B,EAAG,MAAM,CAAC+4B,YAAY,4CAA4CI,MAAM,CAAC,OAAS,gBAAgBM,SAAS,CAAC,UAAYd,EAAIY,GAAGZ,EAAIe,WAAuB,MAAXf,EAAI4B,IAAav6B,EAAG,MAAM,CAAC+4B,YAAY,0CAA0CI,MAAM,CAAC,OAAS,cAAc,CAACR,EAAIW,GAAG,mBAAmBX,EAAIY,GAAGZ,EAAI4B,KAAK,cAAc5B,EAAI6B,UAAU,IACx0BC,EAAkB,G,oCC4FtB,GACA,cACA,uBACA,OACA,aACA,aAEA,gBACA,OACA,SACA,UACA,SACA,mBACA,aACA,mCAGA,OACA,mBAEA,MACA,iBAIA,8BACA,gDACA,mBACA,iCACA,+BAIA,SACA,mBACA,iBACA,+CACA,2BACA,gBACA,0BAEA,qCAEA,iDACA,6BACA,iBACA,iCAEA,6CAGA,sCACA,6BAEA,+CACA,0BACA,UAEA,+BAEA,uDACA,8DAEA,sBAEA,2CACA,0CAEA,cAEA,sCAEA,oCACA,+BAGA,iBACA,oCACA,gCCjLmW,I,wBCQ/VC,EAAY,eACd,EACAhC,EACA+B,GACA,EACA,KACA,KACA,MAIa,aAAAC,E,yxGCHftwC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAUtD,IAAIowC,EAA+B,WAO/B,SAASA,EAAcC,EAAUj6B,EAAMgzB,EAAcxtB,EAAS00B,EAAgCC,QACnD,IAAnCD,IAA6CA,GAAkC,QACpD,IAA3BC,IAAqCA,GAA0B,GACnE9vC,KAAK4vC,SAAWA,EAChB5vC,KAAK2V,KAAOA,EACZ3V,KAAK2oC,aAAeA,EACpB3oC,KAAKmb,QAAUA,EACfnb,KAAK6vC,+BAAiCA,EACtC7vC,KAAK8vC,uBAAyBA,EAC9B9vC,KAAKuC,aAAwBxC,IAAb6vC,GAAuC,OAAbA,EAAqB,EAAI,EAAIA,EAASnvC,OA4EpF,OAvEAkvC,EAAcxvC,UAAU4vC,YAAc,WAClC,OAAO/vC,KAAK4vC,UAMhBD,EAAcxvC,UAAU6vC,WAAa,WACjC,OAAOhwC,KAAKuC,SAMhBotC,EAAcxvC,UAAU8vC,WAAa,SAAU1tC,GAC3CvC,KAAKuC,QAAUA,GAKnBotC,EAAcxvC,UAAU+vC,QAAU,WAC9B,OAAOlwC,KAAK2V,MAKhBg6B,EAAcxvC,UAAUgwC,gBAAkB,WACtC,OAAOnwC,KAAK2oC,cAKhBgH,EAAcxvC,UAAUiwC,WAAa,WACjC,OAAOpwC,KAAKmb,SAKhBw0B,EAAcxvC,UAAUkwC,mBAAqB,WACzC,OAAOrwC,KAAKswC,iBAEhBX,EAAcxvC,UAAUowC,mBAAqB,SAAUD,GACnDtwC,KAAKswC,gBAAkBA,GAK3BX,EAAcxvC,UAAUqwC,YAAc,WAClC,OAAOxwC,KAAKywC,UAEhBd,EAAcxvC,UAAUuwC,YAAc,SAAUD,GAC5CzwC,KAAKywC,SAAWA,GAKpBd,EAAcxvC,UAAUwwC,SAAW,WAC/B,OAAO3wC,KAAK0C,OAEhBitC,EAAcxvC,UAAUuxB,SAAW,SAAUhvB,GACzC1C,KAAK0C,MAAQA,GAEjBitC,EAAcxvC,UAAUywC,oBAAsB,WAC1C,OAAO5wC,KAAK8vC,wBAA0B,GAAK9vC,KAAK6vC,gCAAkC,GAEtFF,EAAcxvC,UAAU0wC,0BAA4B,WAChD,OAAO7wC,KAAK8vC,wBAEhBH,EAAcxvC,UAAU2wC,kCAAoC,WACxD,OAAO9wC,KAAK6vC,gCAETF,EA5FuB,GA8FlCrwC,EAAQqB,QAAUgvC,G,wBCxHlB,YACA,SAASoB,IAEL,MAAsB,qBAAXC,QAAoD,kBAAnBA,OAAO9iB,SAAgD,aAAxB8iB,OAAO9iB,QAAQ6R,SAKnE,qBAAZ7R,GAAuD,kBAArBA,EAAQ+iB,WAA2B/iB,EAAQ+iB,SAASC,WAKxE,kBAAdnV,WAAyD,kBAAxBA,UAAUoV,WAA0BpV,UAAUoV,UAAUzhB,QAAQ,aAAe,GAO/HnnB,EAAOjJ,QAAUyxC,I,wDCnBjB3xC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIkvB,EAAoB,EAAQ,QAsB5B1P,EAA0B,WAC1B,SAASA,EAASqyB,EAAaC,EAAWC,GACtCtxC,KAAKoxC,YAAcA,EACnBpxC,KAAKqb,SAAW,CAACg2B,GACjBC,GAAatxC,KAAKqb,SAAS5F,KAAK67B,GAQpC,OANAvyB,EAAS5e,UAAUoxC,eAAiB,WAChC,OAAOvxC,KAAKoxC,aAEhBryB,EAAS5e,UAAUsb,YAAc,WAC7B,OAAOzb,KAAKqb,UAET0D,EAZkB,GAc7Bzf,EAAQyf,SAAWA,EAMnB,IAAIyyB,EAAqB,WACrB,SAASA,EAAIr5B,EAAOs5B,GAChBzxC,KAAKmY,MAAQA,EACbnY,KAAKyxC,cAAgBA,EAQzB,OANAD,EAAIrxC,UAAU2U,SAAW,WACrB,OAAO9U,KAAKmY,OAEhBq5B,EAAIrxC,UAAU2b,iBAAmB,WAC7B,OAAO9b,KAAKyxC,eAETD,EAXa,GAaxBlyC,EAAQkyC,IAAMA,EAOd,IAAIE,EAAyB,WACzB,SAASA,EAAQ5xB,EAAe6xB,EAAgBC,EAAmBC,EAAoBC,EAAuBz2B,GAC1Grb,KAAK8f,cAAgBA,EACrB9f,KAAK2xC,eAAiBA,EACtB3xC,KAAK4xC,kBAAoBA,EACzB5xC,KAAK6xC,mBAAqBA,EAC1B7xC,KAAK8xC,sBAAwBA,EAC7B9xC,KAAKqb,SAAWA,EAKhB,IAHA,IAAI1N,EAAQ,EACRyjC,EAAc/1B,EAASk2B,iBACvBQ,EAAW12B,EAASI,cACf7G,EAAK,EAAGo9B,EAAaD,EAAUn9B,EAAKo9B,EAAWvxC,OAAQmU,IAAM,CAClE,IAAI+G,EAAUq2B,EAAWp9B,GACzBjH,GAASgO,EAAQ7G,YAAc6G,EAAQG,mBAAqBs1B,GAEhEpxC,KAAKiyC,eAAiBtkC,EAqF1B,OAnFA+jC,EAAQvxC,UAAU4f,iBAAmB,WACjC,OAAO/f,KAAK8f,eAEhB4xB,EAAQvxC,UAAU+xC,kBAAoB,WAClC,OAAOlyC,KAAK2xC,gBAEhBD,EAAQvxC,UAAUgyC,qBAAuB,WACrC,OAAOnyC,KAAK4xC,mBAEhBF,EAAQvxC,UAAUiyC,sBAAwB,WACtC,OAAOpyC,KAAK6xC,oBAEhBH,EAAQvxC,UAAUkyC,yBAA2B,WACzC,OAAOryC,KAAK8xC,uBAEhBJ,EAAQvxC,UAAUib,kBAAoB,WAClC,OAAOpb,KAAKiyC,gBAEhBP,EAAQvxC,UAAUsb,YAAc,WAC5B,OAAOzb,KAAKqb,UAUhBq2B,EAAQY,wBAA0B,SAAUC,EAASC,GACjD,GAAyB,KAAV,EAAVD,IAAiD,KAAV,EAAbC,GAC3B,MAAM,IAAI/jB,EAAkB9tB,QAEhC,IAAK,IAAIiU,EAAK,EAAGC,EAAK68B,EAAQe,SAAU79B,EAAKC,EAAGpU,OAAQmU,IAAM,CAC1D,IAAIsG,EAAUrG,EAAGD,GACjB,GAAIsG,EAAQy2B,iBAAmBY,GAAWr3B,EAAQ02B,oBAAsBY,EACpE,OAAOt3B,EAGf,MAAM,IAAIuT,EAAkB9tB,SAGhC+wC,EAAQvxC,UAAU6D,SAAW,WACzB,MAAO,GAAKhE,KAAK8f,eAKrB4xB,EAAQgB,cAAgB,WACpB,MAAO,CACH,IAAIhB,EAAQ,EAAG,GAAI,GAAI,EAAG,EAAG,IAAI3yB,EAAS,EAAG,IAAIyyB,EAAI,EAAG,KACxD,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,EAAG,IAAIyyB,EAAI,EAAG,KAC1D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,KAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC3D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC5D,IAAIE,EAAQ,GAAI,IAAK,IAAK,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC9D,IAAIE,EAAQ,GAAI,IAAK,IAAK,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC9D,IAAIE,EAAQ,GAAI,IAAK,IAAK,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,OAC9D,IAAIE,EAAQ,GAAI,IAAK,IAAK,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,KAAM,IAAIA,EAAI,EAAG,OAC/E,IAAIE,EAAQ,GAAI,EAAG,GAAI,EAAG,GAAI,IAAI3yB,EAAS,EAAG,IAAIyyB,EAAI,EAAG,KACzD,IAAIE,EAAQ,GAAI,EAAG,GAAI,EAAG,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC1D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,MAC5D,IAAIE,EAAQ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3yB,EAAS,GAAI,IAAIyyB,EAAI,EAAG,QAGpEE,EAAQe,SAAWf,EAAQgB,gBACpBhB,EArGiB,GAuG5BpyC,EAAQqB,QAAU+wC,G,oCCvJlBtyC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI8E,EAAsB,EAAQ,QAc9BsuC,EAA6B,WAC7B,SAASA,KAyET,OAxDAA,EAAYC,oBAAsB,SAAUruC,EAAO8G,GAK/C,IAJA,IAAIzG,EAAQL,EAAMM,WACdH,EAASH,EAAMI,YAEfkuC,GAAS,EACJ5vC,EAAS,EAAGA,EAASoI,EAAO5K,QAAUoyC,EAAQ5vC,GAAU,EAAG,CAChE,IAAIQ,EAAInD,KAAKC,MAAM8K,EAAOpI,IACtBwB,EAAInE,KAAKC,MAAM8K,EAAOpI,EAAS,IACnC,GAAIQ,GAAK,GAAKA,EAAImB,GAASH,GAAK,GAAKA,EAAIC,EACrC,MAAM,IAAIL,EAAoB1D,QAElCkyC,GAAS,GACE,IAAPpvC,GACA4H,EAAOpI,GAAU,EACjB4vC,GAAS,GAEJpvC,IAAMmB,IACXyG,EAAOpI,GAAU2B,EAAQ,EACzBiuC,GAAS,IAEF,IAAPpuC,GACA4G,EAAOpI,EAAS,GAAK,EACrB4vC,GAAS,GAEJpuC,IAAMC,IACX2G,EAAOpI,EAAS,GAAKyB,EAAS,EAC9BmuC,GAAS,GAIjBA,GAAS,EACT,IAAS5vC,EAASoI,EAAO5K,OAAS,EAAGwC,GAAU,GAAK4vC,EAAQ5vC,GAAU,EAAG,CACjEQ,EAAInD,KAAKC,MAAM8K,EAAOpI,IACtBwB,EAAInE,KAAKC,MAAM8K,EAAOpI,EAAS,IACnC,GAAIQ,GAAK,GAAKA,EAAImB,GAASH,GAAK,GAAKA,EAAIC,EACrC,MAAM,IAAIL,EAAoB1D,QAElCkyC,GAAS,GACE,IAAPpvC,GACA4H,EAAOpI,GAAU,EACjB4vC,GAAS,GAEJpvC,IAAMmB,IACXyG,EAAOpI,GAAU2B,EAAQ,EACzBiuC,GAAS,IAEF,IAAPpuC,GACA4G,EAAOpI,EAAS,GAAK,EACrB4vC,GAAS,GAEJpuC,IAAMC,IACX2G,EAAOpI,EAAS,GAAKyB,EAAS,EAC9BmuC,GAAS,KAIdF,EA1EqB,GA4EhCrzC,EAAQqB,QAAUgyC,G,uBC3GlB,IAAIG,EAAO,EAAQ,OAAR,CAAkB,QACzBC,EAAW,EAAQ,QACnBC,EAAM,EAAQ,QACdC,EAAU,EAAQ,QAAgBzY,EAClC1Z,EAAK,EACLoyB,EAAe9zC,OAAO8zC,cAAgB,WACxC,OAAO,GAELC,GAAU,EAAQ,OAAR,EAAoB,WAChC,OAAOD,EAAa9zC,OAAOg0C,kBAAkB,QAE3CC,EAAU,SAAUpL,GACtBgL,EAAQhL,EAAI6K,EAAM,CAAEvzC,MAAO,CACzBuB,EAAG,OAAQggB,EACXa,EAAG,OAGH2xB,EAAU,SAAUrL,EAAI/+B,GAE1B,IAAK6pC,EAAS9K,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAK+K,EAAI/K,EAAI6K,GAAO,CAElB,IAAKI,EAAajL,GAAK,MAAO,IAE9B,IAAK/+B,EAAQ,MAAO,IAEpBmqC,EAAQpL,GAER,OAAOA,EAAG6K,GAAMhyC,GAEhByyC,EAAU,SAAUtL,EAAI/+B,GAC1B,IAAK8pC,EAAI/K,EAAI6K,GAAO,CAElB,IAAKI,EAAajL,GAAK,OAAO,EAE9B,IAAK/+B,EAAQ,OAAO,EAEpBmqC,EAAQpL,GAER,OAAOA,EAAG6K,GAAMnxB,GAGhB6xB,EAAW,SAAUvL,GAEvB,OADIkL,GAAUM,EAAKC,MAAQR,EAAajL,KAAQ+K,EAAI/K,EAAI6K,IAAOO,EAAQpL,GAChEA,GAELwL,EAAOlrC,EAAOjJ,QAAU,CAC1Bq0C,IAAKb,EACLY,MAAM,EACNJ,QAASA,EACTC,QAASA,EACTC,SAAUA,I,oCClDZp0C,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI8kB,EAAc,EAAQ,QACtBiC,EAAY,EAAQ,QACpBmI,EAAoB,EAAQ,QAC5B9uB,EAA6B,EAAQ,QAmBrCklC,EAAiC,WAKjC,SAASA,EAAgBC,GACrB,IAAI3b,EAAY2b,EAAUngC,YAC1B,GAAIwkB,EAAY,GAAKA,EAAY,KAA8B,KAAV,EAAZA,GACrC,MAAM,IAAIsF,EAAkB9tB,QAEhCX,KAAKkb,QAAU2pB,EAAgBtT,YAAYuT,GAC3C9kC,KAAK4zC,iBAAmB5zC,KAAK6zC,kBAAkB/O,GAC/C9kC,KAAK8zC,kBAAoB,IAAIzvB,EAAY1jB,QAAQX,KAAK4zC,iBAAiB/uC,WAAY7E,KAAK4zC,iBAAiBjvC,aA0X7G,OAxXAkgC,EAAgB1kC,UAAU4zC,WAAa,WACnC,OAAO/zC,KAAKkb,SAahB2pB,EAAgBtT,YAAc,SAAUuT,GACpC,IAAIyN,EAAUzN,EAAUngC,YACpB6tC,EAAa1N,EAAUjgC,WAC3B,OAAOyhB,EAAU3lB,QAAQ2xC,wBAAwBC,EAASC,IAU9D3N,EAAgB1kC,UAAUyxB,cAAgB,WACtC,IAAIvwB,EAAS,IAAI2yC,UAAUh0C,KAAKkb,QAAQE,qBACpC8W,EAAe,EACfzmB,EAAM,EACNwoC,EAAS,EACT1B,EAAUvyC,KAAK4zC,iBAAiBjvC,YAChC6tC,EAAaxyC,KAAK4zC,iBAAiB/uC,WACnCqvC,GAAc,EACdC,GAAc,EACdC,GAAc,EACdC,GAAc,EAElB,GAEI,GAAK5oC,IAAQ8mC,GAAwB,IAAX0B,GAAkBC,EAMvC,GAAKzoC,IAAQ8mC,EAAU,GAAkB,IAAX0B,GAA0C,KAAV,EAAbzB,IAA8B2B,EAM/E,GAAK1oC,IAAQ8mC,EAAU,GAAkB,IAAX0B,GAA0C,KAAV,EAAbzB,IAA8B4B,EAM/E,GAAK3oC,IAAQ8mC,EAAU,GAAkB,IAAX0B,GAA0C,KAAV,EAAbzB,IAA8B6B,EAM/E,CAED,GACS5oC,EAAM8mC,GAAa0B,GAAU,IAAOj0C,KAAK8zC,kBAAkBjzC,IAAIozC,EAAQxoC,KACxEpK,EAAO6wB,KAAoE,IAAlDlyB,KAAKs0C,SAAS7oC,EAAKwoC,EAAQ1B,EAASC,IAEjE/mC,GAAO,EACPwoC,GAAU,QACJxoC,GAAO,GAAOwoC,EAASzB,GACjC/mC,GAAO,EACPwoC,GAAU,EAEV,GACSxoC,GAAO,GAAOwoC,EAASzB,IAAgBxyC,KAAK8zC,kBAAkBjzC,IAAIozC,EAAQxoC,KAC3EpK,EAAO6wB,KAAoE,IAAlDlyB,KAAKs0C,SAAS7oC,EAAKwoC,EAAQ1B,EAASC,IAEjE/mC,GAAO,EACPwoC,GAAU,QACJxoC,EAAM8mC,GAAa0B,GAAU,GACvCxoC,GAAO,EACPwoC,GAAU,OAzBV5yC,EAAO6wB,KAA0D,IAAxClyB,KAAKu0C,YAAYhC,EAASC,GACnD/mC,GAAO,EACPwoC,GAAU,EACVI,GAAc,OATdhzC,EAAO6wB,KAA0D,IAAxClyB,KAAKw0C,YAAYjC,EAASC,GACnD/mC,GAAO,EACPwoC,GAAU,EACVG,GAAc,OATd/yC,EAAO6wB,KAA0D,IAAxClyB,KAAKy0C,YAAYlC,EAASC,GACnD/mC,GAAO,EACPwoC,GAAU,EACVE,GAAc,OATd9yC,EAAO6wB,KAA0D,IAAxClyB,KAAK00C,YAAYnC,EAASC,GACnD/mC,GAAO,EACPwoC,GAAU,EACVC,GAAc,QA0CZzoC,EAAM8mC,GAAa0B,EAASzB,GACtC,GAAItgB,IAAiBlyB,KAAKkb,QAAQE,oBAC9B,MAAM,IAAIqT,EAAkB9tB,QAEhC,OAAOU,GAWXwjC,EAAgB1kC,UAAUw0C,WAAa,SAAUlpC,EAAKwoC,EAAQ1B,EAASC,GAWnE,OATI/mC,EAAM,IACNA,GAAO8mC,EACP0B,GAAU,GAAM1B,EAAU,EAAK,IAE/B0B,EAAS,IACTA,GAAUzB,EACV/mC,GAAO,GAAM+mC,EAAa,EAAK,IAEnCxyC,KAAK8zC,kBAAkB/yC,IAAIkzC,EAAQxoC,GAC5BzL,KAAK4zC,iBAAiB/yC,IAAIozC,EAAQxoC,IAa7Co5B,EAAgB1kC,UAAUm0C,SAAW,SAAU7oC,EAAKwoC,EAAQ1B,EAASC,GACjE,IAAIvM,EAAc,EAgClB,OA/BIjmC,KAAK20C,WAAWlpC,EAAM,EAAGwoC,EAAS,EAAG1B,EAASC,KAC9CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAM,EAAGwoC,EAAS,EAAG1B,EAASC,KAC9CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAM,EAAGwoC,EAAS,EAAG1B,EAASC,KAC9CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAM,EAAGwoC,EAAS,EAAG1B,EAASC,KAC9CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAM,EAAGwoC,EAAQ1B,EAASC,KAC1CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAKwoC,EAAS,EAAG1B,EAASC,KAC1CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAKwoC,EAAS,EAAG1B,EAASC,KAC1CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWlpC,EAAKwoC,EAAQ1B,EAASC,KACtCvM,GAAe,GAEZA,GAWXpB,EAAgB1kC,UAAUu0C,YAAc,SAAUnC,EAASC,GACvD,IAAIvM,EAAc,EAgClB,OA/BIjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEZA,GAWXpB,EAAgB1kC,UAAUs0C,YAAc,SAAUlC,EAASC,GACvD,IAAIvM,EAAc,EAgClB,OA/BIjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEZA,GAWXpB,EAAgB1kC,UAAUq0C,YAAc,SAAUjC,EAASC,GACvD,IAAIvM,EAAc,EAgClB,OA/BIjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAGC,EAAa,EAAGD,EAASC,KACtDvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEZA,GAWXpB,EAAgB1kC,UAAUo0C,YAAc,SAAUhC,EAASC,GACvD,IAAIvM,EAAc,EAgClB,OA/BIjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAWpC,EAAU,EAAG,EAAGA,EAASC,KACzCvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEnBA,IAAgB,EACZjmC,KAAK20C,WAAW,EAAGnC,EAAa,EAAGD,EAASC,KAC5CvM,GAAe,GAEZA,GASXpB,EAAgB1kC,UAAU0zC,kBAAoB,SAAU/O,GACpD,IAAI6M,EAAiB3xC,KAAKkb,QAAQg3B,oBAC9BN,EAAoB5xC,KAAKkb,QAAQi3B,uBACrC,GAAIrN,EAAUngC,cAAgBgtC,EAC1B,MAAM,IAAIhyC,EAA2BgB,QAAQ,sDASjD,IAPA,IAAIkxC,EAAqB7xC,KAAKkb,QAAQk3B,wBAClCN,EAAwB9xC,KAAKkb,QAAQm3B,2BACrCuC,EAAoBjD,EAAiBE,EAAqB,EAC1DgD,EAAuBjD,EAAoBE,EAAwB,EACnEgD,EAAoBF,EAAoB/C,EACxCkD,EAAuBF,EAAuB/C,EAC9CkD,EAA4B,IAAI3wB,EAAY1jB,QAAQo0C,EAAsBD,GACrEG,EAAgB,EAAGA,EAAgBL,IAAqBK,EAE7D,IADA,IAAIC,EAAsBD,EAAgBpD,EACjCsD,EAAmB,EAAGA,EAAmBN,IAAwBM,EAEtE,IADA,IAAIC,EAAyBD,EAAmBrD,EACvChxC,EAAI,EAAGA,EAAI+wC,IAAsB/wC,EAGtC,IAFA,IAAIu0C,EAAgBJ,GAAiBpD,EAAqB,GAAK,EAAI/wC,EAC/Dw0C,EAAiBJ,EAAsBp0C,EAClCsC,EAAI,EAAGA,EAAI0uC,IAAyB1uC,EAAG,CAC5C,IAAImyC,EAAmBJ,GAAoBrD,EAAwB,GAAK,EAAI1uC,EAC5E,GAAI0hC,EAAUjkC,IAAI00C,EAAkBF,GAAgB,CAChD,IAAIG,EAAoBJ,EAAyBhyC,EACjD4xC,EAA0Bj0C,IAAIy0C,EAAmBF,IAMrE,OAAON,GAEJnQ,EAtYyB,GAwYpCvlC,EAAQqB,QAAUkkC,G,oCChZlB,IAAIr8B,EAAaxI,MAAQA,KAAKwI,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGX,GAI7B,OAHAU,EAAgBrJ,OAAOuJ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUH,EAAGX,GAAKW,EAAEE,UAAYb,IACvE,SAAUW,EAAGX,GAAK,IAAK,IAAIe,KAAKf,EAAOA,EAAEgB,eAAeD,KAAIJ,EAAEI,GAAKf,EAAEe,KAClEL,EAAcC,EAAGX,IAE5B,OAAO,SAAUW,EAAGX,GAEhB,SAASiB,IAAOhJ,KAAKiJ,YAAcP,EADnCD,EAAcC,EAAGX,GAEjBW,EAAEvI,UAAkB,OAAN4H,EAAa3I,OAAO8J,OAAOnB,IAAMiB,EAAG7I,UAAY4H,EAAE5H,UAAW,IAAI6I,IAV3C,GAa5C5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAEtD,IAAIuU,EAAkB,EAAQ,SAC1B1J,EAAmB,EAAQ,QAC3BwJ,EAAW,EAAQ,QACnBzP,EAAgB,EAAQ,QACxB+P,EAAe,EAAQ,QACvB7P,EAAsB,EAAQ,QAC9BoqB,EAAoB,EAAQ,QAC5BD,EAAsB,EAAQ,SAM9BinB,EAA+B,SAAUrsC,GAEzC,SAASqsC,IACL,OAAkB,OAAXrsC,GAAmBA,EAAOgL,MAAMpU,KAAMqU,YAAcrU,KAmd/D,OArdAwI,EAAUitC,EAAersC,GAIzBqsC,EAAcC,iBAAmB,SAAUjqC,GAQvC,IAPA,IAAI7G,EAAQ6G,EAAIrL,UACZuZ,EAAYlO,EAAIxK,WAAW,GAC3BmM,EAAkB,EAClBJ,EAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC3B4M,EAAeD,EACfxM,GAAU,EACVS,EAAgB,EACX9M,EAAI6Y,EAAW7Y,EAAI8D,EAAO9D,IAC/B,GAAI2K,EAAI5K,IAAIC,KAAOqM,EACfH,EAASI,SAER,CACD,GAAIA,IAAqBQ,EAAgB,EAAI,CAGzC,IAFA,IAAI+nC,EAAeF,EAAcG,iBAC7B54B,GAAa,EACR64B,EAAYJ,EAAcK,aAAcD,GAAaJ,EAAcM,aAAcF,IAAa,CACnG,IAAI1nC,EAAW+F,EAAavT,QAAQ6M,qBAAqBR,EAAUyoC,EAAcO,cAAcH,GAAYJ,EAAcQ,yBACrH9nC,EAAWwnC,IACXA,EAAexnC,EACf6O,EAAY64B,GAIpB,GAAI74B,GAAa,GACbvR,EAAItJ,QAAQ7B,KAAK4B,IAAI,EAAG0X,GAAgB9Y,EAAI8Y,GAAgB,GAAIA,GAAc,GAC9E,MAAO,CAACA,EAAc9Y,EAAGkc,GAE7BpD,GAAgB5M,EAAS,GAAKA,EAAS,GACvCA,EAASkpC,OAAO,EAAG,GACnBlpC,EAASI,EAAkB,GAAK,EAChCJ,EAASI,GAAmB,EAC5BA,SAGAA,IAEJJ,EAASI,GAAmB,EAC5BD,GAAWA,EAGnB,MAAM,IAAI9I,EAAoB1D,SAElC80C,EAAcU,WAAa,SAAU1qC,EAAKuB,EAAU2M,GAChDzF,EAAavT,QAAQoM,cAActB,EAAKkO,EAAW3M,GAGnD,IAFA,IAAI2oC,EAAeF,EAAcG,iBAC7B54B,GAAa,EACRtU,EAAI,EAAGA,EAAI+sC,EAAcO,cAAcv1C,OAAQiI,IAAK,CACzD,IAAI+E,EAAUgoC,EAAcO,cAActtC,GACtCyF,EAAWnO,KAAKwN,qBAAqBR,EAAUS,EAASgoC,EAAcQ,yBACtE9nC,EAAWwnC,IACXA,EAAexnC,EACf6O,EAAYtU,GAIpB,GAAIsU,GAAa,EACb,OAAOA,EAGP,MAAM,IAAI3Y,EAAoB1D,SAGtC80C,EAAct1C,UAAUyM,UAAY,SAAUb,EAAWN,EAAKjB,GAC1D,IAMI4rC,EANAC,EAAc7rC,IAA6D,IAAnDA,EAAM3J,IAAIuJ,EAAiBzJ,QAAQ21C,YAC3DC,EAAmBd,EAAcC,iBAAiBjqC,GAClDoqC,EAAYU,EAAiB,GAC7BC,EAAuB,EACvBC,EAAW,IAAInmC,WAAW,IAG9B,OAFAmmC,EAASD,KAA0BX,EAE3BA,GACJ,KAAKJ,EAAcK,aACfM,EAAUX,EAAciB,YACxB,MACJ,KAAKjB,EAAckB,aACfP,EAAUX,EAAcmB,YACxB,MACJ,KAAKnB,EAAcM,aACfK,EAAUX,EAAcoB,YACxB,MACJ,QACI,MAAM,IAAIpoB,EAAkB9tB,QAEpC,IAAIy5B,GAAO,EACP0c,GAAgB,EAChBz1C,EAAS,GACT2tB,EAAYunB,EAAiB,GAC7BrnB,EAAYqnB,EAAiB,GAC7BvpC,EAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC3B+pC,EAAW,EACX/nC,EAAO,EACPgoC,EAAgBnB,EAChBoB,EAAa,EACbC,GAA4B,EAC5BC,GAAY,EACZC,GAAiB,EACrB,OAAQhd,EAAM,CACV,IAAIid,EAAUP,EAoBd,OAnBAA,GAAgB,EAEhBC,EAAW/nC,EAEXA,EAAOymC,EAAcU,WAAW1qC,EAAKuB,EAAUkiB,GAC/CunB,EAASD,KAA0BxnC,EAE/BA,IAASymC,EAAc6B,YACvBJ,GAA4B,GAG5BloC,IAASymC,EAAc6B,YACvBL,IACAD,GAAiBC,EAAajoC,GAGlCggB,EAAYE,EACZA,GAAaliB,EAASuqC,QAAO,SAAUC,EAAUC,GAAW,OAAOD,EAAWC,IAAY,GAElFzoC,GACJ,KAAKymC,EAAcK,aACnB,KAAKL,EAAckB,aACnB,KAAKlB,EAAcM,aACf,MAAM,IAAItnB,EAAkB9tB,QAEpC,OAAQy1C,GACJ,KAAKX,EAAciB,YACf,GAAI1nC,EAAO,GAEH3N,GADA+1C,IAAmBD,EACTvhC,OAAOuH,aAAc,IAAIxN,WAAW,GAAKX,GAGzC4G,OAAOuH,aAAc,IAAIxN,WAAW,GAAKX,EAAO,KAE9DooC,GAAiB,OAEhB,GAAIpoC,EAAO,GAER3N,GADA+1C,IAAmBD,EACTvhC,OAAOuH,aAAcnO,EAAO,IAG5B4G,OAAOuH,aAAcnO,EAAO,IAE1CooC,GAAiB,OAQjB,OAHIpoC,IAASymC,EAAc6B,YACvBJ,GAA4B,GAExBloC,GACJ,KAAKymC,EAAciC,WACXrB,IACsB,IAAlBh1C,EAAOZ,OAGPY,GAAU,MAIVA,GAAUuU,OAAOuH,aAAa,KAGtC,MACJ,KAAKs4B,EAAckC,WACnB,KAAKlC,EAAcmC,WAEf,MACJ,KAAKnC,EAAcoC,cACVV,GAAaC,GACdD,GAAY,EACZC,GAAiB,GAEZD,GAAaC,GAClBD,GAAY,EACZC,GAAiB,GAGjBA,GAAiB,EAErB,MACJ,KAAK3B,EAAcqC,WACfhB,GAAgB,EAChBV,EAAUX,EAAcmB,YACxB,MACJ,KAAKnB,EAAcmB,YACfR,EAAUX,EAAcmB,YACxB,MACJ,KAAKnB,EAAcoB,YACfT,EAAUX,EAAcoB,YACxB,MACJ,KAAKpB,EAAc6B,UACfld,GAAO,EACP,MAGZ,MACJ,KAAKqb,EAAcmB,YACf,GAAI5nC,EAAO,GAEH3N,GADA+1C,IAAmBD,EACTvhC,OAAOuH,aAAc,IAAIxN,WAAW,GAAKX,GAGzC4G,OAAOuH,aAAc,IAAIxN,WAAW,GAAKX,EAAO,KAE9DooC,GAAiB,OAMjB,OAHIpoC,IAASymC,EAAc6B,YACvBJ,GAA4B,GAExBloC,GACJ,KAAKymC,EAAciC,WACXrB,IACsB,IAAlBh1C,EAAOZ,OAGPY,GAAU,MAIVA,GAAUuU,OAAOuH,aAAa,KAGtC,MACJ,KAAKs4B,EAAckC,WACnB,KAAKlC,EAAcmC,WAEf,MACJ,KAAKnC,EAAcsC,cACVZ,GAAaC,GACdD,GAAY,EACZC,GAAiB,GAEZD,GAAaC,GAClBD,GAAY,EACZC,GAAiB,GAGjBA,GAAiB,EAErB,MACJ,KAAK3B,EAAcqC,WACfhB,GAAgB,EAChBV,EAAUX,EAAciB,YACxB,MACJ,KAAKjB,EAAciB,YACfN,EAAUX,EAAciB,YACxB,MACJ,KAAKjB,EAAcoB,YACfT,EAAUX,EAAcoB,YACxB,MACJ,KAAKpB,EAAc6B,UACfld,GAAO,EACP,MAGZ,MACJ,KAAKqb,EAAcoB,YACf,GAAI7nC,EAAO,IACHA,EAAO,KACP3N,GAAU,KAEdA,GAAU2N,OAMV,OAHIA,IAASymC,EAAc6B,YACvBJ,GAA4B,GAExBloC,GACJ,KAAKymC,EAAciC,WACXrB,IACsB,IAAlBh1C,EAAOZ,OAGPY,GAAU,MAIVA,GAAUuU,OAAOuH,aAAa,KAGtC,MACJ,KAAKs4B,EAAciB,YACfN,EAAUX,EAAciB,YACxB,MACJ,KAAKjB,EAAcmB,YACfR,EAAUX,EAAcmB,YACxB,MACJ,KAAKnB,EAAc6B,UACfld,GAAO,EACP,MAGZ,MAGJid,IACAjB,EAAUA,IAAYX,EAAciB,YAAcjB,EAAcmB,YAAcnB,EAAciB,aAGpG,IAAIpnB,EAAkBJ,EAAYF,EAKlC,GADAE,EAAYzjB,EAAIlK,aAAa2tB,IACxBzjB,EAAItJ,QAAQ+sB,EAAW5uB,KAAKk1B,IAAI/pB,EAAIrL,UAAW8uB,GAAaA,EAAYF,GAAa,IAAI,GAC1F,MAAM,IAAI3qB,EAAoB1D,QAKlC,GAFAq2C,GAAiBC,EAAaF,EAE1BC,EAAgB,MAAQD,EACxB,MAAM,IAAIvoB,EAAoB7tB,QAGlC,IAAIq3C,EAAe32C,EAAOZ,OAC1B,GAAqB,IAAjBu3C,EAEA,MAAM,IAAI3zC,EAAoB1D,QAI9Bq3C,EAAe,GAAKd,IAEhB71C,EADA+0C,IAAYX,EAAcoB,YACjBx1C,EAAOitB,UAAU,EAAG0pB,EAAe,GAGnC32C,EAAOitB,UAAU,EAAG0pB,EAAe,IAOpD,IAJA,IAAI3yC,GAAQkxC,EAAiB,GAAKA,EAAiB,IAAM,EACrDjxC,EAAQ0pB,EAAYM,EAAkB,EACtC2oB,EAAexB,EAASh2C,OACxBmvC,EAAW,IAAIt/B,WAAW2nC,GACrBn3C,EAAI,EAAGA,EAAIm3C,EAAcn3C,IAC9B8uC,EAAS9uC,GAAK21C,EAAS31C,GAE3B,IAAIuK,EAAS,CAAC,IAAIlH,EAAcxD,QAAQ0E,EAAM0G,GAAY,IAAI5H,EAAcxD,QAAQ2E,EAAOyG,IAC3F,OAAO,IAAI6H,EAASjT,QAAQU,EAAQuuC,EAAU,EAAGvkC,EAAQyI,EAAgBnT,QAAQ64B,UAAU,IAAIljB,MAAOC,YAE1Gk/B,EAAcO,cAAgB,CAC1B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GA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eACA,oCAEA,uBACA,cACA,SACA,OACA,4BAGA,kBACA,kCAMA,6KAIA,OAHA,uBACA,yBACA,qBACA,6CAEA,gCACA,8CACA,gEACA,iBACA,8CACA,yBAGA,gCADA,cAEA,kHAfA,GAkBA,qBACA,iBACA,oCAUA,qBACA,OACA,0BAEA,yCAEA,mBACA,oBACA,iBACA,oCACA,yCAEA,oBAKA,sBACA,yCAEA,qCACA,YACA,0BACA,6CACA,8CACA,YACA,mBACA,kBACA,kBACA,YACA,0BAGA,wBAIA,kCACA,oBACA,iBACA,qBACA,gBACA,oBACA,uCACA,qBACA,gBACA,kBACA,mBACA,2CAEA,MACA,OACA,QACA,SACA,CACA,iCAGA,EAEA,kBACA,YACA,wBAIA,eACA,aACA,6BACA,8BAIA,uBAEA,oBAIA,wBACA,iBACA,qBC5VwW,ICQpW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,6BCwjCf,GACA,iBACA,YACA,wBACA,kBACA,mBAEA,uBACA,gBACA,OACA,mBACA,aACA,aACA,aACA,gBACA,eACA,cACA,UACA,UACA,UACA,UACA,UACA,cACA,cACA,cACA,cACA,cACA,WACA,WACA,WACA,WACA,WACA,eACA,WACA,gBACA,cACA,iBAEA,YACA,6BACA,yBACA,cAEA,8BACA,gCACA,kBACA,oBACA,oBACA,cACA,qBACA,kBACA,cACA,UACA,WACA,WAEA,QACA,mBAGA,qBACA,+DAEA,8BACA,4BACA,iBACA,iBACA,sBACA,WAEA,yDACA,0CACA,6BACA,wBACA,wDACA,YAEA,iBAEA,SACA,iCAKA,0BACA,+BACA,2DACA,+DACA,oBACA,gCACA,yCACA,sBACA,MAEA,yLAEA,UACA,gDACA,sKAJA,GASA,wMAEA,iCACA,uBACA,GACA,aACA,UAEA,4EAEA,kBACA,gBACA,gCACA,wCACA,+GAdA,GAkBA,wBACA,kCAEA,sCACA,mBACA,mBACA,mBACA,mBACA,mBAEA,eACA,eACA,eACA,eACA,eACA,8CACA,uDACA,uBAGA,kBAEA,oBACA,2BAEA,qBAEA,iCACA,wBAEA,6BAGA,OAFA,0BACA,mBACA,UACA,OACA,mBACA,MACA,OACA,mBACA,MACA,OACA,mBACA,MACA,OACA,mBACA,MACA,OACA,mBACA,MAEA,QACA,QAGA,4BACA,0BACA,mBAEA,kBACA,gBACA,gCACA,WAGA,2BACA,uBACA,sBACA,2BACA,gDACA,gDACA,sCAEA,wCADA,8BAIA,eACA,uBAIA,sBACA,kDAIA,sBACA,gDACA,WAEA,gCACA,sBACA,gDACA,YACA,iBAEA,wBAIA,0CACA,wDAEA,yBACA,8CACA,wBAEA,yBAGA,uCAGA,OAFA,uBAEA,yBACA,0BACA,kBACA,oBACA,2BACA,aAEA,mBACA,oBACA,eACA,aACA,6BACA,sCAGA,YAIA,6BACA,+CACA,6CACA,yCACA,8DACA,0DACA,uDAEA,mDACA,gDACA,wDAEA,iCAGA,OAFA,uBAEA,yBACA,oBACA,kBACA,oBACA,yCACA,aAEA,mBACA,oBACA,eACA,aACA,6BACA,sCAGA,YAIA,sCAEA,OADA,uBACA,yBACA,yBACA,kBACA,oBACA,oBACA,iDACA,eACA,kDAEA,oBAEA,cACA,wCAEA,wCAGA,aAEA,mBACA,oBACA,oBACA,YAIA,sBACA,oBAEA,sBACA,oBAEA,sBACA,oBAEA,sBACA,oBAEA,sBACA,oBAEA,wBAEA,mBACA,mBACA,mBACA,mBACA,mBAEA,SACA,oCACA,oBAEA,oCACA,oBAEA,oCACA,oBAEA,oCACA,oBAEA,oCACA,oBAGA,YACA,2BAGA,oCACA,gCACA,kBACA,kBAEA,GADA,oBACA,kBACA,qBA4FA,GA3FA,+BACA,+CACA,gBACA,8CAGA,yBADA,kCAGA,gBAGA,qBADA,kCAGA,gBAEA,iBAGA,+BACA,+CACA,gBACA,8CAGA,yBADA,kCAGA,gBAGA,qBADA,kCAGA,gBAEA,iBAGA,+BACA,+CACA,gBACA,8CAGA,yBADA,kCAGA,gBAGA,qBADA,kCAGA,gBAEA,iBAGA,+BACA,+CACA,gBACA,8CAGA,yBADA,kCAGA,gBAGA,qBADA,kCAGA,gBAEA,iBAGA,+BACA,+CACA,gBACA,8CAGA,yBADA,kCAGA,gBAGA,qBADA,kCAGA,gBAEA,iBAIA,6BACA,QACA,8BACA,gDACA,uCAGA,8BACA,gDACA,uCAGA,8BACA,gDACA,uCAGA,8BACA,gDACA,uCAGA,8BACA,gDACA,uCAIA,sBACA,oBACA,oBACA,kCACA,cAGA,6BAGA,yBADA,mCAGA,sBACA,oBACA,oBACA,kCAIA,qBADA,mCAGA,sBACA,oBACA,sBACA,wCAGA,sBACA,oBACA,sBACA,uCAGA,6BAGA,yBADA,mCAGA,sBACA,oBACA,oBACA,kCAIA,qBADA,mCAGA,sBACA,oBACA,sBACA,wCAGA,sBACA,oBACA,sBACA,uCAGA,6BAGA,yBADA,mCAGA,sBACA,oBACA,oBACA,kCAIA,qBADA,mCAGA,sBACA,oBACA,sBACA,wCAGA,sBACA,oBACA,sBACA,uCAGA,6BAGA,yBADA,mCAGA,sBACA,oBACA,oBACA,kCAIA,qBADA,mCAGA,sBACA,oBACA,sBACA,wCAGA,sBACA,oBACA,sBACA,uCAGA,+BAGA,yBADA,mCAGA,sBACA,oBACA,oBACA,kCAIA,qBADA,mCAGA,sBACA,oBACA,sBACA,wCAGA,sBACA,oBACA,sBACA,6CAMA,gBACA,gBACA,gBACA,gBACA,qBAGA,gBACA,gBACA,gBACA,gBACA,gBAEA,aAEA,mBACA,oBACA,iCACA,8BAEA,UACA,iDAEA,iBAGA,8BAEA,UACA,iDAEA,iBAGA,8BAEA,UACA,iDAEA,iBAGA,8BAEA,UACA,iDAEA,iBAGA,8BAEA,UACA,iDAEA,kBAGA,iCACA,eACA,aACA,6BACA,6CAGA,eACA,aACA,6BACA,uCAIA,YAIA,yCAGA,OAFA,uBAEA,yBACA,uBACA,kBACA,qBACA,sBACA,+BACA,+CACA,gBACA,mDAEA,2CAEA,gBAEA,iBAGA,+BACA,+CACA,gBACA,mDAEA,2CAEA,gBAEA,iBAGA,+BACA,+CACA,gBACA,mDAEA,2CAEA,gBAEA,iBAGA,+BACA,+CACA,gBACA,mDAEA,2CAEA,gBAEA,iBAGA,+BACA,+CACA,gBACA,mDAEA,2CAEA,gBAEA,iBAIA,QACA,8BACA,gDACA,4CAGA,8BACA,gDACA,4CAGA,8BACA,gDACA,4CAGA,8BACA,gDACA,4CAGA,8BACA,gDACA,4CAGA,uCACA,kDACA,uBACA,8BACA,uDACA,oBACA,6BACA,iBACA,6BACA,sCACA,sBACA,MAEA,qDAEA,uBACA,4BACA,qDACA,yDACA,iBACA,6BACA,sCACA,sBACA,MAGA,KACA,sBACA,oBACA,oBACA,kCACA,WAGA,6BACA,4CACA,sBACA,oBACA,oBACA,mCAGA,sBACA,oBACA,sBACA,uCAGA,6BACA,4CACA,sBACA,oBACA,oBACA,mCAGA,sBACA,oBACA,sBACA,uCAGA,6BACA,4CACA,sBACA,oBACA,oBACA,mCAGA,sBACA,oBACA,sBACA,uCAGA,6BACA,4CACA,sBACA,oBACA,oBACA,mCAGA,sBACA,oBACA,sBACA,uCAGA,+BACA,4CACA,sBACA,oBACA,oBACA,mCAGA,sBACA,oBACA,sBACA,4CAMA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,oBAGA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,gBACA,aACA,gBACA,gBAEA,qCACA,eACA,aACA,6BACA,sDAEA,kBACA,uCACA,uBACA,4BACA,qDACA,yDACA,iBACA,6BACA,sCACA,sBACA,MAGA,oBACA,aAEA,mBACA,oBAEA,eACA,aACA,6BACA,oDAEA,YAMA,wBACA,iBACA,mBAEA,+BACA,wBACA,yBACA,qBC9hE8V,ICQ1V,G,UAAY,eACd,EACAL,EACA+B,GACA,EACA,KACA,KACA,OAIa,e,8BCVf,MAAMzhB,EAAiB,EAAQ,QACzBqzB,EAAc,EAAQ,QACtBC,EAAkB,EAAQ,QAC1BC,EAAY,EAAQ,QACpBC,EAAO,EAAQ,QACfryC,EAAY,EAAQ,QAE1B5G,EAAOjJ,QAAU,CACf0uB,iBACAqzB,cACAC,kBACAC,YACAC,OACAryC,c,oCCNF/P,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,I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MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,IACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,IAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,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","file":"js/earnpoint.js","sourcesContent":["\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nvar System_1 = require(\"../util/System\");\nvar Integer_1 = require(\"../util/Integer\");\nvar Arrays_1 = require(\"../util/Arrays\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\n/**\n *
A simple, fast array of bits, represented compactly by an array of ints internally.
\n *\n * @author Sean Owen\n */\nvar BitArray /*implements Cloneable*/ = /** @class */ (function () {\n // public constructor() {\n // this.size = 0\n // this.bits = new Int32Array(1)\n // }\n // public constructor(size?: number /*int*/) {\n // if (undefined === size) {\n // this.size = 0\n // } else {\n // this.size = size\n // }\n // this.bits = this.makeArray(size)\n // }\n // For testing only\n function BitArray(size /*int*/, bits) {\n if (undefined === size) {\n this.size = 0;\n this.bits = new Int32Array(1);\n }\n else {\n this.size = size;\n if (undefined === bits || null === bits) {\n this.bits = BitArray.makeArray(size);\n }\n else {\n this.bits = bits;\n }\n }\n }\n BitArray.prototype.getSize = function () {\n return this.size;\n };\n BitArray.prototype.getSizeInBytes = function () {\n return Math.floor((this.size + 7) / 8);\n };\n BitArray.prototype.ensureCapacity = function (size /*int*/) {\n if (size > this.bits.length * 32) {\n var newBits = BitArray.makeArray(size);\n System_1.default.arraycopy(this.bits, 0, newBits, 0, this.bits.length);\n this.bits = newBits;\n }\n };\n /**\n * @param i bit to get\n * @return true iff bit i is set\n */\n BitArray.prototype.get = function (i /*int*/) {\n return (this.bits[Math.floor(i / 32)] & (1 << (i & 0x1F))) !== 0;\n };\n /**\n * Sets bit i.\n *\n * @param i bit to set\n */\n BitArray.prototype.set = function (i /*int*/) {\n this.bits[Math.floor(i / 32)] |= 1 << (i & 0x1F);\n };\n /**\n * Flips bit i.\n *\n * @param i bit to set\n */\n BitArray.prototype.flip = function (i /*int*/) {\n this.bits[Math.floor(i / 32)] ^= 1 << (i & 0x1F);\n };\n /**\n * @param from first bit to check\n * @return index of first bit that is set, starting from the given index, or size if none are set\n * at or beyond this given index\n * @see #getNextUnset(int)\n */\n BitArray.prototype.getNextSet = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer_1.default.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n };\n /**\n * @param from index to start looking for unset bit\n * @return index of next unset bit, or {@code size} if none are unset until the end\n * @see #getNextSet(int)\n */\n BitArray.prototype.getNextUnset = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = ~bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = ~bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer_1.default.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n };\n /**\n * Sets a block of 32 bits, starting at bit i.\n *\n * @param i first bit to set\n * @param newBits the new value of the next 32 bits. Note again that the least-significant bit\n * corresponds to bit i, the next-least-significant to i+1, and so on.\n */\n BitArray.prototype.setBulk = function (i /*int*/, newBits /*int*/) {\n this.bits[Math.floor(i / 32)] = newBits;\n };\n /**\n * Sets a range of bits.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n */\n BitArray.prototype.setRange = function (start /*int*/, end /*int*/) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException_1.default();\n }\n if (end === start) {\n return;\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var mask = (2 << lastBit) - (1 << firstBit);\n bits[i] |= mask;\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitArray.prototype.clear = function () {\n var max = this.bits.length;\n var bits = this.bits;\n for (var i = 0; i < max; i++) {\n bits[i] = 0;\n }\n };\n /**\n * Efficient method to check if a range of bits is set, or not set.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n * @param value if true, checks that bits in range are set, otherwise checks that they are not set\n * @return true iff all bits are set or not set in range, according to value argument\n * @throws IllegalArgumentException if end is less than start or the range is not contained in the array\n */\n BitArray.prototype.isRange = function (start /*int*/, end /*int*/, value) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException_1.default();\n }\n if (end === start) {\n return true; // empty range matches\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var mask = (2 << lastBit) - (1 << firstBit) & 0xFFFFFFFF;\n // TYPESCRIPTPORT: & 0xFFFFFFFF added to discard anything after 32 bits, as ES has 53 bits\n // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (is: that,\n // equals the mask, or we're looking for 0s and the masked portion is not all 0s\n if ((bits[i] & mask) !== (value ? mask : 0)) {\n return false;\n }\n }\n return true;\n };\n BitArray.prototype.appendBit = function (bit) {\n this.ensureCapacity(this.size + 1);\n if (bit) {\n this.bits[Math.floor(this.size / 32)] |= 1 << (this.size & 0x1F);\n }\n this.size++;\n };\n /**\n * Appends the least-significant bits, from value, in order from most-significant to\n * least-significant. For example, appending 6 bits from 0x000001E will append the bits\n * 0, 1, 1, 1, 1, 0 in that order.\n *\n * @param value {@code int} containing bits to append\n * @param numBits bits from value to append\n */\n BitArray.prototype.appendBits = function (value /*int*/, numBits /*int*/) {\n if (numBits < 0 || numBits > 32) {\n throw new IllegalArgumentException_1.default('Num bits must be between 0 and 32');\n }\n this.ensureCapacity(this.size + numBits);\n var appendBit = this.appendBit;\n for (var numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\n this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\n }\n };\n BitArray.prototype.appendBitArray = function (other) {\n var otherSize = other.size;\n this.ensureCapacity(this.size + otherSize);\n var appendBit = this.appendBit;\n for (var i = 0; i < otherSize; i++) {\n this.appendBit(other.get(i));\n }\n };\n BitArray.prototype.xor = function (other) {\n if (this.size !== other.size) {\n throw new IllegalArgumentException_1.default('Sizes don\\'t match');\n }\n var bits = this.bits;\n for (var i = 0, length_1 = bits.length; i < length_1; i++) {\n // The last int could be incomplete (i.e. not have 32 bits in\n // it) but there is no problem since 0 XOR 0 == 0.\n bits[i] ^= other.bits[i];\n }\n };\n /**\n *\n * @param bitOffset first bit to start writing\n * @param array array to write into. Bytes are written most-significant byte first. This is the opposite\n * of the internal representation, which is exposed by {@link #getBitArray()}\n * @param offset position in array to start writing\n * @param numBytes how many bytes to write\n */\n BitArray.prototype.toBytes = function (bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\n for (var i = 0; i < numBytes; i++) {\n var theByte = 0;\n for (var j = 0; j < 8; j++) {\n if (this.get(bitOffset)) {\n theByte |= 1 << (7 - j);\n }\n bitOffset++;\n }\n array[offset + i] = /*(byte)*/ theByte;\n }\n };\n /**\n * @return underlying array of ints. The first element holds the first 32 bits, and the least\n * significant bit is bit 0.\n */\n BitArray.prototype.getBitArray = function () {\n return this.bits;\n };\n /**\n * Reverses all bits in the array.\n */\n BitArray.prototype.reverse = function () {\n var newBits = new Int32Array(this.bits.length);\n // reverse all int's first\n var len = Math.floor((this.size - 1) / 32);\n var oldBitsLen = len + 1;\n var bits = this.bits;\n for (var i = 0; i < oldBitsLen; i++) {\n var x = bits[i];\n x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);\n x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);\n x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);\n x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);\n x = ((x >> 16) & 0x0000ffff) | ((x & 0x0000ffff) << 16);\n newBits[len - i] = /*(int)*/ x;\n }\n // now correct the int's if the bit size isn't a multiple of 32\n if (this.size !== oldBitsLen * 32) {\n var leftOffset = oldBitsLen * 32 - this.size;\n var currentInt = newBits[0] >>> leftOffset;\n for (var i = 1; i < oldBitsLen; i++) {\n var nextInt = newBits[i];\n currentInt |= nextInt << (32 - leftOffset);\n newBits[i - 1] = currentInt;\n currentInt = nextInt >>> leftOffset;\n }\n newBits[oldBitsLen - 1] = currentInt;\n }\n this.bits = newBits;\n };\n BitArray.makeArray = function (size /*int*/) {\n return new Int32Array(Math.floor((size + 31) / 32));\n };\n /*@Override*/\n BitArray.prototype.equals = function (o) {\n if (!(o instanceof BitArray)) {\n return false;\n }\n var other = o;\n return this.size === other.size && Arrays_1.default.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitArray.prototype.hashCode = function () {\n return 31 * this.size + Arrays_1.default.hashCode(this.bits);\n };\n /*@Override*/\n BitArray.prototype.toString = function () {\n var result = '';\n for (var i = 0, size = this.size; i < size; i++) {\n if ((i & 0x07) === 0) {\n result += ' ';\n }\n result += this.get(i) ? 'X' : '.';\n }\n return result;\n };\n /*@Override*/\n BitArray.prototype.clone = function () {\n return new BitArray(this.size, this.bits.slice());\n };\n return BitArray;\n}());\nexports.default = BitArray;\n//# sourceMappingURL=BitArray.js.map","\"use strict\";\n/*\n * Copyright 2010 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar MathUtils_1 = require(\"./MathUtils\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\n/**\n *\n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region. By keeping track of the\n * last black points it encountered, it determines the corners of the barcode.\n *
\n *\n * @author David Olivier\n */\nvar WhiteRectangleDetector = /** @class */ (function () {\n // public constructor(private image: BitMatrix) /*throws NotFoundException*/ {\n // this(image, INIT_SIZE, image.getWidth() / 2, image.getHeight() / 2)\n // }\n /**\n * @param image barcode image to find a rectangle in\n * @param initSize initial size of search area around center\n * @param x x position of search center\n * @param y y position of search center\n * @throws NotFoundException if image is too small to accommodate {@code initSize}\n */\n function WhiteRectangleDetector(image, initSize /*int*/, x /*int*/, y /*int*/) {\n this.image = image;\n this.height = image.getHeight();\n this.width = image.getWidth();\n if (undefined === initSize || null === initSize) {\n initSize = WhiteRectangleDetector.INIT_SIZE;\n }\n if (undefined === x || null === x) {\n x = image.getWidth() / 2 | 0;\n }\n if (undefined === y || null === y) {\n y = image.getHeight() / 2 | 0;\n }\n var halfsize = initSize / 2 | 0;\n this.leftInit = x - halfsize;\n this.rightInit = x + halfsize;\n this.upInit = y - halfsize;\n this.downInit = y + halfsize;\n if (this.upInit < 0 || this.leftInit < 0 || this.downInit >= this.height || this.rightInit >= this.width) {\n throw new NotFoundException_1.default();\n }\n }\n /**\n *\n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region.\n *
\n *\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n WhiteRectangleDetector.prototype.detect = function () {\n var left = this.leftInit;\n var right = this.rightInit;\n var up = this.upInit;\n var down = this.downInit;\n var sizeExceeded = false;\n var aBlackPointFoundOnBorder = true;\n var atLeastOneBlackPointFoundOnBorder = false;\n var atLeastOneBlackPointFoundOnRight = false;\n var atLeastOneBlackPointFoundOnBottom = false;\n var atLeastOneBlackPointFoundOnLeft = false;\n var atLeastOneBlackPointFoundOnTop = false;\n var width = this.width;\n var height = this.height;\n while (aBlackPointFoundOnBorder) {\n aBlackPointFoundOnBorder = false;\n // .....\n // . |\n // .....\n var rightBorderNotWhite = true;\n while ((rightBorderNotWhite || !atLeastOneBlackPointFoundOnRight) && right < width) {\n rightBorderNotWhite = this.containsBlackPoint(up, down, right, false);\n if (rightBorderNotWhite) {\n right++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnRight = true;\n }\n else if (!atLeastOneBlackPointFoundOnRight) {\n right++;\n }\n }\n if (right >= width) {\n sizeExceeded = true;\n break;\n }\n // .....\n // . .\n // .___.\n var bottomBorderNotWhite = true;\n while ((bottomBorderNotWhite || !atLeastOneBlackPointFoundOnBottom) && down < height) {\n bottomBorderNotWhite = this.containsBlackPoint(left, right, down, true);\n if (bottomBorderNotWhite) {\n down++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnBottom = true;\n }\n else if (!atLeastOneBlackPointFoundOnBottom) {\n down++;\n }\n }\n if (down >= height) {\n sizeExceeded = true;\n break;\n }\n // .....\n // | .\n // .....\n var leftBorderNotWhite = true;\n while ((leftBorderNotWhite || !atLeastOneBlackPointFoundOnLeft) && left >= 0) {\n leftBorderNotWhite = this.containsBlackPoint(up, down, left, false);\n if (leftBorderNotWhite) {\n left--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnLeft = true;\n }\n else if (!atLeastOneBlackPointFoundOnLeft) {\n left--;\n }\n }\n if (left < 0) {\n sizeExceeded = true;\n break;\n }\n // .___.\n // . .\n // .....\n var topBorderNotWhite = true;\n while ((topBorderNotWhite || !atLeastOneBlackPointFoundOnTop) && up >= 0) {\n topBorderNotWhite = this.containsBlackPoint(left, right, up, true);\n if (topBorderNotWhite) {\n up--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnTop = true;\n }\n else if (!atLeastOneBlackPointFoundOnTop) {\n up--;\n }\n }\n if (up < 0) {\n sizeExceeded = true;\n break;\n }\n if (aBlackPointFoundOnBorder) {\n atLeastOneBlackPointFoundOnBorder = true;\n }\n }\n if (!sizeExceeded && atLeastOneBlackPointFoundOnBorder) {\n var maxSize = right - left;\n var z = null;\n for (var i = 1; z === null && i < maxSize; i++) {\n z = this.getBlackPointOnSegment(left, down - i, left + i, down);\n }\n if (z == null) {\n throw new NotFoundException_1.default();\n }\n var t = null;\n // go down right\n for (var i = 1; t === null && i < maxSize; i++) {\n t = this.getBlackPointOnSegment(left, up + i, left + i, up);\n }\n if (t == null) {\n throw new NotFoundException_1.default();\n }\n var x = null;\n // go down left\n for (var i = 1; x === null && i < maxSize; i++) {\n x = this.getBlackPointOnSegment(right, up + i, right - i, up);\n }\n if (x == null) {\n throw new NotFoundException_1.default();\n }\n var y = null;\n // go up left\n for (var i = 1; y === null && i < maxSize; i++) {\n y = this.getBlackPointOnSegment(right, down - i, right - i, down);\n }\n if (y == null) {\n throw new NotFoundException_1.default();\n }\n return this.centerEdges(y, z, x, t);\n }\n else {\n throw new NotFoundException_1.default();\n }\n };\n WhiteRectangleDetector.prototype.getBlackPointOnSegment = function (aX /*float*/, aY /*float*/, bX /*float*/, bY /*float*/) {\n var dist = MathUtils_1.default.round(MathUtils_1.default.distance(aX, aY, bX, bY));\n var xStep = (bX - aX) / dist;\n var yStep = (bY - aY) / dist;\n var image = this.image;\n for (var i = 0; i < dist; i++) {\n var x = MathUtils_1.default.round(aX + i * xStep);\n var y = MathUtils_1.default.round(aY + i * yStep);\n if (image.get(x, y)) {\n return new ResultPoint_1.default(x, y);\n }\n }\n return null;\n };\n /**\n * recenters the points of a constant distance towards the center\n *\n * @param y bottom most point\n * @param z left most point\n * @param x right most point\n * @param t top most point\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n */\n WhiteRectangleDetector.prototype.centerEdges = function (y, z, x, t) {\n //\n // t t\n // z x\n // x OR z\n // y y\n //\n var yi = y.getX();\n var yj = y.getY();\n var zi = z.getX();\n var zj = z.getY();\n var xi = x.getX();\n var xj = x.getY();\n var ti = t.getX();\n var tj = t.getY();\n var CORR = WhiteRectangleDetector.CORR;\n if (yi < this.width / 2.0) {\n return [\n new ResultPoint_1.default(ti - CORR, tj + CORR),\n new ResultPoint_1.default(zi + CORR, zj + CORR),\n new ResultPoint_1.default(xi - CORR, xj - CORR),\n new ResultPoint_1.default(yi + CORR, yj - CORR)\n ];\n }\n else {\n return [\n new ResultPoint_1.default(ti + CORR, tj + CORR),\n new ResultPoint_1.default(zi + CORR, zj - CORR),\n new ResultPoint_1.default(xi - CORR, xj + CORR),\n new ResultPoint_1.default(yi - CORR, yj - CORR)\n ];\n }\n };\n /**\n * Determines whether a segment contains a black point\n *\n * @param a min value of the scanned coordinate\n * @param b max value of the scanned coordinate\n * @param fixed value of fixed coordinate\n * @param horizontal set to true if scan must be horizontal, false if vertical\n * @return true if a black point has been found, else false.\n */\n WhiteRectangleDetector.prototype.containsBlackPoint = function (a /*int*/, b /*int*/, fixed /*int*/, horizontal) {\n var image = this.image;\n if (horizontal) {\n for (var x = a; x <= b; x++) {\n if (image.get(x, fixed)) {\n return true;\n }\n }\n }\n else {\n for (var y = a; y <= b; y++) {\n if (image.get(fixed, y)) {\n return true;\n }\n }\n }\n return false;\n };\n WhiteRectangleDetector.INIT_SIZE = 10;\n WhiteRectangleDetector.CORR = 1;\n return WhiteRectangleDetector;\n}());\nexports.default = WhiteRectangleDetector;\n//# sourceMappingURL=WhiteRectangleDetector.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BlockPair = /** @class */ (function () {\n function BlockPair(dataBytes, errorCorrectionBytes) {\n this.dataBytes = dataBytes;\n this.errorCorrectionBytes = errorCorrectionBytes;\n }\n BlockPair.prototype.getDataBytes = function () {\n return this.dataBytes;\n };\n BlockPair.prototype.getErrorCorrectionBytes = function () {\n return this.errorCorrectionBytes;\n };\n return BlockPair;\n}());\nexports.default = BlockPair;\n//# sourceMappingURL=BlockPair.js.map","module.exports = __webpack_public_path__ + \"img/earn_point_error.svg\";","module.exports = __webpack_public_path__ + \"img/earn_point_success.svg\";","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\n/**\n *Encapsulates an alignment pattern, which are the smaller square patterns found in\n * all but the simplest QR Codes.
\n *\n * @author Sean Owen\n */\nvar AlignmentPattern = /** @class */ (function (_super) {\n __extends(AlignmentPattern, _super);\n function AlignmentPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n return _this;\n }\n /**\n *Determines if this alignment pattern \"about equals\" an alignment pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.
\n */\n AlignmentPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n };\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.\n */\n AlignmentPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedX = (this.getX() + j) / 2.0;\n var combinedY = (this.getY() + i) / 2.0;\n var combinedModuleSize = (this.estimatedModuleSize + newModuleSize) / 2.0;\n return new AlignmentPattern(combinedX, combinedY, combinedModuleSize);\n };\n return AlignmentPattern;\n}(ResultPoint_1.default));\nexports.default = AlignmentPattern;\n//# sourceMappingURL=AlignmentPattern.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitArray_1 = require(\"../common/BitArray\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar OneDReader = /** @class */ (function () {\n function OneDReader() {\n }\n /*\n @Override\n public Result decode(BinaryBitmap image) throws NotFoundException, FormatException {\n return decode(image, null);\n }\n */\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n // @Override\n OneDReader.prototype.decode = function (image, hints) {\n try {\n return this.doDecode(image, hints);\n }\n catch (nfe) {\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\n if (tryHarder && image.isRotateSupported()) {\n var rotatedImage = image.rotateCounterClockwise();\n var result = this.doDecode(rotatedImage, hints);\n // Record that we found it rotated 90 degrees CCW / 270 degrees CW\n var metadata = result.getResultMetadata();\n var orientation_1 = 270;\n if (metadata !== null && (metadata.get(ResultMetadataType_1.default.ORIENTATION) === true)) {\n // But if we found it reversed in doDecode(), add in that result here:\n orientation_1 = (orientation_1 + metadata.get(ResultMetadataType_1.default.ORIENTATION) % 360);\n }\n result.putMetadata(ResultMetadataType_1.default.ORIENTATION, orientation_1);\n // Update result points\n var points = result.getResultPoints();\n if (points !== null) {\n var height = rotatedImage.getHeight();\n for (var i = 0; i < points.length; i++) {\n points[i] = new ResultPoint_1.default(height - points[i].getY() - 1, points[i].getX());\n }\n }\n return result;\n }\n else {\n throw new NotFoundException_1.default();\n }\n }\n };\n // @Override\n OneDReader.prototype.reset = function () {\n // do nothing\n };\n /**\n * We're going to examine rows from the middle outward, searching alternately above and below the\n * middle, and farther out each time. rowStep is the number of rows between each successive\n * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then\n * middle + rowStep, then middle - (2 * rowStep), etc.\n * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily\n * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the\n * image if \"trying harder\".\n *\n * @param image The image to decode\n * @param hints Any hints that were requested\n * @return The contents of the decoded barcode\n * @throws NotFoundException Any spontaneous errors which occur\n */\n OneDReader.prototype.doDecode = function (image, hints) {\n var width = image.getWidth();\n var height = image.getHeight();\n var row = new BitArray_1.default(width);\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\n var rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\n var maxLines;\n if (tryHarder) {\n maxLines = height; // Look at the whole image, not just the center\n }\n else {\n maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image\n }\n var middle = Math.trunc(height / 2);\n for (var x = 0; x < maxLines; x++) {\n // Scanning from the middle out. Determine which row we're looking at next:\n var rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\n var isAbove = (x & 0x01) === 0; // i.e. is x even?\n var rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow);\n if (rowNumber < 0 || rowNumber >= height) {\n // Oops, if we run off the top or bottom, stop\n break;\n }\n // Estimate black point for this row and load it:\n try {\n row = image.getBlackRow(rowNumber, row);\n }\n catch (ignored) {\n continue;\n }\n var _loop_1 = function (attempt) {\n if (attempt === 1) { // trying again?\n row.reverse(); // reverse the row and continue\n // This means we will only ever draw result points *once* in the life of this method\n // since we want to avoid drawing the wrong points after flipping the row, and,\n // don't want to clutter with noise from every single row scan -- just the scans\n // that start on the center line.\n if (hints && (hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK) === true)) {\n var newHints_1 = new Map();\n hints.forEach(function (hint, key) { return newHints_1.set(key, hint); });\n newHints_1.delete(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n hints = newHints_1;\n }\n }\n try {\n // Look for a barcode\n var result = this_1.decodeRow(rowNumber, row, hints);\n // We found our barcode\n if (attempt === 1) {\n // But it was upside down, so note that\n result.putMetadata(ResultMetadataType_1.default.ORIENTATION, 180);\n // And remember to flip the result points horizontally.\n var points = result.getResultPoints();\n if (points !== null) {\n points[0] = new ResultPoint_1.default(width - points[0].getX() - 1, points[0].getY());\n points[1] = new ResultPoint_1.default(width - points[1].getX() - 1, points[1].getY());\n }\n }\n return { value: result };\n }\n catch (re) {\n // continue -- just couldn't decode this row\n }\n };\n var this_1 = this;\n // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to\n // handle decoding upside down barcodes.\n for (var attempt = 0; attempt < 2; attempt++) {\n var state_1 = _loop_1(attempt);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n throw new NotFoundException_1.default();\n };\n /**\n * Records the size of successive runs of white and black pixels in a row, starting at a given point.\n * The values are recorded in the given array, and the number of runs recorded is equal to the size\n * of the array. If the row starts on a white pixel at the given start point, then the first count\n * recorded is the run of white pixels starting from that point; likewise it is the count of a run\n * of black pixels if the row begin on a black pixels at that point.\n *\n * @param row row to count from\n * @param start offset into row to start at\n * @param counters array into which to record counts\n * @throws NotFoundException if counters cannot be filled entirely from row before running out\n * of pixels\n */\n OneDReader.recordPattern = function (row, start, counters) {\n var numCounters = counters.length;\n for (var index = 0; index < numCounters; index++)\n counters[index] = 0;\n var end = row.getSize();\n if (start >= end) {\n throw new NotFoundException_1.default();\n }\n var isWhite = !row.get(start);\n var counterPosition = 0;\n var i = start;\n while (i < end) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (++counterPosition === numCounters) {\n break;\n }\n else {\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n i++;\n }\n // If we read fully the last section of pixels and filled up our counters -- or filled\n // the last counter but ran off the side of the image, OK. Otherwise, a problem.\n if (!(counterPosition === numCounters || (counterPosition === numCounters - 1 && i === end))) {\n throw new NotFoundException_1.default();\n }\n };\n OneDReader.recordPatternInReverse = function (row, start, counters) {\n // This could be more efficient I guess\n var numTransitionsLeft = counters.length;\n var last = row.get(start);\n while (start > 0 && numTransitionsLeft >= 0) {\n if (row.get(--start) !== last) {\n numTransitionsLeft--;\n last = !last;\n }\n }\n if (numTransitionsLeft >= 0) {\n throw new NotFoundException_1.default();\n }\n OneDReader.recordPattern(row, start + 1, counters);\n };\n /**\n * Determines how closely a set of observed counts of runs of black/white values matches a given\n * target pattern. This is reported as the ratio of the total variance from the expected pattern\n * proportions across all pattern elements, to the length of the pattern.\n *\n * @param counters observed counters\n * @param pattern expected pattern\n * @param maxIndividualVariance The most any counter can differ before we give up\n * @return ratio of total variance between counters and pattern compared to total pattern size\n */\n OneDReader.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n var numCounters = counters.length;\n var total = 0;\n var patternLength = 0;\n for (var i = 0; i < numCounters; i++) {\n total += counters[i];\n patternLength += pattern[i];\n }\n if (total < patternLength) {\n // If we don't even have one pixel per unit of bar width, assume this is too small\n // to reliably match, so fail:\n return Number.POSITIVE_INFINITY;\n }\n var unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n var totalVariance = 0.0;\n for (var x = 0; x < numCounters; x++) {\n var counter = counters[x];\n var scaledPattern = pattern[x] * unitBarWidth;\n var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n if (variance > maxIndividualVariance) {\n return Number.POSITIVE_INFINITY;\n }\n totalVariance += variance;\n }\n return totalVariance / total;\n };\n return OneDReader;\n}());\nexports.default = OneDReader;\n//# sourceMappingURL=OneDReader.js.map","module.exports = __webpack_public_path__ + \"img/camera.svg\";","const resolveURL = require('resolve-url');\n\n/**\n * readFromBlobOrFile\n *\n * @name readFromBlobOrFile\n * @function\n * @access private\n */\nconst readFromBlobOrFile = blob => (\n new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result);\n };\n fileReader.onerror = ({ target: { error: { code } } }) => {\n reject(Error(`File could not be read! Code=${code}`));\n };\n fileReader.readAsArrayBuffer(blob);\n })\n);\n\n/**\n * loadImage\n *\n * @name loadImage\n * @function load image from different source\n * @access private\n */\nconst loadImage = async (image) => {\n let data = image;\n if (typeof image === 'undefined') {\n return 'undefined';\n }\n\n if (typeof image === 'string') {\n // Base64 Image\n if (/data:image\\/([a-zA-Z]*);base64,([^\"]*)/.test(image)) {\n data = atob(image.split(',')[1])\n .split('')\n .map(c => c.charCodeAt(0));\n } else {\n const resp = await fetch(resolveURL(image));\n data = await resp.arrayBuffer();\n }\n } else if (image instanceof HTMLElement) {\n if (image.tagName === 'IMG') {\n data = await loadImage(image.src);\n }\n if (image.tagName === 'VIDEO') {\n data = await loadImage(image.poster);\n }\n if (image.tagName === 'CANVAS') {\n await new Promise((resolve) => {\n image.toBlob(async (blob) => {\n data = await readFromBlobOrFile(blob);\n resolve();\n });\n });\n }\n } else if (image instanceof File || image instanceof Blob) {\n data = await readFromBlobOrFile(image);\n }\n\n return new Uint8Array(data);\n};\n\nmodule.exports = loadImage;\n","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.reedsolomon {*/\nvar GenericGF_1 = require(\"./GenericGF\");\nvar System_1 = require(\"../../util/System\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n *Represents a polynomial whose coefficients are elements of a GF.\n * Instances of this class are immutable.
\n *\n *Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.
\n *\n * @author Sean Owen\n */\nvar GenericGFPoly = /** @class */ (function () {\n /**\n * @param field the {@link GenericGF} instance representing the field to use\n * to perform computations\n * @param coefficients coefficients as ints representing elements of GF(size), arranged\n * from most significant (highest-power term) coefficient to least significant\n * @throws IllegalArgumentException if argument is null or empty,\n * or if leading coefficient is 0 and this is not a\n * constant polynomial (that is, it is not the monomial \"0\")\n */\n function GenericGFPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException_1.default();\n }\n this.field = field;\n var coefficientsLength = coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n var firstNonZero = 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = Int32Array.from([0]);\n }\n else {\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n System_1.default.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n GenericGFPoly.prototype.getCoefficients = function () {\n return this.coefficients;\n };\n /**\n * @return degree of this polynomial\n */\n GenericGFPoly.prototype.getDegree = function () {\n return this.coefficients.length - 1;\n };\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n GenericGFPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n GenericGFPoly.prototype.getCoefficient = function (degree /*int*/) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n };\n /**\n * @return evaluation of this polynomial at a given point\n */\n GenericGFPoly.prototype.evaluateAt = function (a /*int*/) {\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n var coefficients = this.coefficients;\n var result;\n if (a === 1) {\n // Just the sum of the coefficients\n result = 0;\n for (var i = 0, length_1 = coefficients.length; i !== length_1; i++) {\n var coefficient = coefficients[i];\n result = GenericGF_1.default.addOrSubtract(result, coefficient);\n }\n return result;\n }\n result = coefficients[0];\n var size = coefficients.length;\n var field = this.field;\n for (var i = 1; i < size; i++) {\n result = GenericGF_1.default.addOrSubtract(field.multiply(a, result), coefficients[i]);\n }\n return result;\n };\n GenericGFPoly.prototype.addOrSubtract = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n var temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n var sumDiff = new Int32Array(largerCoefficients.length);\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System_1.default.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = GenericGF_1.default.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n };\n GenericGFPoly.prototype.multiply = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero() || other.isZero()) {\n return this.field.getZero();\n }\n var aCoefficients = this.coefficients;\n var aLength = aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = bCoefficients.length;\n var product = new Int32Array(aLength + bLength - 1);\n var field = this.field;\n for (var i = 0; i < aLength; i++) {\n var aCoeff = aCoefficients[i];\n for (var j = 0; j < bLength; j++) {\n product[i + j] = GenericGF_1.default.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyScalar = function (scalar /*int*/) {\n if (scalar === 0) {\n return this.field.getZero();\n }\n if (scalar === 1) {\n return this;\n }\n var size = this.coefficients.length;\n var field = this.field;\n var product = new Int32Array(size);\n var coefficients = this.coefficients;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], scalar);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyByMonomial = function (degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException_1.default();\n }\n if (coefficient === 0) {\n return this.field.getZero();\n }\n var coefficients = this.coefficients;\n var size = coefficients.length;\n var product = new Int32Array(size + degree);\n var field = this.field;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], coefficient);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.divide = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\n }\n if (other.isZero()) {\n throw new IllegalArgumentException_1.default('Divide by 0');\n }\n var field = this.field;\n var quotient = field.getZero();\n var remainder = this;\n var denominatorLeadingTerm = other.getCoefficient(other.getDegree());\n var inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n var degreeDifference = remainder.getDegree() - other.getDegree();\n var scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n var term = other.multiplyByMonomial(degreeDifference, scale);\n var iterationQuotient = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.addOrSubtract(iterationQuotient);\n remainder = remainder.addOrSubtract(term);\n }\n return [quotient, remainder];\n };\n /*@Override*/\n GenericGFPoly.prototype.toString = function () {\n var result = '';\n for (var degree = this.getDegree(); degree >= 0; degree--) {\n var coefficient = this.getCoefficient(degree);\n if (coefficient !== 0) {\n if (coefficient < 0) {\n result += ' - ';\n coefficient = -coefficient;\n }\n else {\n if (result.length > 0) {\n result += ' + ';\n }\n }\n if (degree === 0 || coefficient !== 1) {\n var alphaPower = this.field.log(coefficient);\n if (alphaPower === 0) {\n result += '1';\n }\n else if (alphaPower === 1) {\n result += 'a';\n }\n else {\n result += 'a^';\n result += alphaPower;\n }\n }\n if (degree !== 0) {\n if (degree === 1) {\n result += 'x';\n }\n else {\n result += 'x^';\n result += degree;\n }\n }\n }\n }\n return result;\n };\n return GenericGFPoly;\n}());\nexports.default = GenericGFPoly;\n//# sourceMappingURL=GenericGFPoly.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n *Encapsulates information about finder patterns in an image, including the location of\n * the three finder patterns, and their estimated module size.
\n *\n * @author Sean Owen\n */\nvar FinderPatternInfo = /** @class */ (function () {\n function FinderPatternInfo(patternCenters) {\n this.bottomLeft = patternCenters[0];\n this.topLeft = patternCenters[1];\n this.topRight = patternCenters[2];\n }\n FinderPatternInfo.prototype.getBottomLeft = function () {\n return this.bottomLeft;\n };\n FinderPatternInfo.prototype.getTopLeft = function () {\n return this.topLeft;\n };\n FinderPatternInfo.prototype.getTopRight = function () {\n return this.topRight;\n };\n return FinderPatternInfo;\n}());\nexports.default = FinderPatternInfo;\n//# sourceMappingURL=FinderPatternInfo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AbstractRSSReader_1 = require(\"./AbstractRSSReader\");\nvar Pair_1 = require(\"./Pair\");\nvar Result_1 = require(\"../../Result\");\nvar DecodeHintType_1 = require(\"../../DecodeHintType\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\nvar StringBuilder_1 = require(\"../../util/StringBuilder\");\nvar BarcodeFormat_1 = require(\"../../BarcodeFormat\");\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar FinderPattern_1 = require(\"./FinderPattern\");\nvar DataCharacter_1 = require(\"./DataCharacter\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar RSSUtils_1 = require(\"./RSSUtils\");\nvar System_1 = require(\"../../util/System\");\nvar OneDReader_1 = require(\"../OneDReader\");\nvar RSS14Reader = /** @class */ (function (_super) {\n __extends(RSS14Reader, _super);\n function RSS14Reader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.possibleLeftPairs = [];\n _this.possibleRightPairs = [];\n return _this;\n }\n RSS14Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var leftPair = this.decodePair(row, false, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleLeftPairs, leftPair);\n row.reverse();\n var rightPair = this.decodePair(row, true, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleRightPairs, rightPair);\n row.reverse();\n for (var _i = 0, _a = this.possibleLeftPairs; _i < _a.length; _i++) {\n var left = _a[_i];\n if (left.getCount() > 1) {\n for (var _b = 0, _c = this.possibleRightPairs; _b < _c.length; _b++) {\n var right = _c[_b];\n if (right.getCount() > 1 && RSS14Reader.checkChecksum(left, right)) {\n return RSS14Reader.constructResult(left, right);\n }\n }\n }\n }\n throw new NotFoundException_1.default();\n };\n RSS14Reader.addOrTally = function (possiblePairs, pair) {\n if (pair == null) {\n return;\n }\n var found = false;\n for (var _i = 0, possiblePairs_1 = possiblePairs; _i < possiblePairs_1.length; _i++) {\n var other = possiblePairs_1[_i];\n if (other.getValue() === pair.getValue()) {\n other.incrementCount();\n found = true;\n break;\n }\n }\n if (!found) {\n possiblePairs.push(pair);\n }\n };\n RSS14Reader.prototype.reset = function () {\n this.possibleLeftPairs.length = 0;\n this.possibleRightPairs.length = 0;\n };\n RSS14Reader.constructResult = function (leftPair, rightPair) {\n var symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();\n var text = new String(symbolValue).toString();\n var buffer = new StringBuilder_1.default();\n for (var i = 13 - text.length; i > 0; i--) {\n buffer.append('0');\n }\n buffer.append(text);\n var checkDigit = 0;\n for (var i = 0; i < 13; i++) {\n var digit = buffer.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n checkDigit += ((i & 0x01) === 0) ? 3 * digit : digit;\n }\n checkDigit = 10 - (checkDigit % 10);\n if (checkDigit === 10) {\n checkDigit = 0;\n }\n buffer.append(checkDigit.toString());\n var leftPoints = leftPair.getFinderPattern().getResultPoints();\n var rightPoints = rightPair.getFinderPattern().getResultPoints();\n return new Result_1.default(buffer.toString(), null, 0, [leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1]], BarcodeFormat_1.default.RSS_14, new Date().getTime());\n };\n RSS14Reader.checkChecksum = function (leftPair, rightPair) {\n var checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;\n var targetCheckValue = 9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue();\n if (targetCheckValue > 72) {\n targetCheckValue--;\n }\n if (targetCheckValue > 8) {\n targetCheckValue--;\n }\n return checkValue === targetCheckValue;\n };\n RSS14Reader.prototype.decodePair = function (row, right, rowNumber, hints) {\n try {\n var startEnd = this.findFinderPattern(row, right);\n var pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var center = (startEnd[0] + startEnd[1]) / 2.0;\n if (right) {\n // row is actually reversed\n center = row.getSize() - 1 - center;\n }\n resultPointCallback.foundPossibleResultPoint(new ResultPoint_1.default(center, rowNumber));\n }\n var outside = this.decodeDataCharacter(row, pattern, true);\n var inside = this.decodeDataCharacter(row, pattern, false);\n return new Pair_1.default(1597 * outside.getValue() + inside.getValue(), outside.getChecksumPortion() + 4 * inside.getChecksumPortion(), pattern);\n }\n catch (err) {\n return null;\n }\n };\n RSS14Reader.prototype.decodeDataCharacter = function (row, pattern, outsideChar) {\n var counters = this.getDataCharacterCounters();\n for (var x = 0; x < counters.length; x++) {\n counters[x] = 0;\n }\n if (outsideChar) {\n OneDReader_1.default.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n }\n else {\n OneDReader_1.default.recordPattern(row, pattern.getStartEnd()[1] + 1, counters);\n // reverse it\n for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n var temp = counters[i];\n counters[i] = counters[j];\n counters[j] = temp;\n }\n }\n var numModules = outsideChar ? 16 : 15;\n var elementWidth = MathUtils_1.default.sum(new Int32Array(counters)) / numModules;\n var oddCounts = this.getOddCounts();\n var evenCounts = this.getEvenCounts();\n var oddRoundingErrors = this.getOddRoundingErrors();\n var evenRoundingErrors = this.getEvenRoundingErrors();\n for (var i = 0; i < counters.length; i++) {\n var value = counters[i] / elementWidth;\n var count = Math.floor(value + 0.5);\n if (count < 1) {\n count = 1;\n }\n else if (count > 8) {\n count = 8;\n }\n var offset = Math.floor(i / 2);\n if ((i & 0x01) === 0) {\n oddCounts[offset] = count;\n oddRoundingErrors[offset] = value - count;\n }\n else {\n evenCounts[offset] = count;\n evenRoundingErrors[offset] = value - count;\n }\n }\n this.adjustOddEvenCounts(outsideChar, numModules);\n var oddSum = 0;\n var oddChecksumPortion = 0;\n for (var i = oddCounts.length - 1; i >= 0; i--) {\n oddChecksumPortion *= 9;\n oddChecksumPortion += oddCounts[i];\n oddSum += oddCounts[i];\n }\n var evenChecksumPortion = 0;\n var evenSum = 0;\n for (var i = evenCounts.length - 1; i >= 0; i--) {\n evenChecksumPortion *= 9;\n evenChecksumPortion += evenCounts[i];\n evenSum += evenCounts[i];\n }\n var checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;\n if (outsideChar) {\n if ((oddSum & 0x01) !== 0 || oddSum > 12 || oddSum < 4) {\n throw new NotFoundException_1.default();\n }\n var group = (12 - oddSum) / 2;\n var oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils_1.default.getRSSvalue(oddCounts, oddWidest, false);\n var vEven = RSSUtils_1.default.getRSSvalue(evenCounts, evenWidest, true);\n var tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.OUTSIDE_GSUM[group];\n return new DataCharacter_1.default(vOdd * tEven + vEven + gSum, checksumPortion);\n }\n else {\n if ((evenSum & 0x01) !== 0 || evenSum > 10 || evenSum < 4) {\n throw new NotFoundException_1.default();\n }\n var group = (10 - evenSum) / 2;\n var oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils_1.default.getRSSvalue(oddCounts, oddWidest, true);\n var vEven = RSSUtils_1.default.getRSSvalue(evenCounts, evenWidest, false);\n var tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.INSIDE_GSUM[group];\n return new DataCharacter_1.default(vEven * tOdd + vOdd + gSum, checksumPortion);\n }\n };\n RSS14Reader.prototype.findFinderPattern = function (row, rightFinderPattern) {\n var counters = this.getDecodeFinderCounters();\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var width = row.getSize();\n var isWhite = false;\n var rowOffset = 0;\n while (rowOffset < width) {\n isWhite = !row.get(rowOffset);\n if (rightFinderPattern === isWhite) {\n // Will encounter white first when searching for right finder pattern\n break;\n }\n rowOffset++;\n }\n var counterPosition = 0;\n var patternStart = rowOffset;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === 3) {\n if (AbstractRSSReader_1.default.isFinderPattern(counters)) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n counters[0] = counters[2];\n counters[1] = counters[3];\n counters[2] = 0;\n counters[3] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n RSS14Reader.prototype.parseFoundFinderPattern = function (row, rowNumber, right, startEnd) {\n // Actually we found elements 2-5\n var firstIsBlack = row.get(startEnd[0]);\n var firstElementStart = startEnd[0] - 1;\n // Locate element 1\n while (firstElementStart >= 0 && firstIsBlack !== row.get(firstElementStart)) {\n firstElementStart--;\n }\n firstElementStart++;\n var firstCounter = startEnd[0] - firstElementStart;\n // Make 'counters' hold 1-4\n var counters = this.getDecodeFinderCounters();\n var copy = new Array(counters.length);\n System_1.default.arraycopy(counters, 0, copy, 1, counters.length - 1);\n copy[0] = firstCounter;\n var value = this.parseFinderValue(copy, RSS14Reader.FINDER_PATTERNS);\n var start = firstElementStart;\n var end = startEnd[1];\n if (right) {\n // row is actually reversed\n start = row.getSize() - 1 - start;\n end = row.getSize() - 1 - end;\n }\n return new FinderPattern_1.default(value, [firstElementStart, startEnd[1]], start, end, rowNumber);\n };\n RSS14Reader.prototype.adjustOddEvenCounts = function (outsideChar, numModules) {\n var oddSum = MathUtils_1.default.sum(new Int32Array(this.getOddCounts()));\n var evenSum = MathUtils_1.default.sum(new Int32Array(this.getEvenCounts()));\n var incrementOdd = false;\n var decrementOdd = false;\n var incrementEven = false;\n var decrementEven = false;\n if (outsideChar) {\n if (oddSum > 12) {\n decrementOdd = true;\n }\n else if (oddSum < 4) {\n incrementOdd = true;\n }\n if (evenSum > 12) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n else {\n if (oddSum > 11) {\n decrementOdd = true;\n }\n else if (oddSum < 5) {\n incrementOdd = true;\n }\n if (evenSum > 10) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n var mismatch = oddSum + evenSum - numModules;\n var oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);\n var evenParityBad = (evenSum & 0x01) === 1;\n if (mismatch === 1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n decrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n decrementEven = true;\n }\n }\n else if (mismatch === -1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n incrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n incrementEven = true;\n }\n }\n else if (mismatch === 0) {\n if (oddParityBad) {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n // Both bad\n if (oddSum < evenSum) {\n incrementOdd = true;\n decrementEven = true;\n }\n else {\n decrementOdd = true;\n incrementEven = true;\n }\n }\n else {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n // Nothing to do!\n }\n }\n else {\n throw new NotFoundException_1.default();\n }\n if (incrementOdd) {\n if (decrementOdd) {\n throw new NotFoundException_1.default();\n }\n AbstractRSSReader_1.default.increment(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (decrementOdd) {\n AbstractRSSReader_1.default.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (incrementEven) {\n if (decrementEven) {\n throw new NotFoundException_1.default();\n }\n AbstractRSSReader_1.default.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n }\n if (decrementEven) {\n AbstractRSSReader_1.default.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n }\n };\n RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET = [1, 10, 34, 70, 126];\n RSS14Reader.INSIDE_ODD_TOTAL_SUBSET = [4, 20, 48, 81];\n RSS14Reader.OUTSIDE_GSUM = [0, 161, 961, 2015, 2715];\n RSS14Reader.INSIDE_GSUM = [0, 336, 1036, 1516];\n RSS14Reader.OUTSIDE_ODD_WIDEST = [8, 6, 4, 3, 1];\n RSS14Reader.INSIDE_ODD_WIDEST = [2, 4, 6, 8];\n RSS14Reader.FINDER_PATTERNS = [\n [3, 8, 2, 1],\n [3, 5, 5, 1],\n [3, 3, 7, 1],\n [3, 1, 9, 1],\n [2, 7, 4, 1],\n [2, 5, 6, 1],\n [2, 3, 8, 1],\n [1, 5, 7, 1],\n [1, 3, 9, 1],\n ];\n return RSS14Reader;\n}(AbstractRSSReader_1.default));\nexports.default = RSS14Reader;\n//# sourceMappingURL=RSS14Reader.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n *Encapsulates a block of data within a QR Code. QR Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.
\n *\n * @author Sean Owen\n */\nvar DataBlock = /** @class */ (function () {\n function DataBlock(numDataCodewords /*int*/, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *When QR Codes use multiple data blocks, they are actually interleaved.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.
\n *\n * @param rawCodewords bytes as read directly from the QR Code\n * @param version version of the QR Code\n * @param ecLevel error-correction level of the QR Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * QR Code\n */\n DataBlock.getDataBlocks = function (rawCodewords, version, ecLevel) {\n if (rawCodewords.length !== version.getTotalCodewords()) {\n throw new IllegalArgumentException_1.default();\n }\n // Figure out the number and size of data blocks used by this version and\n // error correction level\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n // First count the total number of data blocks\n var totalBlocks = 0;\n var ecBlockArray = ecBlocks.getECBlocks();\n for (var _i = 0, ecBlockArray_1 = ecBlockArray; _i < ecBlockArray_1.length; _i++) {\n var ecBlock = ecBlockArray_1[_i];\n totalBlocks += ecBlock.getCount();\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n var result = new Array(totalBlocks);\n var numResultBlocks = 0;\n for (var _a = 0, ecBlockArray_2 = ecBlockArray; _a < ecBlockArray_2.length; _a++) {\n var ecBlock = ecBlockArray_2[_a];\n for (var i = 0; i < ecBlock.getCount(); i++) {\n var numDataCodewords = ecBlock.getDataCodewords();\n var numBlockCodewords = ecBlocks.getECCodewordsPerBlock() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 more byte. Figure out where these start.\n var shorterBlocksTotalCodewords = result[0].codewords.length;\n var longerBlocksStartAt = result.length - 1;\n // TYPESCRIPTPORT: check length is correct here\n while (longerBlocksStartAt >= 0) {\n var numCodewords = result[longerBlocksStartAt].codewords.length;\n if (numCodewords === shorterBlocksTotalCodewords) {\n break;\n }\n longerBlocksStartAt--;\n }\n longerBlocksStartAt++;\n var shorterBlocksNumDataCodewords = shorterBlocksTotalCodewords - ecBlocks.getECCodewordsPerBlock();\n // The last elements of result may be 1 element longer\n // first fill out as many elements as all of them have\n var rawCodewordsOffset = 0;\n for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n for (var j = longerBlocksStartAt; j < numResultBlocks; j++) {\n result[j].codewords[shorterBlocksNumDataCodewords] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n var max = result[0].codewords.length;\n for (var i = shorterBlocksNumDataCodewords; i < max; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n var iOffset = j < longerBlocksStartAt ? i : i + 1;\n result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n return result;\n };\n DataBlock.prototype.getNumDataCodewords = function () {\n return this.numDataCodewords;\n };\n DataBlock.prototype.getCodewords = function () {\n return this.codewords;\n };\n return DataBlock;\n}());\nexports.default = DataBlock;\n//# sourceMappingURL=DataBlock.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n *Implements decoding of the EAN-13 format.
\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar EAN13Reader = /** @class */ (function (_super) {\n __extends(EAN13Reader, _super);\n function EAN13Reader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = [0, 0, 0, 0];\n return _this;\n }\n EAN13Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var lgPatternFound = 0;\n for (var x = 0; x < 6 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (5 - x);\n }\n }\n resultString = EAN13Reader.determineFirstDigit(resultString, lgPatternFound);\n var middleRange = UPCEANReader_1.default.findGuardPattern(row, rowOffset, true, UPCEANReader_1.default.MIDDLE_PATTERN, new Array(UPCEANReader_1.default.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (var x = 0; x < 6 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (var _a = 0, counters_2 = counters; _a < counters_2.length; _a++) {\n var counter = counters_2[_a];\n rowOffset += counter;\n }\n }\n return { rowOffset: rowOffset, resultString: resultString };\n };\n EAN13Reader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat_1.default.EAN_13;\n };\n EAN13Reader.determineFirstDigit = function (resultString, lgPatternFound) {\n for (var d = 0; d < 10; d++) {\n if (lgPatternFound === this.FIRST_DIGIT_ENCODINGS[d]) {\n resultString = String.fromCharCode(('0'.charCodeAt(0) + d)) + resultString;\n return resultString;\n }\n }\n throw new NotFoundException_1.default();\n };\n EAN13Reader.FIRST_DIGIT_ENCODINGS = [0x00, 0x0B, 0x0D, 0xE, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A];\n return EAN13Reader;\n}(UPCEANReader_1.default));\nexports.default = EAN13Reader;\n//# sourceMappingURL=EAN13Reader.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserCodeReader_1 = require(\"./BrowserCodeReader\");\nvar MultiFormatOneDReader_1 = require(\"../core/oned/MultiFormatOneDReader\");\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Barcode reader reader to use from browser.\n */\nvar BrowserBarcodeReader = /** @class */ (function (_super) {\n __extends(BrowserBarcodeReader, _super);\n /**\n * Creates an instance of BrowserBarcodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n * @param {MapEncapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.
\n */\nvar ECBlocks = /** @class */ (function () {\n function ECBlocks(ecCodewordsPerBlock /*int*/) {\n var ecBlocks = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n ecBlocks[_i - 1] = arguments[_i];\n }\n this.ecCodewordsPerBlock = ecCodewordsPerBlock;\n this.ecBlocks = ecBlocks;\n }\n ECBlocks.prototype.getECCodewordsPerBlock = function () {\n return this.ecCodewordsPerBlock;\n };\n ECBlocks.prototype.getNumBlocks = function () {\n var total = 0;\n var ecBlocks = this.ecBlocks;\n for (var _i = 0, ecBlocks_1 = ecBlocks; _i < ecBlocks_1.length; _i++) {\n var ecBlock = ecBlocks_1[_i];\n total += ecBlock.getCount();\n }\n return total;\n };\n ECBlocks.prototype.getTotalECCodewords = function () {\n return this.ecCodewordsPerBlock * this.getNumBlocks();\n };\n ECBlocks.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n return ECBlocks;\n}());\nexports.default = ECBlocks;\n//# sourceMappingURL=ECBlocks.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar WriterException = /** @class */ (function (_super) {\n __extends(WriterException, _super);\n function WriterException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return WriterException;\n}(Exception_1.default));\nexports.default = WriterException;\n//# sourceMappingURL=WriterException.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\nvar ModeValues;\n(function (ModeValues) {\n ModeValues[ModeValues[\"TERMINATOR\"] = 0] = \"TERMINATOR\";\n ModeValues[ModeValues[\"NUMERIC\"] = 1] = \"NUMERIC\";\n ModeValues[ModeValues[\"ALPHANUMERIC\"] = 2] = \"ALPHANUMERIC\";\n ModeValues[ModeValues[\"STRUCTURED_APPEND\"] = 3] = \"STRUCTURED_APPEND\";\n ModeValues[ModeValues[\"BYTE\"] = 4] = \"BYTE\";\n ModeValues[ModeValues[\"ECI\"] = 5] = \"ECI\";\n ModeValues[ModeValues[\"KANJI\"] = 6] = \"KANJI\";\n ModeValues[ModeValues[\"FNC1_FIRST_POSITION\"] = 7] = \"FNC1_FIRST_POSITION\";\n ModeValues[ModeValues[\"FNC1_SECOND_POSITION\"] = 8] = \"FNC1_SECOND_POSITION\";\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n ModeValues[ModeValues[\"HANZI\"] = 9] = \"HANZI\";\n})(ModeValues = exports.ModeValues || (exports.ModeValues = {}));\n/**\n *See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which\n * data can be encoded to bits in the QR code standard.
\n *\n * @author Sean Owen\n */\nvar Mode = /** @class */ (function () {\n function Mode(value, stringValue, characterCountBitsForVersions, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.characterCountBitsForVersions = characterCountBitsForVersions;\n this.bits = bits;\n Mode.FOR_BITS.set(bits, this);\n Mode.FOR_VALUE.set(value, this);\n }\n /**\n * @param bits four bits encoding a QR Code data mode\n * @return Mode encoded by these bits\n * @throws IllegalArgumentException if bits do not correspond to a known mode\n */\n Mode.forBits = function (bits /*int*/) {\n var mode = Mode.FOR_BITS.get(bits);\n if (undefined === mode) {\n throw new IllegalArgumentException_1.default();\n }\n return mode;\n };\n /**\n * @param version version in question\n * @return number of bits used, in this QR Code symbol {@link Version}, to encode the\n * count of characters that will follow encoded in this Mode\n */\n Mode.prototype.getCharacterCountBits = function (version) {\n var versionNumber = version.getVersionNumber();\n var offset;\n if (versionNumber <= 9) {\n offset = 0;\n }\n else if (versionNumber <= 26) {\n offset = 1;\n }\n else {\n offset = 2;\n }\n return this.characterCountBitsForVersions[offset];\n };\n Mode.prototype.getValue = function () {\n return this.value;\n };\n Mode.prototype.getBits = function () {\n return this.bits;\n };\n Mode.prototype.equals = function (o) {\n if (!(o instanceof Mode)) {\n return false;\n }\n var other = o;\n return this.value === other.value;\n };\n Mode.prototype.toString = function () {\n return this.stringValue;\n };\n Mode.FOR_BITS = new Map();\n Mode.FOR_VALUE = new Map();\n Mode.TERMINATOR = new Mode(ModeValues.TERMINATOR, 'TERMINATOR', Int32Array.from([0, 0, 0]), 0x00); // Not really a mode...\n Mode.NUMERIC = new Mode(ModeValues.NUMERIC, 'NUMERIC', Int32Array.from([10, 12, 14]), 0x01);\n Mode.ALPHANUMERIC = new Mode(ModeValues.ALPHANUMERIC, 'ALPHANUMERIC', Int32Array.from([9, 11, 13]), 0x02);\n Mode.STRUCTURED_APPEND = new Mode(ModeValues.STRUCTURED_APPEND, 'STRUCTURED_APPEND', Int32Array.from([0, 0, 0]), 0x03); // Not supported\n Mode.BYTE = new Mode(ModeValues.BYTE, 'BYTE', Int32Array.from([8, 16, 16]), 0x04);\n Mode.ECI = new Mode(ModeValues.ECI, 'ECI', Int32Array.from([0, 0, 0]), 0x07); // character counts don't apply\n Mode.KANJI = new Mode(ModeValues.KANJI, 'KANJI', Int32Array.from([8, 10, 12]), 0x08);\n Mode.FNC1_FIRST_POSITION = new Mode(ModeValues.FNC1_FIRST_POSITION, 'FNC1_FIRST_POSITION', Int32Array.from([0, 0, 0]), 0x05);\n Mode.FNC1_SECOND_POSITION = new Mode(ModeValues.FNC1_SECOND_POSITION, 'FNC1_SECOND_POSITION', Int32Array.from([0, 0, 0]), 0x09);\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n Mode.HANZI = new Mode(ModeValues.HANZI, 'HANZI', Int32Array.from([8, 10, 12]), 0x0D);\n return Mode;\n}());\nexports.default = Mode;\n//# sourceMappingURL=Mode.js.map","const createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\n\nlet schedulerCounter = 0;\n\nmodule.exports = () => {\n const id = getId('Scheduler', schedulerCounter);\n const workers = {};\n const runningWorkers = {};\n let jobQueue = [];\n\n schedulerCounter += 1;\n\n const getQueueLen = () => jobQueue.length;\n const getNumWorkers = () => Object.keys(workers).length;\n\n const dequeue = () => {\n if (jobQueue.length !== 0) {\n const wIds = Object.keys(workers);\n for (let i = 0; i < wIds.length; i += 1) {\n if (typeof runningWorkers[wIds[i]] === 'undefined') {\n jobQueue[0](workers[wIds[i]]);\n break;\n }\n }\n }\n };\n\n const queue = (action, payload) => (\n new Promise((resolve, reject) => {\n const job = createJob({ action, payload });\n jobQueue.push(async (w) => {\n jobQueue.shift();\n runningWorkers[w.id] = job;\n try {\n resolve(await w[action].apply(this, [...payload, job.id]));\n } catch (err) {\n reject(err);\n } finally {\n delete runningWorkers[w.id];\n dequeue();\n }\n });\n log(`[${id}]: Add ${job.id} to JobQueue`);\n log(`[${id}]: JobQueue length=${jobQueue.length}`);\n dequeue();\n })\n );\n\n const addWorker = (w) => {\n workers[w.id] = w;\n log(`[${id}]: Add ${w.id}`);\n log(`[${id}]: Number of workers=${getNumWorkers()}`);\n dequeue();\n return w.id;\n };\n\n const addJob = async (action, ...payload) => {\n if (getNumWorkers() === 0) {\n throw Error(`[${id}]: You need to have at least one worker before adding jobs`);\n }\n return queue(action, payload);\n };\n\n const terminate = async () => {\n Object.keys(workers).forEach(async (wid) => {\n await workers[wid].terminate();\n });\n jobQueue = [];\n };\n\n return {\n addWorker,\n addJob,\n terminate,\n getQueueLen,\n getNumWorkers,\n };\n};\n","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\nrequire(\"./InvertedLuminanceSource\"); // required because of circular dependencies between LuminanceSource and InvertedLuminanceSource\nvar InvertedLuminanceSource_1 = require(\"./InvertedLuminanceSource\");\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\nvar System_1 = require(\"./util/System\");\nvar IllegalArgumentException_1 = require(\"./IllegalArgumentException\");\n/**\n * This class is used to help decode images from files which arrive as RGB data from\n * an ARGB pixel array. It does not support rotation.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Betaminos\n */\nvar RGBLuminanceSource = /** @class */ (function (_super) {\n __extends(RGBLuminanceSource, _super);\n function RGBLuminanceSource(luminances, width /*int*/, height /*int*/, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/) {\n var _this = _super.call(this, width, height) || this;\n _this.dataWidth = dataWidth;\n _this.dataHeight = dataHeight;\n _this.left = left;\n _this.top = top;\n if (luminances.BYTES_PER_ELEMENT === 4) { // Int32Array\n var size = width * height;\n var luminancesUint8Array = new Uint8ClampedArray(size);\n for (var offset = 0; offset < size; offset++) {\n var pixel = luminances[offset];\n var r = (pixel >> 16) & 0xff; // red\n var g2 = (pixel >> 7) & 0x1fe; // 2 * green\n var b = pixel & 0xff; // blue\n // Calculate green-favouring average cheaply\n luminancesUint8Array[offset] = /*(byte) */ ((r + g2 + b) / 4) & 0xFF;\n }\n _this.luminances = luminancesUint8Array;\n }\n else {\n _this.luminances = luminances;\n }\n if (undefined === dataWidth) {\n _this.dataWidth = width;\n }\n if (undefined === dataHeight) {\n _this.dataHeight = height;\n }\n if (undefined === left) {\n _this.left = 0;\n }\n if (undefined === top) {\n _this.top = 0;\n }\n if (_this.left + width > _this.dataWidth || _this.top + height > _this.dataHeight) {\n throw new IllegalArgumentException_1.default('Crop rectangle does not fit within image data.');\n }\n return _this;\n }\n /*@Override*/\n RGBLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException_1.default('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n if (row === null || row === undefined || row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n var offset = (y + this.top) * this.dataWidth + this.left;\n System_1.default.arraycopy(this.luminances, offset, row, 0, width);\n return row;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.getMatrix = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n // If the caller asks for the entire underlying image, save the copy and give them the\n // original data. The docs specifically warn that result.length must be ignored.\n if (width === this.dataWidth && height === this.dataHeight) {\n return this.luminances;\n }\n var area = width * height;\n var matrix = new Uint8ClampedArray(area);\n var inputOffset = this.top * this.dataWidth + this.left;\n // If the width matches the full width of the underlying data, perform a single copy.\n if (width === this.dataWidth) {\n System_1.default.arraycopy(this.luminances, inputOffset, matrix, 0, area);\n return matrix;\n }\n // Otherwise copy one cropped row at a time.\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n System_1.default.arraycopy(this.luminances, inputOffset, matrix, outputOffset, width);\n inputOffset += this.dataWidth;\n }\n return matrix;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new RGBLuminanceSource(this.luminances, width, height, this.dataWidth, this.dataHeight, this.left + left, this.top + top);\n };\n RGBLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource_1.default(this);\n };\n return RGBLuminanceSource;\n}(LuminanceSource_1.default));\nexports.default = RGBLuminanceSource;\n//# sourceMappingURL=RGBLuminanceSource.js.map","\"use strict\";\n/*\n * Copyright (C) 2012 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\nvar Result_1 = require(\"../Result\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n * @see UPCEANExtension5Support\n */\nvar UPCEANExtension2Support = /** @class */ (function () {\n function UPCEANExtension2Support() {\n this.decodeMiddleCounters = [0, 0, 0, 0];\n this.decodeRowStringBuffer = '';\n }\n UPCEANExtension2Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n var result = this.decodeRowStringBuffer;\n var end = this.decodeMiddle(row, extensionStartRange, result);\n var resultString = result.toString();\n var extensionData = UPCEANExtension2Support.parseExtensionString(resultString);\n var resultPoints = [\n new ResultPoint_1.default((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint_1.default(end, rowNumber)\n ];\n var extensionResult = new Result_1.default(resultString, null, 0, resultPoints, BarcodeFormat_1.default.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n };\n UPCEANExtension2Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var checkParity = 0;\n for (var x = 0; x < 2 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n checkParity |= 1 << (1 - x);\n }\n if (x !== 1) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 2) {\n throw new NotFoundException_1.default();\n }\n if (parseInt(resultString.toString()) % 4 !== checkParity) {\n throw new NotFoundException_1.default();\n }\n return rowOffset;\n };\n UPCEANExtension2Support.parseExtensionString = function (raw) {\n if (raw.length !== 2) {\n return null;\n }\n return new Map([[ResultMetadataType_1.default.ISSUE_NUMBER, parseInt(raw)]]);\n };\n return UPCEANExtension2Support;\n}());\nexports.default = UPCEANExtension2Support;\n//# sourceMappingURL=UPCEANExtension2Support.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\nvar Binarizer_1 = require(\"../Binarizer\");\nvar BitArray_1 = require(\"./BitArray\");\nvar BitMatrix_1 = require(\"./BitMatrix\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n * This Binarizer implementation uses the old ZXing global histogram approach. It is suitable\n * for low-end mobile devices which don't have enough CPU or memory to use a local thresholding\n * algorithm. However, because it picks a global black point, it cannot handle difficult shadows\n * and gradients.\n *\n * Faster mobile devices and all desktop applications should probably use HybridBinarizer instead.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar GlobalHistogramBinarizer = /** @class */ (function (_super) {\n __extends(GlobalHistogramBinarizer, _super);\n function GlobalHistogramBinarizer(source) {\n var _this = _super.call(this, source) || this;\n _this.luminances = GlobalHistogramBinarizer.EMPTY;\n _this.buckets = new Int32Array(GlobalHistogramBinarizer.LUMINANCE_BUCKETS);\n return _this;\n }\n // Applies simple sharpening to the row data to improve performance of the 1D Readers.\n /*@Override*/\n GlobalHistogramBinarizer.prototype.getBlackRow = function (y /*int*/, row) {\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n if (row === undefined || row === null || row.getSize() < width) {\n row = new BitArray_1.default(width);\n }\n else {\n row.clear();\n }\n this.initArrays(width);\n var localLuminances = source.getRow(y, this.luminances);\n var localBuckets = this.buckets;\n for (var x = 0; x < width; x++) {\n localBuckets[(localLuminances[x] & 0xff) >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n if (width < 3) {\n // Special case for very small images\n for (var x = 0; x < width; x++) {\n if ((localLuminances[x] & 0xff) < blackPoint) {\n row.set(x);\n }\n }\n }\n else {\n var left = localLuminances[0] & 0xff;\n var center = localLuminances[1] & 0xff;\n for (var x = 1; x < width - 1; x++) {\n var right = localLuminances[x + 1] & 0xff;\n // A simple -1 4 -1 box filter with a weight of 2.\n if (((center * 4) - left - right) / 2 < blackPoint) {\n row.set(x);\n }\n left = center;\n center = right;\n }\n }\n return row;\n };\n // Does not sharpen the data, as this call is intended to only be used by 2D Readers.\n /*@Override*/\n GlobalHistogramBinarizer.prototype.getBlackMatrix = function () {\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n var height = source.getHeight();\n var matrix = new BitMatrix_1.default(width, height);\n // Quickly calculates the histogram by sampling four rows from the image. This proved to be\n // more robust on the blackbox tests than sampling a diagonal as we used to do.\n this.initArrays(width);\n var localBuckets = this.buckets;\n for (var y = 1; y < 5; y++) {\n var row = height * y / 5;\n var localLuminances_1 = source.getRow(row, this.luminances);\n var right = Math.floor((width * 4) / 5);\n for (var x = Math.floor(width / 5); x < right; x++) {\n var pixel = localLuminances_1[x] & 0xff;\n localBuckets[pixel >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n }\n var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n // We delay reading the entire image luminance until the black point estimation succeeds.\n // Although we end up reading four rows twice, it is consistent with our motto of\n // \"fail quickly\" which is necessary for continuous scanning.\n var localLuminances = source.getMatrix();\n for (var y = 0; y < height; y++) {\n var offset = y * width;\n for (var x = 0; x < width; x++) {\n var pixel = localLuminances[offset + x] & 0xff;\n if (pixel < blackPoint) {\n matrix.set(x, y);\n }\n }\n }\n return matrix;\n };\n /*@Override*/\n GlobalHistogramBinarizer.prototype.createBinarizer = function (source) {\n return new GlobalHistogramBinarizer(source);\n };\n GlobalHistogramBinarizer.prototype.initArrays = function (luminanceSize /*int*/) {\n if (this.luminances.length < luminanceSize) {\n this.luminances = new Uint8ClampedArray(luminanceSize);\n }\n var buckets = this.buckets;\n for (var x = 0; x < GlobalHistogramBinarizer.LUMINANCE_BUCKETS; x++) {\n buckets[x] = 0;\n }\n };\n GlobalHistogramBinarizer.estimateBlackPoint = function (buckets) {\n // Find the tallest peak in the histogram.\n var numBuckets = buckets.length;\n var maxBucketCount = 0;\n var firstPeak = 0;\n var firstPeakSize = 0;\n for (var x = 0; x < numBuckets; x++) {\n if (buckets[x] > firstPeakSize) {\n firstPeak = x;\n firstPeakSize = buckets[x];\n }\n if (buckets[x] > maxBucketCount) {\n maxBucketCount = buckets[x];\n }\n }\n // Find the second-tallest peak which is somewhat far from the tallest peak.\n var secondPeak = 0;\n var secondPeakScore = 0;\n for (var x = 0; x < numBuckets; x++) {\n var distanceToBiggest = x - firstPeak;\n // Encourage more distant second peaks by multiplying by square of distance.\n var score = buckets[x] * distanceToBiggest * distanceToBiggest;\n if (score > secondPeakScore) {\n secondPeak = x;\n secondPeakScore = score;\n }\n }\n // Make sure firstPeak corresponds to the black peak.\n if (firstPeak > secondPeak) {\n var temp = firstPeak;\n firstPeak = secondPeak;\n secondPeak = temp;\n }\n // If there is too little contrast in the image to pick a meaningful black point, throw rather\n // than waste time trying to decode the image, and risk false positives.\n if (secondPeak - firstPeak <= numBuckets / 16) {\n throw new NotFoundException_1.default();\n }\n // Find a valley between them that is low and closer to the white peak.\n var bestValley = secondPeak - 1;\n var bestValleyScore = -1;\n for (var x = secondPeak - 1; x > firstPeak; x--) {\n var fromFirst = x - firstPeak;\n var score = fromFirst * fromFirst * (secondPeak - x) * (maxBucketCount - buckets[x]);\n if (score > bestValleyScore) {\n bestValley = x;\n bestValleyScore = score;\n }\n }\n return bestValley << GlobalHistogramBinarizer.LUMINANCE_SHIFT;\n };\n GlobalHistogramBinarizer.LUMINANCE_BITS = 5;\n GlobalHistogramBinarizer.LUMINANCE_SHIFT = 8 - GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.LUMINANCE_BUCKETS = 1 << GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.EMPTY = Uint8ClampedArray.from([0]);\n return GlobalHistogramBinarizer;\n}(Binarizer_1.default));\nexports.default = GlobalHistogramBinarizer;\n//# sourceMappingURL=GlobalHistogramBinarizer.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar EncodeHintType_1 = require(\"../../EncodeHintType\");\nvar BitArray_1 = require(\"../../common/BitArray\");\nvar CharacterSetECI_1 = require(\"../../common/CharacterSetECI\");\nvar GenericGF_1 = require(\"../../common/reedsolomon/GenericGF\");\nvar ReedSolomonEncoder_1 = require(\"../../common/reedsolomon/ReedSolomonEncoder\");\nvar Mode_1 = require(\"../decoder/Mode\");\nvar Version_1 = require(\"../decoder/Version\");\nvar MaskUtil_1 = require(\"./MaskUtil\");\nvar ByteMatrix_1 = require(\"./ByteMatrix\");\nvar QRCode_1 = require(\"./QRCode\");\nvar MatrixUtil_1 = require(\"./MatrixUtil\");\nvar StringEncoding_1 = require(\"../../util/StringEncoding\");\nvar BlockPair_1 = require(\"./BlockPair\");\nvar WriterException_1 = require(\"../../WriterException\");\n/*import java.io.UnsupportedEncodingException;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collection;*/\n/*import java.util.Map;*/\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar Encoder = /** @class */ (function () {\n // TYPESCRIPTPORT: changed to UTF8, the default for js\n function Encoder() {\n }\n // The mask penalty calculation is complicated. See Table 21 of JISX0510:2004 (p.45) for details.\n // Basically it applies four rules and summate all penalties.\n Encoder.calculateMaskPenalty = function (matrix) {\n return MaskUtil_1.default.applyMaskPenaltyRule1(matrix)\n + MaskUtil_1.default.applyMaskPenaltyRule2(matrix)\n + MaskUtil_1.default.applyMaskPenaltyRule3(matrix)\n + MaskUtil_1.default.applyMaskPenaltyRule4(matrix);\n };\n /**\n * @param content text to encode\n * @param ecLevel error correction level to use\n * @return {@link QRCode} representing the encoded QR code\n * @throws WriterException if encoding can't succeed, because of for example invalid content\n * or configuration\n */\n // public static encode(content: string, ecLevel: ErrorCorrectionLevel): QRCode /*throws WriterException*/ {\n // return encode(content, ecLevel, null)\n // }\n Encoder.encode = function (content, ecLevel, hints) {\n if (hints === void 0) { hints = null; }\n // Determine what character encoding has been specified by the caller, if any\n var encoding = Encoder.DEFAULT_BYTE_MODE_ENCODING;\n var hasEncodingHint = hints !== null && undefined !== hints.get(EncodeHintType_1.default.CHARACTER_SET);\n if (hasEncodingHint) {\n encoding = hints.get(EncodeHintType_1.default.CHARACTER_SET).toString();\n }\n // Pick an encoding mode appropriate for the content. Note that this will not attempt to use\n // multiple modes / segments even if that were more efficient. Twould be nice.\n var mode = this.chooseMode(content, encoding);\n // This will store the header information, like mode and\n // length, as well as \"header\" segments like an ECI segment.\n var headerBits = new BitArray_1.default();\n // Append ECI segment if applicable\n if (mode === Mode_1.default.BYTE && (hasEncodingHint || Encoder.DEFAULT_BYTE_MODE_ENCODING !== encoding)) {\n var eci = CharacterSetECI_1.default.getCharacterSetECIByName(encoding);\n if (eci !== undefined) {\n this.appendECI(eci, headerBits);\n }\n }\n // (With ECI in place,) Write the mode marker\n this.appendModeInfo(mode, headerBits);\n // Collect data within the main segment, separately, to count its size if needed. Don't add it to\n // main payload yet.\n var dataBits = new BitArray_1.default();\n this.appendBytes(content, mode, dataBits, encoding);\n var version;\n if (hints !== null && undefined !== hints.get(EncodeHintType_1.default.QR_VERSION)) {\n var versionNumber = Number.parseInt(hints.get(EncodeHintType_1.default.QR_VERSION).toString(), 10);\n version = Version_1.default.getVersionForNumber(versionNumber);\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, version);\n if (!this.willFit(bitsNeeded, version, ecLevel)) {\n throw new WriterException_1.default('Data too big for requested version');\n }\n }\n else {\n version = this.recommendVersion(ecLevel, mode, headerBits, dataBits);\n }\n var headerAndDataBits = new BitArray_1.default();\n headerAndDataBits.appendBitArray(headerBits);\n // Find \"length\" of main segment and write it\n var numLetters = mode === Mode_1.default.BYTE ? dataBits.getSizeInBytes() : content.length;\n this.appendLengthInfo(numLetters, version, mode, headerAndDataBits);\n // Put data together into the overall payload\n headerAndDataBits.appendBitArray(dataBits);\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n var numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords();\n // Terminate the bits properly.\n this.terminateBits(numDataBytes, headerAndDataBits);\n // Interleave data bits with error correction code.\n var finalBits = this.interleaveWithECBytes(headerAndDataBits, version.getTotalCodewords(), numDataBytes, ecBlocks.getNumBlocks());\n var qrCode = new QRCode_1.default();\n qrCode.setECLevel(ecLevel);\n qrCode.setMode(mode);\n qrCode.setVersion(version);\n // Choose the mask pattern and set to \"qrCode\".\n var dimension = version.getDimensionForVersion();\n var matrix = new ByteMatrix_1.default(dimension, dimension);\n var maskPattern = this.chooseMaskPattern(finalBits, ecLevel, version, matrix);\n qrCode.setMaskPattern(maskPattern);\n // Build the matrix and set it to \"qrCode\".\n MatrixUtil_1.default.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix);\n qrCode.setMatrix(matrix);\n return qrCode;\n };\n /**\n * Decides the smallest version of QR code that will contain all of the provided data.\n *\n * @throws WriterException if the data cannot fit in any version\n */\n Encoder.recommendVersion = function (ecLevel, mode, headerBits, dataBits) {\n // Hard part: need to know version to know how many bits length takes. But need to know how many\n // bits it takes to know version. First we take a guess at version by assuming version will be\n // the minimum, 1:\n var provisionalBitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, Version_1.default.getVersionForNumber(1));\n var provisionalVersion = this.chooseVersion(provisionalBitsNeeded, ecLevel);\n // Use that guess to calculate the right version. I am still not sure this works in 100% of cases.\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, provisionalVersion);\n return this.chooseVersion(bitsNeeded, ecLevel);\n };\n Encoder.calculateBitsNeeded = function (mode, headerBits, dataBits, version) {\n return headerBits.getSize() + mode.getCharacterCountBits(version) + dataBits.getSize();\n };\n /**\n * @return the code point of the table used in alphanumeric mode or\n * -1 if there is no corresponding code in the table.\n */\n Encoder.getAlphanumericCode = function (code /*int*/) {\n if (code < Encoder.ALPHANUMERIC_TABLE.length) {\n return Encoder.ALPHANUMERIC_TABLE[code];\n }\n return -1;\n };\n // public static chooseMode(content: string): Mode {\n // return chooseMode(content, null);\n // }\n /**\n * Choose the best mode by examining the content. Note that 'encoding' is used as a hint;\n * if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}.\n */\n Encoder.chooseMode = function (content, encoding) {\n if (encoding === void 0) { encoding = null; }\n if (CharacterSetECI_1.default.SJIS.getName() === encoding && this.isOnlyDoubleByteKanji(content)) {\n // Choose Kanji mode if all input are double-byte characters\n return Mode_1.default.KANJI;\n }\n var hasNumeric = false;\n var hasAlphanumeric = false;\n for (var i = 0, length_1 = content.length; i < length_1; ++i) {\n var c = content.charAt(i);\n if (Encoder.isDigit(c)) {\n hasNumeric = true;\n }\n else if (this.getAlphanumericCode(c.charCodeAt(0)) !== -1) {\n hasAlphanumeric = true;\n }\n else {\n return Mode_1.default.BYTE;\n }\n }\n if (hasAlphanumeric) {\n return Mode_1.default.ALPHANUMERIC;\n }\n if (hasNumeric) {\n return Mode_1.default.NUMERIC;\n }\n return Mode_1.default.BYTE;\n };\n Encoder.isOnlyDoubleByteKanji = function (content) {\n var bytes;\n try {\n bytes = StringEncoding_1.default.encode(content, CharacterSetECI_1.default.SJIS); // content.getBytes(\"Shift_JIS\"))\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n return false;\n }\n var length = bytes.length;\n if (length % 2 !== 0) {\n return false;\n }\n for (var i = 0; i < length; i += 2) {\n var byte1 = bytes[i] & 0xFF;\n if ((byte1 < 0x81 || byte1 > 0x9F) && (byte1 < 0xE0 || byte1 > 0xEB)) {\n return false;\n }\n }\n return true;\n };\n Encoder.chooseMaskPattern = function (bits, ecLevel, version, matrix) {\n var minPenalty = Number.MAX_SAFE_INTEGER; // Lower penalty is better.\n var bestMaskPattern = -1;\n // We try all mask patterns to choose the best one.\n for (var maskPattern = 0; maskPattern < QRCode_1.default.NUM_MASK_PATTERNS; maskPattern++) {\n MatrixUtil_1.default.buildMatrix(bits, ecLevel, version, maskPattern, matrix);\n var penalty = this.calculateMaskPenalty(matrix);\n if (penalty < minPenalty) {\n minPenalty = penalty;\n bestMaskPattern = maskPattern;\n }\n }\n return bestMaskPattern;\n };\n Encoder.chooseVersion = function (numInputBits /*int*/, ecLevel) {\n for (var versionNum = 1; versionNum <= 40; versionNum++) {\n var version = Version_1.default.getVersionForNumber(versionNum);\n if (Encoder.willFit(numInputBits, version, ecLevel)) {\n return version;\n }\n }\n throw new WriterException_1.default('Data too big');\n };\n /**\n * @return true if the number of input bits will fit in a code with the specified version and\n * error correction level.\n */\n Encoder.willFit = function (numInputBits /*int*/, version, ecLevel) {\n // In the following comments, we use numbers of Version 7-H.\n // numBytes = 196\n var numBytes = version.getTotalCodewords();\n // getNumECBytes = 130\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n var numEcBytes = ecBlocks.getTotalECCodewords();\n // getNumDataBytes = 196 - 130 = 66\n var numDataBytes = numBytes - numEcBytes;\n var totalInputBytes = (numInputBits + 7) / 8;\n return numDataBytes >= totalInputBytes;\n };\n /**\n * Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24).\n */\n Encoder.terminateBits = function (numDataBytes /*int*/, bits) {\n var capacity = numDataBytes * 8;\n if (bits.getSize() > capacity) {\n throw new WriterException_1.default('data bits cannot fit in the QR Code' + bits.getSize() + ' > ' +\n capacity);\n }\n for (var i = 0; i < 4 && bits.getSize() < capacity; ++i) {\n bits.appendBit(false);\n }\n // Append termination bits. See 8.4.8 of JISX0510:2004 (p.24) for details.\n // If the last byte isn't 8-bit aligned, we'll add padding bits.\n var numBitsInLastByte = bits.getSize() & 0x07;\n if (numBitsInLastByte > 0) {\n for (var i = numBitsInLastByte; i < 8; i++) {\n bits.appendBit(false);\n }\n }\n // If we have more space, we'll fill the space with padding patterns defined in 8.4.9 (p.24).\n var numPaddingBytes = numDataBytes - bits.getSizeInBytes();\n for (var i = 0; i < numPaddingBytes; ++i) {\n bits.appendBits((i & 0x01) === 0 ? 0xEC : 0x11, 8);\n }\n if (bits.getSize() !== capacity) {\n throw new WriterException_1.default('Bits size does not equal capacity');\n }\n };\n /**\n * Get number of data bytes and number of error correction bytes for block id \"blockID\". Store\n * the result in \"numDataBytesInBlock\", and \"numECBytesInBlock\". See table 12 in 8.5.1 of\n * JISX0510:2004 (p.30)\n */\n Encoder.getNumDataBytesAndNumECBytesForBlockID = function (numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/, blockID /*int*/, numDataBytesInBlock, numECBytesInBlock) {\n if (blockID >= numRSBlocks) {\n throw new WriterException_1.default('Block ID too large');\n }\n // numRsBlocksInGroup2 = 196 % 5 = 1\n var numRsBlocksInGroup2 = numTotalBytes % numRSBlocks;\n // numRsBlocksInGroup1 = 5 - 1 = 4\n var numRsBlocksInGroup1 = numRSBlocks - numRsBlocksInGroup2;\n // numTotalBytesInGroup1 = 196 / 5 = 39\n var numTotalBytesInGroup1 = Math.floor(numTotalBytes / numRSBlocks);\n // numTotalBytesInGroup2 = 39 + 1 = 40\n var numTotalBytesInGroup2 = numTotalBytesInGroup1 + 1;\n // numDataBytesInGroup1 = 66 / 5 = 13\n var numDataBytesInGroup1 = Math.floor(numDataBytes / numRSBlocks);\n // numDataBytesInGroup2 = 13 + 1 = 14\n var numDataBytesInGroup2 = numDataBytesInGroup1 + 1;\n // numEcBytesInGroup1 = 39 - 13 = 26\n var numEcBytesInGroup1 = numTotalBytesInGroup1 - numDataBytesInGroup1;\n // numEcBytesInGroup2 = 40 - 14 = 26\n var numEcBytesInGroup2 = numTotalBytesInGroup2 - numDataBytesInGroup2;\n // Sanity checks.\n // 26 = 26\n if (numEcBytesInGroup1 !== numEcBytesInGroup2) {\n throw new WriterException_1.default('EC bytes mismatch');\n }\n // 5 = 4 + 1.\n if (numRSBlocks !== numRsBlocksInGroup1 + numRsBlocksInGroup2) {\n throw new WriterException_1.default('RS blocks mismatch');\n }\n // 196 = (13 + 26) * 4 + (14 + 26) * 1\n if (numTotalBytes !==\n ((numDataBytesInGroup1 + numEcBytesInGroup1) *\n numRsBlocksInGroup1) +\n ((numDataBytesInGroup2 + numEcBytesInGroup2) *\n numRsBlocksInGroup2)) {\n throw new WriterException_1.default('Total bytes mismatch');\n }\n if (blockID < numRsBlocksInGroup1) {\n numDataBytesInBlock[0] = numDataBytesInGroup1;\n numECBytesInBlock[0] = numEcBytesInGroup1;\n }\n else {\n numDataBytesInBlock[0] = numDataBytesInGroup2;\n numECBytesInBlock[0] = numEcBytesInGroup2;\n }\n };\n /**\n * Interleave \"bits\" with corresponding error correction bytes. On success, store the result in\n * \"result\". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details.\n */\n Encoder.interleaveWithECBytes = function (bits, numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/) {\n // \"bits\" must have \"getNumDataBytes\" bytes of data.\n if (bits.getSizeInBytes() !== numDataBytes) {\n throw new WriterException_1.default('Number of bits and data bytes does not match');\n }\n // Step 1. Divide data bytes into blocks and generate error correction bytes for them. We'll\n // store the divided data bytes blocks and error correction bytes blocks into \"blocks\".\n var dataBytesOffset = 0;\n var maxNumDataBytes = 0;\n var maxNumEcBytes = 0;\n // Since, we know the number of reedsolmon blocks, we can initialize the vector with the number.\n var blocks = new Array(); // new ArrayDecodes Code 39 barcodes. Supports \"Full ASCII Code 39\" if USE_CODE_39_EXTENDED_MODE is set.
\n *\n * @author Sean Owen\n * @see Code93Reader\n */\nvar Code39Reader = /** @class */ (function (_super) {\n __extends(Code39Reader, _super);\n /**\n * Creates a reader that assumes all encoded data is data, and does not treat the final\n * character as a check digit. It will not decoded \"extended Code 39\" sequences.\n */\n // public Code39Reader() {\n // this(false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit.\n * It will not decoded \"extended Code 39\" sequences.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n */\n // public Code39Reader(boolean usingCheckDigit) {\n // this(usingCheckDigit, false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit,\n * or optionally attempt to decode \"extended Code 39\" sequences that are used to encode\n * the full ASCII character set.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n * @param extendedMode if true, will attempt to decode extended Code 39 sequences in the\n * text.\n */\n function Code39Reader(usingCheckDigit, extendedMode) {\n if (usingCheckDigit === void 0) { usingCheckDigit = false; }\n if (extendedMode === void 0) { extendedMode = false; }\n var _this = _super.call(this) || this;\n _this.usingCheckDigit = usingCheckDigit;\n _this.extendedMode = extendedMode;\n _this.decodeRowResult = '';\n _this.counters = new Array(9);\n return _this;\n }\n Code39Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var theCounters = this.counters;\n theCounters.fill(0);\n this.decodeRowResult = '';\n var start = Code39Reader.findAsteriskPattern(row, theCounters);\n // Read off white space\n var nextStart = row.getNextSet(start[1]);\n var end = row.getSize();\n var decodedChar;\n var lastStart;\n do {\n Code39Reader.recordPattern(row, nextStart, theCounters);\n var pattern = Code39Reader.toNarrowWidePattern(theCounters);\n if (pattern < 0) {\n throw new NotFoundException_1.default();\n }\n decodedChar = Code39Reader.patternToChar(pattern);\n this.decodeRowResult += decodedChar;\n lastStart = nextStart;\n for (var _i = 0, theCounters_1 = theCounters; _i < theCounters_1.length; _i++) {\n var counter = theCounters_1[_i];\n nextStart += counter;\n }\n // Read off white space\n nextStart = row.getNextSet(nextStart);\n } while (decodedChar !== '*');\n this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1); // remove asterisk\n // Look for whitespace after pattern:\n var lastPatternSize = 0;\n for (var _a = 0, theCounters_2 = theCounters; _a < theCounters_2.length; _a++) {\n var counter = theCounters_2[_a];\n lastPatternSize += counter;\n }\n var whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;\n // If 50% of last pattern size, following last pattern, is not whitespace, fail\n // (but if it's whitespace to the very end of the image, that's OK)\n if (nextStart !== end && (whiteSpaceAfterEnd * 2) < lastPatternSize) {\n throw new NotFoundException_1.default();\n }\n if (this.usingCheckDigit) {\n var max = this.decodeRowResult.length - 1;\n var total = 0;\n for (var i = 0; i < max; i++) {\n total += Code39Reader.ALPHABET_STRING.indexOf(this.decodeRowResult.charAt(i));\n }\n if (this.decodeRowResult.charAt(max) !== Code39Reader.ALPHABET_STRING.charAt(total % 43)) {\n throw new ChecksumException_1.default();\n }\n this.decodeRowResult = this.decodeRowResult.substring(0, max);\n }\n if (this.decodeRowResult.length === 0) {\n // false positive\n throw new NotFoundException_1.default();\n }\n var resultString;\n if (this.extendedMode) {\n resultString = Code39Reader.decodeExtended(this.decodeRowResult);\n }\n else {\n resultString = this.decodeRowResult;\n }\n var left = (start[1] + start[0]) / 2.0;\n var right = lastStart + lastPatternSize / 2.0;\n return new Result_1.default(resultString, null, 0, [new ResultPoint_1.default(left, rowNumber), new ResultPoint_1.default(right, rowNumber)], BarcodeFormat_1.default.CODE_39, new Date().getTime());\n };\n Code39Reader.findAsteriskPattern = function (row, counters) {\n var width = row.getSize();\n var rowOffset = row.getNextSet(0);\n var counterPosition = 0;\n var patternStart = rowOffset;\n var isWhite = false;\n var patternLength = counters.length;\n for (var i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (this.toNarrowWidePattern(counters) === Code39Reader.ASTERISK_ENCODING &&\n row.isRange(Math.max(0, patternStart - Math.floor((i - patternStart) / 2)), patternStart, false)) {\n return [patternStart, i];\n }\n patternStart += counters[0] + counters[1];\n counters.copyWithin(0, 2, 2 + counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n // For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions\n // per image when using some of our blackbox images.\n Code39Reader.toNarrowWidePattern = function (counters) {\n var numCounters = counters.length;\n var maxNarrowCounter = 0;\n var wideCounters;\n do {\n var minCounter = 0x7fffffff;\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n if (counter < minCounter && counter > maxNarrowCounter) {\n minCounter = counter;\n }\n }\n maxNarrowCounter = minCounter;\n wideCounters = 0;\n var totalWideCountersWidth = 0;\n var pattern = 0;\n for (var i = 0; i < numCounters; i++) {\n var counter = counters[i];\n if (counter > maxNarrowCounter) {\n pattern |= 1 << (numCounters - 1 - i);\n wideCounters++;\n totalWideCountersWidth += counter;\n }\n }\n if (wideCounters === 3) {\n // Found 3 wide counters, but are they close enough in width?\n // We can perform a cheap, conservative check to see if any individual\n // counter is more than 1.5 times the average:\n for (var i = 0; i < numCounters && wideCounters > 0; i++) {\n var counter = counters[i];\n if (counter > maxNarrowCounter) {\n wideCounters--;\n // totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average\n if ((counter * 2) >= totalWideCountersWidth) {\n return -1;\n }\n }\n }\n return pattern;\n }\n } while (wideCounters > 3);\n return -1;\n };\n Code39Reader.patternToChar = function (pattern) {\n for (var i = 0; i < Code39Reader.CHARACTER_ENCODINGS.length; i++) {\n if (Code39Reader.CHARACTER_ENCODINGS[i] === pattern) {\n return Code39Reader.ALPHABET_STRING.charAt(i);\n }\n }\n if (pattern === Code39Reader.ASTERISK_ENCODING) {\n return '*';\n }\n throw new NotFoundException_1.default();\n };\n Code39Reader.decodeExtended = function (encoded) {\n var length = encoded.length;\n var decoded = '';\n for (var i = 0; i < length; i++) {\n var c = encoded.charAt(i);\n if (c === '+' || c === '$' || c === '%' || c === '/') {\n var next = encoded.charAt(i + 1);\n var decodedChar = '\\0';\n switch (c) {\n case '+':\n // +A to +Z map to a to z\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 32);\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n case '$':\n // $A to $Z map to control codes SH to SB\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 64);\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n case '%':\n // %A to %E map to control codes ESC to US\n if (next >= 'A' && next <= 'E') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 38);\n }\n else if (next >= 'F' && next <= 'J') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 11);\n }\n else if (next >= 'K' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 16);\n }\n else if (next >= 'P' && next <= 'T') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 43);\n }\n else if (next === 'U') {\n decodedChar = '\\0';\n }\n else if (next === 'V') {\n decodedChar = '@';\n }\n else if (next === 'W') {\n decodedChar = '`';\n }\n else if (next === 'X' || next === 'Y' || next === 'Z') {\n decodedChar = '\\x7f';\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n case '/':\n // /A to /O map to ! to , and /Z maps to :\n if (next >= 'A' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 32);\n }\n else if (next === 'Z') {\n decodedChar = ':';\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n }\n decoded += decodedChar;\n // bump up i again since we read two characters\n i++;\n }\n else {\n decoded += c;\n }\n }\n return decoded;\n };\n Code39Reader.ALPHABET_STRING = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%';\n /**\n * These represent the encodings of characters, as patterns of wide and narrow bars.\n * The 9 least-significant bits of each int correspond to the pattern of wide and narrow,\n * with 1s representing \"wide\" and 0s representing narrow.\n */\n Code39Reader.CHARACTER_ENCODINGS = [\n 0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064,\n 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C,\n 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016,\n 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x0A8,\n 0x0A2, 0x08A, 0x02A // /-%\n ];\n Code39Reader.ASTERISK_ENCODING = 0x094;\n return Code39Reader;\n}(OneDReader_1.default));\nexports.default = Code39Reader;\n//# sourceMappingURL=Code39Reader.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar ArgumentException = /** @class */ (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ArgumentException;\n}(Exception_1.default));\nexports.default = ArgumentException;\n//# sourceMappingURL=ArgumentException.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = require(\"../../common/BitMatrix\");\nvar GenericGF_1 = require(\"../../common/reedsolomon/GenericGF\");\nvar ReedSolomonDecoder_1 = require(\"../../common/reedsolomon/ReedSolomonDecoder\");\nvar BitMatrixParser_1 = require(\"./BitMatrixParser\");\nvar QRCodeDecoderMetaData_1 = require(\"./QRCodeDecoderMetaData\");\nvar DataBlock_1 = require(\"./DataBlock\");\nvar DecodedBitStreamParser_1 = require(\"./DecodedBitStreamParser\");\nvar ChecksumException_1 = require(\"../../ChecksumException\");\n/*import java.util.Map;*/\n/**\n *The main class which implements QR Code decoding -- as opposed to locating and extracting\n * the QR Code from an image.
\n *\n * @author Sean Owen\n */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n this.rsDecoder = new ReedSolomonDecoder_1.default(GenericGF_1.default.QR_CODE_FIELD_256);\n }\n // public decode(image: boolean[][]): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(image, null)\n // }\n /**\n *Convenience method that can decode a QR Code represented as a 2D array of booleans.\n * \"true\" is taken to mean a black module.
\n *\n * @param image booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decodeBooleanArray = function (image, hints) {\n return this.decodeBitMatrix(BitMatrix_1.default.parseFromBooleanArray(image), hints);\n };\n // public decodeBitMatrix(bits: BitMatrix): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(bits, null)\n // }\n /**\n *Decodes a QR Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken to mean a black module.
\n *\n * @param bits booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decodeBitMatrix = function (bits, hints) {\n // Construct a parser and read version, error-correction level\n var parser = new BitMatrixParser_1.default(bits);\n var ex = null;\n try {\n return this.decodeBitMatrixParser(parser, hints);\n }\n catch (e /*: FormatException, ChecksumException*/) {\n ex = e;\n }\n try {\n // Revert the bit matrix\n parser.remask();\n // Will be attempting a mirrored reading of the version and format info.\n parser.setMirror(true);\n // Preemptively read the version.\n parser.readVersion();\n // Preemptively read the format information.\n parser.readFormatInformation();\n /*\n * Since we're here, this means we have successfully detected some kind\n * of version and format information when mirrored. This is a good sign,\n * that the QR code may be mirrored, and we should try once more with a\n * mirrored content.\n */\n // Prepare for a mirrored reading.\n parser.mirror();\n var result = this.decodeBitMatrixParser(parser, hints);\n // Success! Notify the caller that the code was mirrored.\n result.setOther(new QRCodeDecoderMetaData_1.default(true));\n return result;\n }\n catch (e /*FormatException | ChecksumException*/) {\n // Throw the exception from the original reading\n if (ex !== null) {\n throw ex;\n }\n throw e;\n }\n };\n Decoder.prototype.decodeBitMatrixParser = function (parser, hints) {\n var version = parser.readVersion();\n var ecLevel = parser.readFormatInformation().getErrorCorrectionLevel();\n // Read codewords\n var codewords = parser.readCodewords();\n // Separate into data blocks\n var dataBlocks = DataBlock_1.default.getDataBlocks(codewords, version, ecLevel);\n // Count total number of data bytes\n var totalBytes = 0;\n for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {\n var dataBlock = dataBlocks_1[_i];\n totalBytes += dataBlock.getNumDataCodewords();\n }\n var resultBytes = new Uint8Array(totalBytes);\n var resultOffset = 0;\n // Error-correct and copy data blocks together into a stream of bytes\n for (var _a = 0, dataBlocks_2 = dataBlocks; _a < dataBlocks_2.length; _a++) {\n var dataBlock = dataBlocks_2[_a];\n var codewordBytes = dataBlock.getCodewords();\n var numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (var i = 0; i < numDataCodewords; i++) {\n resultBytes[resultOffset++] = codewordBytes[i];\n }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser_1.default.decode(resultBytes, version, ecLevel, hints);\n };\n /**\n *Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.
\n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords /*int*/) {\n var numCodewords = codewordBytes.length;\n // First read into an array of ints\n var codewordsInts = new Int32Array(codewordBytes);\n // TYPESCRIPTPORT: not realy necessary to transform to ints? could redesign everything to work with unsigned bytes?\n // const codewordsInts = new Int32Array(numCodewords)\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /*: ReedSolomonException*/) {\n throw new ChecksumException_1.default();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (var i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = /*(byte) */ codewordsInts[i];\n }\n };\n return Decoder;\n}());\nexports.default = Decoder;\n//# sourceMappingURL=Decoder.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar ArithmeticException = /** @class */ (function (_super) {\n __extends(ArithmeticException, _super);\n function ArithmeticException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ArithmeticException;\n}(Exception_1.default));\nexports.default = ArithmeticException;\n//# sourceMappingURL=ArithmeticException.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar ReedSolomonException = /** @class */ (function (_super) {\n __extends(ReedSolomonException, _super);\n function ReedSolomonException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ReedSolomonException;\n}(Exception_1.default));\nexports.default = ReedSolomonException;\n//# sourceMappingURL=ReedSolomonException.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar IllegalArgumentException_1 = require(\"./IllegalArgumentException\");\nvar BinaryBitmap = /** @class */ (function () {\n function BinaryBitmap(binarizer) {\n this.binarizer = binarizer;\n if (binarizer === null) {\n throw new IllegalArgumentException_1.default('Binarizer must be non-null.');\n }\n }\n /**\n * @return The width of the bitmap.\n */\n BinaryBitmap.prototype.getWidth = function () {\n return this.binarizer.getWidth();\n };\n /**\n * @return The height of the bitmap.\n */\n BinaryBitmap.prototype.getHeight = function () {\n return this.binarizer.getHeight();\n };\n /**\n * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return\n * cached data. Callers should assume this method is expensive and call it as seldom as possible.\n * This method is intended for decoding 1D barcodes and may choose to apply sharpening.\n *\n * @param y The row to fetch, which must be in [0, bitmap height)\n * @param row An optional preallocated array. If null or too small, it will be ignored.\n * If used, the Binarizer will call BitArray.clear(). Always use the returned object.\n * @return The array of bits for this row (true means black).\n * @throws NotFoundException if row can't be binarized\n */\n BinaryBitmap.prototype.getBlackRow = function (y /*int*/, row) {\n return this.binarizer.getBlackRow(y, row);\n };\n /**\n * Converts a 2D array of luminance data to 1 bit. As above, assume this method is expensive\n * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or\n * may not apply sharpening. Therefore, a row from this matrix may not be identical to one\n * fetched using getBlackRow(), so don't mix and match between them.\n *\n * @return The 2D array of bits for the image (true means black).\n * @throws NotFoundException if image can't be binarized to make a matrix\n */\n BinaryBitmap.prototype.getBlackMatrix = function () {\n // The matrix is created on demand the first time it is requested, then cached. There are two\n // reasons for this:\n // 1. This work will never be done if the caller only installs 1D Reader objects, or if a\n // 1D Reader finds a barcode before the 2D Readers run.\n // 2. This work will only be done once even if the caller installs multiple 2D Readers.\n if (this.matrix === null || this.matrix === undefined) {\n this.matrix = this.binarizer.getBlackMatrix();\n }\n return this.matrix;\n };\n /**\n * @return Whether this bitmap can be cropped.\n */\n BinaryBitmap.prototype.isCropSupported = function () {\n return this.binarizer.getLuminanceSource().isCropSupported();\n };\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n BinaryBitmap.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n var newSource = this.binarizer.getLuminanceSource().crop(left, top, width, height);\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /**\n * @return Whether this bitmap supports counter-clockwise rotation.\n */\n BinaryBitmap.prototype.isRotateSupported = function () {\n return this.binarizer.getLuminanceSource().isRotateSupported();\n };\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n BinaryBitmap.prototype.rotateCounterClockwise = function () {\n var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n BinaryBitmap.prototype.rotateCounterClockwise45 = function () {\n var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise45();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /*@Override*/\n BinaryBitmap.prototype.toString = function () {\n try {\n return this.getBlackMatrix().toString();\n }\n catch (e /*: NotFoundException*/) {\n return '';\n }\n };\n return BinaryBitmap;\n}());\nexports.default = BinaryBitmap;\n//# sourceMappingURL=BinaryBitmap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar FinderPattern = /** @class */ (function () {\n function FinderPattern(value, startEnd, start, end, rowNumber) {\n this.value = value;\n this.startEnd = startEnd;\n this.value = value;\n this.startEnd = startEnd;\n this.resultPoints = new Array();\n this.resultPoints.push(new ResultPoint_1.default(start, rowNumber));\n this.resultPoints.push(new ResultPoint_1.default(end, rowNumber));\n }\n FinderPattern.prototype.getValue = function () {\n return this.value;\n };\n FinderPattern.prototype.getStartEnd = function () {\n return this.startEnd;\n };\n FinderPattern.prototype.getResultPoints = function () {\n return this.resultPoints;\n };\n FinderPattern.prototype.equals = function (o) {\n if (!(o instanceof FinderPattern)) {\n return false;\n }\n var that = o;\n return this.value === that.value;\n };\n FinderPattern.prototype.hashCode = function () {\n return this.value;\n };\n return FinderPattern;\n}());\nexports.default = FinderPattern;\n//# sourceMappingURL=FinderPattern.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ts_custom_error_1 = require(\"ts-custom-error\");\n/**\n * Custom Error class of type Exception.\n */\nvar Exception = /** @class */ (function (_super) {\n __extends(Exception, _super);\n /**\n * Allows Exception to be constructed directly\n * with some message and prototype definition.\n */\n function Exception(message) {\n if (message === void 0) { message = undefined; }\n var _this = _super.call(this, message) || this;\n _this.message = message;\n return _this;\n }\n return Exception;\n}(ts_custom_error_1.CustomError));\nexports.default = Exception;\n//# sourceMappingURL=Exception.js.map","\"use strict\";\n/*\n * Copyright (C) 2010 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\nvar Result_1 = require(\"../Result\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n * @see UPCEANExtension2Support\n */\nvar UPCEANExtension5Support = /** @class */ (function () {\n function UPCEANExtension5Support() {\n this.CHECK_DIGIT_ENCODINGS = [0x18, 0x14, 0x12, 0x11, 0x0C, 0x06, 0x03, 0x0A, 0x09, 0x05];\n this.decodeMiddleCounters = [0, 0, 0, 0];\n this.decodeRowStringBuffer = '';\n }\n UPCEANExtension5Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n var result = this.decodeRowStringBuffer;\n var end = this.decodeMiddle(row, extensionStartRange, result);\n var resultString = result.toString();\n var extensionData = UPCEANExtension5Support.parseExtensionString(resultString);\n var resultPoints = [\n new ResultPoint_1.default((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint_1.default(end, rowNumber)\n ];\n var extensionResult = new Result_1.default(resultString, null, 0, resultPoints, BarcodeFormat_1.default.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n };\n UPCEANExtension5Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var lgPatternFound = 0;\n for (var x = 0; x < 5 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (4 - x);\n }\n if (x !== 4) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 5) {\n throw new NotFoundException_1.default();\n }\n var checkDigit = this.determineCheckDigit(lgPatternFound);\n if (UPCEANExtension5Support.extensionChecksum(resultString.toString()) !== checkDigit) {\n throw new NotFoundException_1.default();\n }\n return rowOffset;\n };\n UPCEANExtension5Support.extensionChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 2; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n for (var i = length - 1; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n return sum % 10;\n };\n UPCEANExtension5Support.prototype.determineCheckDigit = function (lgPatternFound) {\n for (var d = 0; d < 10; d++) {\n if (lgPatternFound === this.CHECK_DIGIT_ENCODINGS[d]) {\n return d;\n }\n }\n throw new NotFoundException_1.default();\n };\n UPCEANExtension5Support.parseExtensionString = function (raw) {\n if (raw.length !== 5) {\n return null;\n }\n var value = UPCEANExtension5Support.parseExtension5String(raw);\n if (value == null) {\n return null;\n }\n return new Map([[ResultMetadataType_1.default.SUGGESTED_PRICE, value]]);\n };\n UPCEANExtension5Support.parseExtension5String = function (raw) {\n var currency;\n switch (raw.charAt(0)) {\n case '0':\n currency = '£';\n break;\n case '5':\n currency = '$';\n break;\n case '9':\n // Reference: http://www.jollytech.com\n switch (raw) {\n case '90000':\n // No suggested retail price\n return null;\n case '99991':\n // Complementary\n return '0.00';\n case '99990':\n return 'Used';\n }\n // Otherwise... unknown currency?\n currency = '';\n break;\n default:\n currency = '';\n break;\n }\n var rawAmount = parseInt(raw.substring(1));\n var unitsString = (rawAmount / 100).toString();\n var hundredths = rawAmount % 100;\n var hundredthsString = hundredths < 10 ? '0' + hundredths : hundredths.toString(); // fixme\n return currency + unitsString + '.' + hundredthsString;\n };\n return UPCEANExtension5Support;\n}());\nexports.default = UPCEANExtension5Support;\n//# sourceMappingURL=UPCEANExtension5Support.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DataMaskValues;\n(function (DataMaskValues) {\n DataMaskValues[DataMaskValues[\"DATA_MASK_000\"] = 0] = \"DATA_MASK_000\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_001\"] = 1] = \"DATA_MASK_001\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_010\"] = 2] = \"DATA_MASK_010\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_011\"] = 3] = \"DATA_MASK_011\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_100\"] = 4] = \"DATA_MASK_100\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_101\"] = 5] = \"DATA_MASK_101\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_110\"] = 6] = \"DATA_MASK_110\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_111\"] = 7] = \"DATA_MASK_111\";\n})(DataMaskValues = exports.DataMaskValues || (exports.DataMaskValues = {}));\n/**\n *Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations\n * of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix,\n * including areas used for finder patterns, timing patterns, etc. These areas should be unused\n * after the point they are unmasked anyway.
\n *\n *Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position\n * and j is row position. In fact, as the text says, i is row position and j is column position.
\n *\n * @author Sean Owen\n */\nvar DataMask = /** @class */ (function () {\n // See ISO 18004:2006 6.8.1\n function DataMask(value, isMasked) {\n this.value = value;\n this.isMasked = isMasked;\n }\n // End of enum constants.\n /**\n *Implementations of this method reverse the data masking process applied to a QR Code and\n * make its bits ready to read.
\n *\n * @param bits representation of QR Code bits\n * @param dimension dimension of QR Code, represented by bits, being unmasked\n */\n DataMask.prototype.unmaskBitMatrix = function (bits, dimension /*int*/) {\n for (var i = 0; i < dimension; i++) {\n for (var j = 0; j < dimension; j++) {\n if (this.isMasked(i, j)) {\n bits.flip(j, i);\n }\n }\n }\n };\n DataMask.values = new Map([\n /**\n * 000: mask bits for which (x + y) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_000, new DataMask(DataMaskValues.DATA_MASK_000, function (i /*int*/, j /*int*/) { return ((i + j) & 0x01) === 0; })],\n /**\n * 001: mask bits for which x mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_001, new DataMask(DataMaskValues.DATA_MASK_001, function (i /*int*/, j /*int*/) { return (i & 0x01) === 0; })],\n /**\n * 010: mask bits for which y mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_010, new DataMask(DataMaskValues.DATA_MASK_010, function (i /*int*/, j /*int*/) { return j % 3 === 0; })],\n /**\n * 011: mask bits for which (x + y) mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_011, new DataMask(DataMaskValues.DATA_MASK_011, function (i /*int*/, j /*int*/) { return (i + j) % 3 === 0; })],\n /**\n * 100: mask bits for which (x/2 + y/3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_100, new DataMask(DataMaskValues.DATA_MASK_100, function (i /*int*/, j /*int*/) { return ((Math.floor(i / 2) + Math.floor(j / 3)) & 0x01) === 0; })],\n /**\n * 101: mask bits for which xy mod 2 + xy mod 3 == 0\n * equivalently, such that xy mod 6 == 0\n */\n [DataMaskValues.DATA_MASK_101, new DataMask(DataMaskValues.DATA_MASK_101, function (i /*int*/, j /*int*/) { return (i * j) % 6 === 0; })],\n /**\n * 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that xy mod 6 < 3\n */\n [DataMaskValues.DATA_MASK_110, new DataMask(DataMaskValues.DATA_MASK_110, function (i /*int*/, j /*int*/) { return ((i * j) % 6) < 3; })],\n /**\n * 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that (x + y + xy mod 3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_111, new DataMask(DataMaskValues.DATA_MASK_111, function (i /*int*/, j /*int*/) { return ((i + j + ((i * j) % 3)) & 0x01) === 0; })],\n ]);\n return DataMask;\n}());\nexports.default = DataMask;\n//# sourceMappingURL=DataMask.js.map","\"use strict\";\n/*\n * Copyright 2013 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Meta-data container for QR Code decoding. Instances of this class may be used to convey information back to the\n * decoding caller. Callers are expected to process this.\n *\n * @see com.google.zxing.common.DecoderResult#getOther()\n */\nvar QRCodeDecoderMetaData = /** @class */ (function () {\n function QRCodeDecoderMetaData(mirrored) {\n this.mirrored = mirrored;\n }\n /**\n * @return true if the QR Code was mirrored.\n */\n QRCodeDecoderMetaData.prototype.isMirrored = function () {\n return this.mirrored;\n };\n /**\n * Apply the result points' order correction due to mirroring.\n *\n * @param points Array of points to apply mirror correction to.\n */\n QRCodeDecoderMetaData.prototype.applyMirroredCorrection = function (points) {\n if (!this.mirrored || points === null || points.length < 3) {\n return;\n }\n var bottomLeft = points[0];\n points[0] = points[2];\n points[2] = bottomLeft;\n // No need to 'fix' top-left and alignment pattern.\n };\n return QRCodeDecoderMetaData;\n}());\nexports.default = QRCodeDecoderMetaData;\n//# sourceMappingURL=QRCodeDecoderMetaData.js.map","module.exports = __webpack_public_path__ + \"img/earn_success.svg\";","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar System_1 = require(\"./System\");\nvar Arrays = /** @class */ (function () {\n function Arrays() {\n }\n Arrays.equals = function (first, second) {\n if (!first) {\n return false;\n }\n if (!second) {\n return false;\n }\n if (!first.length) {\n return false;\n }\n if (!second.length) {\n return false;\n }\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0, length_1 = first.length; i < length_1; i++) {\n if (first[i] !== second[i]) {\n return false;\n }\n }\n return true;\n };\n Arrays.hashCode = function (a) {\n if (a === null) {\n return 0;\n }\n var result = 1;\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var element = a_1[_i];\n result = 31 * result + element;\n }\n return result;\n };\n Arrays.fillUint8Array = function (a, value) {\n for (var i = 0; i !== a.length; i++) {\n a[i] = value;\n }\n };\n Arrays.copyOf = function (original, newLength) {\n var copy = new Int32Array(newLength);\n System_1.default.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength));\n return copy;\n };\n /*\n * Returns the index of of the element in a sorted array or (-n-1) where n is the insertion point\n * for the new element.\n * Parameters:\n * ar - A sorted array\n * el - An element to search for\n * comparator - A comparator function. The function takes two arguments: (a, b) and returns:\n * a negative number if a is less than b;\n * 0 if a is equal to b;\n * a positive number of a is greater than b.\n * The array may contain duplicate elements. If there are more than one equal elements in the array,\n * the returned value can be the index of any one of the equal elements.\n *\n * http://jsfiddle.net/aryzhov/pkfst550/\n */\n Arrays.binarySearch = function (ar, el, comparator) {\n if (undefined === comparator) {\n comparator = Arrays.numberComparator;\n }\n var m = 0;\n var n = ar.length - 1;\n while (m <= n) {\n var k = (n + m) >> 1;\n var cmp = comparator(el, ar[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return -m - 1;\n };\n Arrays.numberComparator = function (a, b) {\n return a - b;\n };\n return Arrays;\n}());\nexports.default = Arrays;\n//# sourceMappingURL=Arrays.js.map","// Copyright 2014 Simon Lydell\r\n// X11 (“MIT”) Licensed. (See LICENSE.)\r\n\r\nvoid (function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define(factory)\r\n } else if (typeof exports === \"object\") {\r\n module.exports = factory()\r\n } else {\r\n root.resolveUrl = factory()\r\n }\r\n}(this, function() {\r\n\r\n function resolveUrl(/* ...urls */) {\r\n var numUrls = arguments.length\r\n\r\n if (numUrls === 0) {\r\n throw new Error(\"resolveUrl requires at least one argument; got none.\")\r\n }\r\n\r\n var base = document.createElement(\"base\")\r\n base.href = arguments[0]\r\n\r\n if (numUrls === 1) {\r\n return base.href\r\n }\r\n\r\n var head = document.getElementsByTagName(\"head\")[0]\r\n head.insertBefore(base, head.firstChild)\r\n\r\n var a = document.createElement(\"a\")\r\n var resolved\r\n\r\n for (var index = 1; index < numUrls; index++) {\r\n a.href = arguments[index]\r\n resolved = a.href\r\n base.href = resolved\r\n }\r\n\r\n head.removeChild(base)\r\n\r\n return resolved\r\n }\r\n\r\n return resolveUrl\r\n\r\n}));\r\n","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GlobalHistogramBinarizer_1 = require(\"./GlobalHistogramBinarizer\");\nvar BitMatrix_1 = require(\"./BitMatrix\");\n/**\n * This class implements a local thresholding algorithm, which while slower than the\n * GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for\n * high frequency images of barcodes with black data on white backgrounds. For this application,\n * it does a much better job than a global blackpoint with severe shadows and gradients.\n * However it tends to produce artifacts on lower frequency images and is therefore not\n * a good general purpose binarizer for uses outside ZXing.\n *\n * This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers,\n * and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already\n * inherently local, and only fails for horizontal gradients. We can revisit that problem later,\n * but for now it was not a win to use local blocks for 1D.\n *\n * This Binarizer is the default for the unit tests and the recommended class for library users.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar HybridBinarizer = /** @class */ (function (_super) {\n __extends(HybridBinarizer, _super);\n function HybridBinarizer(source) {\n var _this = _super.call(this, source) || this;\n _this.matrix = null;\n return _this;\n }\n /**\n * Calculates the final BitMatrix once for all requests. This could be called once from the\n * constructor instead, but there are some advantages to doing it lazily, such as making\n * profiling easier, and not doing heavy lifting when callers don't expect it.\n */\n /*@Override*/\n HybridBinarizer.prototype.getBlackMatrix = function () {\n if (this.matrix !== null) {\n return this.matrix;\n }\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n var height = source.getHeight();\n if (width >= HybridBinarizer.MINIMUM_DIMENSION && height >= HybridBinarizer.MINIMUM_DIMENSION) {\n var luminances = source.getMatrix();\n var subWidth = width >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((width & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subWidth++;\n }\n var subHeight = height >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((height & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subHeight++;\n }\n var blackPoints = HybridBinarizer.calculateBlackPoints(luminances, subWidth, subHeight, width, height);\n var newMatrix = new BitMatrix_1.default(width, height);\n HybridBinarizer.calculateThresholdForBlock(luminances, subWidth, subHeight, width, height, blackPoints, newMatrix);\n this.matrix = newMatrix;\n }\n else {\n // If the image is too small, fall back to the global histogram approach.\n this.matrix = _super.prototype.getBlackMatrix.call(this);\n }\n return this.matrix;\n };\n /*@Override*/\n HybridBinarizer.prototype.createBinarizer = function (source) {\n return new HybridBinarizer(source);\n };\n /**\n * For each block in the image, calculate the average black point using a 5x5 grid\n * of the blocks around it. Also handles the corner cases (fractional blocks are computed based\n * on the last pixels in the row/column which are also used in the previous block).\n */\n HybridBinarizer.calculateThresholdForBlock = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/, blackPoints, matrix) {\n var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n for (var y = 0; y < subHeight; y++) {\n var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n var top_1 = HybridBinarizer.cap(y, 2, subHeight - 3);\n for (var x = 0; x < subWidth; x++) {\n var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n var left = HybridBinarizer.cap(x, 2, subWidth - 3);\n var sum = 0;\n for (var z = -2; z <= 2; z++) {\n var blackRow = blackPoints[top_1 + z];\n sum += blackRow[left - 2] + blackRow[left - 1] + blackRow[left] + blackRow[left + 1] + blackRow[left + 2];\n }\n var average = sum / 25;\n HybridBinarizer.thresholdBlock(luminances, xoffset, yoffset, average, width, matrix);\n }\n }\n };\n HybridBinarizer.cap = function (value /*int*/, min /*int*/, max /*int*/) {\n return value < min ? min : value > max ? max : value;\n };\n /**\n * Applies a single threshold to a block of pixels.\n */\n HybridBinarizer.thresholdBlock = function (luminances, xoffset /*int*/, yoffset /*int*/, threshold /*int*/, stride /*int*/, matrix) {\n for (var y = 0, offset = yoffset * stride + xoffset; y < HybridBinarizer.BLOCK_SIZE; y++, offset += stride) {\n for (var x = 0; x < HybridBinarizer.BLOCK_SIZE; x++) {\n // Comparison needs to be <= so that black == 0 pixels are black even if the threshold is 0.\n if ((luminances[offset + x] & 0xFF) <= threshold) {\n matrix.set(xoffset + x, yoffset + y);\n }\n }\n }\n };\n /**\n * Calculates a single black point for each block of pixels and saves it away.\n * See the following thread for a discussion of this algorithm:\n * http://groups.google.com/group/zxing/browse_thread/thread/d06efa2c35a7ddc0\n */\n HybridBinarizer.calculateBlackPoints = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/) {\n var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n // tslint:disable-next-line:whitespace\n var blackPoints = new Array(subHeight); // subWidth\n for (var y = 0; y < subHeight; y++) {\n blackPoints[y] = new Int32Array(subWidth);\n var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n for (var x = 0; x < subWidth; x++) {\n var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n var sum = 0;\n var min = 0xFF;\n var max = 0;\n for (var yy = 0, offset = yoffset * width + xoffset; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n var pixel = luminances[offset + xx] & 0xFF;\n sum += pixel;\n // still looking for good contrast\n if (pixel < min) {\n min = pixel;\n }\n if (pixel > max) {\n max = pixel;\n }\n }\n // short-circuit min/max tests once dynamic range is met\n if (max - min > HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // finish the rest of the rows quickly\n for (yy++, offset += width; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n sum += luminances[offset + xx] & 0xFF;\n }\n }\n }\n }\n // The default estimate is the average of the values in the block.\n var average = sum >> (HybridBinarizer.BLOCK_SIZE_POWER * 2);\n if (max - min <= HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // If variation within the block is low, assume this is a block with only light or only\n // dark pixels. In that case we do not want to use the average, as it would divide this\n // low contrast area into black and white pixels, essentially creating data out of noise.\n //\n // The default assumption is that the block is light/background. Since no estimate for\n // the level of dark pixels exists locally, use half the min for the block.\n average = min / 2;\n if (y > 0 && x > 0) {\n // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n // the pixels in this block to the previously calculated black points. This is based on\n // the fact that dark barcode symbology is always surrounded by some amount of light\n // background for which reasonable black point estimates were made. The bp estimated at\n // the boundaries is used for the interior.\n // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n var averageNeighborBlackPoint = (blackPoints[y - 1][x] + (2 * blackPoints[y][x - 1]) + blackPoints[y - 1][x - 1]) / 4;\n if (min < averageNeighborBlackPoint) {\n average = averageNeighborBlackPoint;\n }\n }\n }\n blackPoints[y][x] = average;\n }\n }\n return blackPoints;\n };\n // This class uses 5x5 blocks to compute local luminance, where each block is 8x8 pixels.\n // So this is the smallest dimension in each axis we can accept.\n HybridBinarizer.BLOCK_SIZE_POWER = 3;\n HybridBinarizer.BLOCK_SIZE = 1 << HybridBinarizer.BLOCK_SIZE_POWER; // ...0100...00\n HybridBinarizer.BLOCK_SIZE_MASK = HybridBinarizer.BLOCK_SIZE - 1; // ...0011...11\n HybridBinarizer.MINIMUM_DIMENSION = HybridBinarizer.BLOCK_SIZE * 5;\n HybridBinarizer.MIN_DYNAMIC_RANGE = 24;\n return HybridBinarizer;\n}(GlobalHistogramBinarizer_1.default));\nexports.default = HybridBinarizer;\n//# sourceMappingURL=HybridBinarizer.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.oned {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar Code39Reader_1 = require(\"./Code39Reader\");\nvar Code128Reader_1 = require(\"./Code128Reader\");\nvar RSS14Reader_1 = require(\"./rss/RSS14Reader\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar ITFReader_1 = require(\"./ITFReader\");\nvar MultiFormatUPCEANReader_1 = require(\"./MultiFormatUPCEANReader\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\nvar OneDReader_1 = require(\"./OneDReader\");\n/**\n * @author Daniel SwitkinReads format information from one of its two locations within the QR Code.
\n *\n * @return {@link FormatInformation} encapsulating the QR Code's format info\n * @throws FormatException if both format information locations cannot be parsed as\n * the valid encoding of format information\n */\n BitMatrixParser.prototype.readFormatInformation = function () {\n if (this.parsedFormatInfo !== null && this.parsedFormatInfo !== undefined) {\n return this.parsedFormatInfo;\n }\n // Read top-left format info bits\n var formatInfoBits1 = 0;\n for (var i = 0; i < 6; i++) {\n formatInfoBits1 = this.copyBit(i, 8, formatInfoBits1);\n }\n // .. and skip a bit in the timing pattern ...\n formatInfoBits1 = this.copyBit(7, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 7, formatInfoBits1);\n // .. and skip a bit in the timing pattern ...\n for (var j = 5; j >= 0; j--) {\n formatInfoBits1 = this.copyBit(8, j, formatInfoBits1);\n }\n // Read the top-right/bottom-left pattern too\n var dimension = this.bitMatrix.getHeight();\n var formatInfoBits2 = 0;\n var jMin = dimension - 7;\n for (var j = dimension - 1; j >= jMin; j--) {\n formatInfoBits2 = this.copyBit(8, j, formatInfoBits2);\n }\n for (var i = dimension - 8; i < dimension; i++) {\n formatInfoBits2 = this.copyBit(i, 8, formatInfoBits2);\n }\n this.parsedFormatInfo = FormatInformation_1.default.decodeFormatInformation(formatInfoBits1, formatInfoBits2);\n if (this.parsedFormatInfo !== null) {\n return this.parsedFormatInfo;\n }\n throw new FormatException_1.default();\n };\n /**\n *Reads version information from one of its two locations within the QR Code.
\n *\n * @return {@link Version} encapsulating the QR Code's version\n * @throws FormatException if both version information locations cannot be parsed as\n * the valid encoding of version information\n */\n BitMatrixParser.prototype.readVersion = function () {\n if (this.parsedVersion !== null && this.parsedVersion !== undefined) {\n return this.parsedVersion;\n }\n var dimension = this.bitMatrix.getHeight();\n var provisionalVersion = Math.floor((dimension - 17) / 4);\n if (provisionalVersion <= 6) {\n return Version_1.default.getVersionForNumber(provisionalVersion);\n }\n // Read top-right version info: 3 wide by 6 tall\n var versionBits = 0;\n var ijMin = dimension - 11;\n for (var j = 5; j >= 0; j--) {\n for (var i = dimension - 9; i >= ijMin; i--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n var theParsedVersion = Version_1.default.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n // Hmm, failed. Try bottom left: 6 wide by 3 tall\n versionBits = 0;\n for (var i = 5; i >= 0; i--) {\n for (var j = dimension - 9; j >= ijMin; j--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n theParsedVersion = Version_1.default.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n throw new FormatException_1.default();\n };\n BitMatrixParser.prototype.copyBit = function (i /*int*/, j /*int*/, versionBits /*int*/) {\n var bit = this.isMirror ? this.bitMatrix.get(j, i) : this.bitMatrix.get(i, j);\n return bit ? (versionBits << 1) | 0x1 : versionBits << 1;\n };\n /**\n *Reads the bits in the {@link BitMatrix} representing the finder pattern in the\n * correct order in order to reconstruct the codewords bytes contained within the\n * QR Code.
\n *\n * @return bytes encoded within the QR Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n BitMatrixParser.prototype.readCodewords = function () {\n var formatInfo = this.readFormatInformation();\n var version = this.readVersion();\n // Get the data mask for the format used in this QR Code. This will exclude\n // some bits from reading as we wind through the bit matrix.\n var dataMask = DataMask_1.default.values.get(formatInfo.getDataMask());\n var dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n var functionPattern = version.buildFunctionPattern();\n var readingUp = true;\n var result = new Uint8Array(version.getTotalCodewords());\n var resultOffset = 0;\n var currentByte = 0;\n var bitsRead = 0;\n // Read columns in pairs, from right to left\n for (var j = dimension - 1; j > 0; j -= 2) {\n if (j === 6) {\n // Skip whole column with vertical alignment pattern\n // saves time and makes the other code proceed more cleanly\n j--;\n }\n // Read alternatingly from bottom to top then top to bottom\n for (var count = 0; count < dimension; count++) {\n var i = readingUp ? dimension - 1 - count : count;\n for (var col = 0; col < 2; col++) {\n // Ignore bits covered by the function pattern\n if (!functionPattern.get(j - col, i)) {\n // Read a bit\n bitsRead++;\n currentByte <<= 1;\n if (this.bitMatrix.get(j - col, i)) {\n currentByte |= 1;\n }\n // If we've made a whole byte, save it off\n if (bitsRead === 8) {\n result[resultOffset++] = /*(byte) */ currentByte;\n bitsRead = 0;\n currentByte = 0;\n }\n }\n }\n }\n readingUp = !readingUp; // readingUp ^= true; // readingUp = !readingUp; // switch directions\n }\n if (resultOffset !== version.getTotalCodewords()) {\n throw new FormatException_1.default();\n }\n return result;\n };\n /**\n * Revert the mask removal done while reading the code words. The bit matrix should revert to its original state.\n */\n BitMatrixParser.prototype.remask = function () {\n if (this.parsedFormatInfo === null) {\n return; // We have no format information, and have no data mask\n }\n var dataMask = DataMask_1.default.values[this.parsedFormatInfo.getDataMask()];\n var dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n };\n /**\n * Prepare the parser for a mirrored operation.\n * This flag has effect only on the {@link #readFormatInformation()} and the\n * {@link #readVersion()}. Before proceeding with {@link #readCodewords()} the\n * {@link #mirror()} method should be called.\n *\n * @param mirror Whether to read version and format information mirrored.\n */\n BitMatrixParser.prototype.setMirror = function (isMirror) {\n this.parsedVersion = null;\n this.parsedFormatInfo = null;\n this.isMirror = isMirror;\n };\n /** Mirror the bit matrix in order to attempt a second reading. */\n BitMatrixParser.prototype.mirror = function () {\n var bitMatrix = this.bitMatrix;\n for (var x = 0, width = bitMatrix.getWidth(); x < width; x++) {\n for (var y = x + 1, height = bitMatrix.getHeight(); y < height; y++) {\n if (bitMatrix.get(x, y) !== bitMatrix.get(y, x)) {\n bitMatrix.flip(y, x);\n bitMatrix.flip(x, y);\n }\n }\n }\n };\n return BitMatrixParser;\n}());\nexports.default = BitMatrixParser;\n//# sourceMappingURL=BitMatrixParser.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraScanModal.vue?vue&type=style&index=0&lang=scss&\"","const isBrowser = require('./getEnvironment')('type') === 'browser';\nconst resolveURL = isBrowser ? require('resolve-url') : s => s; // eslint-disable-line\n\nmodule.exports = (options) => {\n const opts = { ...options };\n ['corePath', 'workerPath', 'langPath'].forEach((key) => {\n if (typeof options[key] !== 'undefined') {\n opts[key] = resolveURL(opts[key]);\n }\n });\n return opts;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringBuilder = /** @class */ (function () {\n function StringBuilder(value) {\n if (value === void 0) { value = ''; }\n this.value = value;\n }\n StringBuilder.prototype.append = function (s) {\n if (typeof s === 'string') {\n this.value += s.toString();\n }\n else {\n this.value += String.fromCharCode(s);\n }\n return this;\n };\n StringBuilder.prototype.length = function () {\n return this.value.length;\n };\n StringBuilder.prototype.charAt = function (n) {\n return this.value.charAt(n);\n };\n StringBuilder.prototype.deleteCharAt = function (n) {\n this.value = this.value.substr(0, n) + this.value.substring(n + 1);\n };\n StringBuilder.prototype.setCharAt = function (n, c) {\n this.value = this.value.substr(0, n) + c + this.value.substr(n + 1);\n };\n StringBuilder.prototype.toString = function () {\n return this.value;\n };\n StringBuilder.prototype.insert = function (n, c) {\n this.value = this.value.substr(0, n) + c + this.value.substr(n + c.length);\n };\n return StringBuilder;\n}());\nexports.default = StringBuilder;\n//# sourceMappingURL=StringBuilder.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.decoder {*/\nvar ArgumentException_1 = require(\"../../ArgumentException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\nvar ErrorCorrectionLevelValues;\n(function (ErrorCorrectionLevelValues) {\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"L\"] = 0] = \"L\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"M\"] = 1] = \"M\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"Q\"] = 2] = \"Q\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"H\"] = 3] = \"H\";\n})(ErrorCorrectionLevelValues = exports.ErrorCorrectionLevelValues || (exports.ErrorCorrectionLevelValues = {}));\n/**\n *See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels\n * defined by the QR code standard.
\n *\n * @author Sean Owen\n */\nvar ErrorCorrectionLevel = /** @class */ (function () {\n function ErrorCorrectionLevel(value, stringValue, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.bits = bits;\n ErrorCorrectionLevel.FOR_BITS.set(bits, this);\n ErrorCorrectionLevel.FOR_VALUE.set(value, this);\n }\n ErrorCorrectionLevel.prototype.getValue = function () {\n return this.value;\n };\n ErrorCorrectionLevel.prototype.getBits = function () {\n return this.bits;\n };\n ErrorCorrectionLevel.fromString = function (s) {\n switch (s) {\n case 'L': return ErrorCorrectionLevel.L;\n case 'M': return ErrorCorrectionLevel.M;\n case 'Q': return ErrorCorrectionLevel.Q;\n case 'H': return ErrorCorrectionLevel.H;\n default: throw new ArgumentException_1.default(s + 'not available');\n }\n };\n ErrorCorrectionLevel.prototype.toString = function () {\n return this.stringValue;\n };\n ErrorCorrectionLevel.prototype.equals = function (o) {\n if (!(o instanceof ErrorCorrectionLevel)) {\n return false;\n }\n var other = o;\n return this.value === other.value;\n };\n /**\n * @param bits int containing the two bits encoding a QR Code's error correction level\n * @return ErrorCorrectionLevel representing the encoded error correction level\n */\n ErrorCorrectionLevel.forBits = function (bits /*int*/) {\n if (bits < 0 || bits >= ErrorCorrectionLevel.FOR_BITS.size) {\n throw new IllegalArgumentException_1.default();\n }\n return ErrorCorrectionLevel.FOR_BITS.get(bits);\n };\n ErrorCorrectionLevel.FOR_BITS = new Map();\n ErrorCorrectionLevel.FOR_VALUE = new Map();\n /** L = ~7% correction */\n ErrorCorrectionLevel.L = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.L, 'L', 0x01);\n /** M = ~15% correction */\n ErrorCorrectionLevel.M = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.M, 'M', 0x00);\n /** Q = ~25% correction */\n ErrorCorrectionLevel.Q = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.Q, 'Q', 0x03);\n /** H = ~30% correction */\n ErrorCorrectionLevel.H = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.H, 'H', 0x02);\n return ErrorCorrectionLevel;\n}());\nexports.default = ErrorCorrectionLevel;\n//# sourceMappingURL=ErrorCorrectionLevel.js.map","\"use strict\";\n/*\n * Copyright (C) 2010 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\nvar UPCEANExtension5Support_1 = require(\"./UPCEANExtension5Support\");\nvar UPCEANExtension2Support_1 = require(\"./UPCEANExtension2Support\");\nvar UPCEANExtensionSupport = /** @class */ (function () {\n function UPCEANExtensionSupport() {\n }\n UPCEANExtensionSupport.decodeRow = function (rowNumber, row, rowOffset) {\n var extensionStartRange = UPCEANReader_1.default.findGuardPattern(row, rowOffset, false, this.EXTENSION_START_PATTERN, new Array(this.EXTENSION_START_PATTERN.length).fill(0));\n try {\n var fiveSupport = new UPCEANExtension5Support_1.default();\n return fiveSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n catch (err) {\n var twoSupport = new UPCEANExtension2Support_1.default();\n return twoSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n };\n UPCEANExtensionSupport.EXTENSION_START_PATTERN = [1, 1, 2];\n return UPCEANExtensionSupport;\n}());\nexports.default = UPCEANExtensionSupport;\n//# sourceMappingURL=UPCEANExtensionSupport.js.map","/**\n * send\n *\n * @name send\n * @function send packet to worker and create a job\n * @access public\n */\nmodule.exports = async (worker, packet) => {\n worker.postMessage(packet);\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(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 || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\n/**\n * Represents some type of metadata about the result of the decoding that the decoder\n * wishes to communicate back to the caller.\n *\n * @author Sean Owen\n */\nvar ResultMetadataType;\n(function (ResultMetadataType) {\n /**\n * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.\n */\n ResultMetadataType[ResultMetadataType[\"OTHER\"] = 0] = \"OTHER\";\n /**\n * Denotes the likely approximate orientation of the barcode in the image. This value\n * is given as degrees rotated clockwise from the normal, upright orientation.\n * For example a 1D barcode which was found by reading top-to-bottom would be\n * said to have orientation \"90\". This key maps to an {@link Integer} whose\n * value is in the range [0,360).\n */\n ResultMetadataType[ResultMetadataType[\"ORIENTATION\"] = 1] = \"ORIENTATION\";\n /**\n *2D barcode formats typically encode text, but allow for a sort of 'byte mode'\n * which is sometimes used to encode binary data. While {@link Result} makes available\n * the complete raw bytes in the barcode for these formats, it does not offer the bytes\n * from the byte segments alone.
\n *\n *This maps to a {@link java.util.List} of byte arrays corresponding to the\n * raw bytes in the byte segments in the barcode, in order.
\n */\n ResultMetadataType[ResultMetadataType[\"BYTE_SEGMENTS\"] = 2] = \"BYTE_SEGMENTS\";\n /**\n * Error correction level used, if applicable. The value type depends on the\n * format, but is typically a String.\n */\n ResultMetadataType[ResultMetadataType[\"ERROR_CORRECTION_LEVEL\"] = 3] = \"ERROR_CORRECTION_LEVEL\";\n /**\n * For some periodicals, indicates the issue number as an {@link Integer}.\n */\n ResultMetadataType[ResultMetadataType[\"ISSUE_NUMBER\"] = 4] = \"ISSUE_NUMBER\";\n /**\n * For some products, indicates the suggested retail price in the barcode as a\n * formatted {@link String}.\n */\n ResultMetadataType[ResultMetadataType[\"SUGGESTED_PRICE\"] = 5] = \"SUGGESTED_PRICE\";\n /**\n * For some products, the possible country of manufacture as a {@link String} denoting the\n * ISO country code. Some map to multiple possible countries, like \"US/CA\".\n */\n ResultMetadataType[ResultMetadataType[\"POSSIBLE_COUNTRY\"] = 6] = \"POSSIBLE_COUNTRY\";\n /**\n * For some products, the extension text\n */\n ResultMetadataType[ResultMetadataType[\"UPC_EAN_EXTENSION\"] = 7] = \"UPC_EAN_EXTENSION\";\n /**\n * PDF417-specific metadata\n */\n ResultMetadataType[ResultMetadataType[\"PDF417_EXTRA_METADATA\"] = 8] = \"PDF417_EXTRA_METADATA\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * sequence number is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_SEQUENCE\"] = 9] = \"STRUCTURED_APPEND_SEQUENCE\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * parity is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_PARITY\"] = 10] = \"STRUCTURED_APPEND_PARITY\";\n})(ResultMetadataType || (ResultMetadataType = {}));\nexports.default = ResultMetadataType;\n//# sourceMappingURL=ResultMetadataType.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar UnsupportedOperationException = /** @class */ (function (_super) {\n __extends(UnsupportedOperationException, _super);\n function UnsupportedOperationException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return UnsupportedOperationException;\n}(Exception_1.default));\nexports.default = UnsupportedOperationException;\n//# sourceMappingURL=UnsupportedOperationException.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DecoderResult_1 = require(\"../../common/DecoderResult\");\nvar BitSource_1 = require(\"../../common/BitSource\");\nvar StringBuilder_1 = require(\"../../util/StringBuilder\");\nvar StringEncoding_1 = require(\"../../util/StringEncoding\");\nvar __1 = require(\"../../..\");\nvar FormatException_1 = require(\"../../FormatException\");\nvar IllegalStateException_1 = require(\"../../IllegalStateException\");\n/*\n * Copyright 2008 ZXing authors\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 */\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"PAD_ENCODE\"] = 0] = \"PAD_ENCODE\";\n Mode[Mode[\"ASCII_ENCODE\"] = 1] = \"ASCII_ENCODE\";\n Mode[Mode[\"C40_ENCODE\"] = 2] = \"C40_ENCODE\";\n Mode[Mode[\"TEXT_ENCODE\"] = 3] = \"TEXT_ENCODE\";\n Mode[Mode[\"ANSIX12_ENCODE\"] = 4] = \"ANSIX12_ENCODE\";\n Mode[Mode[\"EDIFACT_ENCODE\"] = 5] = \"EDIFACT_ENCODE\";\n Mode[Mode[\"BASE256_ENCODE\"] = 6] = \"BASE256_ENCODE\";\n})(Mode || (Mode = {}));\n/**\n *Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one Data Matrix Code. This class decodes the bits back into text.
\n *\n *See ISO 16022:2006, 5.2.1 - 5.2.9.2
\n *\n * @author bbrown@google.com (Brian Brown)\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n function DecodedBitStreamParser() {\n }\n DecodedBitStreamParser.decode = function (bytes) {\n var bits = new BitSource_1.default(bytes);\n var result = new StringBuilder_1.default();\n var resultTrailer = new StringBuilder_1.default();\n var byteSegments = new Array();\n var mode = Mode.ASCII_ENCODE;\n do {\n if (mode === Mode.ASCII_ENCODE) {\n mode = this.decodeAsciiSegment(bits, result, resultTrailer);\n }\n else {\n switch (mode) {\n case Mode.C40_ENCODE:\n this.decodeC40Segment(bits, result);\n break;\n case Mode.TEXT_ENCODE:\n this.decodeTextSegment(bits, result);\n break;\n case Mode.ANSIX12_ENCODE:\n this.decodeAnsiX12Segment(bits, result);\n break;\n case Mode.EDIFACT_ENCODE:\n this.decodeEdifactSegment(bits, result);\n break;\n case Mode.BASE256_ENCODE:\n this.decodeBase256Segment(bits, result, byteSegments);\n break;\n default:\n throw new FormatException_1.default();\n }\n mode = Mode.ASCII_ENCODE;\n }\n } while (mode !== Mode.PAD_ENCODE && bits.available() > 0);\n if (resultTrailer.length() > 0) {\n result.append(resultTrailer.toString());\n }\n return new DecoderResult_1.default(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, null);\n };\n /**\n * See ISO 16022:2006, 5.2.3 and Annex C, Table C.2\n */\n DecodedBitStreamParser.decodeAsciiSegment = function (bits, result, resultTrailer) {\n var upperShift = false;\n do {\n var oneByte = bits.readBits(8);\n if (oneByte === 0) {\n throw new FormatException_1.default();\n }\n else if (oneByte <= 128) { // ASCII data (ASCII value + 1)\n if (upperShift) {\n oneByte += 128;\n // upperShift = false;\n }\n result.append(String.fromCharCode(oneByte - 1));\n return Mode.ASCII_ENCODE;\n }\n else if (oneByte === 129) { // Pad\n return Mode.PAD_ENCODE;\n }\n else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130)\n var value = oneByte - 130;\n if (value < 10) { // pad with '0' for single digit values\n result.append('0');\n }\n result.append('' + value);\n }\n else {\n switch (oneByte) {\n case 230: // Latch to C40 encodation\n return Mode.C40_ENCODE;\n case 231: // Latch to Base 256 encodation\n return Mode.BASE256_ENCODE;\n case 232: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 233: // Structured Append\n case 234: // Reader Programming\n // Ignore these symbols for now\n // throw ReaderException.getInstance();\n break;\n case 235: // Upper Shift (shift to Extended ASCII)\n upperShift = true;\n break;\n case 236: // 05 Macro\n result.append('[)>\\u001E05\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 237: // 06 Macro\n result.append('[)>\\u001E06\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 238: // Latch to ANSI X12 encodation\n return Mode.ANSIX12_ENCODE;\n case 239: // Latch to Text encodation\n return Mode.TEXT_ENCODE;\n case 240: // Latch to EDIFACT encodation\n return Mode.EDIFACT_ENCODE;\n case 241: // ECI Character\n // TODO(bbrown): I think we need to support ECI\n // throw ReaderException.getInstance();\n // Ignore this symbol for now\n break;\n default:\n // Not to be used in ASCII encodation\n // but work around encoders that end with 254, latch back to ASCII\n if (oneByte !== 254 || bits.available() !== 0) {\n throw new FormatException_1.default();\n }\n break;\n }\n }\n } while (bits.available() > 0);\n return Mode.ASCII_ENCODE;\n };\n /**\n * See ISO 16022:2006, 5.2.5 and Annex C, Table C.1\n */\n DecodedBitStreamParser.decodeC40Segment = function (bits, result) {\n // Three C40 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with C40 doesn't work in the 4 value scenario all the time\n var upperShift = false;\n var cValues = [];\n var shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.C40_BASIC_SET_CHARS.length) {\n var c40char = this.C40_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n if (cValue < this.C40_SHIFT2_SET_CHARS.length) {\n var c40char = this.C40_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException_1.default();\n }\n }\n shift = 0;\n break;\n case 3:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 224));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue + 96));\n }\n shift = 0;\n break;\n default:\n throw new FormatException_1.default();\n }\n }\n } while (bits.available() > 0);\n };\n /**\n * See ISO 16022:2006, 5.2.6 and Annex C, Table C.2\n */\n DecodedBitStreamParser.decodeTextSegment = function (bits, result) {\n // Three Text values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with Text doesn't work in the 4 value scenario all the time\n var upperShift = false;\n var cValues = [];\n var shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.TEXT_BASIC_SET_CHARS.length) {\n var textChar = this.TEXT_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n // Shift 2 for Text is the same encoding as C40\n if (cValue < this.TEXT_SHIFT2_SET_CHARS.length) {\n var textChar = this.TEXT_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException_1.default();\n }\n }\n shift = 0;\n break;\n case 3:\n if (cValue < this.TEXT_SHIFT3_SET_CHARS.length) {\n var textChar = this.TEXT_SHIFT3_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n shift = 0;\n }\n else {\n throw new FormatException_1.default();\n }\n break;\n default:\n throw new FormatException_1.default();\n }\n }\n } while (bits.available() > 0);\n };\n /**\n * See ISO 16022:2006, 5.2.7\n */\n DecodedBitStreamParser.decodeAnsiX12Segment = function (bits, result) {\n // Three ANSI X12 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n var cValues = [];\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (cValue) {\n case 0: // X12 segment terminatorQR Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one QR Code. This class decodes the bits back into text.
\n *\n *See ISO 18004:2006, 6.4.3 - 6.4.7
\n *\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n function DecodedBitStreamParser() {\n }\n DecodedBitStreamParser.decode = function (bytes, version, ecLevel, hints) {\n var bits = new BitSource_1.default(bytes);\n var result = new StringBuilder_1.default();\n var byteSegments = new Array(); // 1\n // TYPESCRIPTPORT: I do not use constructor with size 1 as in original Java means capacity and the array length is checked below\n var symbolSequence = -1;\n var parityData = -1;\n try {\n var currentCharacterSetECI = null;\n var fc1InEffect = false;\n var mode = void 0;\n do {\n // While still another segment to read...\n if (bits.available() < 4) {\n // OK, assume we're done. Really, a TERMINATOR mode should have been recorded here\n mode = Mode_1.default.TERMINATOR;\n }\n else {\n var modeBits = bits.readBits(4);\n mode = Mode_1.default.forBits(modeBits); // mode is encoded by 4 bits\n }\n switch (mode) {\n case Mode_1.default.TERMINATOR:\n break;\n case Mode_1.default.FNC1_FIRST_POSITION:\n case Mode_1.default.FNC1_SECOND_POSITION:\n // We do little with FNC1 except alter the parsed result a bit according to the spec\n fc1InEffect = true;\n break;\n case Mode_1.default.STRUCTURED_APPEND:\n if (bits.available() < 16) {\n throw new FormatException_1.default();\n }\n // sequence number and parity is added later to the result metadata\n // Read next 8 bits (symbol sequence #) and 8 bits (data: parity), then continue\n symbolSequence = bits.readBits(8);\n parityData = bits.readBits(8);\n break;\n case Mode_1.default.ECI:\n // Count doesn't apply to ECI\n var value = DecodedBitStreamParser.parseECIValue(bits);\n currentCharacterSetECI = CharacterSetECI_1.default.getCharacterSetECIByValue(value);\n if (currentCharacterSetECI === null) {\n throw new FormatException_1.default();\n }\n break;\n case Mode_1.default.HANZI:\n // First handle Hanzi mode which does not start with character count\n // Chinese mode contains a sub set indicator right after mode indicator\n var subset = bits.readBits(4);\n var countHanzi = bits.readBits(mode.getCharacterCountBits(version));\n if (subset === DecodedBitStreamParser.GB2312_SUBSET) {\n DecodedBitStreamParser.decodeHanziSegment(bits, result, countHanzi);\n }\n break;\n default:\n // \"Normal\" QR code modes:\n // How many characters will follow, encoded in this mode?\n var count = bits.readBits(mode.getCharacterCountBits(version));\n switch (mode) {\n case Mode_1.default.NUMERIC:\n DecodedBitStreamParser.decodeNumericSegment(bits, result, count);\n break;\n case Mode_1.default.ALPHANUMERIC:\n DecodedBitStreamParser.decodeAlphanumericSegment(bits, result, count, fc1InEffect);\n break;\n case Mode_1.default.BYTE:\n DecodedBitStreamParser.decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints);\n break;\n case Mode_1.default.KANJI:\n DecodedBitStreamParser.decodeKanjiSegment(bits, result, count);\n break;\n default:\n throw new FormatException_1.default();\n }\n break;\n }\n } while (mode !== Mode_1.default.TERMINATOR);\n }\n catch (iae /*: IllegalArgumentException*/) {\n // from readBits() calls\n throw new FormatException_1.default();\n }\n return new DecoderResult_1.default(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, ecLevel === null ? null : ecLevel.toString(), symbolSequence, parityData);\n };\n /**\n * See specification GBT 18284-2000\n */\n DecodedBitStreamParser.decodeHanziSegment = function (bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException_1.default();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as GB2312 afterwards\n var buffer = new Uint8Array(2 * count);\n var offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n var twoBytes = bits.readBits(13);\n var assembledTwoBytes = (((twoBytes / 0x060) << 8) & 0xFFFFFFFF) | (twoBytes % 0x060);\n if (assembledTwoBytes < 0x003BF) {\n // In the 0xA1A1 to 0xAAFE range\n assembledTwoBytes += 0x0A1A1;\n }\n else {\n // In the 0xB0A1 to 0xFAFE range\n assembledTwoBytes += 0x0A6A1;\n }\n buffer[offset] = /*(byte) */ ((assembledTwoBytes >> 8) & 0xFF);\n buffer[offset + 1] = /*(byte) */ (assembledTwoBytes & 0xFF);\n offset += 2;\n count--;\n }\n try {\n result.append(StringEncoding_1.default.decode(buffer, StringUtils_1.default.GB2312));\n // TYPESCRIPTPORT: TODO: implement GB2312 decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException_1.default(ignored);\n }\n };\n DecodedBitStreamParser.decodeKanjiSegment = function (bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException_1.default();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as Shift_JIS afterwards\n var buffer = new Uint8Array(2 * count);\n var offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n var twoBytes = bits.readBits(13);\n var assembledTwoBytes = (((twoBytes / 0x0C0) << 8) & 0xFFFFFFFF) | (twoBytes % 0x0C0);\n if (assembledTwoBytes < 0x01F00) {\n // In the 0x8140 to 0x9FFC range\n assembledTwoBytes += 0x08140;\n }\n else {\n // In the 0xE040 to 0xEBBF range\n assembledTwoBytes += 0x0C140;\n }\n buffer[offset] = /*(byte) */ (assembledTwoBytes >> 8);\n buffer[offset + 1] = /*(byte) */ assembledTwoBytes;\n offset += 2;\n count--;\n }\n // Shift_JIS may not be supported in some environments:\n try {\n result.append(StringEncoding_1.default.decode(buffer, StringUtils_1.default.SHIFT_JIS));\n // TYPESCRIPTPORT: TODO: implement SHIFT_JIS decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException_1.default(ignored);\n }\n };\n DecodedBitStreamParser.decodeByteSegment = function (bits, result, count /*int*/, currentCharacterSetECI, byteSegments, hints) {\n // Don't crash trying to read more bits than we have available.\n if (8 * count > bits.available()) {\n throw new FormatException_1.default();\n }\n var readBytes = new Uint8Array(count);\n for (var i = 0; i < count; i++) {\n readBytes[i] = /*(byte) */ bits.readBits(8);\n }\n var encoding;\n if (currentCharacterSetECI === null) {\n // The spec isn't clear on this mode; see\n // section 6.4.5: t does not say which encoding to assuming\n // upon decoding. I have seen ISO-8859-1 used as well as\n // Shift_JIS -- without anything like an ECI designator to\n // give a hint.\n encoding = StringUtils_1.default.guessEncoding(readBytes, hints);\n }\n else {\n encoding = currentCharacterSetECI.getName();\n }\n try {\n result.append(StringEncoding_1.default.decode(readBytes, encoding));\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException_1.default(ignored);\n }\n byteSegments.push(readBytes);\n };\n DecodedBitStreamParser.toAlphaNumericChar = function (value /*int*/) {\n if (value >= DecodedBitStreamParser.ALPHANUMERIC_CHARS.length) {\n throw new FormatException_1.default();\n }\n return DecodedBitStreamParser.ALPHANUMERIC_CHARS[value];\n };\n DecodedBitStreamParser.decodeAlphanumericSegment = function (bits, result, count /*int*/, fc1InEffect) {\n // Read two characters at a time\n var start = result.length();\n while (count > 1) {\n if (bits.available() < 11) {\n throw new FormatException_1.default();\n }\n var nextTwoCharsBits = bits.readBits(11);\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(nextTwoCharsBits / 45)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(nextTwoCharsBits % 45));\n count -= 2;\n }\n if (count === 1) {\n // special case: one character left\n if (bits.available() < 6) {\n throw new FormatException_1.default();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(bits.readBits(6)));\n }\n // See section 6.4.8.1, 6.4.8.2\n if (fc1InEffect) {\n // We need to massage the result a bit if in an FNC1 mode:\n for (var i = start; i < result.length(); i++) {\n if (result.charAt(i) === '%') {\n if (i < result.length() - 1 && result.charAt(i + 1) === '%') {\n // %% is rendered as %\n result.deleteCharAt(i + 1);\n }\n else {\n // In alpha mode, % should be converted to FNC1 separator 0x1D\n result.setCharAt(i, String.fromCharCode(0x1D));\n }\n }\n }\n }\n };\n DecodedBitStreamParser.decodeNumericSegment = function (bits, result, count /*int*/) {\n // Read three digits at a time\n while (count >= 3) {\n // Each 10 bits encodes three digits\n if (bits.available() < 10) {\n throw new FormatException_1.default();\n }\n var threeDigitsBits = bits.readBits(10);\n if (threeDigitsBits >= 1000) {\n throw new FormatException_1.default();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 100)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 10) % 10));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(threeDigitsBits % 10));\n count -= 3;\n }\n if (count === 2) {\n // Two digits left over to read, encoded in 7 bits\n if (bits.available() < 7) {\n throw new FormatException_1.default();\n }\n var twoDigitsBits = bits.readBits(7);\n if (twoDigitsBits >= 100) {\n throw new FormatException_1.default();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(twoDigitsBits / 10)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(twoDigitsBits % 10));\n }\n else if (count === 1) {\n // One digit left over to read\n if (bits.available() < 4) {\n throw new FormatException_1.default();\n }\n var digitBits = bits.readBits(4);\n if (digitBits >= 10) {\n throw new FormatException_1.default();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(digitBits));\n }\n };\n DecodedBitStreamParser.parseECIValue = function (bits) {\n var firstByte = bits.readBits(8);\n if ((firstByte & 0x80) === 0) {\n // just one byte\n return firstByte & 0x7F;\n }\n if ((firstByte & 0xC0) === 0x80) {\n // two bytes\n var secondByte = bits.readBits(8);\n return (((firstByte & 0x3F) << 8) & 0xFFFFFFFF) | secondByte;\n }\n if ((firstByte & 0xE0) === 0xC0) {\n // three bytes\n var secondThirdBytes = bits.readBits(16);\n return (((firstByte & 0x1F) << 16) & 0xFFFFFFFF) | secondThirdBytes;\n }\n throw new FormatException_1.default();\n };\n /**\n * See ISO 18004:2006, 6.4.4 Table 5\n */\n DecodedBitStreamParser.ALPHANUMERIC_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';\n DecodedBitStreamParser.GB2312_SUBSET = 1;\n return DecodedBitStreamParser;\n}());\nexports.default = DecodedBitStreamParser;\nfunction Uint8ArrayToString(a) {\n var CHUNK_SZ = 0x8000;\n var c = new StringBuilder_1.default();\n for (var i = 0, length_1 = a.length; i < length_1; i += CHUNK_SZ) {\n c.append(String.fromCharCode.apply(null, a.subarray(i, i + CHUNK_SZ)));\n }\n return c.toString();\n}\n//# sourceMappingURL=DecodedBitStreamParser.js.map","module.exports = {\n /*\n * default path for downloading *.traineddata\n */\n langPath: 'https://tessdata.projectnaptha.com/4.0.0',\n /*\n * Use BlobURL for worker script by default\n * TODO: remove this option\n *\n */\n workerBlobURL: true,\n logger: () => {},\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-error\"},[(_vm.windowWidth >= 600 && _vm.windowHeight >= 600)?_c('b-modal',{ref:\"my-modal-error\",staticClass:\"modal-Error\",attrs:{\"id\":\"modal-error\",\"centered\":\"\",\"crm_at\":\"modal_error\",\"hide-footer\":\"\"}},[_c('div',{class:_vm.currentLocale},[_c('div',{staticClass:\"text-center\"},[_c('img',{staticClass:\"icon-error\",attrs:{\"src\":require(\"@/assets/images/icon_Error.svg\"),\"alt\":\"\"}})]),_c('div',{staticClass:\"text-center pb-4 pt-3 modal-error-text-main\",attrs:{\"crm_at\":\"detail_error\"}},[_vm._v(\"\\n \"+_vm._s(_vm.Title)+\"\\n \")]),_c('div',{staticClass:\"text-center pb-4 modal-error-text-sub\",attrs:{\"crm_at\":\"detail_error\"},domProps:{\"innerHTML\":_vm._s(_vm.Detail)}}),_c('button',{staticClass:\"btn-alert-error\",style:({\n 'background-color': _vm.backgroundColor ? _vm.backgroundColor : '#1890ff',\n 'border-color': _vm.backgroundColor ? _vm.backgroundColor : '#1890ff',\n color: _vm.textColor ? _vm.textColor : '#FFF',\n }),attrs:{\"type\":\"submit\",\"value\":\"Submit\",\"crm_at\":\"btn_submit\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.btn.submit)+\"\\n \")])])]):_c('b-modal',{ref:\"my-modal-error\",staticClass:\"modal-Error\",attrs:{\"id\":\"modal-error\",\"centered\":\"\",\"crm_at\":\"modal_error\",\"hide-footer\":\"\"},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(ref){\n var close = ref.close;\nreturn [_c('div',{class:_vm.currentLocale},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-8\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"crm_at\":\"title_error\"}},[_vm._v(\"\\n \"+_vm._s(_vm.Title)+\"\\n \")])]),_c('div',{staticClass:\"col-4 text-end\"},[_c('b-button',{staticClass:\"b-modal-header close-modal-btn\",attrs:{\"size\":\"lg\",\"crm_at\":\"close_error\"},on:{\"click\":function($event){return close()}}},[_c('a-icon',{attrs:{\"type\":\"close\"}})],1)],1)])])]}}])},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 text-center pt-4 pb-4 b-modal-body\",attrs:{\"crm_at\":\"detail_error\"},domProps:{\"innerHTML\":_vm._s(_vm.Detail)}}),(_vm.Log != null)?_c('div',{staticClass:\"col-12 text-right pt-0 pb-0 b-log-error\",attrs:{\"crm_at\":\"log_error\"}},[_vm._v(\"\\n Log : \"+_vm._s(_vm.Log)+\"\\n \")]):_vm._e()])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nEncapsulates the result of decoding a matrix of bits. This typically\n * applies to 2D barcode formats. For now it contains the raw bytes obtained,\n * as well as a String interpretation of those bytes, if applicable.
\n *\n * @author Sean Owen\n */\nvar DecoderResult = /** @class */ (function () {\n // public constructor(rawBytes: Uint8Array,\n // text: string,\n // ListEncapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.
\n */\nvar ECBlocks = /** @class */ (function () {\n function ECBlocks(ecCodewords, ecBlocks1, ecBlocks2) {\n this.ecCodewords = ecCodewords;\n this.ecBlocks = [ecBlocks1];\n ecBlocks2 && this.ecBlocks.push(ecBlocks2);\n }\n ECBlocks.prototype.getECCodewords = function () {\n return this.ecCodewords;\n };\n ECBlocks.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n return ECBlocks;\n}());\nexports.ECBlocks = ECBlocks;\n/**\n *Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the Data Matrix code version's format.
\n */\nvar ECB = /** @class */ (function () {\n function ECB(count, dataCodewords) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n ECB.prototype.getCount = function () {\n return this.count;\n };\n ECB.prototype.getDataCodewords = function () {\n return this.dataCodewords;\n };\n return ECB;\n}());\nexports.ECB = ECB;\n/**\n * The Version object encapsulates attributes about a particular\n * size Data Matrix Code.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Version = /** @class */ (function () {\n function Version(versionNumber, symbolSizeRows, symbolSizeColumns, dataRegionSizeRows, dataRegionSizeColumns, ecBlocks) {\n this.versionNumber = versionNumber;\n this.symbolSizeRows = symbolSizeRows;\n this.symbolSizeColumns = symbolSizeColumns;\n this.dataRegionSizeRows = dataRegionSizeRows;\n this.dataRegionSizeColumns = dataRegionSizeColumns;\n this.ecBlocks = ecBlocks;\n // Calculate the total number of codewords\n var total = 0;\n var ecCodewords = ecBlocks.getECCodewords();\n var ecbArray = ecBlocks.getECBlocks();\n for (var _i = 0, ecbArray_1 = ecbArray; _i < ecbArray_1.length; _i++) {\n var ecBlock = ecbArray_1[_i];\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n this.totalCodewords = total;\n }\n Version.prototype.getVersionNumber = function () {\n return this.versionNumber;\n };\n Version.prototype.getSymbolSizeRows = function () {\n return this.symbolSizeRows;\n };\n Version.prototype.getSymbolSizeColumns = function () {\n return this.symbolSizeColumns;\n };\n Version.prototype.getDataRegionSizeRows = function () {\n return this.dataRegionSizeRows;\n };\n Version.prototype.getDataRegionSizeColumns = function () {\n return this.dataRegionSizeColumns;\n };\n Version.prototype.getTotalCodewords = function () {\n return this.totalCodewords;\n };\n Version.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n /**\n *Deduces version information from Data Matrix dimensions.
\n *\n * @param numRows Number of rows in modules\n * @param numColumns Number of columns in modules\n * @return Version for a Data Matrix Code of those dimensions\n * @throws FormatException if dimensions do correspond to a valid Data Matrix size\n */\n Version.getVersionForDimensions = function (numRows, numColumns) {\n if ((numRows & 0x01) !== 0 || (numColumns & 0x01) !== 0) {\n throw new FormatException_1.default();\n }\n for (var _i = 0, _a = Version.VERSIONS; _i < _a.length; _i++) {\n var version = _a[_i];\n if (version.symbolSizeRows === numRows && version.symbolSizeColumns === numColumns) {\n return version;\n }\n }\n throw new FormatException_1.default();\n };\n // @Override\n Version.prototype.toString = function () {\n return '' + this.versionNumber;\n };\n /**\n * See ISO 16022:2006 5.5.1 Table 7\n */\n Version.buildVersions = function () {\n return [\n new Version(1, 10, 10, 8, 8, new ECBlocks(5, new ECB(1, 3))),\n new Version(2, 12, 12, 10, 10, new ECBlocks(7, new ECB(1, 5))),\n new Version(3, 14, 14, 12, 12, new ECBlocks(10, new ECB(1, 8))),\n new Version(4, 16, 16, 14, 14, new ECBlocks(12, new ECB(1, 12))),\n new Version(5, 18, 18, 16, 16, new ECBlocks(14, new ECB(1, 18))),\n new Version(6, 20, 20, 18, 18, new ECBlocks(18, new ECB(1, 22))),\n new Version(7, 22, 22, 20, 20, new ECBlocks(20, new ECB(1, 30))),\n new Version(8, 24, 24, 22, 22, new ECBlocks(24, new ECB(1, 36))),\n new Version(9, 26, 26, 24, 24, new ECBlocks(28, new ECB(1, 44))),\n new Version(10, 32, 32, 14, 14, new ECBlocks(36, new ECB(1, 62))),\n new Version(11, 36, 36, 16, 16, new ECBlocks(42, new ECB(1, 86))),\n new Version(12, 40, 40, 18, 18, new ECBlocks(48, new ECB(1, 114))),\n new Version(13, 44, 44, 20, 20, new ECBlocks(56, new ECB(1, 144))),\n new Version(14, 48, 48, 22, 22, new ECBlocks(68, new ECB(1, 174))),\n new Version(15, 52, 52, 24, 24, new ECBlocks(42, new ECB(2, 102))),\n new Version(16, 64, 64, 14, 14, new ECBlocks(56, new ECB(2, 140))),\n new Version(17, 72, 72, 16, 16, new ECBlocks(36, new ECB(4, 92))),\n new Version(18, 80, 80, 18, 18, new ECBlocks(48, new ECB(4, 114))),\n new Version(19, 88, 88, 20, 20, new ECBlocks(56, new ECB(4, 144))),\n new Version(20, 96, 96, 22, 22, new ECBlocks(68, new ECB(4, 174))),\n new Version(21, 104, 104, 24, 24, new ECBlocks(56, new ECB(6, 136))),\n new Version(22, 120, 120, 18, 18, new ECBlocks(68, new ECB(6, 175))),\n new Version(23, 132, 132, 20, 20, new ECBlocks(62, new ECB(8, 163))),\n new Version(24, 144, 144, 22, 22, new ECBlocks(62, new ECB(8, 156), new ECB(2, 155))),\n new Version(25, 8, 18, 6, 16, new ECBlocks(7, new ECB(1, 5))),\n new Version(26, 8, 32, 6, 14, new ECBlocks(11, new ECB(1, 10))),\n new Version(27, 12, 26, 10, 24, new ECBlocks(14, new ECB(1, 16))),\n new Version(28, 12, 36, 10, 16, new ECBlocks(18, new ECB(1, 22))),\n new Version(29, 16, 36, 14, 16, new ECBlocks(24, new ECB(1, 32))),\n new Version(30, 16, 48, 14, 22, new ECBlocks(28, new ECB(1, 49)))\n ];\n };\n Version.VERSIONS = Version.buildVersions();\n return Version;\n}());\nexports.default = Version;\n//# sourceMappingURL=Version.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n * Implementations of this class can, given locations of finder patterns for a QR code in an\n * image, sample the right points in the image to reconstruct the QR code, accounting for\n * perspective distortion. It is abstracted since it is relatively expensive and should be allowed\n * to take advantage of platform-specific optimized implementations, like Sun's Java Advanced\n * Imaging library, but which may not be available in other environments such as J2ME, and vice\n * versa.\n *\n * The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)}\n * with an instance of a class which implements this interface.\n *\n * @author Sean Owen\n */\nvar GridSampler = /** @class */ (function () {\n function GridSampler() {\n }\n /**\n *Checks a set of points that have been transformed to sample points on an image against\n * the image's dimensions to see if the point are even within the image.
\n *\n *This method will actually \"nudge\" the endpoints back onto the image if they are found to be\n * barely (less than 1 pixel) off the image. This accounts for imperfect detection of finder\n * patterns in an image where the QR Code runs all the way to the image border.
\n *\n *For efficiency, the method will check points from either end of the line until one is found\n * to be within the image. Because the set of points are assumed to be linear, this is valid.
\n *\n * @param image image into which the points should map\n * @param points actual points in x1,y1,...,xn,yn form\n * @throws NotFoundException if an endpoint is lies outside the image boundaries\n */\n GridSampler.checkAndNudgePoints = function (image, points) {\n var width = image.getWidth();\n var height = image.getHeight();\n // Check and nudge points from start until we see some that are OK:\n var nudged = true;\n for (var offset = 0; offset < points.length && nudged; offset += 2) {\n var x = Math.floor(points[offset]);\n var y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException_1.default();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n // Check and nudge points from end:\n nudged = true;\n for (var offset = points.length - 2; offset >= 0 && nudged; offset -= 2) {\n var x = Math.floor(points[offset]);\n var y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException_1.default();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n };\n return GridSampler;\n}());\nexports.default = GridSampler;\n//# sourceMappingURL=GridSampler.js.map","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\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 setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\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 setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = require(\"../../common/BitMatrix\");\nvar Version_1 = require(\"./Version\");\nvar FormatException_1 = require(\"../../FormatException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/*\n * Copyright 2007 ZXing authors\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 * @author bbrown@google.com (Brian Brown)\n */\nvar BitMatrixParser = /** @class */ (function () {\n /**\n * @param bitMatrix {@link BitMatrix} to parse\n * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2\n */\n function BitMatrixParser(bitMatrix) {\n var dimension = bitMatrix.getHeight();\n if (dimension < 8 || dimension > 144 || (dimension & 0x01) !== 0) {\n throw new FormatException_1.default();\n }\n this.version = BitMatrixParser.readVersion(bitMatrix);\n this.mappingBitMatrix = this.extractDataRegion(bitMatrix);\n this.readMappingMatrix = new BitMatrix_1.default(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight());\n }\n BitMatrixParser.prototype.getVersion = function () {\n return this.version;\n };\n /**\n *Creates the version object based on the dimension of the original bit matrix from\n * the datamatrix code.
\n *\n *See ISO 16022:2006 Table 7 - ECC 200 symbol attributes
\n *\n * @param bitMatrix Original {@link BitMatrix} including alignment patterns\n * @return {@link Version} encapsulating the Data Matrix Code's \"version\"\n * @throws FormatException if the dimensions of the mapping matrix are not valid\n * Data Matrix dimensions.\n */\n BitMatrixParser.readVersion = function (bitMatrix) {\n var numRows = bitMatrix.getHeight();\n var numColumns = bitMatrix.getWidth();\n return Version_1.default.getVersionForDimensions(numRows, numColumns);\n };\n /**\n *Reads the bits in the {@link BitMatrix} representing the mapping matrix (No alignment patterns)\n * in the correct order in order to reconstitute the codewords bytes contained within the\n * Data Matrix Code.
\n *\n * @return bytes encoded within the Data Matrix Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n BitMatrixParser.prototype.readCodewords = function () {\n var result = new Int8Array(this.version.getTotalCodewords());\n var resultOffset = 0;\n var row = 4;\n var column = 0;\n var numRows = this.mappingBitMatrix.getHeight();\n var numColumns = this.mappingBitMatrix.getWidth();\n var corner1Read = false;\n var corner2Read = false;\n var corner3Read = false;\n var corner4Read = false;\n // Read all of the codewords\n do {\n // Check the four corner cases\n if ((row === numRows) && (column === 0) && !corner1Read) {\n result[resultOffset++] = this.readCorner1(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner1Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x03) !== 0) && !corner2Read) {\n result[resultOffset++] = this.readCorner2(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner2Read = true;\n }\n else if ((row === numRows + 4) && (column === 2) && ((numColumns & 0x07) === 0) && !corner3Read) {\n result[resultOffset++] = this.readCorner3(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner3Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x07) === 4) && !corner4Read) {\n result[resultOffset++] = this.readCorner4(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner4Read = true;\n }\n else {\n // Sweep upward diagonally to the right\n do {\n if ((row < numRows) && (column >= 0) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row -= 2;\n column += 2;\n } while ((row >= 0) && (column < numColumns));\n row += 1;\n column += 3;\n // Sweep downward diagonally to the left\n do {\n if ((row >= 0) && (column < numColumns) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row += 2;\n column -= 2;\n } while ((row < numRows) && (column >= 0));\n row += 3;\n column += 1;\n }\n } while ((row < numRows) || (column < numColumns));\n if (resultOffset !== this.version.getTotalCodewords()) {\n throw new FormatException_1.default();\n }\n return result;\n };\n /**\n *Reads a bit of the mapping matrix accounting for boundary wrapping.
\n *\n * @param row Row to read in the mapping matrix\n * @param column Column to read in the mapping matrix\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return value of the given bit in the mapping matrix\n */\n BitMatrixParser.prototype.readModule = function (row, column, numRows, numColumns) {\n // Adjust the row and column indices based on boundary wrapping\n if (row < 0) {\n row += numRows;\n column += 4 - ((numRows + 4) & 0x07);\n }\n if (column < 0) {\n column += numColumns;\n row += 4 - ((numColumns + 4) & 0x07);\n }\n this.readMappingMatrix.set(column, row);\n return this.mappingBitMatrix.get(column, row);\n };\n /**\n *Reads the 8 bits of the standard Utah-shaped pattern.
\n *\n *See ISO 16022:2006, 5.8.1 Figure 6
\n *\n * @param row Current row in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param column Current column in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the utah shape\n */\n BitMatrixParser.prototype.readUtah = function (row, column, numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(row - 2, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 2, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *Reads the 8 bits of the special corner condition 1.
\n *\n *See ISO 16022:2006, Figure F.3
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 1\n */\n BitMatrixParser.prototype.readCorner1 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *Reads the 8 bits of the special corner condition 2.
\n *\n *See ISO 16022:2006, Figure F.4
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 2\n */\n BitMatrixParser.prototype.readCorner2 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 4, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *Reads the 8 bits of the special corner condition 3.
\n *\n *See ISO 16022:2006, Figure F.5
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 3\n */\n BitMatrixParser.prototype.readCorner3 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *Reads the 8 bits of the special corner condition 4.
\n *\n *See ISO 16022:2006, Figure F.6
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 4\n */\n BitMatrixParser.prototype.readCorner4 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *Extracts the data region from a {@link BitMatrix} that contains\n * alignment patterns.
\n *\n * @param bitMatrix Original {@link BitMatrix} with alignment patterns\n * @return BitMatrix that has the alignment patterns removed\n */\n BitMatrixParser.prototype.extractDataRegion = function (bitMatrix) {\n var symbolSizeRows = this.version.getSymbolSizeRows();\n var symbolSizeColumns = this.version.getSymbolSizeColumns();\n if (bitMatrix.getHeight() !== symbolSizeRows) {\n throw new IllegalArgumentException_1.default('Dimension of bitMatrix must match the version size');\n }\n var dataRegionSizeRows = this.version.getDataRegionSizeRows();\n var dataRegionSizeColumns = this.version.getDataRegionSizeColumns();\n var numDataRegionsRow = symbolSizeRows / dataRegionSizeRows | 0;\n var numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns | 0;\n var sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows;\n var sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\n var bitMatrixWithoutAlignment = new BitMatrix_1.default(sizeDataRegionColumn, sizeDataRegionRow);\n for (var dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) {\n var dataRegionRowOffset = dataRegionRow * dataRegionSizeRows;\n for (var dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) {\n var dataRegionColumnOffset = dataRegionColumn * dataRegionSizeColumns;\n for (var i = 0; i < dataRegionSizeRows; ++i) {\n var readRowOffset = dataRegionRow * (dataRegionSizeRows + 2) + 1 + i;\n var writeRowOffset = dataRegionRowOffset + i;\n for (var j = 0; j < dataRegionSizeColumns; ++j) {\n var readColumnOffset = dataRegionColumn * (dataRegionSizeColumns + 2) + 1 + j;\n if (bitMatrix.get(readColumnOffset, readRowOffset)) {\n var writeColumnOffset = dataRegionColumnOffset + j;\n bitMatrixWithoutAlignment.set(writeColumnOffset, writeRowOffset);\n }\n }\n }\n }\n }\n return bitMatrixWithoutAlignment;\n };\n return BitMatrixParser;\n}());\nexports.default = BitMatrixParser;\n//# sourceMappingURL=BitMatrixParser.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.oned {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar Result_1 = require(\"../Result\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar OneDReader_1 = require(\"./OneDReader\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\nvar FormatException_1 = require(\"../FormatException\");\nvar ChecksumException_1 = require(\"../ChecksumException\");\n/**\n *Decodes Code 128 barcodes.
\n *\n * @author Sean Owen\n */\nvar Code128Reader = /** @class */ (function (_super) {\n __extends(Code128Reader, _super);\n function Code128Reader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Code128Reader.findStartPattern = function (row) {\n var width = row.getSize();\n var rowOffset = row.getNextSet(0);\n var counterPosition = 0;\n var counters = [0, 0, 0, 0, 0, 0];\n var patternStart = rowOffset;\n var isWhite = false;\n var patternLength = 6;\n for (var i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === (patternLength - 1)) {\n var bestVariance = Code128Reader.MAX_AVG_VARIANCE;\n var bestMatch = -1;\n for (var startCode = Code128Reader.CODE_START_A; startCode <= Code128Reader.CODE_START_C; startCode++) {\n var variance = OneDReader_1.default.patternMatchVariance(counters, Code128Reader.CODE_PATTERNS[startCode], Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = startCode;\n }\n }\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (bestMatch >= 0 &&\n row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) {\n return [patternStart, i, bestMatch];\n }\n patternStart += counters[0] + counters[1];\n counters.splice(0, 2);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n Code128Reader.decodeCode = function (row, counters, rowOffset) {\n OneDReader_1.default.recordPattern(row, rowOffset, counters);\n var bestVariance = Code128Reader.MAX_AVG_VARIANCE; // worst variance we'll accept\n var bestMatch = -1;\n for (var d = 0; d < Code128Reader.CODE_PATTERNS.length; d++) {\n var pattern = Code128Reader.CODE_PATTERNS[d];\n var variance = this.patternMatchVariance(counters, pattern, Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = d;\n }\n }\n // TODO We're overlooking the fact that the STOP pattern has 7 values, not 6.\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException_1.default();\n }\n };\n Code128Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var convertFNC1 = hints && (hints.get(DecodeHintType_1.default.ASSUME_GS1) === true);\n var startPatternInfo = Code128Reader.findStartPattern(row);\n var startCode = startPatternInfo[2];\n var currentRawCodesIndex = 0;\n var rawCodes = new Uint8Array(20);\n rawCodes[currentRawCodesIndex++] = startCode;\n var codeSet;\n switch (startCode) {\n case Code128Reader.CODE_START_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_START_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_START_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n default:\n throw new FormatException_1.default();\n }\n var done = false;\n var isNextShifted = false;\n var result = '';\n var lastStart = startPatternInfo[0];\n var nextStart = startPatternInfo[1];\n var counters = [0, 0, 0, 0, 0, 0];\n var lastCode = 0;\n var code = 0;\n var checksumTotal = startCode;\n var multiplier = 0;\n var lastCharacterWasPrintable = true;\n var upperMode = false;\n var shiftUpperMode = false;\n while (!done) {\n var unshift = isNextShifted;\n isNextShifted = false;\n // Save off last code\n lastCode = code;\n // Decode another code from image\n code = Code128Reader.decodeCode(row, counters, nextStart);\n rawCodes[currentRawCodesIndex++] = code;\n // Remember whether the last code was printable or not (excluding CODE_STOP)\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = true;\n }\n // Add to checksum computation (if not CODE_STOP of course)\n if (code !== Code128Reader.CODE_STOP) {\n multiplier++;\n checksumTotal += multiplier * code;\n }\n // Advance to where the next code will to start\n lastStart = nextStart;\n nextStart += counters.reduce(function (previous, current) { return previous + current; }, 0);\n // Take care of illegal start codes\n switch (code) {\n case Code128Reader.CODE_START_A:\n case Code128Reader.CODE_START_B:\n case Code128Reader.CODE_START_C:\n throw new FormatException_1.default();\n }\n switch (codeSet) {\n case Code128Reader.CODE_CODE_A:\n if (code < 64) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((code - 64));\n }\n else {\n result += String.fromCharCode((code + 64));\n }\n shiftUpperMode = false;\n }\n else {\n // Don't let CODE_STOP, which always appears, affect whether whether we think the last\n // code was printable or not.\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_A:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_B:\n if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_B:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_C:\n if (code < 100) {\n if (code < 10) {\n result += '0';\n }\n result += code;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n }\n // Unshift back to another code set if we were shifted\n if (unshift) {\n codeSet = codeSet === Code128Reader.CODE_CODE_A ? Code128Reader.CODE_CODE_B : Code128Reader.CODE_CODE_A;\n }\n }\n var lastPatternSize = nextStart - lastStart;\n // Check for ample whitespace following pattern, but, to do this we first need to remember that\n // we fudged decoding CODE_STOP since it actually has 7 bars, not 6. There is a black bar left\n // to read off. Would be slightly better to properly read. Here we just skip it:\n nextStart = row.getNextUnset(nextStart);\n if (!row.isRange(nextStart, Math.min(row.getSize(), nextStart + (nextStart - lastStart) / 2), false)) {\n throw new NotFoundException_1.default();\n }\n // Pull out from sum the value of the penultimate check code\n checksumTotal -= multiplier * lastCode;\n // lastCode is the checksum then:\n if (checksumTotal % 103 !== lastCode) {\n throw new ChecksumException_1.default();\n }\n // Need to pull out the check digits from string\n var resultLength = result.length;\n if (resultLength === 0) {\n // false positive\n throw new NotFoundException_1.default();\n }\n // Only bother if the result had at least one character, and if the checksum digit happened to\n // be a printable character. If it was just interpreted as a control code, nothing to remove.\n if (resultLength > 0 && lastCharacterWasPrintable) {\n if (codeSet === Code128Reader.CODE_CODE_C) {\n result = result.substring(0, resultLength - 2);\n }\n else {\n result = result.substring(0, resultLength - 1);\n }\n }\n var left = (startPatternInfo[1] + startPatternInfo[0]) / 2.0;\n var right = lastStart + lastPatternSize / 2.0;\n var rawCodesSize = rawCodes.length;\n var rawBytes = new Uint8Array(rawCodesSize);\n for (var i = 0; i < rawCodesSize; i++) {\n rawBytes[i] = rawCodes[i];\n }\n var points = [new ResultPoint_1.default(left, rowNumber), new ResultPoint_1.default(right, rowNumber)];\n return new Result_1.default(result, rawBytes, 0, points, BarcodeFormat_1.default.CODE_128, new Date().getTime());\n };\n Code128Reader.CODE_PATTERNS = [\n [2, 1, 2, 2, 2, 2],\n [2, 2, 2, 1, 2, 2],\n [2, 2, 2, 2, 2, 1],\n [1, 2, 1, 2, 2, 3],\n [1, 2, 1, 3, 2, 2],\n [1, 3, 1, 2, 2, 2],\n [1, 2, 2, 2, 1, 3],\n [1, 2, 2, 3, 1, 2],\n [1, 3, 2, 2, 1, 2],\n [2, 2, 1, 2, 1, 3],\n [2, 2, 1, 3, 1, 2],\n [2, 3, 1, 2, 1, 2],\n [1, 1, 2, 2, 3, 2],\n [1, 2, 2, 1, 3, 2],\n [1, 2, 2, 2, 3, 1],\n [1, 1, 3, 2, 2, 2],\n [1, 2, 3, 1, 2, 2],\n [1, 2, 3, 2, 2, 1],\n [2, 2, 3, 2, 1, 1],\n [2, 2, 1, 1, 3, 2],\n [2, 2, 1, 2, 3, 1],\n [2, 1, 3, 2, 1, 2],\n [2, 2, 3, 1, 1, 2],\n [3, 1, 2, 1, 3, 1],\n [3, 1, 1, 2, 2, 2],\n [3, 2, 1, 1, 2, 2],\n [3, 2, 1, 2, 2, 1],\n [3, 1, 2, 2, 1, 2],\n [3, 2, 2, 1, 1, 2],\n [3, 2, 2, 2, 1, 1],\n [2, 1, 2, 1, 2, 3],\n [2, 1, 2, 3, 2, 1],\n [2, 3, 2, 1, 2, 1],\n [1, 1, 1, 3, 2, 3],\n [1, 3, 1, 1, 2, 3],\n [1, 3, 1, 3, 2, 1],\n [1, 1, 2, 3, 1, 3],\n [1, 3, 2, 1, 1, 3],\n [1, 3, 2, 3, 1, 1],\n [2, 1, 1, 3, 1, 3],\n [2, 3, 1, 1, 1, 3],\n [2, 3, 1, 3, 1, 1],\n [1, 1, 2, 1, 3, 3],\n [1, 1, 2, 3, 3, 1],\n [1, 3, 2, 1, 3, 1],\n [1, 1, 3, 1, 2, 3],\n [1, 1, 3, 3, 2, 1],\n [1, 3, 3, 1, 2, 1],\n [3, 1, 3, 1, 2, 1],\n [2, 1, 1, 3, 3, 1],\n [2, 3, 1, 1, 3, 1],\n [2, 1, 3, 1, 1, 3],\n [2, 1, 3, 3, 1, 1],\n [2, 1, 3, 1, 3, 1],\n [3, 1, 1, 1, 2, 3],\n [3, 1, 1, 3, 2, 1],\n [3, 3, 1, 1, 2, 1],\n [3, 1, 2, 1, 1, 3],\n [3, 1, 2, 3, 1, 1],\n [3, 3, 2, 1, 1, 1],\n [3, 1, 4, 1, 1, 1],\n [2, 2, 1, 4, 1, 1],\n [4, 3, 1, 1, 1, 1],\n [1, 1, 1, 2, 2, 4],\n [1, 1, 1, 4, 2, 2],\n [1, 2, 1, 1, 2, 4],\n [1, 2, 1, 4, 2, 1],\n [1, 4, 1, 1, 2, 2],\n [1, 4, 1, 2, 2, 1],\n [1, 1, 2, 2, 1, 4],\n [1, 1, 2, 4, 1, 2],\n [1, 2, 2, 1, 1, 4],\n [1, 2, 2, 4, 1, 1],\n [1, 4, 2, 1, 1, 2],\n [1, 4, 2, 2, 1, 1],\n [2, 4, 1, 2, 1, 1],\n [2, 2, 1, 1, 1, 4],\n [4, 1, 3, 1, 1, 1],\n [2, 4, 1, 1, 1, 2],\n [1, 3, 4, 1, 1, 1],\n [1, 1, 1, 2, 4, 2],\n [1, 2, 1, 1, 4, 2],\n [1, 2, 1, 2, 4, 1],\n [1, 1, 4, 2, 1, 2],\n [1, 2, 4, 1, 1, 2],\n [1, 2, 4, 2, 1, 1],\n [4, 1, 1, 2, 1, 2],\n [4, 2, 1, 1, 1, 2],\n [4, 2, 1, 2, 1, 1],\n [2, 1, 2, 1, 4, 1],\n [2, 1, 4, 1, 2, 1],\n [4, 1, 2, 1, 2, 1],\n [1, 1, 1, 1, 4, 3],\n [1, 1, 1, 3, 4, 1],\n [1, 3, 1, 1, 4, 1],\n [1, 1, 4, 1, 1, 3],\n [1, 1, 4, 3, 1, 1],\n [4, 1, 1, 1, 1, 3],\n [4, 1, 1, 3, 1, 1],\n [1, 1, 3, 1, 4, 1],\n [1, 1, 4, 1, 3, 1],\n [3, 1, 1, 1, 4, 1],\n [4, 1, 1, 1, 3, 1],\n [2, 1, 1, 4, 1, 2],\n [2, 1, 1, 2, 1, 4],\n [2, 1, 1, 2, 3, 2],\n [2, 3, 3, 1, 1, 1, 2]\n ];\n Code128Reader.MAX_AVG_VARIANCE = 0.25;\n Code128Reader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n Code128Reader.CODE_SHIFT = 98;\n Code128Reader.CODE_CODE_C = 99;\n Code128Reader.CODE_CODE_B = 100;\n Code128Reader.CODE_CODE_A = 101;\n Code128Reader.CODE_FNC_1 = 102;\n Code128Reader.CODE_FNC_2 = 97;\n Code128Reader.CODE_FNC_3 = 96;\n Code128Reader.CODE_FNC_4_A = 101;\n Code128Reader.CODE_FNC_4_B = 100;\n Code128Reader.CODE_START_A = 103;\n Code128Reader.CODE_START_B = 104;\n Code128Reader.CODE_START_C = 105;\n Code128Reader.CODE_STOP = 106;\n return Code128Reader;\n}(OneDReader_1.default));\nexports.default = Code128Reader;\n//# sourceMappingURL=Code128Reader.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar DecodeHintType_1 = require(\"../../DecodeHintType\");\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar FinderPattern_1 = require(\"./FinderPattern\");\nvar FinderPatternInfo_1 = require(\"./FinderPatternInfo\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\n/*import java.io.Serializable;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collections;*/\n/*import java.util.Comparator;*/\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n *This class attempts to find finder patterns in a QR Code. Finder patterns are the square\n * markers at three corners of a QR Code.
\n *\n *This class is thread-safe but not reentrant. Each thread must allocate its own object.\n *\n * @author Sean Owen\n */\nvar FinderPatternFinder = /** @class */ (function () {\n /**\n *
Creates a finder that will search the image for three finder patterns.
\n *\n * @param image image to search\n */\n // public constructor(image: BitMatrix) {\n // this(image, null)\n // }\n function FinderPatternFinder(image, resultPointCallback) {\n this.image = image;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = [];\n this.crossCheckStateCount = new Int32Array(5);\n this.resultPointCallback = resultPointCallback;\n }\n FinderPatternFinder.prototype.getImage = function () {\n return this.image;\n };\n FinderPatternFinder.prototype.getPossibleCenters = function () {\n return this.possibleCenters;\n };\n FinderPatternFinder.prototype.find = function (hints) {\n var tryHarder = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType_1.default.TRY_HARDER);\n var pureBarcode = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType_1.default.PURE_BARCODE);\n var image = this.image;\n var maxI = image.getHeight();\n var maxJ = image.getWidth();\n // We are looking for black/white/black/white/black modules in\n // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far\n // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the\n // image, and then account for the center being 3 modules in size. This gives the smallest\n // number of pixels the center could be, so skip this often. When trying harder, look for all\n // QR versions regardless of how dense they are.\n var iSkip = Math.floor((3 * maxI) / (4 * FinderPatternFinder.MAX_MODULES));\n if (iSkip < FinderPatternFinder.MIN_SKIP || tryHarder) {\n iSkip = FinderPatternFinder.MIN_SKIP;\n }\n var done = false;\n var stateCount = new Int32Array(5);\n for (var i = iSkip - 1; i < maxI && !done; i += iSkip) {\n // Get a row of black/white values\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n var currentState = 0;\n for (var j = 0; j < maxJ; j++) {\n if (image.get(j, i)) {\n // Black pixel\n if ((currentState & 1) === 1) { // Counting white pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n else { // White pixel\n if ((currentState & 1) === 0) { // Counting black pixels\n if (currentState === 4) { // A winner?\n if (FinderPatternFinder.foundPatternCross(stateCount)) { // Yes\n var confirmed = this.handlePossibleCenter(stateCount, i, j, pureBarcode);\n if (confirmed === true) {\n // Start examining every other line. Checking each line turned out to be too\n // expensive and didn't improve performance.\n iSkip = 2;\n if (this.hasSkipped === true) {\n done = this.haveMultiplyConfirmedCenters();\n }\n else {\n var rowSkip = this.findRowSkip();\n if (rowSkip > stateCount[2]) {\n // Skip rows between row of lower confirmed center\n // and top of presumed third confirmed center\n // but back up a bit to get a full chance of detecting\n // it, entire width of center of finder pattern\n // Skip by rowSkip, but back off by stateCount[2] (size of last center\n // of pattern we saw) to be conservative, and also back off by iSkip which\n // is about to be re-added\n i += rowSkip - stateCount[2] - iSkip;\n j = maxJ - 1;\n }\n }\n }\n else {\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n continue;\n }\n // Clear state to start looking again\n currentState = 0;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n }\n else { // No, shift counts back by two\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n }\n }\n else {\n stateCount[++currentState]++;\n }\n }\n else { // Counting white pixels\n stateCount[currentState]++;\n }\n }\n }\n if (FinderPatternFinder.foundPatternCross(stateCount)) {\n var confirmed = this.handlePossibleCenter(stateCount, i, maxJ, pureBarcode);\n if (confirmed === true) {\n iSkip = stateCount[0];\n if (this.hasSkipped) {\n // Found a third one\n done = this.haveMultiplyConfirmedCenters();\n }\n }\n }\n }\n var patternInfo = this.selectBestPatterns();\n ResultPoint_1.default.orderBestPatterns(patternInfo);\n return new FinderPatternInfo_1.default(patternInfo);\n };\n /**\n * Given a count of black/white/black/white/black pixels just seen and an end position,\n * figures the location of the center of this run.\n */\n FinderPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n return (end - stateCount[4] - stateCount[3]) - stateCount[2] / 2.0;\n };\n /**\n * @param stateCount count of black/white/black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios\n * used by finder patterns to be considered a match\n */\n FinderPatternFinder.foundPatternCross = function (stateCount) {\n var totalModuleSize = 0;\n for (var i = 0; i < 5; i++) {\n var count = stateCount[i];\n if (count === 0) {\n return false;\n }\n totalModuleSize += count;\n }\n if (totalModuleSize < 7) {\n return false;\n }\n var moduleSize = totalModuleSize / 7.0;\n var maxVariance = moduleSize / 2.0;\n // Allow less than 50% variance from 1-1-3-1-1 proportions\n return Math.abs(moduleSize - stateCount[0]) < maxVariance &&\n Math.abs(moduleSize - stateCount[1]) < maxVariance &&\n Math.abs(3.0 * moduleSize - stateCount[2]) < 3 * maxVariance &&\n Math.abs(moduleSize - stateCount[3]) < maxVariance &&\n Math.abs(moduleSize - stateCount[4]) < maxVariance;\n };\n FinderPatternFinder.prototype.getCrossCheckStateCount = function () {\n var crossCheckStateCount = this.crossCheckStateCount;\n crossCheckStateCount[0] = 0;\n crossCheckStateCount[1] = 0;\n crossCheckStateCount[2] = 0;\n crossCheckStateCount[3] = 0;\n crossCheckStateCount[4] = 0;\n return crossCheckStateCount;\n };\n /**\n * After a vertical and horizontal scan finds a potential finder pattern, this method\n * \"cross-cross-cross-checks\" by scanning down diagonally through the center of the possible\n * finder pattern to see if the same proportion is detected.\n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @param originalStateCountTotal The original state count total.\n * @return true if proportions are withing expected limits\n */\n FinderPatternFinder.prototype.crossCheckDiagonal = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var stateCount = this.getCrossCheckStateCount();\n // Start counting up, left from center finding black center mass\n var i = 0;\n var image = this.image;\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i)) {\n stateCount[2]++;\n i++;\n }\n if (startI < i || centerJ < i) {\n return false;\n }\n // Continue up, left finding white space\n while (startI >= i && centerJ >= i && !image.get(centerJ - i, startI - i) &&\n stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n // If already too many modules in this state or ran off the edge:\n if (startI < i || centerJ < i || stateCount[1] > maxCount) {\n return false;\n }\n // Continue up, left finding black border\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i) &&\n stateCount[0] <= maxCount) {\n stateCount[0]++;\n i++;\n }\n if (stateCount[0] > maxCount) {\n return false;\n }\n var maxI = image.getHeight();\n var maxJ = image.getWidth();\n // Now also count down, right from center\n i = 1;\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i)) {\n stateCount[2]++;\n i++;\n }\n // Ran off the edge?\n if (startI + i >= maxI || centerJ + i >= maxJ) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && !image.get(centerJ + i, startI + i) &&\n stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (startI + i >= maxI || centerJ + i >= maxJ || stateCount[3] >= maxCount) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i) &&\n stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return false;\n }\n // If we found a finder-pattern-like section, but its size is more than 100% different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + stateCount[4];\n return Math.abs(stateCountTotal - originalStateCountTotal) < 2 * originalStateCountTotal &&\n FinderPatternFinder.foundPatternCross(stateCount);\n };\n /**\n *After a horizontal scan finds a potential finder pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * finder pattern to see if the same proportion is detected.
\n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of finder pattern, or {@link Float#NaN} if not found\n */\n FinderPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxI = image.getHeight();\n var stateCount = this.getCrossCheckStateCount();\n // Start counting up from center\n var i = startI;\n while (i >= 0 && image.get(centerJ, i)) {\n stateCount[2]++;\n i--;\n }\n if (i < 0) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i)) {\n stateCount[2]++;\n i++;\n }\n if (i === maxI) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (i === maxI || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is more than 40% different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, i) : NaN;\n };\n /**\n *Like {@link #crossCheckVertical(int, int, int, int)}, and in fact is basically identical,\n * except it reads horizontally instead of vertically. This is used to cross-cross\n * check a vertical cross check and locate the real center of the alignment pattern.
\n */\n FinderPatternFinder.prototype.crossCheckHorizontal = function (startJ /*int*/, centerI /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxJ = image.getWidth();\n var stateCount = this.getCrossCheckStateCount();\n var j = startJ;\n while (j >= 0 && image.get(j, centerI)) {\n stateCount[2]++;\n j--;\n }\n if (j < 0) {\n return NaN;\n }\n while (j >= 0 && !image.get(j, centerI) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n j--;\n }\n if (j < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (j >= 0 && image.get(j, centerI) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n j--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n j = startJ + 1;\n while (j < maxJ && image.get(j, centerI)) {\n stateCount[2]++;\n j++;\n }\n if (j === maxJ) {\n return NaN;\n }\n while (j < maxJ && !image.get(j, centerI) && stateCount[3] < maxCount) {\n stateCount[3]++;\n j++;\n }\n if (j === maxJ || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (j < maxJ && image.get(j, centerI) && stateCount[4] < maxCount) {\n stateCount[4]++;\n j++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is significantly different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, j) : NaN;\n };\n /**\n *This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will, ah, cross-cross-check\n * with another horizontal scan. This is needed primarily to locate the real horizontal\n * center of the pattern in cases of extreme skew.\n * And then we cross-cross-cross check with another diagonal scan.
\n *\n *If that succeeds the finder pattern location is added to a list that tracks\n * the number of times each location has been nearly-matched as a finder pattern.\n * Each additional find is more evidence that the location is in fact a finder\n * pattern center\n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where finder pattern may be found\n * @param j end of possible finder pattern in row\n * @param pureBarcode true if in \"pure barcode\" mode\n * @return true if a finder pattern candidate was found this time\n */\n FinderPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/, pureBarcode) {\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n var centerJ = FinderPatternFinder.centerFromEnd(stateCount, j);\n var centerI = this.crossCheckVertical(i, /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal);\n if (!isNaN(centerI)) {\n // Re-cross check\n centerJ = this.crossCheckHorizontal(/*(int) */ Math.floor(centerJ), /*(int) */ Math.floor(centerI), stateCount[2], stateCountTotal);\n if (!isNaN(centerJ) &&\n (!pureBarcode || this.crossCheckDiagonal(/*(int) */ Math.floor(centerI), /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal))) {\n var estimatedModuleSize = stateCountTotal / 7.0;\n var found = false;\n var possibleCenters = this.possibleCenters;\n for (var index = 0, length_1 = possibleCenters.length; index < length_1; index++) {\n var center = possibleCenters[index];\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n possibleCenters[index] = center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n found = true;\n break;\n }\n }\n if (!found) {\n var point = new FinderPattern_1.default(centerJ, centerI, estimatedModuleSize);\n possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return true;\n }\n }\n return false;\n };\n /**\n * @return number of rows we could safely skip during scanning, based on the first\n * two finder patterns that have been located. In some cases their position will\n * allow us to infer that the third pattern must lie below a certain point farther\n * down in the image.\n */\n FinderPatternFinder.prototype.findRowSkip = function () {\n var max = this.possibleCenters.length;\n if (max <= 1) {\n return 0;\n }\n var firstConfirmedCenter = null;\n for (var _i = 0, _a = this.possibleCenters; _i < _a.length; _i++) {\n var center = _a[_i];\n if (center.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n if (firstConfirmedCenter == null) {\n firstConfirmedCenter = center;\n }\n else {\n // We have two confirmed centers\n // How far down can we skip before resuming looking for the next\n // pattern? In the worst case, only the difference between the\n // difference in the x / y coordinates of the two centers.\n // This is the case where you find top left last.\n this.hasSkipped = true;\n return /*(int) */ Math.floor((Math.abs(firstConfirmedCenter.getX() - center.getX()) -\n Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2);\n }\n }\n }\n return 0;\n };\n /**\n * @return true iff we have found at least 3 finder patterns that have been detected\n * at least {@link #CENTER_QUORUM} times each, and, the estimated module size of the\n * candidates is \"pretty similar\"\n */\n FinderPatternFinder.prototype.haveMultiplyConfirmedCenters = function () {\n var confirmedCount = 0;\n var totalModuleSize = 0.0;\n var max = this.possibleCenters.length;\n for (var _i = 0, _a = this.possibleCenters; _i < _a.length; _i++) {\n var pattern = _a[_i];\n if (pattern.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n confirmedCount++;\n totalModuleSize += pattern.getEstimatedModuleSize();\n }\n }\n if (confirmedCount < 3) {\n return false;\n }\n // OK, we have at least 3 confirmed centers, but, it's possible that one is a \"false positive\"\n // and that we need to keep looking. We detect this by asking if the estimated module sizes\n // vary too much. We arbitrarily say that when the total deviation from average exceeds\n // 5% of the total module size estimates, it's too much.\n var average = totalModuleSize / max;\n var totalDeviation = 0.0;\n for (var _b = 0, _c = this.possibleCenters; _b < _c.length; _b++) {\n var pattern = _c[_b];\n totalDeviation += Math.abs(pattern.getEstimatedModuleSize() - average);\n }\n return totalDeviation <= 0.05 * totalModuleSize;\n };\n /**\n * @return the 3 best {@link FinderPattern}s from our list of candidates. The \"best\" are\n * those that have been detected at least {@link #CENTER_QUORUM} times, and whose module\n * size differs from the average among those patterns the least\n * @throws NotFoundException if 3 such finder patterns do not exist\n */\n FinderPatternFinder.prototype.selectBestPatterns = function () {\n var startSize = this.possibleCenters.length;\n if (startSize < 3) {\n // Couldn't find enough finder patterns\n throw new NotFoundException_1.default();\n }\n var possibleCenters = this.possibleCenters;\n var average; /*float*/\n // Filter outlier possibilities whose module size is too different\n if (startSize > 3) {\n // But we can only afford to do so if we have at least 4 possibilities to choose from\n var totalModuleSize = 0.0;\n var square = 0.0;\n for (var _i = 0, _a = this.possibleCenters; _i < _a.length; _i++) {\n var center = _a[_i];\n var size = center.getEstimatedModuleSize();\n totalModuleSize += size;\n square += size * size;\n }\n average = totalModuleSize / startSize;\n var stdDev = Math.sqrt(square / startSize - average * average);\n possibleCenters.sort(\n /**\n *
Orders by furthest from average
\n */\n // FurthestFromAverageComparator implements ComparatorOrders by {@link FinderPattern#getCount()}, descending.
\n */\n // CenterComparator implements ComparatorEncapsulates a QR Code's format information, including the data mask used and\n * error correction level.
\n *\n * @author Sean Owen\n * @see DataMask\n * @see ErrorCorrectionLevel\n */\nvar FormatInformation = /** @class */ (function () {\n function FormatInformation(formatInfo /*int*/) {\n // Bits 3,4\n this.errorCorrectionLevel = ErrorCorrectionLevel_1.default.forBits((formatInfo >> 3) & 0x03);\n // Bottom 3 bits\n this.dataMask = /*(byte) */ (formatInfo & 0x07);\n }\n FormatInformation.numBitsDiffering = function (a /*int*/, b /*int*/) {\n return Integer_1.default.bitCount(a ^ b);\n };\n /**\n * @param maskedFormatInfo1 format info indicator, with mask still applied\n * @param maskedFormatInfo2 second copy of same info; both are checked at the same time\n * to establish best match\n * @return information about the format it specifies, or {@code null}\n * if doesn't seem to match any known pattern\n */\n FormatInformation.decodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n var formatInfo = FormatInformation.doDecodeFormatInformation(maskedFormatInfo1, maskedFormatInfo2);\n if (formatInfo !== null) {\n return formatInfo;\n }\n // Should return null, but, some QR codes apparently\n // do not mask this info. Try again by actually masking the pattern\n // first\n return FormatInformation.doDecodeFormatInformation(maskedFormatInfo1 ^ FormatInformation.FORMAT_INFO_MASK_QR, maskedFormatInfo2 ^ FormatInformation.FORMAT_INFO_MASK_QR);\n };\n FormatInformation.doDecodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n // Find the int in FORMAT_INFO_DECODE_LOOKUP with fewest bits differing\n var bestDifference = Number.MAX_SAFE_INTEGER;\n var bestFormatInfo = 0;\n for (var _i = 0, _a = FormatInformation.FORMAT_INFO_DECODE_LOOKUP; _i < _a.length; _i++) {\n var decodeInfo = _a[_i];\n var targetInfo = decodeInfo[0];\n if (targetInfo === maskedFormatInfo1 || targetInfo === maskedFormatInfo2) {\n // Found an exact match\n return new FormatInformation(decodeInfo[1]);\n }\n var bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo1, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n if (maskedFormatInfo1 !== maskedFormatInfo2) {\n // also try the other option\n bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo2, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n }\n }\n // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits\n // differing means we found a match\n if (bestDifference <= 3) {\n return new FormatInformation(bestFormatInfo);\n }\n return null;\n };\n FormatInformation.prototype.getErrorCorrectionLevel = function () {\n return this.errorCorrectionLevel;\n };\n FormatInformation.prototype.getDataMask = function () {\n return this.dataMask;\n };\n /*@Override*/\n FormatInformation.prototype.hashCode = function () {\n return (this.errorCorrectionLevel.getBits() << 3) | this.dataMask;\n };\n /*@Override*/\n FormatInformation.prototype.equals = function (o) {\n if (!(o instanceof FormatInformation)) {\n return false;\n }\n var other = o;\n return this.errorCorrectionLevel === other.errorCorrectionLevel &&\n this.dataMask === other.dataMask;\n };\n FormatInformation.FORMAT_INFO_MASK_QR = 0x5412;\n /**\n * See ISO 18004:2006, Annex C, Table C.1\n */\n FormatInformation.FORMAT_INFO_DECODE_LOOKUP = [\n Int32Array.from([0x5412, 0x00]),\n Int32Array.from([0x5125, 0x01]),\n Int32Array.from([0x5E7C, 0x02]),\n Int32Array.from([0x5B4B, 0x03]),\n Int32Array.from([0x45F9, 0x04]),\n Int32Array.from([0x40CE, 0x05]),\n Int32Array.from([0x4F97, 0x06]),\n Int32Array.from([0x4AA0, 0x07]),\n Int32Array.from([0x77C4, 0x08]),\n Int32Array.from([0x72F3, 0x09]),\n Int32Array.from([0x7DAA, 0x0A]),\n Int32Array.from([0x789D, 0x0B]),\n Int32Array.from([0x662F, 0x0C]),\n Int32Array.from([0x6318, 0x0D]),\n Int32Array.from([0x6C41, 0x0E]),\n Int32Array.from([0x6976, 0x0F]),\n Int32Array.from([0x1689, 0x10]),\n Int32Array.from([0x13BE, 0x11]),\n Int32Array.from([0x1CE7, 0x12]),\n Int32Array.from([0x19D0, 0x13]),\n Int32Array.from([0x0762, 0x14]),\n Int32Array.from([0x0255, 0x15]),\n Int32Array.from([0x0D0C, 0x16]),\n Int32Array.from([0x083B, 0x17]),\n Int32Array.from([0x355F, 0x18]),\n Int32Array.from([0x3068, 0x19]),\n Int32Array.from([0x3F31, 0x1A]),\n Int32Array.from([0x3A06, 0x1B]),\n Int32Array.from([0x24B4, 0x1C]),\n Int32Array.from([0x2183, 0x1D]),\n Int32Array.from([0x2EDA, 0x1E]),\n Int32Array.from([0x2BED, 0x1F]),\n ];\n return FormatInformation;\n}());\nexports.default = FormatInformation;\n//# sourceMappingURL=FormatInformation.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.reedsolomon {*/\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\nvar Integer_1 = require(\"../../util/Integer\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\nvar ArithmeticException_1 = require(\"../../ArithmeticException\");\n/**\n *This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.
\n *\n *Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n *
\n *\n * @author Sean Owen\n * @author David Olivier\n */\nvar GenericGF = /** @class */ (function () {\n /**\n * Create a representation of GF(size) using the given primitive polynomial.\n *\n * @param primitive irreducible polynomial whose coefficients are represented by\n * the bits of an int, where the least-significant bit represents the constant\n * coefficient\n * @param size the size of the field\n * @param b the factor b in the generator polynomial can be 0- or 1-based\n * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))).\n * In most cases it should be 1, but for QR code it is 0.\n */\n function GenericGF(primitive /*int*/, size /*int*/, generatorBase /*int*/) {\n this.primitive = primitive;\n this.size = size;\n this.generatorBase = generatorBase;\n var expTable = new Int32Array(size);\n var x = 1;\n for (var i = 0; i < size; i++) {\n expTable[i] = x;\n x *= 2; // we're assuming the generator alpha is 2\n if (x >= size) {\n x ^= primitive;\n x &= size - 1;\n }\n }\n this.expTable = expTable;\n var logTable = new Int32Array(size);\n for (var i = 0; i < size - 1; i++) {\n logTable[expTable[i]] = i;\n }\n this.logTable = logTable;\n // logTable[0] == 0 but this should never be used\n this.zero = new GenericGFPoly_1.default(this, Int32Array.from([0]));\n this.one = new GenericGFPoly_1.default(this, Int32Array.from([1]));\n }\n GenericGF.prototype.getZero = function () {\n return this.zero;\n };\n GenericGF.prototype.getOne = function () {\n return this.one;\n };\n /**\n * @return the monomial representing coefficient * x^degree\n */\n GenericGF.prototype.buildMonomial = function (degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException_1.default();\n }\n if (coefficient === 0) {\n return this.zero;\n }\n var coefficients = new Int32Array(degree + 1);\n coefficients[0] = coefficient;\n return new GenericGFPoly_1.default(this, coefficients);\n };\n /**\n * Implements both addition and subtraction -- they are the same in GF(size).\n *\n * @return sum/difference of a and b\n */\n GenericGF.addOrSubtract = function (a /*int*/, b /*int*/) {\n return a ^ b;\n };\n /**\n * @return 2 to the power of a in GF(size)\n */\n GenericGF.prototype.exp = function (a /*int*/) {\n return this.expTable[a];\n };\n /**\n * @return base 2 log of a in GF(size)\n */\n GenericGF.prototype.log = function (a /*int*/) {\n if (a === 0) {\n throw new IllegalArgumentException_1.default();\n }\n return this.logTable[a];\n };\n /**\n * @return multiplicative inverse of a\n */\n GenericGF.prototype.inverse = function (a /*int*/) {\n if (a === 0) {\n throw new ArithmeticException_1.default();\n }\n return this.expTable[this.size - this.logTable[a] - 1];\n };\n /**\n * @return product of a and b in GF(size)\n */\n GenericGF.prototype.multiply = function (a /*int*/, b /*int*/) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n };\n GenericGF.prototype.getSize = function () {\n return this.size;\n };\n GenericGF.prototype.getGeneratorBase = function () {\n return this.generatorBase;\n };\n /*@Override*/\n GenericGF.prototype.toString = function () {\n return 'GF(0x' + Integer_1.default.toHexString(this.primitive) + ',' + this.size + ')';\n };\n GenericGF.prototype.equals = function (o) {\n return o === this;\n };\n GenericGF.AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1\n GenericGF.AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1\n GenericGF.AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1\n GenericGF.AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1\n GenericGF.QR_CODE_FIELD_256 = new GenericGF(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n GenericGF.DATA_MATRIX_FIELD_256 = new GenericGF(0x012D, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1\n GenericGF.AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256;\n GenericGF.MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6;\n return GenericGF;\n}());\nexports.default = GenericGF;\n//# sourceMappingURL=GenericGF.js.map","/**\n * terminateWorker\n *\n * @name terminateWorker\n * @function terminate worker\n * @access public\n */\nmodule.exports = (worker) => {\n worker.terminate();\n};\n","const getId = require('./utils/getId');\n\nlet jobCounter = 0;\n\nmodule.exports = ({\n id: _id,\n action,\n payload = {},\n}) => {\n let id = _id;\n if (typeof id === 'undefined') {\n id = getId('Job', jobCounter);\n jobCounter += 1;\n }\n\n return {\n id,\n action,\n payload,\n };\n};\n","\"use strict\";\n/*\n * Copyright (C) 2010 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/*import java.nio.charset.Charset;*/\n/*import java.util.Map;*/\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar CharacterSetECI_1 = require(\"./CharacterSetECI\");\n/**\n * Common string-related functions.\n *\n * @author Sean Owen\n * @author Alex Dupre\n */\nvar StringUtils = /** @class */ (function () {\n function StringUtils() {\n }\n // SHIFT_JIS.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING) ||\n // EUC_JP.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING);\n StringUtils.prototype.StringUtils = function () { };\n /**\n * @param bytes bytes encoding a string, whose encoding should be guessed\n * @param hints decode hints if applicable\n * @return name of guessed encoding; at the moment will only guess one of:\n * {@link #SHIFT_JIS}, {@link #UTF8}, {@link #ISO88591}, or the platform\n * default encoding if none of these can possibly be correct\n */\n StringUtils.guessEncoding = function (bytes, hints) {\n if (hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType_1.default.CHARACTER_SET)) {\n return hints.get(DecodeHintType_1.default.CHARACTER_SET).toString();\n }\n // For now, merely tries to distinguish ISO-8859-1, UTF-8 and Shift_JIS,\n // which should be by far the most common encodings.\n var length = bytes.length;\n var canBeISO88591 = true;\n var canBeShiftJIS = true;\n var canBeUTF8 = true;\n var utf8BytesLeft = 0;\n // int utf8LowChars = 0\n var utf2BytesChars = 0;\n var utf3BytesChars = 0;\n var utf4BytesChars = 0;\n var sjisBytesLeft = 0;\n // int sjisLowChars = 0\n var sjisKatakanaChars = 0;\n // int sjisDoubleBytesChars = 0\n var sjisCurKatakanaWordLength = 0;\n var sjisCurDoubleBytesWordLength = 0;\n var sjisMaxKatakanaWordLength = 0;\n var sjisMaxDoubleBytesWordLength = 0;\n // int isoLowChars = 0\n // int isoHighChars = 0\n var isoHighOther = 0;\n var utf8bom = bytes.length > 3 &&\n bytes[0] === /*(byte) */ 0xEF &&\n bytes[1] === /*(byte) */ 0xBB &&\n bytes[2] === /*(byte) */ 0xBF;\n for (var i = 0; i < length && (canBeISO88591 || canBeShiftJIS || canBeUTF8); i++) {\n var value = bytes[i] & 0xFF;\n // UTF-8 stuff\n if (canBeUTF8) {\n if (utf8BytesLeft > 0) {\n if ((value & 0x80) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft--;\n }\n }\n else if ((value & 0x80) !== 0) {\n if ((value & 0x40) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x20) === 0) {\n utf2BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x10) === 0) {\n utf3BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x08) === 0) {\n utf4BytesChars++;\n }\n else {\n canBeUTF8 = false;\n }\n }\n }\n }\n } // else {\n // utf8LowChars++\n // }\n }\n // ISO-8859-1 stuff\n if (canBeISO88591) {\n if (value > 0x7F && value < 0xA0) {\n canBeISO88591 = false;\n }\n else if (value > 0x9F) {\n if (value < 0xC0 || value === 0xD7 || value === 0xF7) {\n isoHighOther++;\n } // else {\n // isoHighChars++\n // }\n } // else {\n // isoLowChars++\n // }\n }\n // Shift_JIS stuff\n if (canBeShiftJIS) {\n if (sjisBytesLeft > 0) {\n if (value < 0x40 || value === 0x7F || value > 0xFC) {\n canBeShiftJIS = false;\n }\n else {\n sjisBytesLeft--;\n }\n }\n else if (value === 0x80 || value === 0xA0 || value > 0xEF) {\n canBeShiftJIS = false;\n }\n else if (value > 0xA0 && value < 0xE0) {\n sjisKatakanaChars++;\n sjisCurDoubleBytesWordLength = 0;\n sjisCurKatakanaWordLength++;\n if (sjisCurKatakanaWordLength > sjisMaxKatakanaWordLength) {\n sjisMaxKatakanaWordLength = sjisCurKatakanaWordLength;\n }\n }\n else if (value > 0x7F) {\n sjisBytesLeft++;\n // sjisDoubleBytesChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength++;\n if (sjisCurDoubleBytesWordLength > sjisMaxDoubleBytesWordLength) {\n sjisMaxDoubleBytesWordLength = sjisCurDoubleBytesWordLength;\n }\n }\n else {\n // sjisLowChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength = 0;\n }\n }\n }\n if (canBeUTF8 && utf8BytesLeft > 0) {\n canBeUTF8 = false;\n }\n if (canBeShiftJIS && sjisBytesLeft > 0) {\n canBeShiftJIS = false;\n }\n // Easy -- if there is BOM or at least 1 valid not-single byte character (and no evidence it can't be UTF-8), done\n if (canBeUTF8 && (utf8bom || utf2BytesChars + utf3BytesChars + utf4BytesChars > 0)) {\n return StringUtils.UTF8;\n }\n // Easy -- if assuming Shift_JIS or at least 3 valid consecutive not-ascii characters (and no evidence it can't be), done\n if (canBeShiftJIS && (StringUtils.ASSUME_SHIFT_JIS || sjisMaxKatakanaWordLength >= 3 || sjisMaxDoubleBytesWordLength >= 3)) {\n return StringUtils.SHIFT_JIS;\n }\n // Distinguishing Shift_JIS and ISO-8859-1 can be a little tough for short words. The crude heuristic is:\n // - If we saw\n // - only two consecutive katakana chars in the whole text, or\n // - at least 10% of bytes that could be \"upper\" not-alphanumeric Latin1,\n // - then we conclude Shift_JIS, else ISO-8859-1\n if (canBeISO88591 && canBeShiftJIS) {\n return (sjisMaxKatakanaWordLength === 2 && sjisKatakanaChars === 2) || isoHighOther * 10 >= length\n ? StringUtils.SHIFT_JIS : StringUtils.ISO88591;\n }\n // Otherwise, try in order ISO-8859-1, Shift JIS, UTF-8 and fall back to default platform encoding\n if (canBeISO88591) {\n return StringUtils.ISO88591;\n }\n if (canBeShiftJIS) {\n return StringUtils.SHIFT_JIS;\n }\n if (canBeUTF8) {\n return StringUtils.UTF8;\n }\n // Otherwise, we take a wild guess with platform encoding\n return StringUtils.PLATFORM_DEFAULT_ENCODING;\n };\n StringUtils.SHIFT_JIS = CharacterSetECI_1.default.SJIS.getName(); // \"SJIS\"\n StringUtils.GB2312 = 'GB2312';\n StringUtils.ISO88591 = CharacterSetECI_1.default.ISO8859_1.getName(); // \"ISO8859_1\"\n StringUtils.EUC_JP = 'EUC_JP';\n StringUtils.UTF8 = CharacterSetECI_1.default.UTF8.getName(); // \"UTF8\"\n StringUtils.PLATFORM_DEFAULT_ENCODING = StringUtils.UTF8; // \"UTF8\"//Charset.defaultCharset().name()\n StringUtils.ASSUME_SHIFT_JIS = false;\n return StringUtils;\n}());\nexports.default = StringUtils;\n//# sourceMappingURL=StringUtils.js.map","const resolvePaths = require('./utils/resolvePaths');\nconst circularize = require('./utils/circularize');\nconst createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\nconst { defaultOEM } = require('./constants/config');\nconst {\n defaultOptions,\n spawnWorker,\n terminateWorker,\n onMessage,\n loadImage,\n send,\n} = require('./worker/node');\n\nlet workerCounter = 0;\n\nmodule.exports = (_options = {}) => {\n const id = getId('Worker', workerCounter);\n const {\n logger,\n errorHandler,\n ...options\n } = resolvePaths({\n ...defaultOptions,\n ..._options,\n });\n const resolves = {};\n const rejects = {};\n let worker = spawnWorker(options);\n\n workerCounter += 1;\n\n const setResolve = (action, res) => {\n resolves[action] = res;\n };\n\n const setReject = (action, rej) => {\n rejects[action] = rej;\n };\n\n const startJob = ({ id: jobId, action, payload }) => (\n new Promise((resolve, reject) => {\n log(`[${id}]: Start ${jobId}, action=${action}`);\n setResolve(action, resolve);\n setReject(action, reject);\n send(worker, {\n workerId: id,\n jobId,\n action,\n payload,\n });\n })\n );\n\n const load = jobId => (\n startJob(createJob({\n id: jobId, action: 'load', payload: { options },\n }))\n );\n\n const writeText = (path, text, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'writeFile', args: [path, text] },\n }))\n );\n\n const readText = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'readFile', args: [path, { encoding: 'utf8' }] },\n }))\n );\n\n const removeFile = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'unlink', args: [path] },\n }))\n );\n\n const FS = (method, args, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method, args },\n }))\n );\n\n const loadLanguage = (langs = 'eng', jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'loadLanguage',\n payload: { langs, options },\n }))\n );\n\n const initialize = (langs = 'eng', oem = defaultOEM, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'initialize',\n payload: { langs, oem },\n }))\n );\n\n const setParameters = (params = {}, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'setParameters',\n payload: { params },\n }))\n );\n\n const recognize = async (image, opts = {}, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'recognize',\n payload: { image: await loadImage(image), options: opts },\n }))\n );\n\n const getPDF = (title = 'Tesseract OCR Result', textonly = false, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'getPDF',\n payload: { title, textonly },\n }))\n );\n\n const detect = async (image, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'detect',\n payload: { image: await loadImage(image) },\n }))\n );\n\n const terminate = async () => {\n if (worker !== null) {\n /*\n await startJob(createJob({\n id: jobId,\n action: 'terminate',\n }));\n */\n terminateWorker(worker);\n worker = null;\n }\n return Promise.resolve();\n };\n\n onMessage(worker, ({\n workerId, jobId, status, action, data,\n }) => {\n if (status === 'resolve') {\n log(`[${workerId}]: Complete ${jobId}`);\n let d = data;\n if (action === 'recognize') {\n d = circularize(data);\n } else if (action === 'getPDF') {\n d = Array.from({ ...data, length: Object.keys(data).length });\n }\n resolves[action]({ jobId, data: d });\n } else if (status === 'reject') {\n rejects[action](data);\n if (errorHandler) {\n errorHandler(data);\n } else {\n throw Error(data);\n }\n } else if (status === 'progress') {\n logger(data);\n }\n });\n\n return {\n id,\n worker,\n setResolve,\n setReject,\n load,\n writeText,\n readText,\n removeFile,\n FS,\n loadLanguage,\n initialize,\n setParameters,\n recognize,\n getPDF,\n detect,\n terminate,\n };\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar FormatException = /** @class */ (function (_super) {\n __extends(FormatException, _super);\n function FormatException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return FormatException;\n}(Exception_1.default));\nexports.default = FormatException;\n//# sourceMappingURL=FormatException.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalStateException = /** @class */ (function (_super) {\n __extends(IllegalStateException, _super);\n function IllegalStateException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return IllegalStateException;\n}(Exception_1.default));\nexports.default = IllegalStateException;\n//# sourceMappingURL=IllegalStateException.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar DetectorResult_1 = require(\"../../common/DetectorResult\");\nvar GridSamplerInstance_1 = require(\"../../common/GridSamplerInstance\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar WhiteRectangleDetector_1 = require(\"../../common/detector/WhiteRectangleDetector\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\n/*\n * Copyright 2008 ZXing authors\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 *Encapsulates logic that can detect a Data Matrix Code in an image, even if the Data Matrix Code\n * is rotated or skewed, or partially obscured.
\n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.image = image;\n this.rectangleDetector = new WhiteRectangleDetector_1.default(image);\n }\n /**\n *Detects a Data Matrix Code in an image.
\n *\n * @return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n Detector.prototype.detect = function () {\n var cornerPoints = this.rectangleDetector.detect();\n var pointA = cornerPoints[0];\n var pointB = cornerPoints[1];\n var pointC = cornerPoints[2];\n var pointD = cornerPoints[3];\n // Point A and D are across the diagonal from one another,\n // as are B and C. Figure out which are the solid black lines\n // by counting transitions\n var transitions = [];\n transitions.push(this.transitionsBetween(pointA, pointB));\n transitions.push(this.transitionsBetween(pointA, pointC));\n transitions.push(this.transitionsBetween(pointB, pointD));\n transitions.push(this.transitionsBetween(pointC, pointD));\n transitions.sort(ResultPointsAndTransitions.resultPointsAndTransitionsComparator);\n // Sort by number of transitions. First two will be the two solid sides; last two\n // will be the two alternating black/white sides\n var lSideOne = transitions[0];\n var lSideTwo = transitions[1];\n // Figure out which point is their intersection by tallying up the number of times we see the\n // endpoints in the four endpoints. One will show up twice.\n var pointCount = new Map();\n Detector.increment(pointCount, lSideOne.getFrom());\n Detector.increment(pointCount, lSideOne.getTo());\n Detector.increment(pointCount, lSideTwo.getFrom());\n Detector.increment(pointCount, lSideTwo.getTo());\n var maybeTopLeft = null;\n var bottomLeft = null;\n var maybeBottomRight = null;\n for (var _i = 0, _a = Array.from(pointCount.entries()); _i < _a.length; _i++) {\n var _b = _a[_i], point = _b[0], value = _b[1];\n if (value === 2) {\n bottomLeft = point; // this is definitely the bottom left, then -- end of two L sides\n }\n else {\n // Otherwise it's either top left or bottom right -- just assign the two arbitrarily now\n if (maybeTopLeft == null) {\n maybeTopLeft = point;\n }\n else {\n maybeBottomRight = point;\n }\n }\n }\n if (maybeTopLeft == null || bottomLeft == null || maybeBottomRight == null) {\n throw new NotFoundException_1.default();\n }\n // Bottom left is correct but top left and bottom right might be switched\n var corners = [maybeTopLeft, bottomLeft, maybeBottomRight];\n // Use the dot product trick to sort them out\n ResultPoint_1.default.orderBestPatterns(corners);\n // Now we know which is which:\n var bottomRight = corners[0];\n bottomLeft = corners[1];\n var topLeft = corners[2];\n // Which point didn't we find in relation to the \"L\" sides? that's the top right corner\n var topRight;\n if (!pointCount.has(pointA)) {\n topRight = pointA;\n }\n else if (!pointCount.has(pointB)) {\n topRight = pointB;\n }\n else if (!pointCount.has(pointC)) {\n topRight = pointC;\n }\n else {\n topRight = pointD;\n }\n // Next determine the dimension by tracing along the top or right side and counting black/white\n // transitions. Since we start inside a black module, we should see a number of transitions\n // equal to 1 less than the code dimension. Well, actually 2 less, because we are going to\n // end on a black module:\n // The top right point is actually the corner of a module, which is one of the two black modules\n // adjacent to the white module at the top right. Tracing to that corner from either the top left\n // or bottom right should work here.\n var dimensionTop = this.transitionsBetween(topLeft, topRight).getTransitions();\n var dimensionRight = this.transitionsBetween(bottomRight, topRight).getTransitions();\n if ((dimensionTop & 0x01) === 1) {\n // it can't be odd, so, round... up?\n dimensionTop++;\n }\n dimensionTop += 2;\n if ((dimensionRight & 0x01) === 1) {\n // it can't be odd, so, round... up?\n dimensionRight++;\n }\n dimensionRight += 2;\n var bits;\n var correctedTopRight;\n // Rectangular symbols are 6x16, 6x28, 10x24, 10x32, 14x32, or 14x44. If one dimension is more\n // than twice the other, it's certainly rectangular, but to cut a bit more slack we accept it as\n // rectangular if the bigger side is at least 7/4 times the other:\n if (4 * dimensionTop >= 7 * dimensionRight || 4 * dimensionRight >= 7 * dimensionTop) {\n // The matrix is rectangular\n correctedTopRight =\n this.correctTopRightRectangular(bottomLeft, bottomRight, topLeft, topRight, dimensionTop, dimensionRight);\n if (correctedTopRight == null) {\n correctedTopRight = topRight;\n }\n dimensionTop = this.transitionsBetween(topLeft, correctedTopRight).getTransitions();\n dimensionRight = this.transitionsBetween(bottomRight, correctedTopRight).getTransitions();\n if ((dimensionTop & 0x01) === 1) {\n // it can't be odd, so, round... up?\n dimensionTop++;\n }\n if ((dimensionRight & 0x01) === 1) {\n // it can't be odd, so, round... up?\n dimensionRight++;\n }\n bits = Detector.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionTop, dimensionRight);\n }\n else {\n // The matrix is square\n var dimension = Math.min(dimensionRight, dimensionTop);\n // correct top right point to match the white module\n correctedTopRight = this.correctTopRight(bottomLeft, bottomRight, topLeft, topRight, dimension);\n if (correctedTopRight == null) {\n correctedTopRight = topRight;\n }\n // Redetermine the dimension using the corrected top right point\n var dimensionCorrected = Math.max(this.transitionsBetween(topLeft, correctedTopRight).getTransitions(), this.transitionsBetween(bottomRight, correctedTopRight).getTransitions());\n dimensionCorrected++;\n if ((dimensionCorrected & 0x01) === 1) {\n dimensionCorrected++;\n }\n bits = Detector.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionCorrected, dimensionCorrected);\n }\n return new DetectorResult_1.default(bits, [topLeft, bottomLeft, bottomRight, correctedTopRight]);\n };\n /**\n * Calculates the position of the white top right module using the output of the rectangle detector\n * for a rectangular matrix\n */\n Detector.prototype.correctTopRightRectangular = function (bottomLeft, bottomRight, topLeft, topRight, dimensionTop, dimensionRight) {\n var corr = Detector.distance(bottomLeft, bottomRight) / dimensionTop;\n var norm = Detector.distance(topLeft, topRight);\n var cos = (topRight.getX() - topLeft.getX()) / norm;\n var sin = (topRight.getY() - topLeft.getY()) / norm;\n var c1 = new ResultPoint_1.default(topRight.getX() + corr * cos, topRight.getY() + corr * sin);\n corr = Detector.distance(bottomLeft, topLeft) / dimensionRight;\n norm = Detector.distance(bottomRight, topRight);\n cos = (topRight.getX() - bottomRight.getX()) / norm;\n sin = (topRight.getY() - bottomRight.getY()) / norm;\n var c2 = new ResultPoint_1.default(topRight.getX() + corr * cos, topRight.getY() + corr * sin);\n if (!this.isValid(c1)) {\n if (this.isValid(c2)) {\n return c2;\n }\n return null;\n }\n if (!this.isValid(c2)) {\n return c1;\n }\n var l1 = Math.abs(dimensionTop - this.transitionsBetween(topLeft, c1).getTransitions()) +\n Math.abs(dimensionRight - this.transitionsBetween(bottomRight, c1).getTransitions());\n var l2 = Math.abs(dimensionTop - this.transitionsBetween(topLeft, c2).getTransitions()) +\n Math.abs(dimensionRight - this.transitionsBetween(bottomRight, c2).getTransitions());\n if (l1 <= l2) {\n return c1;\n }\n return c2;\n };\n /**\n * Calculates the position of the white top right module using the output of the rectangle detector\n * for a square matrix\n */\n Detector.prototype.correctTopRight = function (bottomLeft, bottomRight, topLeft, topRight, dimension) {\n var corr = Detector.distance(bottomLeft, bottomRight) / dimension;\n var norm = Detector.distance(topLeft, topRight);\n var cos = (topRight.getX() - topLeft.getX()) / norm;\n var sin = (topRight.getY() - topLeft.getY()) / norm;\n var c1 = new ResultPoint_1.default(topRight.getX() + corr * cos, topRight.getY() + corr * sin);\n corr = Detector.distance(bottomLeft, topLeft) / dimension;\n norm = Detector.distance(bottomRight, topRight);\n cos = (topRight.getX() - bottomRight.getX()) / norm;\n sin = (topRight.getY() - bottomRight.getY()) / norm;\n var c2 = new ResultPoint_1.default(topRight.getX() + corr * cos, topRight.getY() + corr * sin);\n if (!this.isValid(c1)) {\n if (this.isValid(c2)) {\n return c2;\n }\n return null;\n }\n if (!this.isValid(c2)) {\n return c1;\n }\n var l1 = Math.abs(this.transitionsBetween(topLeft, c1).getTransitions() -\n this.transitionsBetween(bottomRight, c1).getTransitions());\n var l2 = Math.abs(this.transitionsBetween(topLeft, c2).getTransitions() -\n this.transitionsBetween(bottomRight, c2).getTransitions());\n return l1 <= l2 ? c1 : c2;\n };\n Detector.prototype.isValid = function (p) {\n return p.getX() >= 0 && p.getX() < this.image.getWidth() && p.getY() > 0 && p.getY() < this.image.getHeight();\n };\n Detector.distance = function (a, b) {\n return MathUtils_1.default.round(ResultPoint_1.default.distance(a, b));\n };\n /**\n * Increments the Integer associated with a key by one.\n */\n Detector.increment = function (table, key) {\n var value = table.get(key);\n table.set(key, value == null ? 1 : value + 1);\n };\n Detector.sampleGrid = function (image, topLeft, bottomLeft, bottomRight, topRight, dimensionX, dimensionY) {\n var sampler = GridSamplerInstance_1.default.getInstance();\n return sampler.sampleGrid(image, dimensionX, dimensionY, 0.5, 0.5, dimensionX - 0.5, 0.5, dimensionX - 0.5, dimensionY - 0.5, 0.5, dimensionY - 0.5, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n };\n /**\n * Counts the number of black/white transitions between two points, using something like Bresenham's algorithm.\n */\n Detector.prototype.transitionsBetween = function (from, to) {\n // See QR Code Detector, sizeOfBlackWhiteBlackRun()\n var fromX = from.getX() | 0;\n var fromY = from.getY() | 0;\n var toX = to.getX() | 0;\n var toY = to.getY() | 0;\n var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n var temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = -dx / 2;\n var ystep = fromY < toY ? 1 : -1;\n var xstep = fromX < toX ? 1 : -1;\n var transitions = 0;\n var inBlack = this.image.get(steep ? fromY : fromX, steep ? fromX : fromY);\n for (var x = fromX, y = fromY; x !== toX; x += xstep) {\n var isBlack = this.image.get(steep ? y : x, steep ? x : y);\n if (isBlack !== inBlack) {\n transitions++;\n inBlack = isBlack;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n return new ResultPointsAndTransitions(from, to, transitions);\n };\n return Detector;\n}());\nexports.default = Detector;\nvar ResultPointsAndTransitions = /** @class */ (function () {\n function ResultPointsAndTransitions(from, to, transitions) {\n this.from = from;\n this.to = to;\n this.transitions = transitions;\n }\n ResultPointsAndTransitions.prototype.getFrom = function () {\n return this.from;\n };\n ResultPointsAndTransitions.prototype.getTo = function () {\n return this.to;\n };\n ResultPointsAndTransitions.prototype.getTransitions = function () {\n return this.transitions;\n };\n // @Override\n ResultPointsAndTransitions.prototype.toString = function () {\n return this.from + '/' + this.to + '/' + this.transitions;\n };\n ResultPointsAndTransitions.resultPointsAndTransitionsComparator = function (o1, o2) {\n return o1.getTransitions() - o2.getTransitions();\n };\n return ResultPointsAndTransitions;\n}());\n//# sourceMappingURL=Detector.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper-earnPoint\"},[(_vm.result_alert.show)?_c('a-alert',{attrs:{\"type\":_vm.result_alert.type,\"closable\":\"\"},on:{\"close\":_vm.afterCloseModal}},[_c('div',{attrs:{\"slot\":\"description\"},slot:\"description\"},[_c('div',{staticClass:\"alert-content\"},[(_vm.result_alert.type == 'success')?_c('img',{attrs:{\"src\":require(\"@/assets/images/earn_point_success.svg\"),\"alt\":\"earn point success logo\"}}):_vm._e(),(_vm.result_alert.type == 'error')?_c('img',{attrs:{\"src\":require(\"@/assets/images/earn_point_error.svg\"),\"alt\":\"earn point fail logo\"}}):_vm._e(),_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.result_alert.title))]),(_vm.result_alert.type === 'success')?_c('div',{staticClass:\"point\"},[_vm._v(\"\\n \"+_vm._s(_vm.result_alert.desc)+\"\\n \")]):_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.result_alert.desc))])])])])]):_vm._e(),(_vm.windowWidth >= 600 && _vm.windowHeight >= 600)?_c('div',{staticClass:\"h-100\"},[_c('div',{staticClass:\"image__hearder\",style:({ backgroundImage: 'url(' + _vm.storeinfo.image_header + ')' }),attrs:{\"crm_at\":\"image_hearder\"}},[_c('div',{staticClass:\"box_content\"},[_c('div',{staticClass:\"wrapper__earnpoint__page\"},[_c('div',{staticClass:\"wrapper_hearder\"},[_c('LayoutHome',{ref:\"layoutHome\"})],1),_c('div',{staticClass:\"wrapper_content\"},[_c('div',{staticClass:\"row\"},[(_vm.isImgEarnPoint)?_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"box-img\"},[_c('img',{staticClass:\"img-earnpoint\",attrs:{\"crm_at\":\"img_earnpoint\",\"src\":_vm.imgEarnPoint,\"alt\":\"\"}})])]):_vm._e(),_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"box-entercode pt-2\"},[_c('div',{staticClass:\"title-code\",attrs:{\"crm_at\":\"lbl_enter_code_to_earn_point\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.enter_code_to_earn_point)+\"\\n \")]),_c('div',{staticClass:\"enter-code-wrapper\"},[_c('a-input',{class:'input' + _vm.checkCode_1,attrs:{\"crm_at\":\"code_1\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode1},model:{value:(_vm.code_1),callback:function ($$v) {_vm.code_1=$$v},expression:\"code_1\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_1 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(1)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_1 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n +\"+_vm._s(this.point_1)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_1 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_1 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_1 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_1 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_2,attrs:{\"crm_at\":\"code_2\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode2},model:{value:(_vm.code_2),callback:function ($$v) {_vm.code_2=$$v},expression:\"code_2\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_2 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(2)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_2 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n +\"+_vm._s(this.point_2)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_2 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_2 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_2 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_2 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_3,attrs:{\"crm_at\":\"code_3\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode3},model:{value:(_vm.code_3),callback:function ($$v) {_vm.code_3=$$v},expression:\"code_3\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_3 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(3)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_3 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n +\"+_vm._s(this.point_3)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_3 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_3 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_3 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_3 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_4,attrs:{\"crm_at\":\"code_4\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode4},model:{value:(_vm.code_4),callback:function ($$v) {_vm.code_4=$$v},expression:\"code_4\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_4 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(4)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_4 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n +\"+_vm._s(this.point_4)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_4 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_4 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_4 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_4 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_5,attrs:{\"crm_at\":\"code_5\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode5},model:{value:(_vm.code_5),callback:function ($$v) {_vm.code_5=$$v},expression:\"code_5\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_5 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(5)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_5 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n +\"+_vm._s(this.point_5)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_5 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_5 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_5 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_5 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])])],1)]),_c('div',{staticClass:\"earnpoint-explanation\",domProps:{\"innerHTML\":_vm._s(_vm.explanation)}})])]),_c('footer',{staticClass:\"footer\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"container\"},[_c('a',{staticClass:\"menu menu-resize\",style:({\n 'background-color': _vm.backgroundColor\n ? _vm.backgroundColor\n : '#1890ff',\n 'border-color': _vm.backgroundColor\n ? _vm.backgroundColor\n : '#1890ff',\n }),attrs:{\"crm_at\":\"btn_submit\"},on:{\"click\":_vm.handleSubmit}},[_c('label',{staticClass:\"btn-submit\",style:({ color: _vm.textColor ? _vm.textColor : '#FFF' }),attrs:{\"crm_at\":\"btn_submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.btn.submit_two)+\"\\n \")])])])])])])])])])])]):_c('div',[_c('div',{staticClass:\"row wrapper-detail\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"box-profile\"},[_vm._m(0),_c('div',{staticClass:\"profile\"},[_c('div',{attrs:{\"crm_at\":\"lbl_point\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.you_have)+\"\\n \"),_c('br'),_c('span',{staticClass:\"lbl-point-w\"},[_vm._v(_vm._s(this.textPoint))]),_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")]),(_vm.profile_url)?_c('img',{staticClass:\"profile_image\",attrs:{\"crm_at\":\"profile_image\",\"src\":_vm.profile_url,\"alt\":\"Avatar\"}}):_c('a-avatar',{attrs:{\"slot\":\"avatar\",\"crm_at\":\"avatar_profile\",\"size\":60,\"icon\":\"user\"},slot:\"avatar\"})],1)]),(_vm.isImgEarnPoint)?_c('div',{staticClass:\"box-img\"},[_c('img',{staticClass:\"img-earnpoint\",attrs:{\"crm_at\":\"img_earnpoint\",\"src\":_vm.imgEarnPoint,\"alt\":\"\"}})]):_vm._e(),_c('div',{staticClass:\"box-entercode pt-2\"},[_c('div',{staticClass:\"title-code\",attrs:{\"crm_at\":\"lbl_enter_code_to_earn_point\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.enter_code_to_earn_point)+\"\\n \")]),_c('div',{staticClass:\"enter-code-wrapper\"},[_c('a-input',{class:'input' + _vm.checkCode_1,attrs:{\"crm_at\":\"code_1\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode1},model:{value:(_vm.code_1),callback:function ($$v) {_vm.code_1=$$v},expression:\"code_1\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_1 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(1)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_1 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(this.point_1)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_1 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_1 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_1 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_1 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_1\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_2,attrs:{\"crm_at\":\"code_2\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode2},model:{value:(_vm.code_2),callback:function ($$v) {_vm.code_2=$$v},expression:\"code_2\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_2 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(2)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_2 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(this.point_2)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_2 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_2 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_2 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_2 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_2\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_2\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_3,attrs:{\"crm_at\":\"code_3\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode3},model:{value:(_vm.code_3),callback:function ($$v) {_vm.code_3=$$v},expression:\"code_3\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_3 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(3)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_3 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(this.point_3)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_3 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_3 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_3 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_3 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_3\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_4,attrs:{\"crm_at\":\"code_4\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode4},model:{value:(_vm.code_4),callback:function ($$v) {_vm.code_4=$$v},expression:\"code_4\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_4 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(4)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_4 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(this.point_4)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_4 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_4 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_4 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_4 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_4\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])]),_c('a-input',{class:'input' + _vm.checkCode_5,attrs:{\"crm_at\":\"code_5\",\"type\":\"text\",\"size\":\"large\",\"placeholder\":_vm.lbl.earnpoint.enter_code},on:{\"change\":_vm.inputCode5},model:{value:(_vm.code_5),callback:function ($$v) {_vm.code_5=$$v},expression:\"code_5\"}},[_c('div',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.checkCode_5 == 0 && !_vm.isPH && _vm.isUseScanCode)?_c('div',{staticClass:\"camera-wrapper\",attrs:{\"crm_at\":\"camera_scan\"},on:{\"click\":function($event){return _vm.scanCode(5)}}},[_c('div',{staticClass:\"line-before-camera\"}),_c('img',{staticClass:\"img-code-scan\",attrs:{\"src\":require(\"@/assets/images/camera.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-scan-text\",attrs:{\"crm_at\":\"lbl_camera_scan\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.btn_scan)+\"\\n \")])]):(_vm.checkCode_5 == 1)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_success.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-success\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(this.point_5)+\" \"+_vm._s(_vm.lbl.earnpoint.points)+\"\\n \")])]):(_vm.checkCode_5 == 2)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.used_code)+\"\\n \")])]):(_vm.checkCode_5 == 3)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.duplicate_code)+\"\\n \")])]):(_vm.checkCode_5 == 4)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.incorrect_code)+\"\\n \")])]):(_vm.checkCode_5 == 5)?_c('span',{attrs:{\"crm_at\":\"checkcode_5\"}},[_c('img',{staticClass:\"img-code\",attrs:{\"src\":require(\"@/assets/images/earn_error.svg\"),\"alt\":\"\"}}),_c('label',{staticClass:\"code-error\",attrs:{\"crm_at\":\"lbl_checkcode_5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.earnpoint.blocked_code)+\"\\n \")])]):_vm._e()])])],1)]),_c('div',{staticClass:\"earnpoint-explanation\",domProps:{\"innerHTML\":_vm._s(_vm.explanation)}})])]),_c('footer',{staticClass:\"footer earnpoint\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"container not-locale\"},[_c('a',{staticClass:\"menu menu-resize\",style:({\n 'background-color': _vm.backgroundColor\n ? _vm.backgroundColor\n : '#1890ff',\n 'border-color': _vm.backgroundColor ? _vm.backgroundColor : '#1890ff',\n }),attrs:{\"crm_at\":\"btn_submit\"},on:{\"click\":_vm.handleSubmit}},[_c('label',{staticClass:\"btn-submit\",style:({ color: _vm.textColor ? _vm.textColor : '#FFF' }),attrs:{\"crm_at\":\"btn_submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.lbl.btn.submit_two)+\"\\n \")])])])])])])]),_c('AlertError',{attrs:{\"show\":_vm.showError,\"data\":_vm.dataError},on:{\"changeError\":function($event){return _vm.ChangeError($event)}}}),_c('CameraScanModal',{attrs:{\"show\":_vm.isScanCode,\"input-number\":_vm.scanInputNumber,\"store-style\":_vm.storeStyle},on:{\"result\":function($event){return _vm.handleScanResult($event)},\"error\":function($event){return _vm.handleScanError($event)},\"close\":function($event){_vm.isScanCode = false}}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"image-back\",attrs:{\"href\":\"/missionhub\",\"crm_at\":\"btn_back_home\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/Btn_Back.svg\"),\"alt\":\"\"}})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport BzbsApi from '@/core/Http/BzbsApi.js';\r\nimport Account from '@/helper/AccountHelper.js';\r\n\r\n/**\r\n * @method getPoint\r\n * @method getCustomerStore\r\n * @method getProfile\r\n * @method getCampaign\r\n */\r\n\r\nexport default {\r\n\tconfig: function() {\r\n\t\treturn Vue.bzbsConfig;\r\n\t},\r\n\ttoken: function() {\r\n\t\treturn Account.getCacheToken() ? Account.getCacheToken() : null\r\n\t},\r\n\tpostEarnCode: function(obj) {\r\n\t\tlet codes = [];\r\n\t\tfor (let i = 0; i < obj.length; i++) {\r\n\t\t\tif (i < (obj.length - 1)) {\r\n\t\t\t\tcodes += obj[i] + ',';\r\n\t\t\t} else {\r\n\t\t\t\tcodes += obj[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet params = {\r\n\t\t\t'codes[]': codes\r\n\t\t};\r\n\t\tvar strUrl = this.config().bzbModuleUrl + '/point/code_earns';\r\n\t\treturn BzbsApi.connectBzbsPost(strUrl, this.token(), params);\r\n\t},\r\n\tpostCouponProcess: function(obj) {\r\n\t\tlet codes = [];\r\n\t\tfor (let i = 0; i < obj.length; i++) {\r\n\t\t\tif (i < (obj.length - 1)) {\r\n\t\t\t\tcodes += obj[i] + ',';\r\n\t\t\t} else {\r\n\t\t\t\tcodes += obj[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet params = {\r\n\t\t\t'codes[]': codes\r\n\t\t};\r\n\t\tvar strUrl = this.config().bzbModuleUrl + '/coupon/process';\r\n\t\treturn BzbsApi.connectBzbsPost(strUrl, this.token(), params);\r\n\t}\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"camera-scan-wrapper\"},[_c('b-modal',{attrs:{\"id\":\"camera_scan_modal\",\"hide-header\":\"\",\"hide-footer\":\"\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\"}},[_c('div',{class:_vm.currentLocale},[_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"top-wrapper\"},[_c('strong',[_vm._v(\"\\n \"+_vm._s(_vm.lbl.scan_qr_modal.title)+\"\\n \")]),_c('img',{staticClass:\"close\",attrs:{\"src\":require(\"@/assets/images/close-icon.svg\"),\"alt\":\"close-icon\"},on:{\"click\":function($event){return _vm.onClose()}}})]),(_vm.showscan)?_c('div',{staticClass:\"currentCodeContainer\"},[_c('div',{staticClass:\"currentCode\"},[_vm._v(_vm._s(_vm.text))]),_c('video',{ref:\"player\",staticClass:\"realtimeimage\",attrs:{\"autoplay\":\"\",\"muted\":\"\",\"playsinline\":\"\"},domProps:{\"muted\":true}})]):_vm._e(),(_vm.showscan)?_c('a-button',{staticClass:\"Capturebtn\",on:{\"click\":function($event){return _vm.onDecode(_vm.text)}}},[_vm._v(\"Capture\")]):_vm._e(),_c('canvas',{ref:\"snapshot\",staticClass:\"realtimeimage himahe\"}),_c('div',{staticClass:\"streamCOntainer\"},[(_vm.show && !_vm.showscan)?_c('StreamBarcodeReader',{attrs:{\"id\":\"scan_code\",\"readers\":_vm.readers,\"formats\":[\n 'TEXT',\n 'QR_CODE',\n 'AZTEC',\n 'CODABAR',\n 'CODE_39',\n 'CODE_93',\n 'CODE_128',\n 'DATA_MATRIX',\n 'EAN_8',\n 'EAN_13',\n 'ITF',\n 'MAXICODE',\n 'PDF_417',\n 'UPC_A' ]},on:{\"decode\":_vm.onDecode}}):_vm._e()],1),_c('div',{staticClass:\"mt-3 mainuploadbtn\"},[_c('input',{ref:\"qruploader\",staticClass:\"d-none\",attrs:{\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.uploadFile}}),_c('input',{ref:\"barcodeuploader\",staticClass:\"d-none\",attrs:{\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.uploadBarcode}}),_c('ImageBarcodeReader',{ref:\"ImageBarcodeReader\",staticClass:\"d-none\",attrs:{\"formats\":[\n 'TEXT',\n 'QR_CODE',\n 'AZTEC',\n 'CODABAR',\n 'CODE_39',\n 'CODE_93',\n 'CODE_128',\n 'DATA_MATRIX',\n 'EAN_8',\n 'EAN_13',\n 'ITF',\n 'MAXICODE',\n 'PDF_417',\n 'UPC_A' ]},on:{\"decode\":_vm.onDecode,\"error\":_vm.onError}}),(false)?_c('div',{staticClass:\"warning-text d-flex\"},[(false)?_c('div',[_c('a-button',{staticClass:\"uploadimagebtn iosqr\",style:(_vm.storeStyle),on:{\"click\":function($event){return _vm.onSelectfiles('qr')}}},[_vm._v(\"QR Code\")]),_c('a-button',{staticClass:\"uploadimagebtn iosbar\",style:(_vm.storeStyle),on:{\"click\":function($event){return _vm.onSelectfiles('bar')}}},[_vm._v(\"\\n Barcode\")])],1):_c('a-button',{staticClass:\"uploadimagebtn\",style:(_vm.storeStyle),on:{\"click\":_vm.onSelectfiles}},[_vm._v(\"Upload QR Code/Barcode\")])],1):_vm._e()],1)],1)])]),(_vm.show)?_c('AlertError',{attrs:{\"show\":_vm.showError,\"data\":_vm.dataError},on:{\"changeError\":function($event){return _vm.ChangeError($event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{attrs:{\"type\":\"file\",\"name\":\"image\",\"accept\":\"image/*\",\"capture\":\"environment\"},on:{\"change\":_vm.onChangeInput}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./ImageBarcodeReader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./ImageBarcodeReader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageBarcodeReader.vue?vue&type=template&id=a9bff776&\"\nimport script from \"./ImageBarcodeReader.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageBarcodeReader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scanner-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}]},[_c('video',{ref:\"scanner\",attrs:{\"poster\":\"data:image/gif,AAAA\"}}),_c('div',{staticClass:\"overlay-element\"}),_c('div',{staticClass:\"laser\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder\n * patterns but are smaller and appear at regular intervals throughout the image.
\n *\n *At the moment this only looks for the bottom-right alignment pattern.
\n *\n *This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied,\n * pasted and stripped down here for maximum performance but does unfortunately duplicate\n * some code.
\n *\n *This class is thread-safe but not reentrant. Each thread must allocate its own object.
\n *\n * @author Sean Owen\n */\nvar AlignmentPatternFinder = /** @class */ (function () {\n /**\n *Creates a finder that will look in a portion of the whole image.
\n *\n * @param image image to search\n * @param startX left column from which to start searching\n * @param startY top row from which to start searching\n * @param width width of region to search\n * @param height height of region to search\n * @param moduleSize estimated module size so far\n */\n function AlignmentPatternFinder(image, startX /*int*/, startY /*int*/, width /*int*/, height /*int*/, moduleSize /*float*/, resultPointCallback) {\n this.image = image;\n this.startX = startX;\n this.startY = startY;\n this.width = width;\n this.height = height;\n this.moduleSize = moduleSize;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = []; // new ArrayThis method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since\n * it's pretty performance-critical and so is written to be fast foremost.
\n *\n * @return {@link AlignmentPattern} if found\n * @throws NotFoundException if not found\n */\n AlignmentPatternFinder.prototype.find = function () {\n var startX = this.startX;\n var height = this.height;\n var width = this.width;\n var maxJ = startX + width;\n var middleI = this.startY + (height / 2);\n // We are looking for black/white/black modules in 1:1:1 ratio\n // this tracks the number of black/white/black modules seen so far\n var stateCount = new Int32Array(3);\n var image = this.image;\n for (var iGen = 0; iGen < height; iGen++) {\n // Search from middle outwards\n var i = middleI + ((iGen & 0x01) === 0 ? Math.floor((iGen + 1) / 2) : -Math.floor((iGen + 1) / 2));\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n var j = startX;\n // Burn off leading white pixels before anything else; if we start in the middle of\n // a white run, it doesn't make sense to count its length, since we don't know if the\n // white run continued to the left of the start point\n while (j < maxJ && !image.get(j, i)) {\n j++;\n }\n var currentState = 0;\n while (j < maxJ) {\n if (image.get(j, i)) {\n // Black pixel\n if (currentState === 1) { // Counting black pixels\n stateCount[1]++;\n }\n else { // Counting white pixels\n if (currentState === 2) { // A winner?\n if (this.foundPatternCross(stateCount)) { // Yes\n var confirmed = this.handlePossibleCenter(stateCount, i, j);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n stateCount[0] = stateCount[2];\n stateCount[1] = 1;\n stateCount[2] = 0;\n currentState = 1;\n }\n else {\n stateCount[++currentState]++;\n }\n }\n }\n else { // White pixel\n if (currentState === 1) { // Counting black pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n j++;\n }\n if (this.foundPatternCross(stateCount)) {\n var confirmed = this.handlePossibleCenter(stateCount, i, maxJ);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n }\n // Hmm, nothing we saw was observed and confirmed twice. If we had\n // any guess at all, return it.\n if (this.possibleCenters.length !== 0) {\n return this.possibleCenters[0];\n }\n throw new NotFoundException_1.default();\n };\n /**\n * Given a count of black/white/black pixels just seen and an end position,\n * figures the location of the center of this black/white/black run.\n */\n AlignmentPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n return (end - stateCount[2]) - stateCount[1] / 2.0;\n };\n /**\n * @param stateCount count of black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/1 ratios\n * used by alignment patterns to be considered a match\n */\n AlignmentPatternFinder.prototype.foundPatternCross = function (stateCount) {\n var moduleSize = this.moduleSize;\n var maxVariance = moduleSize / 2.0;\n for (var i = 0; i < 3; i++) {\n if (Math.abs(moduleSize - stateCount[i]) >= maxVariance) {\n return false;\n }\n }\n return true;\n };\n /**\n *After a horizontal scan finds a potential alignment pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * alignment pattern to see if the same proportion is detected.
\n *\n * @param startI row where an alignment pattern was detected\n * @param centerJ center of the section that appears to cross an alignment pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of alignment pattern, or {@link Float#NaN} if not found\n */\n AlignmentPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxI = image.getHeight();\n var stateCount = this.crossCheckStateCount;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n // Start counting up from center\n var i = startI;\n while (i >= 0 && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n if (i === maxI || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[2] <= maxCount) {\n stateCount[2]++;\n i++;\n }\n if (stateCount[2] > maxCount) {\n return NaN;\n }\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return this.foundPatternCross(stateCount) ? AlignmentPatternFinder.centerFromEnd(stateCount, i) : NaN;\n };\n /**\n *This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will see if this pattern had been\n * found on a previous horizontal scan. If so, we consider it confirmed and conclude we have\n * found the alignment pattern.
\n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where alignment pattern may be found\n * @param j end of possible alignment pattern in row\n * @return {@link AlignmentPattern} if we have found the same pattern twice, or null if not\n */\n AlignmentPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/) {\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n var centerJ = AlignmentPatternFinder.centerFromEnd(stateCount, j);\n var centerI = this.crossCheckVertical(i, /*(int) */ centerJ, 2 * stateCount[1], stateCountTotal);\n if (!isNaN(centerI)) {\n var estimatedModuleSize = (stateCount[0] + stateCount[1] + stateCount[2]) / 3.0;\n for (var _i = 0, _a = this.possibleCenters; _i < _a.length; _i++) {\n var center = _a[_i];\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n return center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n }\n }\n // Hadn't found this before; save it\n var point = new AlignmentPattern_1.default(centerJ, centerI, estimatedModuleSize);\n this.possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return null;\n };\n return AlignmentPatternFinder;\n}());\nexports.default = AlignmentPatternFinder;\n//# sourceMappingURL=AlignmentPatternFinder.js.map","module.exports = (worker, handler) => {\n worker.onmessage = ({ data }) => { // eslint-disable-line\n handler(data);\n };\n};\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","const isElectron = require('is-electron');\n\nmodule.exports = (key) => {\n const env = {};\n\n if (isElectron()) {\n env.type = 'electron';\n } else if (typeof window === 'object') {\n env.type = 'browser';\n } else if (typeof importScripts === 'function') {\n env.type = 'webworker';\n } else if (typeof process === 'object' && typeof require === 'function') {\n env.type = 'node';\n }\n\n if (typeof key === 'undefined') {\n return env;\n }\n\n return env[key];\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Decoder_1 = require(\"./decoder/Decoder\");\nvar Result_1 = require(\"../Result\");\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\nvar Detector_1 = require(\"./detector/Detector\");\nvar System_1 = require(\"../util/System\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/*\n * Copyright 2007 ZXing authors\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 implementation can detect and decode Data Matrix codes in an image.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataMatrixReader = /** @class */ (function () {\n function DataMatrixReader() {\n this.decoder = new Decoder_1.default();\n }\n /**\n * Locates and decodes a Data Matrix code in an image.\n *\n * @return a String representing the content encoded by the Data Matrix code\n * @throws NotFoundException if a Data Matrix code cannot be found\n * @throws FormatException if a Data Matrix code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n // @Override\n // public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException {\n // return decode(image, null);\n // }\n // @Override\n DataMatrixReader.prototype.decode = function (image, hints) {\n if (hints === void 0) { hints = null; }\n var decoderResult;\n var points;\n if (hints != null && hints.has(DecodeHintType_1.default.PURE_BARCODE)) {\n var bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decode(bits);\n points = DataMatrixReader.NO_POINTS;\n }\n else {\n var detectorResult = new Detector_1.default(image.getBlackMatrix()).detect();\n decoderResult = this.decoder.decode(detectorResult.getBits());\n points = detectorResult.getPoints();\n }\n var rawBytes = decoderResult.getRawBytes();\n var result = new Result_1.default(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat_1.default.DATA_MATRIX, System_1.default.currentTimeMillis());\n var byteSegments = decoderResult.getByteSegments();\n if (byteSegments != null) {\n result.putMetadata(ResultMetadataType_1.default.BYTE_SEGMENTS, byteSegments);\n }\n var ecLevel = decoderResult.getECLevel();\n if (ecLevel != null) {\n result.putMetadata(ResultMetadataType_1.default.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n return result;\n };\n // @Override\n DataMatrixReader.prototype.reset = function () {\n // do nothing\n };\n /**\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n * which contains only an unrotated, unskewed, image of a code, with some white border\n * around it. This is a specialized method that works exceptionally fast in this special\n * case.\n *\n * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix)\n */\n DataMatrixReader.extractPureBits = function (image) {\n var leftTopBlack = image.getTopLeftOnBit();\n var rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack == null || rightBottomBlack == null) {\n throw new NotFoundException_1.default();\n }\n var moduleSize = this.moduleSize(leftTopBlack, image);\n var top = leftTopBlack[1];\n var bottom = rightBottomBlack[1];\n var left = leftTopBlack[0];\n var right = rightBottomBlack[0];\n var matrixWidth = (right - left + 1) / moduleSize;\n var matrixHeight = (bottom - top + 1) / moduleSize;\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException_1.default();\n }\n // Push in the \"border\" by half the module width so that we start\n // sampling in the middle of the module. Just in case the image is a\n // little off, this will help recover.\n var nudge = moduleSize / 2;\n top += nudge;\n left += nudge;\n // Now just read off the bits\n var bits = new BitMatrix_1.default(matrixWidth, matrixHeight);\n for (var y = 0; y < matrixHeight; y++) {\n var iOffset = top + y * moduleSize;\n for (var x = 0; x < matrixWidth; x++) {\n if (image.get(left + x * moduleSize, iOffset)) {\n bits.set(x, y);\n }\n }\n }\n return bits;\n };\n DataMatrixReader.moduleSize = function (leftTopBlack, image) {\n var width = image.getWidth();\n var x = leftTopBlack[0];\n var y = leftTopBlack[1];\n while (x < width && image.get(x, y)) {\n x++;\n }\n if (x === width) {\n throw new NotFoundException_1.default();\n }\n var moduleSize = x - leftTopBlack[0];\n if (moduleSize === 0) {\n throw new NotFoundException_1.default();\n }\n return moduleSize;\n };\n DataMatrixReader.NO_POINTS = [];\n return DataMatrixReader;\n}());\nexports.default = DataMatrixReader;\n//# sourceMappingURL=DataMatrixReader.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n *Encapsulates the result of detecting a barcode in an image. This includes the raw\n * matrix of black/white pixels corresponding to the barcode, and possibly points of interest\n * in the image, like the location of finder patterns or corners of the barcode in the image.
\n *\n * @author Sean Owen\n */\nvar DetectorResult = /** @class */ (function () {\n function DetectorResult(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n DetectorResult.prototype.getBits = function () {\n return this.bits;\n };\n DetectorResult.prototype.getPoints = function () {\n return this.points;\n };\n return DetectorResult;\n}());\nexports.default = DetectorResult;\n//# sourceMappingURL=DetectorResult.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BitArray_1 = require(\"../../common/BitArray\");\nvar Integer_1 = require(\"../../util/Integer\");\nvar QRCode_1 = require(\"./QRCode\");\nvar MaskUtil_1 = require(\"./MaskUtil\");\nvar WriterException_1 = require(\"../../WriterException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar MatrixUtil = /** @class */ (function () {\n function MatrixUtil() {\n // do nothing\n }\n // Set all cells to -1 (TYPESCRIPTPORT: 255). -1 (TYPESCRIPTPORT: 255) means that the cell is empty (not set yet).\n //\n // JAVAPORT: We shouldn't need to do this at all. The code should be rewritten to begin encoding\n // with the ByteMatrix initialized all to zero.\n MatrixUtil.clearMatrix = function (matrix) {\n // TYPESCRIPTPORT: we use UintArray se changed here from -1 to 255\n matrix.clear(/*(byte) */ /*-1*/ 255);\n };\n // Build 2D matrix of QR Code from \"dataBits\" with \"ecLevel\", \"version\" and \"getMaskPattern\". On\n // success, store the result in \"matrix\" and return true.\n MatrixUtil.buildMatrix = function (dataBits, ecLevel, version, maskPattern /*int*/, matrix) {\n MatrixUtil.clearMatrix(matrix);\n MatrixUtil.embedBasicPatterns(version, matrix);\n // Type information appear with any version.\n MatrixUtil.embedTypeInfo(ecLevel, maskPattern, matrix);\n // Version info appear if version >= 7.\n MatrixUtil.maybeEmbedVersionInfo(version, matrix);\n // Data should be embedded at end.\n MatrixUtil.embedDataBits(dataBits, maskPattern, matrix);\n };\n // Embed basic patterns. On success, modify the matrix and return true.\n // The basic patterns are:\n // - Position detection patterns\n // - Timing patterns\n // - Dark dot at the left bottom corner\n // - Position adjustment patterns, if need be\n MatrixUtil.embedBasicPatterns = function (version, matrix) {\n // Let's get started with embedding big squares at corners.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators(matrix);\n // Then, embed the dark dot at the left bottom corner.\n MatrixUtil.embedDarkDotAtLeftBottomCorner(matrix);\n // Position adjustment patterns appear if version >= 2.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns(version, matrix);\n // Timing patterns should be embedded after position adj. patterns.\n MatrixUtil.embedTimingPatterns(matrix);\n };\n // Embed type information. On success, modify the matrix.\n MatrixUtil.embedTypeInfo = function (ecLevel, maskPattern /*int*/, matrix) {\n var typeInfoBits = new BitArray_1.default();\n MatrixUtil.makeTypeInfoBits(ecLevel, maskPattern, typeInfoBits);\n for (var i = 0, size = typeInfoBits.getSize(); i < size; ++i) {\n // Place bits in LSB to MSB order. LSB (least significant bit) is the last value in\n // \"typeInfoBits\".\n var bit = typeInfoBits.get(typeInfoBits.getSize() - 1 - i);\n // Type info bits at the left top corner. See 8.9 of JISX0510:2004 (p.46).\n var coordinates = MatrixUtil.TYPE_INFO_COORDINATES[i];\n var x1 = coordinates[0];\n var y1 = coordinates[1];\n matrix.setBoolean(x1, y1, bit);\n if (i < 8) {\n // Right top corner.\n var x2 = matrix.getWidth() - i - 1;\n var y2 = 8;\n matrix.setBoolean(x2, y2, bit);\n }\n else {\n // Left bottom corner.\n var x2 = 8;\n var y2 = matrix.getHeight() - 7 + (i - 8);\n matrix.setBoolean(x2, y2, bit);\n }\n }\n };\n // Embed version information if need be. On success, modify the matrix and return true.\n // See 8.10 of JISX0510:2004 (p.47) for how to embed version information.\n MatrixUtil.maybeEmbedVersionInfo = function (version, matrix) {\n if (version.getVersionNumber() < 7) { // Version info is necessary if version >= 7.\n return; // Don't need version info.\n }\n var versionInfoBits = new BitArray_1.default();\n MatrixUtil.makeVersionInfoBits(version, versionInfoBits);\n var bitIndex = 6 * 3 - 1; // It will decrease from 17 to 0.\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; j < 3; ++j) {\n // Place bits in LSB (least significant bit) to MSB order.\n var bit = versionInfoBits.get(bitIndex);\n bitIndex--;\n // Left bottom corner.\n matrix.setBoolean(i, matrix.getHeight() - 11 + j, bit);\n // Right bottom corner.\n matrix.setBoolean(matrix.getHeight() - 11 + j, i, bit);\n }\n }\n };\n // Embed \"dataBits\" using \"getMaskPattern\". On success, modify the matrix and return true.\n // For debugging purposes, it skips masking process if \"getMaskPattern\" is -1(TYPESCRIPTPORT: 255).\n // See 8.7 of JISX0510:2004 (p.38) for how to embed data bits.\n MatrixUtil.embedDataBits = function (dataBits, maskPattern /*int*/, matrix) {\n var bitIndex = 0;\n var direction = -1;\n // Start from the right bottom cell.\n var x = matrix.getWidth() - 1;\n var y = matrix.getHeight() - 1;\n while (x > 0) {\n // Skip the vertical timing pattern.\n if (x === 6) {\n x -= 1;\n }\n while (y >= 0 && y < matrix.getHeight()) {\n for (var i = 0; i < 2; ++i) {\n var xx = x - i;\n // Skip the cell if it's not empty.\n if (!MatrixUtil.isEmpty(matrix.get(xx, y))) {\n continue;\n }\n var bit = void 0;\n if (bitIndex < dataBits.getSize()) {\n bit = dataBits.get(bitIndex);\n ++bitIndex;\n }\n else {\n // Padding bit. If there is no bit left, we'll fill the left cells with 0, as described\n // in 8.4.9 of JISX0510:2004 (p. 24).\n bit = false;\n }\n // Skip masking if mask_pattern is -1 (TYPESCRIPTPORT: 255).\n if (maskPattern !== 255 && MaskUtil_1.default.getDataMaskBit(maskPattern, xx, y)) {\n bit = !bit;\n }\n matrix.setBoolean(xx, y, bit);\n }\n y += direction;\n }\n direction = -direction; // Reverse the direction.\n y += direction;\n x -= 2; // Move to the left.\n }\n // All bits should be consumed.\n if (bitIndex !== dataBits.getSize()) {\n throw new WriterException_1.default('Not all bits consumed: ' + bitIndex + '/' + dataBits.getSize());\n }\n };\n // Return the position of the most significant bit set (one: to) in the \"value\". The most\n // significant bit is position 32. If there is no bit set, return 0. Examples:\n // - findMSBSet(0) => 0\n // - findMSBSet(1) => 1\n // - findMSBSet(255) => 8\n MatrixUtil.findMSBSet = function (value /*int*/) {\n return 32 - Integer_1.default.numberOfLeadingZeros(value);\n };\n // Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for \"value\" using polynomial \"poly\". The BCH\n // code is used for encoding type information and version information.\n // Example: Calculation of version information of 7.\n // f(x) is created from 7.\n // - 7 = 000111 in 6 bits\n // - f(x) = x^2 + x^1 + x^0\n // g(x) is given by the standard (p. 67)\n // - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1\n // Multiply f(x) by x^(18 - 6)\n // - f'(x) = f(x) * x^(18 - 6)\n // - f'(x) = x^14 + x^13 + x^12\n // Calculate the remainder of f'(x) / g(x)\n // x^2\n // __________________________________________________\n // g(x) )x^14 + x^13 + x^12\n // x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2\n // --------------------------------------------------\n // x^11 + x^10 + x^7 + x^4 + x^2\n //\n // The remainder is x^11 + x^10 + x^7 + x^4 + x^2\n // Encode it in binary: 110010010100\n // The return value is 0xc94 (1100 1001 0100)\n //\n // Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit\n // operations. We don't care if coefficients are positive or negative.\n MatrixUtil.calculateBCHCode = function (value /*int*/, poly /*int*/) {\n if (poly === 0) {\n throw new IllegalArgumentException_1.default('0 polynomial');\n }\n // If poly is \"1 1111 0010 0101\" (version info poly), msbSetInPoly is 13. We'll subtract 1\n // from 13 to make it 12.\n var msbSetInPoly = MatrixUtil.findMSBSet(poly);\n value <<= msbSetInPoly - 1;\n // Do the division business using exclusive-or operations.\n while (MatrixUtil.findMSBSet(value) >= msbSetInPoly) {\n value ^= poly << (MatrixUtil.findMSBSet(value) - msbSetInPoly);\n }\n // Now the \"value\" is the remainder (i.e. the BCH code)\n return value;\n };\n // Make bit vector of type information. On success, store the result in \"bits\" and return true.\n // Encode error correction level and mask pattern. See 8.9 of\n // JISX0510:2004 (p.45) for details.\n MatrixUtil.makeTypeInfoBits = function (ecLevel, maskPattern /*int*/, bits) {\n if (!QRCode_1.default.isValidMaskPattern(maskPattern)) {\n throw new WriterException_1.default('Invalid mask pattern');\n }\n var typeInfo = (ecLevel.getBits() << 3) | maskPattern;\n bits.appendBits(typeInfo, 5);\n var bchCode = MatrixUtil.calculateBCHCode(typeInfo, MatrixUtil.TYPE_INFO_POLY);\n bits.appendBits(bchCode, 10);\n var maskBits = new BitArray_1.default();\n maskBits.appendBits(MatrixUtil.TYPE_INFO_MASK_PATTERN, 15);\n bits.xor(maskBits);\n if (bits.getSize() !== 15) { // Just in case.\n throw new WriterException_1.default('should not happen but we got: ' + bits.getSize());\n }\n };\n // Make bit vector of version information. On success, store the result in \"bits\" and return true.\n // See 8.10 of JISX0510:2004 (p.45) for details.\n MatrixUtil.makeVersionInfoBits = function (version, bits) {\n bits.appendBits(version.getVersionNumber(), 6);\n var bchCode = MatrixUtil.calculateBCHCode(version.getVersionNumber(), MatrixUtil.VERSION_INFO_POLY);\n bits.appendBits(bchCode, 12);\n if (bits.getSize() !== 18) { // Just in case.\n throw new WriterException_1.default('should not happen but we got: ' + bits.getSize());\n }\n };\n // Check if \"value\" is empty.\n MatrixUtil.isEmpty = function (value /*int*/) {\n return value === 255; // -1\n };\n MatrixUtil.embedTimingPatterns = function (matrix) {\n // -8 is for skipping position detection patterns (7: size), and two horizontal/vertical\n // separation patterns (1: size). Thus, 8 = 7 + 1.\n for (var i = 8; i < matrix.getWidth() - 8; ++i) {\n var bit = (i + 1) % 2;\n // Horizontal line.\n if (MatrixUtil.isEmpty(matrix.get(i, 6))) {\n matrix.setNumber(i, 6, bit);\n }\n // Vertical line.\n if (MatrixUtil.isEmpty(matrix.get(6, i))) {\n matrix.setNumber(6, i, bit);\n }\n }\n };\n // Embed the lonely dark dot at left bottom corner. JISX0510:2004 (p.46)\n MatrixUtil.embedDarkDotAtLeftBottomCorner = function (matrix) {\n if (matrix.get(8, matrix.getHeight() - 8) === 0) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(8, matrix.getHeight() - 8, 1);\n };\n MatrixUtil.embedHorizontalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var x = 0; x < 8; ++x) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart + x, yStart))) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(xStart + x, yStart, 0);\n }\n };\n MatrixUtil.embedVerticalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart, yStart + y))) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(xStart, yStart + y, 0);\n }\n };\n MatrixUtil.embedPositionAdjustmentPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 5; ++y) {\n var patternY = MatrixUtil.POSITION_ADJUSTMENT_PATTERN[y];\n for (var x = 0; x < 5; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n MatrixUtil.embedPositionDetectionPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n var patternY = MatrixUtil.POSITION_DETECTION_PATTERN[y];\n for (var x = 0; x < 7; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n // Embed position detection patterns and surrounding vertical/horizontal separators.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators = function (matrix) {\n // Embed three big squares at corners.\n var pdpWidth = MatrixUtil.POSITION_DETECTION_PATTERN[0].length;\n // Left top corner.\n MatrixUtil.embedPositionDetectionPattern(0, 0, matrix);\n // Right top corner.\n MatrixUtil.embedPositionDetectionPattern(matrix.getWidth() - pdpWidth, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedPositionDetectionPattern(0, matrix.getWidth() - pdpWidth, matrix);\n // Embed horizontal separation patterns around the squares.\n var hspWidth = 8;\n // Left top corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, hspWidth - 1, matrix);\n // Right top corner.\n MatrixUtil.embedHorizontalSeparationPattern(matrix.getWidth() - hspWidth, hspWidth - 1, matrix);\n // Left bottom corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, matrix.getWidth() - hspWidth, matrix);\n // Embed vertical separation patterns around the squares.\n var vspSize = 7;\n // Left top corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, 0, matrix);\n // Right top corner.\n MatrixUtil.embedVerticalSeparationPattern(matrix.getHeight() - vspSize - 1, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, matrix.getHeight() - vspSize, matrix);\n };\n // Embed position adjustment patterns if need be.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns = function (version, matrix) {\n if (version.getVersionNumber() < 2) { // The patterns appear if version >= 2\n return;\n }\n var index = version.getVersionNumber() - 1;\n var coordinates = MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index];\n for (var i = 0, length_1 = coordinates.length; i !== length_1; i++) {\n var y = coordinates[i];\n if (y >= 0) {\n for (var j = 0; j !== length_1; j++) {\n var x = coordinates[j];\n if (x >= 0 && MatrixUtil.isEmpty(matrix.get(x, y))) {\n // If the cell is unset, we embed the position adjustment pattern here.\n // -2 is necessary since the x/y coordinates point to the center of the pattern, not the\n // left top corner.\n MatrixUtil.embedPositionAdjustmentPattern(x - 2, y - 2, matrix);\n }\n }\n }\n }\n };\n MatrixUtil.POSITION_DETECTION_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n ]);\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1]),\n ]);\n // From Appendix E. Table 1, JIS0510X:2004 (71: p). The table was double-checked by komatsu.\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = Array.from([\n Int32Array.from([-1, -1, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 18, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 26, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 30, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 34, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, 38, -1, -1, -1, -1]),\n Int32Array.from([6, 24, 42, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, -1, -1, -1, -1]),\n Int32Array.from([6, 28, 50, -1, -1, -1, -1]),\n Int32Array.from([6, 30, 54, -1, -1, -1, -1]),\n Int32Array.from([6, 32, 58, -1, -1, -1, -1]),\n Int32Array.from([6, 34, 62, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, 66, -1, -1, -1]),\n Int32Array.from([6, 26, 48, 70, -1, -1, -1]),\n Int32Array.from([6, 26, 50, 74, -1, -1, -1]),\n Int32Array.from([6, 30, 54, 78, -1, -1, -1]),\n Int32Array.from([6, 30, 56, 82, -1, -1, -1]),\n Int32Array.from([6, 30, 58, 86, -1, -1, -1]),\n Int32Array.from([6, 34, 62, 90, -1, -1, -1]),\n Int32Array.from([6, 28, 50, 72, 94, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, -1, -1]),\n Int32Array.from([6, 30, 54, 78, 102, -1, -1]),\n Int32Array.from([6, 28, 54, 80, 106, -1, -1]),\n Int32Array.from([6, 32, 58, 84, 110, -1, -1]),\n Int32Array.from([6, 30, 58, 86, 114, -1, -1]),\n Int32Array.from([6, 34, 62, 90, 118, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, 122, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, -1]),\n Int32Array.from([6, 26, 52, 78, 104, 130, -1]),\n Int32Array.from([6, 30, 56, 82, 108, 134, -1]),\n Int32Array.from([6, 34, 60, 86, 112, 138, -1]),\n Int32Array.from([6, 30, 58, 86, 114, 142, -1]),\n Int32Array.from([6, 34, 62, 90, 118, 146, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, 150]),\n Int32Array.from([6, 24, 50, 76, 102, 128, 154]),\n Int32Array.from([6, 28, 54, 80, 106, 132, 158]),\n Int32Array.from([6, 32, 58, 84, 110, 136, 162]),\n Int32Array.from([6, 26, 54, 82, 110, 138, 166]),\n Int32Array.from([6, 30, 58, 86, 114, 142, 170]),\n ]);\n // Type info cells at the left top corner.\n MatrixUtil.TYPE_INFO_COORDINATES = Array.from([\n Int32Array.from([8, 0]),\n Int32Array.from([8, 1]),\n Int32Array.from([8, 2]),\n Int32Array.from([8, 3]),\n Int32Array.from([8, 4]),\n Int32Array.from([8, 5]),\n Int32Array.from([8, 7]),\n Int32Array.from([8, 8]),\n Int32Array.from([7, 8]),\n Int32Array.from([5, 8]),\n Int32Array.from([4, 8]),\n Int32Array.from([3, 8]),\n Int32Array.from([2, 8]),\n Int32Array.from([1, 8]),\n Int32Array.from([0, 8]),\n ]);\n // From Appendix D in JISX0510:2004 (p. 67)\n MatrixUtil.VERSION_INFO_POLY = 0x1f25; // 1 1111 0010 0101\n // From Appendix C in JISX0510:2004 (p.65).\n MatrixUtil.TYPE_INFO_POLY = 0x537;\n MatrixUtil.TYPE_INFO_MASK_PATTERN = 0x5412;\n return MatrixUtil;\n}());\nexports.default = MatrixUtil;\n//# sourceMappingURL=MatrixUtil.js.map","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\n/**\n *Implements decoding of the EAN-8 format.
\n *\n * @author Sean Owen\n */\nvar EAN8Reader = /** @class */ (function (_super) {\n __extends(EAN8Reader, _super);\n function EAN8Reader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = [0, 0, 0, 0];\n return _this;\n }\n EAN8Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n rowOffset += counter;\n }\n }\n var middleRange = UPCEANReader_1.default.findGuardPattern(row, rowOffset, true, UPCEANReader_1.default.MIDDLE_PATTERN, new Array(UPCEANReader_1.default.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (var _a = 0, counters_2 = counters; _a < counters_2.length; _a++) {\n var counter = counters_2[_a];\n rowOffset += counter;\n }\n }\n return { rowOffset: rowOffset, resultString: resultString };\n };\n EAN8Reader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat_1.default.EAN_8;\n };\n return EAN8Reader;\n}(UPCEANReader_1.default));\nexports.default = EAN8Reader;\n//# sourceMappingURL=EAN8Reader.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.oned {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar Result_1 = require(\"../Result\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar OneDReader_1 = require(\"./OneDReader\");\nvar StringBuilder_1 = require(\"../util/StringBuilder\");\nvar System_1 = require(\"../util/System\");\nvar FormatException_1 = require(\"../FormatException\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\n/**\n *Decodes ITF barcodes.
\n *\n * @author Tjieco\n */\nvar ITFReader = /** @class */ (function (_super) {\n __extends(ITFReader, _super);\n function ITFReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // Stores the actual narrow line width of the image being decoded.\n _this.narrowLineWidth = -1;\n return _this;\n }\n // See ITFWriter.PATTERNS\n /*\n\n /!**\n * Patterns of Wide / Narrow lines to indicate each digit\n *!/\n */\n ITFReader.prototype.decodeRow = function (rowNumber, row, hints) {\n // Find out where the Middle section (payload) starts & ends\n var startRange = this.decodeStart(row);\n var endRange = this.decodeEnd(row);\n var result = new StringBuilder_1.default();\n ITFReader.decodeMiddle(row, startRange[1], endRange[0], result);\n var resultString = result.toString();\n var allowedLengths = null;\n if (hints != null) {\n allowedLengths = hints.get(DecodeHintType_1.default.ALLOWED_LENGTHS);\n }\n if (allowedLengths == null) {\n allowedLengths = ITFReader.DEFAULT_ALLOWED_LENGTHS;\n }\n // To avoid false positives with 2D barcodes (and other patterns), make\n // an assumption that the decoded string must be a 'standard' length if it's short\n var length = resultString.length;\n var lengthOK = false;\n var maxAllowedLength = 0;\n for (var _i = 0, allowedLengths_1 = allowedLengths; _i < allowedLengths_1.length; _i++) {\n var value = allowedLengths_1[_i];\n if (length === value) {\n lengthOK = true;\n break;\n }\n if (value > maxAllowedLength) {\n maxAllowedLength = value;\n }\n }\n if (!lengthOK && length > maxAllowedLength) {\n lengthOK = true;\n }\n if (!lengthOK) {\n throw new FormatException_1.default();\n }\n var points = [new ResultPoint_1.default(startRange[1], rowNumber), new ResultPoint_1.default(endRange[0], rowNumber)];\n var resultReturn = new Result_1.default(resultString, null, // no natural byte representation for these barcodes\n 0, points, BarcodeFormat_1.default.ITF, new Date().getTime());\n return resultReturn;\n };\n /*\n /!**\n * @param row row of black/white values to search\n * @param payloadStart offset of start pattern\n * @param resultString {@link StringBuilder} to append decoded chars to\n * @throws NotFoundException if decoding could not complete successfully\n *!/*/\n ITFReader.decodeMiddle = function (row, payloadStart, payloadEnd, resultString) {\n // Digits are interleaved in pairs - 5 black lines for one digit, and the\n // 5\n // interleaved white lines for the second digit.\n // Therefore, need to scan 10 lines and then\n // split these into two arrays\n var counterDigitPair = new Array(10); // 10\n var counterBlack = new Array(5); // 5\n var counterWhite = new Array(5); // 5\n counterDigitPair.fill(0);\n counterBlack.fill(0);\n counterWhite.fill(0);\n while (payloadStart < payloadEnd) {\n // Get 10 runs of black/white.\n OneDReader_1.default.recordPattern(row, payloadStart, counterDigitPair);\n // Split them into each array\n for (var k = 0; k < 5; k++) {\n var twoK = 2 * k;\n counterBlack[k] = counterDigitPair[twoK];\n counterWhite[k] = counterDigitPair[twoK + 1];\n }\n var bestMatch = ITFReader.decodeDigit(counterBlack);\n resultString.append(bestMatch.toString());\n bestMatch = this.decodeDigit(counterWhite);\n resultString.append(bestMatch.toString());\n counterDigitPair.forEach(function (counterDigit) {\n payloadStart += counterDigit;\n });\n }\n };\n /*/!**\n * Identify where the start of the middle / payload section starts.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'start block' and end of\n * 'start block'\n *!/*/\n ITFReader.prototype.decodeStart = function (row) {\n var endStart = ITFReader.skipWhiteSpace(row);\n var startPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.START_PATTERN);\n // Determine the width of a narrow line in pixels. We can do this by\n // getting the width of the start pattern and dividing by 4 because its\n // made up of 4 narrow lines.\n this.narrowLineWidth = (startPattern[1] - startPattern[0]) / 4;\n this.validateQuietZone(row, startPattern[0]);\n return startPattern;\n };\n /*/!**\n * The start & end patterns must be pre/post fixed by a quiet zone. This\n * zone must be at least 10 times the width of a narrow line. Scan back until\n * we either get to the start of the barcode or match the necessary number of\n * quiet zone pixels.\n *\n * Note: Its assumed the row is reversed when using this method to find\n * quiet zone after the end pattern.\n *\n * ref: http://www.barcode-1.net/i25code.html\n *\n * @param row bit array representing the scanned barcode.\n * @param startPattern index into row of the start or end pattern.\n * @throws NotFoundException if the quiet zone cannot be found\n *!/*/\n ITFReader.prototype.validateQuietZone = function (row, startPattern) {\n var quietCount = this.narrowLineWidth * 10; // expect to find this many pixels of quiet zone\n // if there are not so many pixel at all let's try as many as possible\n quietCount = quietCount < startPattern ? quietCount : startPattern;\n for (var i = startPattern - 1; quietCount > 0 && i >= 0; i--) {\n if (row.get(i)) {\n break;\n }\n quietCount--;\n }\n if (quietCount !== 0) {\n // Unable to find the necessary number of quiet zone pixels.\n throw new NotFoundException_1.default();\n }\n };\n /*\n /!**\n * Skip all whitespace until we get to the first black line.\n *\n * @param row row of black/white values to search\n * @return index of the first black line.\n * @throws NotFoundException Throws exception if no black lines are found in the row\n *!/*/\n ITFReader.skipWhiteSpace = function (row) {\n var width = row.getSize();\n var endStart = row.getNextSet(0);\n if (endStart === width) {\n throw new NotFoundException_1.default();\n }\n return endStart;\n };\n /*/!**\n * Identify where the end of the middle / payload section ends.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'end block' and end of 'end\n * block'\n *!/*/\n ITFReader.prototype.decodeEnd = function (row) {\n // For convenience, reverse the row and then\n // search from 'the start' for the end block\n row.reverse();\n try {\n var endStart = ITFReader.skipWhiteSpace(row);\n var endPattern = void 0;\n try {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[0]);\n }\n catch (NotFoundException) {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[1]);\n }\n // The start & end patterns must be pre/post fixed by a quiet zone. This\n // zone must be at least 10 times the width of a narrow line.\n // ref: http://www.barcode-1.net/i25code.html\n this.validateQuietZone(row, endPattern[0]);\n // Now recalculate the indices of where the 'endblock' starts & stops to\n // accommodate\n // the reversed nature of the search\n var temp = endPattern[0];\n endPattern[0] = row.getSize() - endPattern[1];\n endPattern[1] = row.getSize() - temp;\n return endPattern;\n }\n finally {\n // Put the row back the right way.\n row.reverse();\n }\n };\n /*\n /!**\n * @param row row of black/white values to search\n * @param rowOffset position to start search\n * @param pattern pattern of counts of number of black and white pixels that are\n * being searched for as a pattern\n * @return start/end horizontal offset of guard pattern, as an array of two\n * ints\n * @throws NotFoundException if pattern is not found\n *!/*/\n ITFReader.findGuardPattern = function (row, rowOffset, pattern) {\n var patternLength = pattern.length;\n var counters = new Array(patternLength);\n var width = row.getSize();\n var isWhite = false;\n var counterPosition = 0;\n var patternStart = rowOffset;\n counters.fill(0);\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader_1.default.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE) < ITFReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n System_1.default.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n /*/!**\n * Attempts to decode a sequence of ITF black/white lines into single\n * digit.\n *\n * @param counters the counts of runs of observed black/white/black/... values\n * @return The decoded digit\n * @throws NotFoundException if digit cannot be decoded\n *!/*/\n ITFReader.decodeDigit = function (counters) {\n var bestVariance = ITFReader.MAX_AVG_VARIANCE; // worst variance we'll accept\n var bestMatch = -1;\n var max = ITFReader.PATTERNS.length;\n for (var i = 0; i < max; i++) {\n var pattern = ITFReader.PATTERNS[i];\n var variance = OneDReader_1.default.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n else if (variance === bestVariance) {\n // if we find a second 'best match' with the same variance, we can not reliably report to have a suitable match\n bestMatch = -1;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch % 10;\n }\n else {\n throw new NotFoundException_1.default();\n }\n };\n ITFReader.W = 3; // Pixel width of a 3x wide line\n ITFReader.w = 2; // Pixel width of a 2x wide line\n ITFReader.N = 1; // Pixed width of a narrow line\n ITFReader.PATTERNS = [\n [1, 1, 2, 2, 1],\n [2, 1, 1, 1, 2],\n [1, 2, 1, 1, 2],\n [2, 2, 1, 1, 1],\n [1, 1, 2, 1, 2],\n [2, 1, 2, 1, 1],\n [1, 2, 2, 1, 1],\n [1, 1, 1, 2, 2],\n [2, 1, 1, 2, 1],\n [1, 2, 1, 2, 1],\n [1, 1, 3, 3, 1],\n [3, 1, 1, 1, 3],\n [1, 3, 1, 1, 3],\n [3, 3, 1, 1, 1],\n [1, 1, 3, 1, 3],\n [3, 1, 3, 1, 1],\n [1, 3, 3, 1, 1],\n [1, 1, 1, 3, 3],\n [3, 1, 1, 3, 1],\n [1, 3, 1, 3, 1] // 9\n ];\n ITFReader.MAX_AVG_VARIANCE = 0.38;\n ITFReader.MAX_INDIVIDUAL_VARIANCE = 0.5;\n /* /!** Valid ITF lengths. Anything longer than the largest value is also allowed. *!/*/\n ITFReader.DEFAULT_ALLOWED_LENGTHS = [6, 8, 10, 12, 14];\n /*/!**\n * Start/end guard pattern.\n *\n * Note: The end pattern is reversed because the row is reversed before\n * searching for the END_PATTERN\n *!/*/\n ITFReader.START_PATTERN = [1, 1, 1, 1];\n ITFReader.END_PATTERN_REVERSED = [\n [1, 1, 2],\n [1, 1, 3] // 3x\n ];\n return ITFReader;\n}(OneDReader_1.default));\nexports.default = ITFReader;\n//# sourceMappingURL=ITFReader.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\nvar MathUtils_1 = require(\"./common/detector/MathUtils\");\nvar Float_1 = require(\"./util/Float\");\n/**\n *Encapsulates a point of interest in an image containing a barcode. Typically, this\n * would be the location of a finder pattern or the corner of the barcode, for example.
\n *\n * @author Sean Owen\n */\nvar ResultPoint = /** @class */ (function () {\n function ResultPoint(x /*float*/, y /*float*/) {\n this.x = x;\n this.y = y;\n }\n ResultPoint.prototype.getX = function () {\n return this.x;\n };\n ResultPoint.prototype.getY = function () {\n return this.y;\n };\n /*@Override*/\n ResultPoint.prototype.equals = function (other) {\n if (other instanceof ResultPoint) {\n var otherPoint = other;\n return this.x === otherPoint.x && this.y === otherPoint.y;\n }\n return false;\n };\n /*@Override*/\n ResultPoint.prototype.hashCode = function () {\n return 31 * Float_1.default.floatToIntBits(this.x) + Float_1.default.floatToIntBits(this.y);\n };\n /*@Override*/\n ResultPoint.prototype.toString = function () {\n return '(' + this.x + ',' + this.y + ')';\n };\n /**\n * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC\n * and BC is less than AC, and the angle between BC and BA is less than 180 degrees.\n *\n * @param patterns array of three {@code ResultPoint} to order\n */\n ResultPoint.orderBestPatterns = function (patterns) {\n // Find distances between pattern centers\n var zeroOneDistance = this.distance(patterns[0], patterns[1]);\n var oneTwoDistance = this.distance(patterns[1], patterns[2]);\n var zeroTwoDistance = this.distance(patterns[0], patterns[2]);\n var pointA;\n var pointB;\n var pointC;\n // Assume one closest to other two is B; A and C will just be guesses at first\n if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {\n pointB = patterns[0];\n pointA = patterns[1];\n pointC = patterns[2];\n }\n else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {\n pointB = patterns[1];\n pointA = patterns[0];\n pointC = patterns[2];\n }\n else {\n pointB = patterns[2];\n pointA = patterns[0];\n pointC = patterns[1];\n }\n // Use cross product to figure out whether A and C are correct or flipped.\n // This asks whether BC x BA has a positive z component, which is the arrangement\n // we want for A, B, C. If it's negative, then we've got it flipped around and\n // should swap A and C.\n if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {\n var temp = pointA;\n pointA = pointC;\n pointC = temp;\n }\n patterns[0] = pointA;\n patterns[1] = pointB;\n patterns[2] = pointC;\n };\n /**\n * @param pattern1 first pattern\n * @param pattern2 second pattern\n * @return distance between two points\n */\n ResultPoint.distance = function (pattern1, pattern2) {\n return MathUtils_1.default.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);\n };\n /**\n * Returns the z component of the cross product between vectors BC and BA.\n */\n ResultPoint.crossProductZ = function (pointA, pointB, pointC) {\n var bX = pointB.x;\n var bY = pointB.y;\n return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\n };\n return ResultPoint;\n}());\nexports.default = ResultPoint;\n//# sourceMappingURL=ResultPoint.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar DecodeHintType_1 = require(\"../../DecodeHintType\");\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar DetectorResult_1 = require(\"../../common/DetectorResult\");\nvar GridSamplerInstance_1 = require(\"../../common/GridSamplerInstance\");\nvar PerspectiveTransform_1 = require(\"../../common/PerspectiveTransform\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar Version_1 = require(\"../decoder/Version\");\nvar FinderPatternFinder_1 = require(\"./FinderPatternFinder\");\nvar AlignmentPatternFinder_1 = require(\"./AlignmentPatternFinder\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\n/*import java.util.Map;*/\n/**\n *Encapsulates logic that can detect a QR Code in an image, even if the QR Code\n * is rotated or skewed, or partially obscured.
\n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.image = image;\n }\n Detector.prototype.getImage = function () {\n return this.image;\n };\n Detector.prototype.getResultPointCallback = function () {\n return this.resultPointCallback;\n };\n /**\n *Detects a QR Code in an image.
\n *\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n // public detect(): DetectorResult /*throws NotFoundException, FormatException*/ {\n // return detect(null)\n // }\n /**\n *Detects a QR Code in an image.
\n *\n * @param hints optional hints to detector\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n Detector.prototype.detect = function (hints) {\n this.resultPointCallback = (hints === null || hints === undefined) ? null :\n /*(ResultPointCallback) */ hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n var finder = new FinderPatternFinder_1.default(this.image, this.resultPointCallback);\n var info = finder.find(hints);\n return this.processFinderPatternInfo(info);\n };\n Detector.prototype.processFinderPatternInfo = function (info) {\n var topLeft = info.getTopLeft();\n var topRight = info.getTopRight();\n var bottomLeft = info.getBottomLeft();\n var moduleSize = this.calculateModuleSize(topLeft, topRight, bottomLeft);\n if (moduleSize < 1.0) {\n throw new NotFoundException_1.default('No pattern found in proccess finder.');\n }\n var dimension = Detector.computeDimension(topLeft, topRight, bottomLeft, moduleSize);\n var provisionalVersion = Version_1.default.getProvisionalVersionForDimension(dimension);\n var modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7;\n var alignmentPattern = null;\n // Anything above version 1 has an alignment pattern\n if (provisionalVersion.getAlignmentPatternCenters().length > 0) {\n // Guess where a \"bottom right\" finder pattern would have been\n var bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX();\n var bottomRightY = topRight.getY() - topLeft.getY() + bottomLeft.getY();\n // Estimate that alignment pattern is closer by 3 modules\n // from \"bottom right\" to known top left location\n var correctionToTopLeft = 1.0 - 3.0 / modulesBetweenFPCenters;\n var estAlignmentX = /*(int) */ Math.floor(topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX()));\n var estAlignmentY = /*(int) */ Math.floor(topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY()));\n // Kind of arbitrary -- expand search radius before giving up\n for (var i = 4; i <= 16; i <<= 1) {\n try {\n alignmentPattern = this.findAlignmentInRegion(moduleSize, estAlignmentX, estAlignmentY, i);\n break;\n }\n catch (re /*NotFoundException*/) {\n if (!(re instanceof NotFoundException_1.default)) {\n throw re;\n }\n // try next round\n }\n }\n // If we didn't find alignment pattern... well try anyway without it\n }\n var transform = Detector.createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension);\n var bits = Detector.sampleGrid(this.image, transform, dimension);\n var points;\n if (alignmentPattern === null) {\n points = [bottomLeft, topLeft, topRight];\n }\n else {\n points = [bottomLeft, topLeft, topRight, alignmentPattern];\n }\n return new DetectorResult_1.default(bits, points);\n };\n Detector.createTransform = function (topLeft, topRight, bottomLeft, alignmentPattern, dimension /*int*/) {\n var dimMinusThree = dimension - 3.5;\n var bottomRightX; /*float*/\n var bottomRightY; /*float*/\n var sourceBottomRightX; /*float*/\n var sourceBottomRightY; /*float*/\n if (alignmentPattern !== null) {\n bottomRightX = alignmentPattern.getX();\n bottomRightY = alignmentPattern.getY();\n sourceBottomRightX = dimMinusThree - 3.0;\n sourceBottomRightY = sourceBottomRightX;\n }\n else {\n // Don't have an alignment pattern, just make up the bottom-right point\n bottomRightX = (topRight.getX() - topLeft.getX()) + bottomLeft.getX();\n bottomRightY = (topRight.getY() - topLeft.getY()) + bottomLeft.getY();\n sourceBottomRightX = dimMinusThree;\n sourceBottomRightY = dimMinusThree;\n }\n return PerspectiveTransform_1.default.quadrilateralToQuadrilateral(3.5, 3.5, dimMinusThree, 3.5, sourceBottomRightX, sourceBottomRightY, 3.5, dimMinusThree, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRightX, bottomRightY, bottomLeft.getX(), bottomLeft.getY());\n };\n Detector.sampleGrid = function (image, transform, dimension /*int*/) {\n var sampler = GridSamplerInstance_1.default.getInstance();\n return sampler.sampleGridWithTransform(image, dimension, dimension, transform);\n };\n /**\n *Computes the dimension (number of modules on a size) of the QR Code based on the position\n * of the finder patterns and estimated module size.
\n */\n Detector.computeDimension = function (topLeft, topRight, bottomLeft, moduleSize /*float*/) {\n var tltrCentersDimension = MathUtils_1.default.round(ResultPoint_1.default.distance(topLeft, topRight) / moduleSize);\n var tlblCentersDimension = MathUtils_1.default.round(ResultPoint_1.default.distance(topLeft, bottomLeft) / moduleSize);\n var dimension = Math.floor((tltrCentersDimension + tlblCentersDimension) / 2) + 7;\n switch (dimension & 0x03) { // mod 4\n case 0:\n dimension++;\n break;\n // 1? do nothing\n case 2:\n dimension--;\n break;\n case 3:\n throw new NotFoundException_1.default('Dimensions could be not found.');\n }\n return dimension;\n };\n /**\n *Computes an average estimated module size based on estimated derived from the positions\n * of the three finder patterns.
\n *\n * @param topLeft detected top-left finder pattern center\n * @param topRight detected top-right finder pattern center\n * @param bottomLeft detected bottom-left finder pattern center\n * @return estimated module size\n */\n Detector.prototype.calculateModuleSize = function (topLeft, topRight, bottomLeft) {\n // Take the average\n return (this.calculateModuleSizeOneWay(topLeft, topRight) +\n this.calculateModuleSizeOneWay(topLeft, bottomLeft)) / 2.0;\n };\n /**\n *Estimates module size based on two finder patterns -- it uses\n * {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the\n * width of each, measuring along the axis between their centers.
\n */\n Detector.prototype.calculateModuleSizeOneWay = function (pattern, otherPattern) {\n var moduleSizeEst1 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()), \n /*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()));\n var moduleSizeEst2 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()), \n /*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()));\n if (isNaN(moduleSizeEst1)) {\n return moduleSizeEst2 / 7.0;\n }\n if (isNaN(moduleSizeEst2)) {\n return moduleSizeEst1 / 7.0;\n }\n // Average them, and divide by 7 since we've counted the width of 3 black modules,\n // and 1 white and 1 black module on either side. Ergo, divide sum by 14.\n return (moduleSizeEst1 + moduleSizeEst2) / 14.0;\n };\n /**\n * See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of\n * a finder pattern by looking for a black-white-black run from the center in the direction\n * of another point (another finder pattern center), and in the opposite direction too.\n */\n Detector.prototype.sizeOfBlackWhiteBlackRunBothWays = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n var result = this.sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY);\n // Now count other way -- don't run off image though of course\n var scale = 1.0;\n var otherToX = fromX - (toX - fromX);\n if (otherToX < 0) {\n scale = fromX / /*(float) */ (fromX - otherToX);\n otherToX = 0;\n }\n else if (otherToX >= this.image.getWidth()) {\n scale = (this.image.getWidth() - 1 - fromX) / /*(float) */ (otherToX - fromX);\n otherToX = this.image.getWidth() - 1;\n }\n var otherToY = /*(int) */ Math.floor(fromY - (toY - fromY) * scale);\n scale = 1.0;\n if (otherToY < 0) {\n scale = fromY / /*(float) */ (fromY - otherToY);\n otherToY = 0;\n }\n else if (otherToY >= this.image.getHeight()) {\n scale = (this.image.getHeight() - 1 - fromY) / /*(float) */ (otherToY - fromY);\n otherToY = this.image.getHeight() - 1;\n }\n otherToX = /*(int) */ Math.floor(fromX + (otherToX - fromX) * scale);\n result += this.sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);\n // Middle pixel is double-counted this way; subtract 1\n return result - 1.0;\n };\n /**\n *This method traces a line from a point in the image, in the direction towards another point.\n * It begins in a black region, and keeps going until it finds white, then black, then white again.\n * It reports the distance from the start to this point.
\n *\n *This is used when figuring out how wide a finder pattern is, when the finder pattern\n * may be skewed or rotated.
\n */\n Detector.prototype.sizeOfBlackWhiteBlackRun = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n // Mild variant of Bresenham's algorithm\n // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\n var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n var temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = -dx / 2;\n var xstep = fromX < toX ? 1 : -1;\n var ystep = fromY < toY ? 1 : -1;\n // In black pixels, looking for white, first or second time.\n var state = 0;\n // Loop up until x == toX, but not beyond\n var xLimit = toX + xstep;\n for (var x = fromX, y = fromY; x !== xLimit; x += xstep) {\n var realX = steep ? y : x;\n var realY = steep ? x : y;\n // Does current pixel mean we have moved white to black or vice versa?\n // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n // color, advance to next state or end if we are in state 2 already\n if ((state === 1) === this.image.get(realX, realY)) {\n if (state === 2) {\n return MathUtils_1.default.distance(x, y, fromX, fromY);\n }\n state++;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n // Found black-white-black; give the benefit of the doubt that the next pixel outside the image\n // is \"white\" so this last point at (toX+xStep,toY) is the right ending. This is really a\n // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.\n if (state === 2) {\n return MathUtils_1.default.distance(toX + xstep, toY, fromX, fromY);\n }\n // else we didn't find even black-white-black; no estimate is really possible\n return NaN;\n };\n /**\n *Attempts to locate an alignment pattern in a limited region of the image, which is\n * guessed to contain it. This method uses {@link AlignmentPattern}.
\n *\n * @param overallEstModuleSize estimated module size so far\n * @param estAlignmentX x coordinate of center of area probably containing alignment pattern\n * @param estAlignmentY y coordinate of above\n * @param allowanceFactor number of pixels in all directions to search from the center\n * @return {@link AlignmentPattern} if found, or null otherwise\n * @throws NotFoundException if an unexpected error occurs during detection\n */\n Detector.prototype.findAlignmentInRegion = function (overallEstModuleSize /*float*/, estAlignmentX /*int*/, estAlignmentY /*int*/, allowanceFactor /*float*/) {\n // Look for an alignment pattern (3 modules in size) around where it\n // should be\n var allowance = /*(int) */ Math.floor(allowanceFactor * overallEstModuleSize);\n var alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance);\n var alignmentAreaRightX = Math.min(this.image.getWidth() - 1, estAlignmentX + allowance);\n if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) {\n throw new NotFoundException_1.default('Alignment top exceeds estimated module size.');\n }\n var alignmentAreaTopY = Math.max(0, estAlignmentY - allowance);\n var alignmentAreaBottomY = Math.min(this.image.getHeight() - 1, estAlignmentY + allowance);\n if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) {\n throw new NotFoundException_1.default('Alignment bottom exceeds estimated module size.');\n }\n var alignmentFinder = new AlignmentPatternFinder_1.default(this.image, alignmentAreaLeftX, alignmentAreaTopY, alignmentAreaRightX - alignmentAreaLeftX, alignmentAreaBottomY - alignmentAreaTopY, overallEstModuleSize, this.resultPointCallback);\n return alignmentFinder.find();\n };\n return Detector;\n}());\nexports.default = Detector;\n//# sourceMappingURL=Detector.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\nvar System_1 = require(\"./util/System\");\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\nvar InvertedLuminanceSource_1 = require(\"./InvertedLuminanceSource\");\nvar IllegalArgumentException_1 = require(\"./IllegalArgumentException\");\n/**\n * This object extends LuminanceSource around an array of YUV data returned from the camera driver,\n * with the option to crop to a rectangle within the full data. This can be used to exclude\n * superfluous pixels around the perimeter and speed up decoding.\n *\n * It works for any pixel format where the Y channel is planar and appears first, including\n * YCbCr_420_SP and YCbCr_422_SP.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar PlanarYUVLuminanceSource = /** @class */ (function (_super) {\n __extends(PlanarYUVLuminanceSource, _super);\n function PlanarYUVLuminanceSource(yuvData, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/, width /*int*/, height /*int*/, reverseHorizontal) {\n var _this = _super.call(this, width, height) || this;\n _this.yuvData = yuvData;\n _this.dataWidth = dataWidth;\n _this.dataHeight = dataHeight;\n _this.left = left;\n _this.top = top;\n if (left + width > dataWidth || top + height > dataHeight) {\n throw new IllegalArgumentException_1.default('Crop rectangle does not fit within image data.');\n }\n if (reverseHorizontal) {\n _this.reverseHorizontal(width, height);\n }\n return _this;\n }\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException_1.default('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n if (row === null || row === undefined || row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n var offset = (y + this.top) * this.dataWidth + this.left;\n System_1.default.arraycopy(this.yuvData, offset, row, 0, width);\n return row;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getMatrix = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n // If the caller asks for the entire underlying image, save the copy and give them the\n // original data. The docs specifically warn that result.length must be ignored.\n if (width === this.dataWidth && height === this.dataHeight) {\n return this.yuvData;\n }\n var area = width * height;\n var matrix = new Uint8ClampedArray(area);\n var inputOffset = this.top * this.dataWidth + this.left;\n // If the width matches the full width of the underlying data, perform a single copy.\n if (width === this.dataWidth) {\n System_1.default.arraycopy(this.yuvData, inputOffset, matrix, 0, area);\n return matrix;\n }\n // Otherwise copy one cropped row at a time.\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n System_1.default.arraycopy(this.yuvData, inputOffset, matrix, outputOffset, width);\n inputOffset += this.dataWidth;\n }\n return matrix;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new PlanarYUVLuminanceSource(this.yuvData, this.dataWidth, this.dataHeight, this.left + left, this.top + top, width, height, false);\n };\n PlanarYUVLuminanceSource.prototype.renderThumbnail = function () {\n var width = this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var height = this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var pixels = new Int32Array(width * height);\n var yuv = this.yuvData;\n var inputOffset = this.top * this.dataWidth + this.left;\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n for (var x = 0; x < width; x++) {\n var grey = yuv[inputOffset + x * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR] & 0xff;\n pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);\n }\n inputOffset += this.dataWidth * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n }\n return pixels;\n };\n /**\n * @return width of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailWidth = function () {\n return this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n /**\n * @return height of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailHeight = function () {\n return this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n PlanarYUVLuminanceSource.prototype.reverseHorizontal = function (width /*int*/, height /*int*/) {\n var yuvData = this.yuvData;\n for (var y = 0, rowStart = this.top * this.dataWidth + this.left; y < height; y++, rowStart += this.dataWidth) {\n var middle = rowStart + width / 2;\n for (var x1 = rowStart, x2 = rowStart + width - 1; x1 < middle; x1++, x2--) {\n var temp = yuvData[x1];\n yuvData[x1] = yuvData[x2];\n yuvData[x2] = temp;\n }\n }\n };\n PlanarYUVLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource_1.default(this);\n };\n PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR = 2;\n return PlanarYUVLuminanceSource;\n}(LuminanceSource_1.default));\nexports.default = PlanarYUVLuminanceSource;\n//# sourceMappingURL=PlanarYUVLuminanceSource.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * This class hierarchy provides a set of methods to convert luminance data to 1 bit data.\n * It allows the algorithm to vary polymorphically, for example allowing a very expensive\n * thresholding technique for servers and a fast one for mobile. It also permits the implementation\n * to vary, e.g. a JNI version for Android and a Java fallback version for other platforms.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar Binarizer = /** @class */ (function () {\n function Binarizer(source) {\n this.source = source;\n }\n Binarizer.prototype.getLuminanceSource = function () {\n return this.source;\n };\n Binarizer.prototype.getWidth = function () {\n return this.source.getWidth();\n };\n Binarizer.prototype.getHeight = function () {\n return this.source.getHeight();\n };\n return Binarizer;\n}());\nexports.default = Binarizer;\n//# sourceMappingURL=Binarizer.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar EncodeHintType_1 = require(\"../EncodeHintType\");\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\nvar ErrorCorrectionLevel_1 = require(\"./decoder/ErrorCorrectionLevel\");\nvar Encoder_1 = require(\"./encoder/Encoder\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\nvar IllegalStateException_1 = require(\"../IllegalStateException\");\n/*import java.util.Map;*/\n/**\n * This object renders a QR Code as a BitMatrix 2D array of greyscale values.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar QRCodeWriter = /** @class */ (function () {\n function QRCodeWriter() {\n }\n /*@Override*/\n // public encode(contents: string, format: BarcodeFormat, width: number /*int*/, height: number /*int*/): BitMatrix\n // /*throws WriterException */ {\n // return encode(contents, format, width, height, null)\n // }\n /*@Override*/\n QRCodeWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n if (contents.length === 0) {\n throw new IllegalArgumentException_1.default('Found empty contents');\n }\n if (format !== BarcodeFormat_1.default.QR_CODE) {\n throw new IllegalArgumentException_1.default('Can only encode QR_CODE, but got ' + format);\n }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException_1.default(\"Requested dimensions are too small: \" + width + \"x\" + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel_1.default.L;\n var quietZone = QRCodeWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType_1.default.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel_1.default.fromString(hints.get(EncodeHintType_1.default.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType_1.default.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType_1.default.MARGIN).toString(), 10);\n }\n }\n var code = Encoder_1.default.encode(contents, errorCorrectionLevel, hints);\n return QRCodeWriter.renderResult(code, width, height, quietZone);\n };\n // Note that the input matrix uses 0 == white, 1 == black, while the output matrix uses\n // 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n QRCodeWriter.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException_1.default();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var output = new BitMatrix_1.default(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n output.setRegion(outputX, outputY, multiple, multiple);\n }\n }\n }\n return output;\n };\n QRCodeWriter.QUIET_ZONE_SIZE = 4;\n return QRCodeWriter;\n}());\nexports.default = QRCodeWriter;\n//# sourceMappingURL=QRCodeWriter.js.map","function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar CustomError = function (_super) {\n __extends(CustomError, _super);\n\n function CustomError(message, options) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message, options) || this;\n\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n\n return CustomError;\n}(Error);\n\nvar __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nfunction customErrorFactory(fn, parent) {\n if (parent === void 0) {\n parent = Error;\n }\n\n function CustomError() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!(this instanceof CustomError)) return new (CustomError.bind.apply(CustomError, __spreadArray([void 0], args, false)))();\n parent.apply(this, args);\n Object.defineProperty(this, 'name', {\n value: fn.name || parent.name,\n enumerable: false,\n configurable: true\n });\n fn.apply(this, args);\n fixStack(this, CustomError);\n }\n\n return Object.defineProperties(CustomError, {\n prototype: {\n value: Object.create(parent.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n configurable: true\n }\n })\n }\n });\n}\n\nexport { CustomError, customErrorFactory };\n//# sourceMappingURL=custom-error.mjs.map\n","module.exports = __webpack_public_path__ + \"img/Btn_Back.svg\";","module.exports = __webpack_public_path__ + \"img/close-icon.svg\";","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\n/*import java.util.EnumMap;*/\n/*import java.util.Map;*/\nvar ResultPoint_1 = require(\"./ResultPoint\");\nvar System_1 = require(\"./util/System\");\n/**\n *Encapsulates the result of decoding a barcode within an image.
\n *\n * @author Sean Owen\n */\nvar Result = /** @class */ (function () {\n // public constructor(private text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format) {\n // this(text, rawBytes, resultPoints, format, System.currentTimeMillis())\n // }\n // public constructor(text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format,\n // long timestamp) {\n // this(text, rawBytes, rawBytes == null ? 0 : 8 * rawBytes.length,\n // resultPoints, format, timestamp)\n // }\n function Result(text, rawBytes, numBits /*int*/, resultPoints, format, timestamp /*long*/) {\n this.text = text;\n this.rawBytes = rawBytes;\n this.numBits = numBits;\n this.resultPoints = resultPoints;\n this.format = format;\n this.timestamp = timestamp;\n this.text = text;\n this.rawBytes = rawBytes;\n if (undefined === numBits || null === numBits) {\n this.numBits = (rawBytes === null || rawBytes === undefined) ? 0 : 8 * rawBytes.length;\n }\n else {\n this.numBits = numBits;\n }\n this.resultPoints = resultPoints;\n this.format = format;\n this.resultMetadata = null;\n if (undefined === timestamp || null === timestamp) {\n this.timestamp = System_1.default.currentTimeMillis();\n }\n else {\n this.timestamp = timestamp;\n }\n }\n /**\n * @return raw text encoded by the barcode\n */\n Result.prototype.getText = function () {\n return this.text;\n };\n /**\n * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\n */\n Result.prototype.getRawBytes = function () {\n return this.rawBytes;\n };\n /**\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n * @since 3.3.0\n */\n Result.prototype.getNumBits = function () {\n return this.numBits;\n };\n /**\n * @return points related to the barcode in the image. These are typically points\n * identifying finder patterns or the corners of the barcode. The exact meaning is\n * specific to the type of barcode that was decoded.\n */\n Result.prototype.getResultPoints = function () {\n return this.resultPoints;\n };\n /**\n * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\n */\n Result.prototype.getBarcodeFormat = function () {\n return this.format;\n };\n /**\n * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be\n * {@code null}. This contains optional metadata about what was detected about the barcode,\n * like orientation.\n */\n Result.prototype.getResultMetadata = function () {\n return this.resultMetadata;\n };\n Result.prototype.putMetadata = function (type, value) {\n if (this.resultMetadata === null) {\n this.resultMetadata = new Map();\n }\n this.resultMetadata.set(type, value);\n };\n Result.prototype.putAllMetadata = function (metadata) {\n if (metadata !== null) {\n if (this.resultMetadata === null) {\n this.resultMetadata = metadata;\n }\n else {\n this.resultMetadata = new Map(metadata);\n }\n }\n };\n Result.prototype.addResultPoints = function (newPoints) {\n var oldPoints = this.resultPoints;\n if (oldPoints === null) {\n this.resultPoints = newPoints;\n }\n else if (newPoints !== null && newPoints.length > 0) {\n var allPoints = new ResultPoint_1.default[oldPoints.length + newPoints.length];\n System_1.default.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\n System_1.default.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\n this.resultPoints = allPoints;\n }\n };\n Result.prototype.getTimestamp = function () {\n return this.timestamp;\n };\n /*@Override*/\n Result.prototype.toString = function () {\n return this.text;\n };\n return Result;\n}());\nexports.default = Result;\n//# sourceMappingURL=Result.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Float = /** @class */ (function () {\n function Float() {\n }\n Float.floatToIntBits = function (f) {\n return f;\n };\n return Float;\n}());\nexports.default = Float;\n//# sourceMappingURL=Float.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.reedsolomon {*/\nvar GenericGF_1 = require(\"./GenericGF\");\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\nvar ReedSolomonException_1 = require(\"../../ReedSolomonException\");\nvar IllegalStateException_1 = require(\"../../IllegalStateException\");\n/**\n *Implements Reed-Solomon decoding, as the name implies.
\n *\n *The algorithm will not be explained here, but the following references were helpful\n * in creating this implementation:
\n *\n *Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.
\n *\n * @author Sean Owen\n * @author William Rucklidge\n * @author sanfordsquires\n */\nvar ReedSolomonDecoder = /** @class */ (function () {\n function ReedSolomonDecoder(field) {\n this.field = field;\n }\n /**\n *Decodes given set of received codewords, which include both data and error-correction\n * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place,\n * in the input.
\n *\n * @param received data and error-correction codewords\n * @param twoS number of error-correction codewords available\n * @throws ReedSolomonException if decoding fails for any reason\n */\n ReedSolomonDecoder.prototype.decode = function (received, twoS /*int*/) {\n var field = this.field;\n var poly = new GenericGFPoly_1.default(field, received);\n var syndromeCoefficients = new Int32Array(twoS);\n var noError = true;\n for (var i = 0; i < twoS; i++) {\n var evalResult = poly.evaluateAt(field.exp(i + field.getGeneratorBase()));\n syndromeCoefficients[syndromeCoefficients.length - 1 - i] = evalResult;\n if (evalResult !== 0) {\n noError = false;\n }\n }\n if (noError) {\n return;\n }\n var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);\n var sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\n var sigma = sigmaOmega[0];\n var omega = sigmaOmega[1];\n var errorLocations = this.findErrorLocations(sigma);\n var errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\n for (var i = 0; i < errorLocations.length; i++) {\n var position = received.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n throw new ReedSolomonException_1.default('Bad error location');\n }\n received[position] = GenericGF_1.default.addOrSubtract(received[position], errorMagnitudes[i]);\n }\n };\n ReedSolomonDecoder.prototype.runEuclideanAlgorithm = function (a, b, R /*int*/) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n var temp = a;\n a = b;\n b = temp;\n }\n var field = this.field;\n var rLast = a;\n var r = b;\n var tLast = field.getZero();\n var t = field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= (R / 2 | 0)) {\n var rLastLast = rLast;\n var tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Oops, Euclidean algorithm already terminated?\n throw new ReedSolomonException_1.default('r_{i-1} was zero');\n }\n r = rLastLast;\n var q = field.getZero();\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n var dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n var degreeDiff = r.getDegree() - rLast.getDegree();\n var scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiply(tLast).addOrSubtract(tLastLast);\n if (r.getDegree() >= rLast.getDegree()) {\n throw new IllegalStateException_1.default('Division algorithm failed to reduce polynomial?');\n }\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw new ReedSolomonException_1.default('sigmaTilde(0) was zero');\n }\n var inverse = field.inverse(sigmaTildeAtZero);\n var sigma = t.multiplyScalar(inverse);\n var omega = r.multiplyScalar(inverse);\n return [sigma, omega];\n };\n ReedSolomonDecoder.prototype.findErrorLocations = function (errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.getDegree();\n if (numErrors === 1) { // shortcut\n return Int32Array.from([errorLocator.getCoefficient(1)]);\n }\n var result = new Int32Array(numErrors);\n var e = 0;\n var field = this.field;\n for (var i = 1; i < field.getSize() && e < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[e] = field.inverse(i);\n e++;\n }\n }\n if (e !== numErrors) {\n throw new ReedSolomonException_1.default('Error locator degree does not match number of roots');\n }\n return result;\n };\n ReedSolomonDecoder.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Int32Array(s);\n var field = this.field;\n for (var i = 0; i < s; i++) {\n var xiInverse = field.inverse(errorLocations[i]);\n var denominator = 1;\n for (var j = 0; j < s; j++) {\n if (i !== j) {\n // denominator = field.multiply(denominator,\n // GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)))\n // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.\n // Below is a funny-looking workaround from Steven Parkes\n var term = field.multiply(errorLocations[j], xiInverse);\n var termPlus1 = (term & 0x1) === 0 ? term | 1 : term & ~1;\n denominator = field.multiply(denominator, termPlus1);\n }\n }\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n if (field.getGeneratorBase() !== 0) {\n result[i] = field.multiply(result[i], xiInverse);\n }\n }\n return result;\n };\n return ReedSolomonDecoder;\n}());\nexports.default = ReedSolomonDecoder;\n//# sourceMappingURL=ReedSolomonDecoder.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\n/**\n *Encapsulates a finder pattern, which are the three square patterns found in\n * the corners of QR Codes. It also encapsulates a count of similar finder patterns,\n * as a convenience to the finder's bookkeeping.
\n *\n * @author Sean Owen\n */\nvar FinderPattern = /** @class */ (function (_super) {\n __extends(FinderPattern, _super);\n // FinderPattern(posX: number/*float*/, posY: number/*float*/, estimatedModuleSize: number/*float*/) {\n // this(posX, posY, estimatedModuleSize, 1)\n // }\n function FinderPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/, count /*int*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n _this.count = count;\n if (undefined === count) {\n _this.count = 1;\n }\n return _this;\n }\n FinderPattern.prototype.getEstimatedModuleSize = function () {\n return this.estimatedModuleSize;\n };\n FinderPattern.prototype.getCount = function () {\n return this.count;\n };\n /*\n void incrementCount() {\n this.count++\n }\n */\n /**\n *Determines if this finder pattern \"about equals\" a finder pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.
\n */\n FinderPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n };\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing a weighted average\n * based on count.\n */\n FinderPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedCount = this.count + 1;\n var combinedX = (this.count * this.getX() + j) / combinedCount;\n var combinedY = (this.count * this.getY() + i) / combinedCount;\n var combinedModuleSize = (this.count * this.estimatedModuleSize + newModuleSize) / combinedCount;\n return new FinderPattern(combinedX, combinedY, combinedModuleSize, combinedCount);\n };\n return FinderPattern;\n}(ResultPoint_1.default));\nexports.default = FinderPattern;\n//# sourceMappingURL=FinderPattern.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\nvar System_1 = require(\"../../util/System\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n *Implements Reed-Solomon encoding, as the name implies.
\n *\n * @author Sean Owen\n * @author William Rucklidge\n */\nvar ReedSolomonEncoder = /** @class */ (function () {\n /**\n * A reed solomon error-correcting encoding constructor is created by\n * passing as Galois Field with of size equal to the number of code\n * words (symbols) in the alphabet (the number of values in each\n * element of arrays that are encoded/decoded).\n * @param field A galois field with a number of elements equal to the size\n * of the alphabet of symbols to encode.\n */\n function ReedSolomonEncoder(field) {\n this.field = field;\n this.cachedGenerators = [];\n this.cachedGenerators.push(new GenericGFPoly_1.default(field, Int32Array.from([1])));\n }\n ReedSolomonEncoder.prototype.buildGenerator = function (degree /*int*/) {\n var cachedGenerators = this.cachedGenerators;\n if (degree >= cachedGenerators.length) {\n var lastGenerator = cachedGenerators[cachedGenerators.length - 1];\n var field = this.field;\n for (var d = cachedGenerators.length; d <= degree; d++) {\n var nextGenerator = lastGenerator.multiply(new GenericGFPoly_1.default(field, Int32Array.from([1, field.exp(d - 1 + field.getGeneratorBase())])));\n cachedGenerators.push(nextGenerator);\n lastGenerator = nextGenerator;\n }\n }\n return cachedGenerators[degree];\n };\n /**\n *Encode a sequence of code words (symbols) using Reed-Solomon to allow decoders\n * to detect and correct errors that may have been introduced when the resulting\n * data is stored or transmitted.
\n *\n * @param toEncode array used for both and output. Caller initializes the array with\n * the code words (symbols) to be encoded followed by empty elements allocated to make\n * space for error-correction code words in the encoded output. The array contains\n * the encdoded output when encode returns. Code words are encoded as numbers from\n * 0 to n-1, where n is the number of possible code words (symbols), as determined\n * by the size of the Galois Field passed in the constructor of this object.\n * @param ecBytes the number of elements reserved in the array (first parameter)\n * to store error-correction code words. Thus, the number of code words (symbols)\n * to encode in the first parameter is thus toEncode.length - ecBytes.\n * Note, the use of \"bytes\" in the name of this parameter is misleading, as there may\n * be more or fewer than 256 symbols being encoded, as determined by the number of\n * elements in the Galois Field passed as a constructor to this object.\n * @throws IllegalArgumentException thrown in response to validation errros.\n */\n ReedSolomonEncoder.prototype.encode = function (toEncode, ecBytes /*int*/) {\n if (ecBytes === 0) {\n throw new IllegalArgumentException_1.default('No error correction bytes');\n }\n var dataBytes = toEncode.length - ecBytes;\n if (dataBytes <= 0) {\n throw new IllegalArgumentException_1.default('No data bytes provided');\n }\n var generator = this.buildGenerator(ecBytes);\n var infoCoefficients = new Int32Array(dataBytes);\n System_1.default.arraycopy(toEncode, 0, infoCoefficients, 0, dataBytes);\n var info = new GenericGFPoly_1.default(this.field, infoCoefficients);\n info = info.multiplyByMonomial(ecBytes, 1);\n var remainder = info.divide(generator)[1];\n var coefficients = remainder.getCoefficients();\n var numZeroCoefficients = ecBytes - coefficients.length;\n for (var i = 0; i < numZeroCoefficients; i++) {\n toEncode[dataBytes + i] = 0;\n }\n System_1.default.arraycopy(coefficients, 0, toEncode, dataBytes + numZeroCoefficients, coefficients.length);\n };\n return ReedSolomonEncoder;\n}());\nexports.default = ReedSolomonEncoder;\n//# sourceMappingURL=ReedSolomonEncoder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n *Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the QR code version's format.
\n */\nvar ECB = /** @class */ (function () {\n function ECB(count /*int*/, dataCodewords /*int*/) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n ECB.prototype.getCount = function () {\n return this.count;\n };\n ECB.prototype.getDataCodewords = function () {\n return this.dataCodewords;\n };\n return ECB;\n}());\nexports.default = ECB;\n//# sourceMappingURL=ECB.js.map","const OEM = require('./OEM');\n\nmodule.exports = {\n defaultOEM: OEM.DEFAULT,\n};\n","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.decoder {*/\nvar BitMatrix_1 = require(\"../../common/BitMatrix\");\nvar FormatInformation_1 = require(\"./FormatInformation\");\nvar ECBlocks_1 = require(\"./ECBlocks\");\nvar ECB_1 = require(\"./ECB\");\nvar FormatException_1 = require(\"../../FormatException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n * See ISO 18004:2006 Annex D\n *\n * @author Sean Owen\n */\nvar Version = /** @class */ (function () {\n function Version(versionNumber /*int*/, alignmentPatternCenters) {\n var ecBlocks = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n ecBlocks[_i - 2] = arguments[_i];\n }\n this.versionNumber = versionNumber;\n this.alignmentPatternCenters = alignmentPatternCenters;\n this.ecBlocks = ecBlocks;\n var total = 0;\n var ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\n var ecbArray = ecBlocks[0].getECBlocks();\n for (var _a = 0, ecbArray_1 = ecbArray; _a < ecbArray_1.length; _a++) {\n var ecBlock = ecbArray_1[_a];\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n this.totalCodewords = total;\n }\n Version.prototype.getVersionNumber = function () {\n return this.versionNumber;\n };\n Version.prototype.getAlignmentPatternCenters = function () {\n return this.alignmentPatternCenters;\n };\n Version.prototype.getTotalCodewords = function () {\n return this.totalCodewords;\n };\n Version.prototype.getDimensionForVersion = function () {\n return 17 + 4 * this.versionNumber;\n };\n Version.prototype.getECBlocksForLevel = function (ecLevel) {\n return this.ecBlocks[ecLevel.getValue()];\n // TYPESCRIPTPORT: original was using ordinal, and using the order of levels as defined in ErrorCorrectionLevel enum (LMQH)\n // I will use the direct value from ErrorCorrectionLevelValues enum which in typescript goes to a number\n };\n /**\n *Deduces version information purely from QR Code dimensions.
\n *\n * @param dimension dimension in modules\n * @return Version for a QR Code of that dimension\n * @throws FormatException if dimension is not 1 mod 4\n */\n Version.getProvisionalVersionForDimension = function (dimension /*int*/) {\n if (dimension % 4 !== 1) {\n throw new FormatException_1.default();\n }\n try {\n return this.getVersionForNumber((dimension - 17) / 4);\n }\n catch (ignored /*: IllegalArgumentException*/) {\n throw new FormatException_1.default();\n }\n };\n Version.getVersionForNumber = function (versionNumber /*int*/) {\n if (versionNumber < 1 || versionNumber > 40) {\n throw new IllegalArgumentException_1.default();\n }\n return Version.VERSIONS[versionNumber - 1];\n };\n Version.decodeVersionInformation = function (versionBits /*int*/) {\n var bestDifference = Number.MAX_SAFE_INTEGER;\n var bestVersion = 0;\n for (var i = 0; i < Version.VERSION_DECODE_INFO.length; i++) {\n var targetVersion = Version.VERSION_DECODE_INFO[i];\n // Do the version info bits match exactly? done.\n if (targetVersion === versionBits) {\n return Version.getVersionForNumber(i + 7);\n }\n // Otherwise see if this is the closest to a real version info bit string\n // we have seen so far\n var bitsDifference = FormatInformation_1.default.numBitsDiffering(versionBits, targetVersion);\n if (bitsDifference < bestDifference) {\n bestVersion = i + 7;\n bestDifference = bitsDifference;\n }\n }\n // We can tolerate up to 3 bits of error since no two version info codewords will\n // differ in less than 8 bits.\n if (bestDifference <= 3) {\n return Version.getVersionForNumber(bestVersion);\n }\n // If we didn't find a close enough match, fail\n return null;\n };\n /**\n * See ISO 18004:2006 Annex E\n */\n Version.prototype.buildFunctionPattern = function () {\n var dimension = this.getDimensionForVersion();\n var bitMatrix = new BitMatrix_1.default(dimension);\n // Top left finder pattern + separator + format\n bitMatrix.setRegion(0, 0, 9, 9);\n // Top right finder pattern + separator + format\n bitMatrix.setRegion(dimension - 8, 0, 8, 9);\n // Bottom left finder pattern + separator + format\n bitMatrix.setRegion(0, dimension - 8, 9, 8);\n // Alignment patterns\n var max = this.alignmentPatternCenters.length;\n for (var x = 0; x < max; x++) {\n var i = this.alignmentPatternCenters[x] - 2;\n for (var y = 0; y < max; y++) {\n if ((x === 0 && (y === 0 || y === max - 1)) || (x === max - 1 && y === 0)) {\n // No alignment patterns near the three finder patterns\n continue;\n }\n bitMatrix.setRegion(this.alignmentPatternCenters[y] - 2, i, 5, 5);\n }\n }\n // Vertical timing pattern\n bitMatrix.setRegion(6, 9, 1, dimension - 17);\n // Horizontal timing pattern\n bitMatrix.setRegion(9, 6, dimension - 17, 1);\n if (this.versionNumber > 6) {\n // Version info, top right\n bitMatrix.setRegion(dimension - 11, 0, 3, 6);\n // Version info, bottom left\n bitMatrix.setRegion(0, dimension - 11, 6, 3);\n }\n return bitMatrix;\n };\n /*@Override*/\n Version.prototype.toString = function () {\n return '' + this.versionNumber;\n };\n /**\n * See ISO 18004:2006 Annex D.\n * Element i represents the raw version bits that specify version i + 7\n */\n Version.VERSION_DECODE_INFO = Int32Array.from([\n 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6,\n 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78,\n 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683,\n 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,\n 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250,\n 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B,\n 0x2542E, 0x26A64, 0x27541, 0x28C69\n ]);\n /**\n * See ISO 18004:2006 6.5.1 Table 9\n */\n Version.VERSIONS = [\n new Version(1, new Int32Array(0), new ECBlocks_1.default(7, new ECB_1.default(1, 19)), new ECBlocks_1.default(10, new ECB_1.default(1, 16)), new ECBlocks_1.default(13, new ECB_1.default(1, 13)), new ECBlocks_1.default(17, new ECB_1.default(1, 9))),\n new Version(2, Int32Array.from([6, 18]), new ECBlocks_1.default(10, new ECB_1.default(1, 34)), new ECBlocks_1.default(16, new ECB_1.default(1, 28)), new ECBlocks_1.default(22, new ECB_1.default(1, 22)), new ECBlocks_1.default(28, new ECB_1.default(1, 16))),\n new Version(3, Int32Array.from([6, 22]), new ECBlocks_1.default(15, new ECB_1.default(1, 55)), new ECBlocks_1.default(26, new ECB_1.default(1, 44)), new ECBlocks_1.default(18, new ECB_1.default(2, 17)), new ECBlocks_1.default(22, new ECB_1.default(2, 13))),\n new Version(4, Int32Array.from([6, 26]), new ECBlocks_1.default(20, new ECB_1.default(1, 80)), new ECBlocks_1.default(18, new ECB_1.default(2, 32)), new ECBlocks_1.default(26, new ECB_1.default(2, 24)), new ECBlocks_1.default(16, new ECB_1.default(4, 9))),\n new Version(5, Int32Array.from([6, 30]), new ECBlocks_1.default(26, new ECB_1.default(1, 108)), new ECBlocks_1.default(24, new ECB_1.default(2, 43)), new ECBlocks_1.default(18, new ECB_1.default(2, 15), new ECB_1.default(2, 16)), new ECBlocks_1.default(22, new ECB_1.default(2, 11), new ECB_1.default(2, 12))),\n new Version(6, Int32Array.from([6, 34]), new ECBlocks_1.default(18, new ECB_1.default(2, 68)), new ECBlocks_1.default(16, new ECB_1.default(4, 27)), new ECBlocks_1.default(24, new ECB_1.default(4, 19)), new ECBlocks_1.default(28, new ECB_1.default(4, 15))),\n new Version(7, Int32Array.from([6, 22, 38]), new ECBlocks_1.default(20, new ECB_1.default(2, 78)), new ECBlocks_1.default(18, new ECB_1.default(4, 31)), new ECBlocks_1.default(18, new ECB_1.default(2, 14), new ECB_1.default(4, 15)), new ECBlocks_1.default(26, new ECB_1.default(4, 13), new ECB_1.default(1, 14))),\n new Version(8, Int32Array.from([6, 24, 42]), new ECBlocks_1.default(24, new ECB_1.default(2, 97)), new ECBlocks_1.default(22, new ECB_1.default(2, 38), new ECB_1.default(2, 39)), new ECBlocks_1.default(22, new ECB_1.default(4, 18), new ECB_1.default(2, 19)), new ECBlocks_1.default(26, new ECB_1.default(4, 14), new ECB_1.default(2, 15))),\n new Version(9, Int32Array.from([6, 26, 46]), new ECBlocks_1.default(30, new ECB_1.default(2, 116)), new ECBlocks_1.default(22, new ECB_1.default(3, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(20, new ECB_1.default(4, 16), new ECB_1.default(4, 17)), new ECBlocks_1.default(24, new ECB_1.default(4, 12), new ECB_1.default(4, 13))),\n new Version(10, Int32Array.from([6, 28, 50]), new ECBlocks_1.default(18, new ECB_1.default(2, 68), new ECB_1.default(2, 69)), new ECBlocks_1.default(26, new ECB_1.default(4, 43), new ECB_1.default(1, 44)), new ECBlocks_1.default(24, new ECB_1.default(6, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(28, new ECB_1.default(6, 15), new ECB_1.default(2, 16))),\n new Version(11, Int32Array.from([6, 30, 54]), new ECBlocks_1.default(20, new ECB_1.default(4, 81)), new ECBlocks_1.default(30, new ECB_1.default(1, 50), new ECB_1.default(4, 51)), new ECBlocks_1.default(28, new ECB_1.default(4, 22), new ECB_1.default(4, 23)), new ECBlocks_1.default(24, new ECB_1.default(3, 12), new ECB_1.default(8, 13))),\n new Version(12, Int32Array.from([6, 32, 58]), new ECBlocks_1.default(24, new ECB_1.default(2, 92), new ECB_1.default(2, 93)), new ECBlocks_1.default(22, new ECB_1.default(6, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(26, new ECB_1.default(4, 20), new ECB_1.default(6, 21)), new ECBlocks_1.default(28, new ECB_1.default(7, 14), new ECB_1.default(4, 15))),\n new Version(13, Int32Array.from([6, 34, 62]), new ECBlocks_1.default(26, new ECB_1.default(4, 107)), new ECBlocks_1.default(22, new ECB_1.default(8, 37), new ECB_1.default(1, 38)), new ECBlocks_1.default(24, new ECB_1.default(8, 20), new ECB_1.default(4, 21)), new ECBlocks_1.default(22, new ECB_1.default(12, 11), new ECB_1.default(4, 12))),\n new Version(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks_1.default(30, new ECB_1.default(3, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(24, new ECB_1.default(4, 40), new ECB_1.default(5, 41)), new ECBlocks_1.default(20, new ECB_1.default(11, 16), new ECB_1.default(5, 17)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(5, 13))),\n new Version(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks_1.default(22, new ECB_1.default(5, 87), new ECB_1.default(1, 88)), new ECBlocks_1.default(24, new ECB_1.default(5, 41), new ECB_1.default(5, 42)), new ECBlocks_1.default(30, new ECB_1.default(5, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(7, 13))),\n new Version(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks_1.default(24, new ECB_1.default(5, 98), new ECB_1.default(1, 99)), new ECBlocks_1.default(28, new ECB_1.default(7, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(24, new ECB_1.default(15, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(30, new ECB_1.default(3, 15), new ECB_1.default(13, 16))),\n new Version(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks_1.default(28, new ECB_1.default(1, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(1, 47)), new ECBlocks_1.default(28, new ECB_1.default(1, 22), new ECB_1.default(15, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(17, 15))),\n new Version(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks_1.default(30, new ECB_1.default(5, 120), new ECB_1.default(1, 121)), new ECBlocks_1.default(26, new ECB_1.default(9, 43), new ECB_1.default(4, 44)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(1, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(19, 15))),\n new Version(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks_1.default(28, new ECB_1.default(3, 113), new ECB_1.default(4, 114)), new ECBlocks_1.default(26, new ECB_1.default(3, 44), new ECB_1.default(11, 45)), new ECBlocks_1.default(26, new ECB_1.default(17, 21), new ECB_1.default(4, 22)), new ECBlocks_1.default(26, new ECB_1.default(9, 13), new ECB_1.default(16, 14))),\n new Version(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks_1.default(28, new ECB_1.default(3, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(26, new ECB_1.default(3, 41), new ECB_1.default(13, 42)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(5, 25)), new ECBlocks_1.default(28, new ECB_1.default(15, 15), new ECB_1.default(10, 16))),\n new Version(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks_1.default(28, new ECB_1.default(4, 116), new ECB_1.default(4, 117)), new ECBlocks_1.default(26, new ECB_1.default(17, 42)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(19, 16), new ECB_1.default(6, 17))),\n new Version(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks_1.default(28, new ECB_1.default(2, 111), new ECB_1.default(7, 112)), new ECBlocks_1.default(28, new ECB_1.default(17, 46)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(24, new ECB_1.default(34, 13))),\n new Version(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks_1.default(30, new ECB_1.default(4, 121), new ECB_1.default(5, 122)), new ECBlocks_1.default(28, new ECB_1.default(4, 47), new ECB_1.default(14, 48)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(16, 15), new ECB_1.default(14, 16))),\n new Version(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks_1.default(30, new ECB_1.default(6, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(6, 45), new ECB_1.default(14, 46)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(30, new ECB_1.default(30, 16), new ECB_1.default(2, 17))),\n new Version(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks_1.default(26, new ECB_1.default(8, 106), new ECB_1.default(4, 107)), new ECBlocks_1.default(28, new ECB_1.default(8, 47), new ECB_1.default(13, 48)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(13, 16))),\n new Version(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks_1.default(28, new ECB_1.default(10, 114), new ECB_1.default(2, 115)), new ECBlocks_1.default(28, new ECB_1.default(19, 46), new ECB_1.default(4, 47)), new ECBlocks_1.default(28, new ECB_1.default(28, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(33, 16), new ECB_1.default(4, 17))),\n new Version(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks_1.default(30, new ECB_1.default(8, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(22, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(30, new ECB_1.default(8, 23), new ECB_1.default(26, 24)), new ECBlocks_1.default(30, new ECB_1.default(12, 15), new ECB_1.default(28, 16))),\n new Version(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks_1.default(30, new ECB_1.default(3, 117), new ECB_1.default(10, 118)), new ECBlocks_1.default(28, new ECB_1.default(3, 45), new ECB_1.default(23, 46)), new ECBlocks_1.default(30, new ECB_1.default(4, 24), new ECB_1.default(31, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(31, 16))),\n new Version(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks_1.default(30, new ECB_1.default(7, 116), new ECB_1.default(7, 117)), new ECBlocks_1.default(28, new ECB_1.default(21, 45), new ECB_1.default(7, 46)), new ECBlocks_1.default(30, new ECB_1.default(1, 23), new ECB_1.default(37, 24)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(26, 16))),\n new Version(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks_1.default(30, new ECB_1.default(5, 115), new ECB_1.default(10, 116)), new ECBlocks_1.default(28, new ECB_1.default(19, 47), new ECB_1.default(10, 48)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(25, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(25, 16))),\n new Version(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(3, 116)), new ECBlocks_1.default(28, new ECB_1.default(2, 46), new ECB_1.default(29, 47)), new ECBlocks_1.default(30, new ECB_1.default(42, 24), new ECB_1.default(1, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(28, 16))),\n new Version(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks_1.default(30, new ECB_1.default(17, 115)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(10, 24), new ECB_1.default(35, 25)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(35, 16))),\n new Version(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks_1.default(30, new ECB_1.default(17, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(21, 47)), new ECBlocks_1.default(30, new ECB_1.default(29, 24), new ECB_1.default(19, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(46, 16))),\n new Version(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(6, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(44, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(30, new ECB_1.default(59, 16), new ECB_1.default(1, 17))),\n new Version(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks_1.default(30, new ECB_1.default(12, 121), new ECB_1.default(7, 122)), new ECBlocks_1.default(28, new ECB_1.default(12, 47), new ECB_1.default(26, 48)), new ECBlocks_1.default(30, new ECB_1.default(39, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(41, 16))),\n new Version(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks_1.default(30, new ECB_1.default(6, 121), new ECB_1.default(14, 122)), new ECBlocks_1.default(28, new ECB_1.default(6, 47), new ECB_1.default(34, 48)), new ECBlocks_1.default(30, new ECB_1.default(46, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(2, 15), new ECB_1.default(64, 16))),\n new Version(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks_1.default(30, new ECB_1.default(17, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(29, 46), new ECB_1.default(14, 47)), new ECBlocks_1.default(30, new ECB_1.default(49, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(24, 15), new ECB_1.default(46, 16))),\n new Version(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks_1.default(30, new ECB_1.default(4, 122), new ECB_1.default(18, 123)), new ECBlocks_1.default(28, new ECB_1.default(13, 46), new ECB_1.default(32, 47)), new ECBlocks_1.default(30, new ECB_1.default(48, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(42, 15), new ECB_1.default(32, 16))),\n new Version(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks_1.default(30, new ECB_1.default(20, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(40, 47), new ECB_1.default(7, 48)), new ECBlocks_1.default(30, new ECB_1.default(43, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(10, 15), new ECB_1.default(67, 16))),\n new Version(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks_1.default(30, new ECB_1.default(19, 118), new ECB_1.default(6, 119)), new ECBlocks_1.default(28, new ECB_1.default(18, 47), new ECB_1.default(31, 48)), new ECBlocks_1.default(30, new ECB_1.default(34, 24), new ECB_1.default(34, 25)), new ECBlocks_1.default(30, new ECB_1.default(20, 15), new ECB_1.default(61, 16)))\n ];\n return Version;\n}());\nexports.default = Version;\n//# sourceMappingURL=Version.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UnsupportedOperationException_1 = require(\"../UnsupportedOperationException\");\nvar CharacterSetECI_1 = require(\"../common/CharacterSetECI\");\n/**\n * Responsible for en/decoding strings.\n */\nvar StringEncoding = /** @class */ (function () {\n function StringEncoding() {\n }\n /**\n * Decodes some Uint8Array to a string format.\n */\n StringEncoding.decode = function (bytes, encoding) {\n var encodingName = this.encodingName(encoding);\n // Increases browser support.\n if (typeof TextDecoder === 'undefined') {\n return this.decodeFallback(bytes, encodingName);\n }\n return new TextDecoder(encodingName).decode(bytes);\n };\n /**\n * Encodes some string into a Uint8Array.\n *\n * @todo natively support other string formats than UTF-8.\n */\n StringEncoding.encode = function (s, encoding) {\n // Uses `text-encoding` package.\n if (!StringEncoding.isBrowser()) {\n // SEE: https://nodejs.org/api/buffer.html#buffer_class_buffer\n // SEE: https://github.com/polygonplanet/encoding.js/\n // SEE: https://stackoverflow.com/questions/17191945/conversion-between-utf-8-arraybuffer-and-string\n var EncoderConstructor = TextEncoder;\n return new EncoderConstructor(this.encodingName(encoding), { NONSTANDARD_allowLegacyEncoding: true }).encode(s);\n }\n // Increases browser support.\n if (typeof TextEncoder === 'undefined') {\n return this.encodeFallback(s);\n }\n // TextEncoder only encodes to UTF8 by default as specified by encoding.spec.whatwg.org\n return new TextEncoder().encode(s);\n };\n StringEncoding.isBrowser = function () {\n return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\n };\n /**\n * Returns the string value from some encoding character set.\n */\n StringEncoding.encodingName = function (encoding) {\n return typeof encoding === 'string'\n ? encoding\n : encoding.getName();\n };\n /**\n * Returns character set from some encoding character set.\n */\n StringEncoding.encodingCharacterSet = function (encoding) {\n return CharacterSetECI_1.default.getCharacterSetECIByName(this.encodingName(encoding));\n };\n /**\n * Runs a fallback for the native decoding funcion.\n */\n StringEncoding.decodeFallback = function (bytes, encoding) {\n var characterSet = this.encodingCharacterSet(encoding);\n if (characterSet.equals(CharacterSetECI_1.default.UTF8) ||\n characterSet.equals(CharacterSetECI_1.default.ISO8859_1) ||\n characterSet.equals(CharacterSetECI_1.default.ASCII)) {\n var s = '';\n for (var i = 0, length_1 = bytes.length; i < length_1; i++) {\n var h = bytes[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n s += '%' + h;\n }\n return decodeURIComponent(s);\n }\n if (characterSet.equals(CharacterSetECI_1.default.UnicodeBigUnmarked)) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n }\n throw new UnsupportedOperationException_1.default(\"Encoding \" + this.encodingName(encoding) + \" not supported by fallback.\");\n };\n /**\n * Runs a fallback for the native encoding funcion.\n *\n * @see https://stackoverflow.com/a/17192845/4367683\n */\n StringEncoding.encodeFallback = function (s) {\n var encodedURIstring = btoa(unescape(encodeURIComponent(s)));\n var charList = encodedURIstring.split('');\n var uintArray = [];\n for (var i = 0; i < charList.length; i++) {\n uintArray.push(charList[i].charCodeAt(0));\n }\n return new Uint8Array(uintArray);\n };\n return StringEncoding;\n}());\nexports.default = StringEncoding;\n//# sourceMappingURL=StringEncoding.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserCodeReader_1 = require(\"./BrowserCodeReader\");\nvar MultiFormatReader_1 = require(\"../core/MultiFormatReader\");\nvar BrowserMultiFormatReader = /** @class */ (function (_super) {\n __extends(BrowserMultiFormatReader, _super);\n function BrowserMultiFormatReader(hints, timeBetweenScansMillis) {\n if (hints === void 0) { hints = null; }\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n var _this = this;\n var reader = new MultiFormatReader_1.default();\n reader.setHints(hints);\n _this = _super.call(this, reader, timeBetweenScansMillis) || this;\n return _this;\n }\n /**\n * Overwrite decodeBitmap to call decodeWithState, which will pay\n * attention to the hints set in the constructor function\n */\n BrowserMultiFormatReader.prototype.decodeBitmap = function (binaryBitmap) {\n return this.reader.decodeWithState(binaryBitmap);\n };\n return BrowserMultiFormatReader;\n}(BrowserCodeReader_1.BrowserCodeReader));\nexports.BrowserMultiFormatReader = BrowserMultiFormatReader;\n//# sourceMappingURL=BrowserMultiFormatReader.js.map","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\nvar FormatException_1 = require(\"../FormatException\");\n/*import java.util.HashMap;*/\n/*import java.util.Map;*/\nvar CharacterSetValueIdentifiers;\n(function (CharacterSetValueIdentifiers) {\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp437\"] = 0] = \"Cp437\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_1\"] = 1] = \"ISO8859_1\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_2\"] = 2] = \"ISO8859_2\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_3\"] = 3] = \"ISO8859_3\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_4\"] = 4] = \"ISO8859_4\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_5\"] = 5] = \"ISO8859_5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_6\"] = 6] = \"ISO8859_6\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_7\"] = 7] = \"ISO8859_7\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_8\"] = 8] = \"ISO8859_8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_9\"] = 9] = \"ISO8859_9\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_10\"] = 10] = \"ISO8859_10\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_11\"] = 11] = \"ISO8859_11\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_13\"] = 12] = \"ISO8859_13\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_14\"] = 13] = \"ISO8859_14\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_15\"] = 14] = \"ISO8859_15\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_16\"] = 15] = \"ISO8859_16\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"SJIS\"] = 16] = \"SJIS\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1250\"] = 17] = \"Cp1250\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1251\"] = 18] = \"Cp1251\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1252\"] = 19] = \"Cp1252\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1256\"] = 20] = \"Cp1256\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UnicodeBigUnmarked\"] = 21] = \"UnicodeBigUnmarked\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UTF8\"] = 22] = \"UTF8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ASCII\"] = 23] = \"ASCII\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Big5\"] = 24] = \"Big5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"GB18030\"] = 25] = \"GB18030\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"EUC_KR\"] = 26] = \"EUC_KR\";\n})(CharacterSetValueIdentifiers = exports.CharacterSetValueIdentifiers || (exports.CharacterSetValueIdentifiers = {}));\n/**\n * Encapsulates a Character Set ECI, according to \"Extended Channel Interpretations\" 5.3.1.1\n * of ISO 18004.\n *\n * @author Sean Owen\n */\nvar CharacterSetECI = /** @class */ (function () {\n function CharacterSetECI(valueIdentifier, valuesParam, name) {\n var otherEncodingNames = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n otherEncodingNames[_i - 3] = arguments[_i];\n }\n this.valueIdentifier = valueIdentifier;\n this.name = name;\n if (typeof valuesParam === 'number') {\n this.values = Int32Array.from([valuesParam]);\n }\n else {\n this.values = valuesParam;\n }\n this.otherEncodingNames = otherEncodingNames;\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI.set(valueIdentifier, this);\n CharacterSetECI.NAME_TO_ECI.set(name, this);\n var values = this.values;\n for (var i = 0, length_1 = values.length; i !== length_1; i++) {\n var v = values[i];\n CharacterSetECI.VALUES_TO_ECI.set(v, this);\n }\n for (var _a = 0, otherEncodingNames_1 = otherEncodingNames; _a < otherEncodingNames_1.length; _a++) {\n var otherName = otherEncodingNames_1[_a];\n CharacterSetECI.NAME_TO_ECI.set(otherName, this);\n }\n }\n // CharacterSetECI(value: number /*int*/) {\n // this(new Int32Array {value})\n // }\n // CharacterSetECI(value: number /*int*/, String... otherEncodingNames) {\n // this.values = new Int32Array {value}\n // this.otherEncodingNames = otherEncodingNames\n // }\n // CharacterSetECI(values: Int32Array, String... otherEncodingNames) {\n // this.values = values\n // this.otherEncodingNames = otherEncodingNames\n // }\n CharacterSetECI.prototype.getValueIdentifier = function () {\n return this.valueIdentifier;\n };\n CharacterSetECI.prototype.getName = function () {\n return this.name;\n };\n CharacterSetECI.prototype.getValue = function () {\n return this.values[0];\n };\n /**\n * @param value character set ECI value\n * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but\n * unsupported\n * @throws FormatException if ECI value is invalid\n */\n CharacterSetECI.getCharacterSetECIByValue = function (value /*int*/) {\n if (value < 0 || value >= 900) {\n throw new FormatException_1.default('incorect value');\n }\n var characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\n if (undefined === characterSet) {\n throw new FormatException_1.default('incorect value');\n }\n return characterSet;\n };\n /**\n * @param name character set ECI encoding name\n * @return CharacterSetECI representing ECI for character encoding, or null if it is legal\n * but unsupported\n */\n CharacterSetECI.getCharacterSetECIByName = function (name) {\n var characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\n if (undefined === characterSet) {\n throw new FormatException_1.default('incorect value');\n }\n return characterSet;\n };\n CharacterSetECI.prototype.equals = function (o) {\n if (!(o instanceof CharacterSetECI)) {\n return false;\n }\n var other = o;\n return this.getName() === other.getName();\n };\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI = new Map();\n CharacterSetECI.VALUES_TO_ECI = new Map();\n CharacterSetECI.NAME_TO_ECI = new Map();\n // Enum name is a Java encoding valid for java.lang and java.io\n // TYPESCRIPTPORT: changed the main label for ISO as the TextEncoder did not recognized them in the form from java\n // (eg ISO8859_1 must be ISO88591 or ISO8859-1 or ISO-8859-1)\n // later on: well, except 16 wich does not work with ISO885916 so used ISO-8859-1 form for default\n CharacterSetECI.Cp437 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp437, Int32Array.from([0, 2]), 'Cp437');\n CharacterSetECI.ISO8859_1 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1');\n CharacterSetECI.ISO8859_2 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2');\n CharacterSetECI.ISO8859_3 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3');\n CharacterSetECI.ISO8859_4 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4');\n CharacterSetECI.ISO8859_5 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5');\n CharacterSetECI.ISO8859_6 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6');\n CharacterSetECI.ISO8859_7 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7');\n CharacterSetECI.ISO8859_8 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8');\n CharacterSetECI.ISO8859_9 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9');\n CharacterSetECI.ISO8859_10 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10');\n CharacterSetECI.ISO8859_11 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11');\n CharacterSetECI.ISO8859_13 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13');\n CharacterSetECI.ISO8859_14 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14');\n CharacterSetECI.ISO8859_15 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15');\n CharacterSetECI.ISO8859_16 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16');\n CharacterSetECI.SJIS = new CharacterSetECI(CharacterSetValueIdentifiers.SJIS, 20, 'SJIS', 'Shift_JIS');\n CharacterSetECI.Cp1250 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1250, 21, 'Cp1250', 'windows-1250');\n CharacterSetECI.Cp1251 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1251, 22, 'Cp1251', 'windows-1251');\n CharacterSetECI.Cp1252 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1252, 23, 'Cp1252', 'windows-1252');\n CharacterSetECI.Cp1256 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1256, 24, 'Cp1256', 'windows-1256');\n CharacterSetECI.UnicodeBigUnmarked = new CharacterSetECI(CharacterSetValueIdentifiers.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig');\n CharacterSetECI.UTF8 = new CharacterSetECI(CharacterSetValueIdentifiers.UTF8, 26, 'UTF8', 'UTF-8');\n CharacterSetECI.ASCII = new CharacterSetECI(CharacterSetValueIdentifiers.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII');\n CharacterSetECI.Big5 = new CharacterSetECI(CharacterSetValueIdentifiers.Big5, 28, 'Big5');\n CharacterSetECI.GB18030 = new CharacterSetECI(CharacterSetValueIdentifiers.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK');\n CharacterSetECI.EUC_KR = new CharacterSetECI(CharacterSetValueIdentifiers.EUC_KR, 30, 'EUC_KR', 'EUC-KR');\n return CharacterSetECI;\n}());\nexports.default = CharacterSetECI;\n//# sourceMappingURL=CharacterSetECI.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar System = /** @class */ (function () {\n function System() {\n }\n // public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)\n /**\n * Makes a copy of a array.\n */\n System.arraycopy = function (src, srcPos, dest, destPos, length) {\n // TODO: better use split or set?\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n };\n /**\n * Returns the current time in milliseconds.\n */\n System.currentTimeMillis = function () {\n return Date.now();\n };\n return System;\n}());\nexports.default = System;\n//# sourceMappingURL=System.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DefaultGridSampler_1 = require(\"./DefaultGridSampler\");\nvar GridSamplerInstance = /** @class */ (function () {\n function GridSamplerInstance() {\n }\n /**\n * Sets the implementation of GridSampler used by the library. One global\n * instance is stored, which may sound problematic. But, the implementation provided\n * ought to be appropriate for the entire platform, and all uses of this library\n * in the whole lifetime of the JVM. For instance, an Android activity can swap in\n * an implementation that takes advantage of native platform libraries.\n *\n * @param newGridSampler The platform-specific object to install.\n */\n GridSamplerInstance.setGridSampler = function (newGridSampler) {\n GridSamplerInstance.gridSampler = newGridSampler;\n };\n /**\n * @return the current implementation of GridSampler\n */\n GridSamplerInstance.getInstance = function () {\n return GridSamplerInstance.gridSampler;\n };\n GridSamplerInstance.gridSampler = new DefaultGridSampler_1.default();\n return GridSamplerInstance;\n}());\nexports.default = GridSamplerInstance;\n//# sourceMappingURL=GridSamplerInstance.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DataCharacter_1 = require(\"./DataCharacter\");\nvar Pair = /** @class */ (function (_super) {\n __extends(Pair, _super);\n function Pair(value, checksumPortion, finderPattern) {\n var _this = _super.call(this, value, checksumPortion) || this;\n _this.count = 0;\n _this.finderPattern = finderPattern;\n return _this;\n }\n Pair.prototype.getFinderPattern = function () {\n return this.finderPattern;\n };\n Pair.prototype.getCount = function () {\n return this.count;\n };\n Pair.prototype.incrementCount = function () {\n this.count++;\n };\n return Pair;\n}(DataCharacter_1.default));\nexports.default = Pair;\n//# sourceMappingURL=Pair.js.map","\"use strict\";\n/*\n * Direct port to TypeScript of ZXing by Adrian Toșcă\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Copyright 2009 ZXing authors\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/*namespace com.google.zxing {*/\n/**\n * Enumerates barcode formats known to this package. Please keep alphabetized.\n *\n * @author Sean Owen\n */\nvar BarcodeFormat;\n(function (BarcodeFormat) {\n /** Aztec 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"AZTEC\"] = 0] = \"AZTEC\";\n /** CODABAR 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODABAR\"] = 1] = \"CODABAR\";\n /** Code 39 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_39\"] = 2] = \"CODE_39\";\n /** Code 93 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_93\"] = 3] = \"CODE_93\";\n /** Code 128 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_128\"] = 4] = \"CODE_128\";\n /** Data Matrix 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"DATA_MATRIX\"] = 5] = \"DATA_MATRIX\";\n /** EAN-8 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_8\"] = 6] = \"EAN_8\";\n /** EAN-13 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_13\"] = 7] = \"EAN_13\";\n /** ITF (Interleaved Two of Five) 1D format. */\n BarcodeFormat[BarcodeFormat[\"ITF\"] = 8] = \"ITF\";\n /** MaxiCode 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"MAXICODE\"] = 9] = \"MAXICODE\";\n /** PDF417 format. */\n BarcodeFormat[BarcodeFormat[\"PDF_417\"] = 10] = \"PDF_417\";\n /** QR Code 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"QR_CODE\"] = 11] = \"QR_CODE\";\n /** RSS 14 */\n BarcodeFormat[BarcodeFormat[\"RSS_14\"] = 12] = \"RSS_14\";\n /** RSS EXPANDED */\n BarcodeFormat[BarcodeFormat[\"RSS_EXPANDED\"] = 13] = \"RSS_EXPANDED\";\n /** UPC-A 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_A\"] = 14] = \"UPC_A\";\n /** UPC-E 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_E\"] = 15] = \"UPC_E\";\n /** UPC/EAN extension format. Not a stand-alone format. */\n BarcodeFormat[BarcodeFormat[\"UPC_EAN_EXTENSION\"] = 16] = \"UPC_EAN_EXTENSION\";\n})(BarcodeFormat || (BarcodeFormat = {}));\nexports.default = BarcodeFormat;\n//# sourceMappingURL=BarcodeFormat.js.map","/**\n * spawnWorker\n *\n * @name spawnWorker\n * @function create a new Worker in browser\n * @access public\n */\nmodule.exports = ({ workerPath, workerBlobURL }) => {\n let worker;\n if (Blob && URL && workerBlobURL) {\n const blob = new Blob([`importScripts(\"${workerPath}\");`], {\n type: 'application/javascript',\n });\n worker = new Worker(URL.createObjectURL(blob));\n } else {\n worker = new Worker(workerPath);\n }\n\n return worker;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","\"use strict\";\n/*\n * Copyright 2008 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar Result_1 = require(\"../Result\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar OneDReader_1 = require(\"./OneDReader\");\nvar UPCEANExtensionSupport_1 = require(\"./UPCEANExtensionSupport\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\nvar FormatException_1 = require(\"../FormatException\");\nvar ChecksumException_1 = require(\"../ChecksumException\");\n/**\n *Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.
\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar UPCEANReader = /** @class */ (function (_super) {\n __extends(UPCEANReader, _super);\n // private final UPCEANExtensionSupport extensionReader;\n // private final EANManufacturerOrgSupport eanManSupport;\n function UPCEANReader() {\n var _this = _super.call(this) || this;\n _this.decodeRowStringBuffer = '';\n _this.decodeRowStringBuffer = '';\n UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(function (arr) {\n return arr.slice();\n });\n for (var i = 10; i < 20; i++) {\n var widths = UPCEANReader.L_PATTERNS[i - 10];\n var reversedWidths = new Array(widths.length);\n for (var j = 0; j < widths.length; j++) {\n reversedWidths[j] = widths[widths.length - j - 1];\n }\n UPCEANReader.L_AND_G_PATTERNS[i] = reversedWidths;\n }\n return _this;\n }\n /*\n protected UPCEANReader() {\n decodeRowStringBuffer = new StringBuilder(20);\n extensionReader = new UPCEANExtensionSupport();\n eanManSupport = new EANManufacturerOrgSupport();\n }\n */\n UPCEANReader.findStartGuardPattern = function (row) {\n var foundStart = false;\n var startRange = null;\n var nextStart = 0;\n var counters = [0, 0, 0];\n while (!foundStart) {\n counters = [0, 0, 0];\n startRange = UPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\n var start = startRange[0];\n nextStart = startRange[1];\n var quietStart = start - (nextStart - start);\n if (quietStart >= 0) {\n foundStart = row.isRange(quietStart, start, false);\n }\n }\n return startRange;\n };\n UPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var startGuardRange = UPCEANReader.findStartGuardPattern(row);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var resultPoint_1 = new ResultPoint_1.default((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_1);\n }\n var budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\n var endStart = budello.rowOffset;\n var result = budello.resultString;\n if (resultPointCallback != null) {\n var resultPoint_2 = new ResultPoint_1.default(endStart, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_2);\n }\n var endRange = UPCEANReader.decodeEnd(row, endStart);\n if (resultPointCallback != null) {\n var resultPoint_3 = new ResultPoint_1.default((endRange[0] + endRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_3);\n }\n // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The\n // spec might want more whitespace, but in practice this is the maximum we can count on.\n var end = endRange[1];\n var quietEnd = end + (end - endRange[0]);\n if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\n throw new NotFoundException_1.default();\n }\n var resultString = result.toString();\n // UPC/EAN should never be less than 8 chars anyway\n if (resultString.length < 8) {\n throw new FormatException_1.default();\n }\n if (!UPCEANReader.checkChecksum(resultString)) {\n throw new ChecksumException_1.default();\n }\n var left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\n var right = (endRange[1] + endRange[0]) / 2.0;\n var format = this.getBarcodeFormat();\n var resultPoint = [new ResultPoint_1.default(left, rowNumber), new ResultPoint_1.default(right, rowNumber)];\n var decodeResult = new Result_1.default(resultString, null, 0, resultPoint, format, new Date().getTime());\n var extensionLength = 0;\n try {\n var extensionResult = UPCEANExtensionSupport_1.default.decodeRow(rowNumber, row, endRange[1]);\n decodeResult.putMetadata(ResultMetadataType_1.default.UPC_EAN_EXTENSION, extensionResult.getText());\n decodeResult.putAllMetadata(extensionResult.getResultMetadata());\n decodeResult.addResultPoints(extensionResult.getResultPoints());\n extensionLength = extensionResult.getText().length;\n }\n catch (err) {\n }\n var allowedExtensions = hints == null ? null : hints.get(DecodeHintType_1.default.ALLOWED_EAN_EXTENSIONS);\n if (allowedExtensions != null) {\n var valid = false;\n for (var length_1 in allowedExtensions) {\n if (extensionLength.toString() === length_1) { // check me\n valid = true;\n break;\n }\n }\n if (!valid) {\n throw new NotFoundException_1.default();\n }\n }\n if (format === BarcodeFormat_1.default.EAN_13 || format === BarcodeFormat_1.default.UPC_A) {\n // let countryID = eanManSupport.lookupContryIdentifier(resultString); todo\n // if (countryID != null) {\n // decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID);\n // }\n }\n return decodeResult;\n };\n UPCEANReader.checkChecksum = function (s) {\n return UPCEANReader.checkStandardUPCEANChecksum(s);\n };\n UPCEANReader.checkStandardUPCEANChecksum = function (s) {\n var length = s.length;\n if (length === 0)\n return false;\n var check = parseInt(s.charAt(length - 1), 10);\n return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n };\n UPCEANReader.getStandardUPCEANChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 1; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException_1.default();\n }\n sum += digit;\n }\n sum *= 3;\n for (var i = length - 2; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException_1.default();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n };\n UPCEANReader.decodeEnd = function (row, endStart) {\n return UPCEANReader.findGuardPattern(row, endStart, false, UPCEANReader.START_END_PATTERN, new Array(UPCEANReader.START_END_PATTERN.length).fill(0));\n };\n UPCEANReader.findGuardPattern = function (row, rowOffset, whiteFirst, pattern, counters) {\n var width = row.getSize();\n rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\n var counterPosition = 0;\n var patternStart = rowOffset;\n var patternLength = pattern.length;\n var isWhite = whiteFirst;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader_1.default.patternMatchVariance(counters, pattern, UPCEANReader.MAX_INDIVIDUAL_VARIANCE) < UPCEANReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n var slice = counters.slice(2, counters.length);\n for (var i = 0; i < counterPosition - 1; i++) {\n counters[i] = slice[i];\n }\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n UPCEANReader.decodeDigit = function (row, counters, rowOffset, patterns) {\n this.recordPattern(row, rowOffset, counters);\n var bestVariance = this.MAX_AVG_VARIANCE;\n var bestMatch = -1;\n var max = patterns.length;\n for (var i = 0; i < max; i++) {\n var pattern = patterns[i];\n var variance = OneDReader_1.default.patternMatchVariance(counters, pattern, UPCEANReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException_1.default();\n }\n };\n // These two values are critical for determining how permissive the decoding will be.\n // We've arrived at these values through a lot of trial and error. Setting them any higher\n // lets false positives creep in quickly.\n UPCEANReader.MAX_AVG_VARIANCE = 0.48;\n UPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n /**\n * Start/end guard pattern.\n */\n UPCEANReader.START_END_PATTERN = [1, 1, 1];\n /**\n * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\n */\n UPCEANReader.MIDDLE_PATTERN = [1, 1, 1, 1, 1];\n /**\n * end guard pattern.\n */\n UPCEANReader.END_PATTERN = [1, 1, 1, 1, 1, 1];\n /**\n * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\n */\n UPCEANReader.L_PATTERNS = [\n [3, 2, 1, 1],\n [2, 2, 2, 1],\n [2, 1, 2, 2],\n [1, 4, 1, 1],\n [1, 1, 3, 2],\n [1, 2, 3, 1],\n [1, 1, 1, 4],\n [1, 3, 1, 2],\n [1, 2, 1, 3],\n [3, 1, 1, 2],\n ];\n return UPCEANReader;\n}(OneDReader_1.default));\nexports.default = UPCEANReader;\n//# sourceMappingURL=UPCEANReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ReedSolomonDecoder_1 = require(\"../../common/reedsolomon/ReedSolomonDecoder\");\nvar GenericGF_1 = require(\"../../common/reedsolomon/GenericGF\");\nvar BitMatrixParser_1 = require(\"./BitMatrixParser\");\nvar DataBlock_1 = require(\"./DataBlock\");\nvar DecodedBitStreamParser_1 = require(\"./DecodedBitStreamParser\");\nvar ChecksumException_1 = require(\"../../ChecksumException\");\n/*\n * Copyright 2007 ZXing authors\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 main class which implements Data Matrix Code decoding -- as opposed to locating and extracting\n * the Data Matrix Code from an image.
\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n this.rsDecoder = new ReedSolomonDecoder_1.default(GenericGF_1.default.DATA_MATRIX_FIELD_256);\n }\n /**\n *Decodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken\n * to mean a black module.
\n *\n * @param bits booleans representing white/black Data Matrix Code modules\n * @return text and bytes encoded within the Data Matrix Code\n * @throws FormatException if the Data Matrix Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decode = function (bits) {\n // Construct a parser and read version, error-correction level\n var parser = new BitMatrixParser_1.default(bits);\n var version = parser.getVersion();\n // Read codewords\n var codewords = parser.readCodewords();\n // Separate into data blocks\n var dataBlocks = DataBlock_1.default.getDataBlocks(codewords, version);\n // Count total number of data bytes\n var totalBytes = 0;\n for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {\n var db = dataBlocks_1[_i];\n totalBytes += db.getNumDataCodewords();\n }\n var resultBytes = new Uint8Array(totalBytes);\n var dataBlocksCount = dataBlocks.length;\n // Error-correct and copy data blocks together into a stream of bytes\n for (var j = 0; j < dataBlocksCount; j++) {\n var dataBlock = dataBlocks[j];\n var codewordBytes = dataBlock.getCodewords();\n var numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (var i = 0; i < numDataCodewords; i++) {\n // De-interlace data blocks.\n resultBytes[i * dataBlocksCount + j] = codewordBytes[i];\n }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser_1.default.decode(resultBytes);\n };\n /**\n *Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.
\n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords) {\n var numCodewords = codewordBytes.length;\n // First read into an array of ints\n var codewordsInts = new Int32Array(codewordBytes);\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF;\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /* ReedSolomonException */) {\n throw new ChecksumException_1.default();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (var i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = codewordsInts[i];\n }\n };\n return Decoder;\n}());\nexports.default = Decoder;\n//# sourceMappingURL=Decoder.js.map","const createWorker = require('./createWorker');\n\nconst recognize = async (image, langs, options) => {\n const worker = createWorker(options);\n await worker.load();\n await worker.loadLanguage(langs);\n await worker.initialize(langs);\n return worker.recognize(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nconst detect = async (image, options) => {\n const worker = createWorker(options);\n await worker.load();\n await worker.loadLanguage('osd');\n await worker.initialize('osd');\n return worker.detect(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nmodule.exports = {\n recognize,\n detect,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Integer = /** @class */ (function () {\n function Integer() {\n }\n Integer.numberOfTrailingZeros = function (i) {\n var y;\n if (i === 0)\n return 32;\n var n = 31;\n y = i << 16;\n if (y !== 0) {\n n -= 16;\n i = y;\n }\n y = i << 8;\n if (y !== 0) {\n n -= 8;\n i = y;\n }\n y = i << 4;\n if (y !== 0) {\n n -= 4;\n i = y;\n }\n y = i << 2;\n if (y !== 0) {\n n -= 2;\n i = y;\n }\n return n - ((i << 1) >>> 31);\n };\n Integer.numberOfLeadingZeros = function (i) {\n // HD, Figure 5-6\n if (i === 0) {\n return 32;\n }\n var n = 1;\n if (i >>> 16 === 0) {\n n += 16;\n i <<= 16;\n }\n if (i >>> 24 === 0) {\n n += 8;\n i <<= 8;\n }\n if (i >>> 28 === 0) {\n n += 4;\n i <<= 4;\n }\n if (i >>> 30 === 0) {\n n += 2;\n i <<= 2;\n }\n n -= i >>> 31;\n return n;\n };\n Integer.toHexString = function (i) {\n return i.toString(16);\n };\n // Returns the number of one-bits in the two's complement binary representation of the specified int value. This function is sometimes referred to as the population count.\n // Returns:\n // the number of one-bits in the two's complement binary representation of the specified int value.\n Integer.bitCount = function (i) {\n // HD, Figure 5-2\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n i = (i + (i >>> 4)) & 0x0f0f0f0f;\n i = i + (i >>> 8);\n i = i + (i >>> 16);\n return i & 0x3f;\n };\n Integer.MIN_VALUE_32_BITS = -2147483648;\n return Integer;\n}());\nexports.default = Integer;\n//# sourceMappingURL=Integer.js.map","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\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 for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n 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 = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n 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 validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\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(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\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 $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","module.exports = __webpack_public_path__ + \"img/icon_Error.svg\";","/*\n * OEM = OCR Engine Mode, and there are 4 possible modes.\n *\n * By default tesseract.js uses LSTM_ONLY mode.\n *\n */\nmodule.exports = {\n TESSERACT_ONLY: 0,\n LSTM_ONLY: 1,\n TESSERACT_LSTM_COMBINED: 2,\n DEFAULT: 3,\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar NotFoundException = /** @class */ (function (_super) {\n __extends(NotFoundException, _super);\n function NotFoundException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NotFoundException;\n}(Exception_1.default));\nexports.default = NotFoundException;\n//# sourceMappingURL=NotFoundException.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringBuilder_1 = require(\"./util/StringBuilder\");\nvar UnsupportedOperationException_1 = require(\"./UnsupportedOperationException\");\n/*namespace com.google.zxing {*/\n/**\n * The purpose of this class hierarchy is to abstract different bitmap implementations across\n * platforms into a standard interface for requesting greyscale luminance values. The interface\n * only provides immutable methods; therefore crop and rotation create copies. This is to ensure\n * that one Reader does not modify the original luminance source and leave it in an unknown state\n * for other Readers in the chain.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar LuminanceSource = /** @class */ (function () {\n function LuminanceSource(width /*int*/, height /*int*/) {\n this.width = width;\n this.height = height;\n }\n /**\n * @return The width of the bitmap.\n */\n LuminanceSource.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the bitmap.\n */\n LuminanceSource.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return Whether this subclass supports cropping.\n */\n LuminanceSource.prototype.isCropSupported = function () {\n return false;\n };\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n LuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n throw new UnsupportedOperationException_1.default('This luminance source does not support cropping.');\n };\n /**\n * @return Whether this subclass supports counter-clockwise rotation.\n */\n LuminanceSource.prototype.isRotateSupported = function () {\n return false;\n };\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n LuminanceSource.prototype.rotateCounterClockwise = function () {\n throw new UnsupportedOperationException_1.default('This luminance source does not support rotation by 90 degrees.');\n };\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n LuminanceSource.prototype.rotateCounterClockwise45 = function () {\n throw new UnsupportedOperationException_1.default('This luminance source does not support rotation by 45 degrees.');\n };\n /*@Override*/\n LuminanceSource.prototype.toString = function () {\n var row = new Uint8ClampedArray(this.width);\n var result = new StringBuilder_1.default();\n for (var y = 0; y < this.height; y++) {\n var sourceRow = this.getRow(y, row);\n for (var x = 0; x < this.width; x++) {\n var luminance = sourceRow[x] & 0xFF;\n var c = void 0;\n if (luminance < 0x40) {\n c = '#';\n }\n else if (luminance < 0x80) {\n c = '+';\n }\n else if (luminance < 0xC0) {\n c = '.';\n }\n else {\n c = ' ';\n }\n result.append(c);\n }\n result.append('\\n');\n }\n return result.toString();\n };\n return LuminanceSource;\n}());\nexports.default = LuminanceSource;\n//# sourceMappingURL=LuminanceSource.js.map","/**\n *\n * Entry point for tesseract.js, should be the entry when bundling.\n *\n * @fileoverview entry point for tesseract.js\n * @author Kevin KwokA reader that can read all available UPC/EAN formats. If a caller wants to try to\n * read all such formats, it is most efficient to use this implementation rather than invoke\n * individual readers.
\n *\n * @author Sean Owen\n */\nvar MultiFormatUPCEANReader = /** @class */ (function (_super) {\n __extends(MultiFormatUPCEANReader, _super);\n function MultiFormatUPCEANReader(hints) {\n var _this = _super.call(this) || this;\n var possibleFormats = hints == null ? null : hints.get(DecodeHintType_1.default.POSSIBLE_FORMATS);\n var readers = [];\n if (possibleFormats != null) {\n if (possibleFormats.indexOf(BarcodeFormat_1.default.EAN_13) > -1) {\n readers.push(new EAN13Reader_1.default());\n }\n if (possibleFormats.indexOf(BarcodeFormat_1.default.EAN_8) > -1) {\n readers.push(new EAN8Reader_1.default());\n }\n // todo add UPC_A, UPC_E\n }\n if (readers.length === 0) {\n readers.push(new EAN13Reader_1.default());\n readers.push(new EAN8Reader_1.default());\n // todo add UPC_A, UPC_E\n }\n _this.readers = readers;\n return _this;\n }\n MultiFormatUPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n try {\n return reader.decodeRow(rowNumber, row, hints);\n // TODO ean13MayBeUPCA\n }\n catch (err) {\n // continue;\n }\n }\n throw new NotFoundException_1.default();\n };\n MultiFormatUPCEANReader.prototype.reset = function () {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n reader.reset();\n }\n };\n return MultiFormatUPCEANReader;\n}(OneDReader_1.default));\nexports.default = MultiFormatUPCEANReader;\n//# sourceMappingURL=MultiFormatUPCEANReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * RSS util functions.\n */\nvar RSSUtils = /** @class */ (function () {\n function RSSUtils() {\n }\n RSSUtils.prototype.RSSUtils = function () { };\n RSSUtils.getRSSvalue = function (widths, maxWidth, noNarrow) {\n var n = 0;\n for (var _i = 0, widths_1 = widths; _i < widths_1.length; _i++) {\n var width = widths_1[_i];\n n += width;\n }\n var val = 0;\n var narrowMask = 0;\n var elements = widths.length;\n for (var bar = 0; bar < elements - 1; bar++) {\n var elmWidth = void 0;\n for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++, narrowMask &= ~(1 << bar)) {\n var subVal = RSSUtils.combins(n - elmWidth - 1, elements - bar - 2);\n if (noNarrow && (narrowMask === 0) && (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) {\n subVal -= RSSUtils.combins(n - elmWidth - (elements - bar), elements - bar - 2);\n }\n if (elements - bar - 1 > 1) {\n var lessVal = 0;\n for (var mxwElement = n - elmWidth - (elements - bar - 2); mxwElement > maxWidth; mxwElement--) {\n lessVal += RSSUtils.combins(n - elmWidth - mxwElement - 1, elements - bar - 3);\n }\n subVal -= lessVal * (elements - 1 - bar);\n }\n else if (n - elmWidth > maxWidth) {\n subVal--;\n }\n val += subVal;\n }\n n -= elmWidth;\n }\n return val;\n };\n RSSUtils.combins = function (n, r) {\n var maxDenom;\n var minDenom;\n if (n - r > r) {\n minDenom = r;\n maxDenom = n - r;\n }\n else {\n minDenom = n - r;\n maxDenom = r;\n }\n var val = 1;\n var j = 1;\n for (var i = n; i > maxDenom; i--) {\n val *= i;\n if (j <= minDenom) {\n val /= j;\n j++;\n }\n }\n while ((j <= minDenom)) {\n val /= j;\n j++;\n }\n return val;\n };\n return RSSUtils;\n}());\nexports.default = RSSUtils;\n//# sourceMappingURL=RSSUtils.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar OneDReader_1 = require(\"../OneDReader\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar AbstractRSSReader = /** @class */ (function (_super) {\n __extends(AbstractRSSReader, _super);\n function AbstractRSSReader() {\n var _this = _super.call(this) || this;\n _this.decodeFinderCounters = new Array(4);\n _this.dataCharacterCounters = new Array(8);\n _this.oddRoundingErrors = new Array(4);\n _this.evenRoundingErrors = new Array(4);\n _this.oddCounts = new Array(_this.dataCharacterCounters.length / 2);\n _this.evenCounts = new Array(_this.dataCharacterCounters.length / 2);\n return _this;\n }\n AbstractRSSReader.prototype.getDecodeFinderCounters = function () {\n return this.decodeFinderCounters;\n };\n AbstractRSSReader.prototype.getDataCharacterCounters = function () {\n return this.dataCharacterCounters;\n };\n AbstractRSSReader.prototype.getOddRoundingErrors = function () {\n return this.oddRoundingErrors;\n };\n AbstractRSSReader.prototype.getEvenRoundingErrors = function () {\n return this.evenRoundingErrors;\n };\n AbstractRSSReader.prototype.getOddCounts = function () {\n return this.oddCounts;\n };\n AbstractRSSReader.prototype.getEvenCounts = function () {\n return this.evenCounts;\n };\n AbstractRSSReader.prototype.parseFinderValue = function (counters, finderPatterns) {\n for (var value = 0; value < finderPatterns.length; value++) {\n if (OneDReader_1.default.patternMatchVariance(counters, finderPatterns[value], AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE) < AbstractRSSReader.MAX_AVG_VARIANCE) {\n return value;\n }\n }\n throw new NotFoundException_1.default();\n };\n /**\n * @param array values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n AbstractRSSReader.count = function (array) {\n return MathUtils_1.default.sum(new Int32Array(array));\n };\n AbstractRSSReader.increment = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var i = 1; i < array.length; i++) {\n if (errors[i] > biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]++;\n };\n AbstractRSSReader.decrement = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var i = 1; i < array.length; i++) {\n if (errors[i] < biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]--;\n };\n AbstractRSSReader.isFinderPattern = function (counters) {\n var firstTwoSum = counters[0] + counters[1];\n var sum = firstTwoSum + counters[2] + counters[3];\n var ratio = firstTwoSum / sum;\n if (ratio >= AbstractRSSReader.MIN_FINDER_PATTERN_RATIO && ratio <= AbstractRSSReader.MAX_FINDER_PATTERN_RATIO) {\n // passes ratio test in spec, but see if the counts are unreasonable\n var minCounter = Number.MAX_SAFE_INTEGER;\n var maxCounter = Number.MIN_SAFE_INTEGER;\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n if (counter > maxCounter) {\n maxCounter = counter;\n }\n if (counter < minCounter) {\n minCounter = counter;\n }\n }\n return maxCounter < 10 * minCounter;\n }\n return false;\n };\n AbstractRSSReader.MAX_AVG_VARIANCE = 0.2;\n AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE = 0.45;\n AbstractRSSReader.MIN_FINDER_PATTERN_RATIO = 9.5 / 12.0;\n AbstractRSSReader.MAX_FINDER_PATTERN_RATIO = 12.5 / 14.0;\n return AbstractRSSReader;\n}(OneDReader_1.default));\nexports.default = AbstractRSSReader;\n//# sourceMappingURL=AbstractRSSReader.js.map","\"use strict\";\n/*\n * Copyright 2012 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.detector {*/\n/**\n * General math-related and numeric utility functions.\n */\nvar MathUtils = /** @class */ (function () {\n function MathUtils() {\n }\n MathUtils.prototype.MathUtils = function () {\n };\n /**\n * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its\n * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut\n * differ slightly from {@link Math#round(float)} in that half rounds down for negative\n * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference.\n *\n * @param d real value to round\n * @return nearest {@code int}\n */\n MathUtils.round = function (d /*float*/) {\n if (NaN === d)\n return 0;\n if (d <= Number.MIN_SAFE_INTEGER)\n return Number.MIN_SAFE_INTEGER;\n if (d >= Number.MAX_SAFE_INTEGER)\n return Number.MAX_SAFE_INTEGER;\n return /*(int) */ (d + (d < 0.0 ? -0.5 : 0.5)) | 0;\n };\n // TYPESCRIPTPORT: maybe remove round method and call directly Math.round, it looks like it doesn't make sense for js\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n MathUtils.distance = function (aX /*float|int*/, aY /*float|int*/, bX /*float|int*/, bY /*float|int*/) {\n var xDiff = aX - bX;\n var yDiff = aY - bY;\n return /*(float) */ Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n };\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n // public static distance(aX: number /*int*/, aY: number /*int*/, bX: number /*int*/, bY: number /*int*/): float {\n // const xDiff = aX - bX\n // const yDiff = aY - bY\n // return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n // }\n /**\n * @param array values to sum\n * @return sum of values in array\n */\n MathUtils.sum = function (array) {\n var count = 0;\n for (var i = 0, length_1 = array.length; i !== length_1; i++) {\n var a = array[i];\n count += a;\n }\n return count;\n };\n return MathUtils;\n}());\nexports.default = MathUtils;\n//# sourceMappingURL=MathUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DataCharacter = /** @class */ (function () {\n function DataCharacter(value, checksumPortion) {\n this.value = value;\n this.checksumPortion = checksumPortion;\n }\n DataCharacter.prototype.getValue = function () {\n return this.value;\n };\n DataCharacter.prototype.getChecksumPortion = function () {\n return this.checksumPortion;\n };\n DataCharacter.prototype.toString = function () {\n return this.value + '(' + this.checksumPortion + ')';\n };\n DataCharacter.prototype.equals = function (o) {\n if (!(o instanceof DataCharacter)) {\n return false;\n }\n var that = o;\n return this.value === that.value && this.checksumPortion === that.checksumPortion;\n };\n DataCharacter.prototype.hashCode = function () {\n return this.value ^ this.checksumPortion;\n };\n return DataCharacter;\n}());\nexports.default = DataCharacter;\n//# sourceMappingURL=DataCharacter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Video input device metadata containing the id and label of the device if available.\n */\nvar VideoInputDevice = /** @class */ (function () {\n /**\n * Creates an instance of VideoInputDevice.\n *\n * @param {string} deviceId the video input device id\n * @param {string} label the label of the device if available\n */\n function VideoInputDevice(deviceId, label, groupId) {\n this.deviceId = deviceId;\n this.label = label;\n /** @inheritdoc */\n this.kind = 'videoinput';\n this.groupId = groupId || undefined;\n }\n /** @inheritdoc */\n VideoInputDevice.prototype.toJSON = function () {\n return {\n kind: this.kind,\n groupId: this.groupId,\n deviceId: this.deviceId,\n label: this.label,\n };\n };\n return VideoInputDevice;\n}());\nexports.VideoInputDevice = VideoInputDevice;\n//# sourceMappingURL=VideoInputDevice.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\n/**\n * Encapsulates a type of hint that a caller may pass to a barcode reader to help it\n * more quickly or accurately decode it. It is up to implementations to decide what,\n * if anything, to do with the information that is supplied.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n * @see Reader#decode(BinaryBitmap,java.util.Map)\n */\nvar DecodeHintType;\n(function (DecodeHintType) {\n /**\n * Unspecified, application-specific hint. Maps to an unspecified {@link Object}.\n */\n DecodeHintType[DecodeHintType[\"OTHER\"] = 0] = \"OTHER\"; /*(Object.class)*/\n /**\n * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"PURE_BARCODE\"] = 1] = \"PURE_BARCODE\"; /*(Void.class)*/\n /**\n * Image is known to be of one of a few possible formats.\n * Maps to a {@link List} of {@link BarcodeFormat}s.\n */\n DecodeHintType[DecodeHintType[\"POSSIBLE_FORMATS\"] = 2] = \"POSSIBLE_FORMATS\"; /*(List.class)*/\n /**\n * Spend more time to try to find a barcode; optimize for accuracy, not speed.\n * Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"TRY_HARDER\"] = 3] = \"TRY_HARDER\"; /*(Void.class)*/\n /**\n * Specifies what character encoding to use when decoding, where applicable (type String)\n */\n DecodeHintType[DecodeHintType[\"CHARACTER_SET\"] = 4] = \"CHARACTER_SET\"; /*(String.class)*/\n /**\n * Allowed lengths of encoded data -- reject anything else. Maps to an {@code Int32Array}.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_LENGTHS\"] = 5] = \"ALLOWED_LENGTHS\"; /*(Int32Array.class)*/\n /**\n * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_CODE_39_CHECK_DIGIT\"] = 6] = \"ASSUME_CODE_39_CHECK_DIGIT\"; /*(Void.class)*/\n /**\n * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed.\n * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_GS1\"] = 7] = \"ASSUME_GS1\"; /*(Void.class)*/\n /**\n * If true, return the start and end digits in a Codabar barcode instead of stripping them. They\n * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them\n * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"RETURN_CODABAR_START_END\"] = 8] = \"RETURN_CODABAR_START_END\"; /*(Void.class)*/\n /**\n * The caller needs to be notified via callback when a possible {@link ResultPoint}\n * is found. Maps to a {@link ResultPointCallback}.\n */\n DecodeHintType[DecodeHintType[\"NEED_RESULT_POINT_CALLBACK\"] = 9] = \"NEED_RESULT_POINT_CALLBACK\"; /*(ResultPointCallback.class)*/\n /**\n * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this.\n * Maps to an {@code Int32Array} of the allowed extension lengths, for example [2], [5], or [2, 5].\n * If it is optional to have an extension, do not set this hint. If this is set,\n * and a UPC or EAN barcode is found but an extension is not, then no result will be returned\n * at all.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_EAN_EXTENSIONS\"] = 10] = \"ALLOWED_EAN_EXTENSIONS\"; /*(Int32Array.class)*/\n // End of enumeration values.\n /**\n * Data type the hint is expecting.\n * Among the possible values the {@link Void} stands out as being used for\n * hints that do not expect a value to be supplied (flag hints). Such hints\n * will possibly have their value ignored, or replaced by a\n * {@link Boolean#TRUE}. Hint suppliers should probably use\n * {@link Boolean#TRUE} as directed by the actual hint documentation.\n */\n // private valueType: Class>\n // DecodeHintType(valueType: Class>) {\n // this.valueType = valueType\n // }\n // public getValueType(): Class> {\n // return valueType\n // }\n})(DecodeHintType || (DecodeHintType = {}));\nexports.default = DecodeHintType;\n//# sourceMappingURL=DecodeHintType.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\n/*namespace com.google.zxing {*/\n/**\n * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes\n * white and vice versa, and each value becomes (255-value).\n *\n * @author Sean Owen\n */\nvar InvertedLuminanceSource = /** @class */ (function (_super) {\n __extends(InvertedLuminanceSource, _super);\n function InvertedLuminanceSource(delegate) {\n var _this = _super.call(this, delegate.getWidth(), delegate.getHeight()) || this;\n _this.delegate = delegate;\n return _this;\n }\n /*@Override*/\n InvertedLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n var sourceRow = this.delegate.getRow(y, row);\n var width = this.getWidth();\n for (var i = 0; i < width; i++) {\n sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\n }\n return sourceRow;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.getMatrix = function () {\n var matrix = this.delegate.getMatrix();\n var length = this.getWidth() * this.getHeight();\n var invertedMatrix = new Uint8ClampedArray(length);\n for (var i = 0; i < length; i++) {\n invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\n }\n return invertedMatrix;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isCropSupported = function () {\n return this.delegate.isCropSupported();\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isRotateSupported = function () {\n return this.delegate.isRotateSupported();\n };\n /**\n * @return original delegate {@link LuminanceSource} since invert undoes itself\n */\n /*@Override*/\n InvertedLuminanceSource.prototype.invert = function () {\n return this.delegate;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\n };\n return InvertedLuminanceSource;\n}(LuminanceSource_1.default));\nexports.default = InvertedLuminanceSource;\n//# sourceMappingURL=InvertedLuminanceSource.js.map","\"use strict\";\n/*\n * Copyright 2009 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DecodeHintType_1 = require(\"./DecodeHintType\");\nvar BarcodeFormat_1 = require(\"./BarcodeFormat\");\nvar QRCodeReader_1 = require(\"./qrcode/QRCodeReader\");\nvar MultiFormatOneDReader_1 = require(\"./oned/MultiFormatOneDReader\");\nvar DataMatrixReader_1 = require(\"./datamatrix/DataMatrixReader\");\nvar NotFoundException_1 = require(\"./NotFoundException\");\nvar ReaderException_1 = require(\"./ReaderException\");\n/*namespace com.google.zxing {*/\n/**\n * MultiFormatReader is a convenience class and the main entry point into the library for most uses.\n * By default it attempts to decode all barcode formats that the library supports. Optionally, you\n * can provide a hints object to request different behavior, for example only decoding QR codes.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatReader = /** @class */ (function () {\n function MultiFormatReader() {\n }\n /**\n * This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it\n * passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly.\n * Use setHints() followed by decodeWithState() for continuous scan applications.\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n // public decode(image: BinaryBitmap): Result {\n // setHints(null)\n // return decodeInternal(image)\n // }\n /**\n * Decode an image using the hints provided. Does not honor existing state.\n *\n * @param image The pixel data to decode\n * @param hints The hints to use, clearing the previous state.\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n MultiFormatReader.prototype.decode = function (image, hints) {\n this.setHints(hints);\n return this.decodeInternal(image);\n };\n /**\n * Decode an image using the state set up by calling setHints() previously. Continuous scan\n * clients will get a large speed increase by using this instead of decode().\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n MultiFormatReader.prototype.decodeWithState = function (image) {\n // Make sure to set up the default state so we don't crash\n if (this.readers === null || this.readers === undefined) {\n this.setHints(null);\n }\n return this.decodeInternal(image);\n };\n /**\n * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls\n * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This\n * is important for performance in continuous scan clients.\n *\n * @param hints The set of hints to use for subsequent calls to decode(image)\n */\n MultiFormatReader.prototype.setHints = function (hints) {\n this.hints = hints;\n var tryHarder = hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType_1.default.TRY_HARDER);\n /*@SuppressWarnings(\"unchecked\")*/\n var formats = hints === null || hints === undefined ? null : hints.get(DecodeHintType_1.default.POSSIBLE_FORMATS);\n var readers = new Array();\n if (formats !== null && formats !== undefined) {\n var addOneDReader = formats.some(function (f) {\n return f === BarcodeFormat_1.default.UPC_A ||\n f === BarcodeFormat_1.default.UPC_E ||\n f === BarcodeFormat_1.default.EAN_13 ||\n f === BarcodeFormat_1.default.EAN_8 ||\n f === BarcodeFormat_1.default.CODABAR ||\n f === BarcodeFormat_1.default.CODE_39 ||\n f === BarcodeFormat_1.default.CODE_93 ||\n f === BarcodeFormat_1.default.CODE_128 ||\n f === BarcodeFormat_1.default.ITF ||\n f === BarcodeFormat_1.default.RSS_14 ||\n f === BarcodeFormat_1.default.RSS_EXPANDED;\n });\n // Put 1D readers upfront in \"normal\" mode\n // TYPESCRIPTPORT: TODO: uncomment below as they are ported\n if (addOneDReader && !tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n if (formats.includes(BarcodeFormat_1.default.QR_CODE)) {\n readers.push(new QRCodeReader_1.default());\n }\n if (formats.includes(BarcodeFormat_1.default.DATA_MATRIX)) {\n readers.push(new DataMatrixReader_1.default());\n }\n // if (formats.includes(BarcodeFormat.AZTEC)) {\n // readers.push(new AztecReader())\n // }\n // if (formats.includes(BarcodeFormat.PDF_417)) {\n // readers.push(new PDF417Reader())\n // }\n // if (formats.includes(BarcodeFormat.MAXICODE)) {\n // readers.push(new MaxiCodeReader())\n // }\n // At end in \"try harder\" mode\n if (addOneDReader && tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n }\n if (readers.length === 0) {\n if (!tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n readers.push(new QRCodeReader_1.default());\n readers.push(new DataMatrixReader_1.default());\n // readers.push(new AztecReader())\n // readers.push(new PDF417Reader())\n // readers.push(new MaxiCodeReader())\n if (tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n }\n this.readers = readers; // .toArray(new Reader[readers.size()])\n };\n /*@Override*/\n MultiFormatReader.prototype.reset = function () {\n if (this.readers !== null) {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n reader.reset();\n }\n }\n };\n /**\n * @throws NotFoundException\n */\n MultiFormatReader.prototype.decodeInternal = function (image) {\n if (this.readers === null) {\n throw new ReaderException_1.default('No readers where selected, nothing can be read.');\n }\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n // Trying to decode with ${reader} reader.\n try {\n return reader.decode(image, this.hints);\n }\n catch (ex) {\n if (ex instanceof ReaderException_1.default) {\n continue;\n }\n // Bad Exception.\n }\n }\n throw new NotFoundException_1.default('No MultiFormat Readers were able to detect the code.');\n };\n return MultiFormatReader;\n}());\nexports.default = MultiFormatReader;\n//# sourceMappingURL=MultiFormatReader.js.map","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\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 var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\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 C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertError.vue?vue&type=style&index=0&lang=scss&\"","/**\n * In the recognition result of tesseract, there\n * is a deep JSON object for details, it has around\n *\n * The result of dump.js is a big JSON tree\n * which can be easily serialized (for instance\n * to be sent from a webworker to the main app\n * or through Node's IPC), but we want\n * a (circular) DOM-like interface for walking\n * through the data.\n *\n * @fileoverview DOM-like interface for walking through data\n * @author Kevin KwokEncapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.
\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataBlock = /** @class */ (function () {\n function DataBlock(numDataCodewords, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.
\n *\n * @param rawCodewords bytes as read directly from the Data Matrix Code\n * @param version version of the Data Matrix Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * Data Matrix Code\n */\n DataBlock.getDataBlocks = function (rawCodewords, version) {\n // Figure out the number and size of data blocks used by this version\n var ecBlocks = version.getECBlocks();\n // First count the total number of data blocks\n var totalBlocks = 0;\n var ecBlockArray = ecBlocks.getECBlocks();\n for (var _i = 0, ecBlockArray_1 = ecBlockArray; _i < ecBlockArray_1.length; _i++) {\n var ecBlock = ecBlockArray_1[_i];\n totalBlocks += ecBlock.getCount();\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n var result = new Array(totalBlocks);\n var numResultBlocks = 0;\n for (var _a = 0, ecBlockArray_2 = ecBlockArray; _a < ecBlockArray_2.length; _a++) {\n var ecBlock = ecBlockArray_2[_a];\n for (var i = 0; i < ecBlock.getCount(); i++) {\n var numDataCodewords = ecBlock.getDataCodewords();\n var numBlockCodewords = ecBlocks.getECCodewords() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 less byte. Figure out where these start.\n // TODO(bbrown): There is only one case where there is a difference for Data Matrix for size 144\n var longerBlocksTotalCodewords = result[0].codewords.length;\n // int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1;\n var longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords();\n var shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1;\n // The last elements of result may be 1 element shorter for 144 matrix\n // first fill out as many elements as all of them have minus 1\n var rawCodewordsOffset = 0;\n for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n var specialVersion = version.getVersionNumber() === 24;\n var numLongerBlocks = specialVersion ? 8 : numResultBlocks;\n for (var j = 0; j < numLongerBlocks; j++) {\n result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n var max = result[0].codewords.length;\n for (var i = longerBlocksNumDataCodewords; i < max; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n var jOffset = specialVersion ? (j + 8) % numResultBlocks : j;\n var iOffset = specialVersion && jOffset > 7 ? i - 1 : i;\n result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n if (rawCodewordsOffset !== rawCodewords.length) {\n throw new IllegalArgumentException_1.default();\n }\n return result;\n };\n DataBlock.prototype.getNumDataCodewords = function () {\n return this.numDataCodewords;\n };\n DataBlock.prototype.getCodewords = function () {\n return this.codewords;\n };\n return DataBlock;\n}());\nexports.default = DataBlock;\n//# sourceMappingURL=DataBlock.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\n/**\n *This provides an easy abstraction to read bits at a time from a sequence of bytes, where the\n * number of bits read is not often a multiple of 8.
\n *\n *This class is thread-safe but not reentrant -- unless the caller modifies the bytes array\n * it passed in, in which case all bets are off.
\n *\n * @author Sean Owen\n */\nvar BitSource = /** @class */ (function () {\n /**\n * @param bytes bytes from which this will read bits. Bits will be read from the first byte first.\n * Bits are read within a byte from most-significant to least-significant bit.\n */\n function BitSource(bytes) {\n this.bytes = bytes;\n this.byteOffset = 0;\n this.bitOffset = 0;\n }\n /**\n * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.\n */\n BitSource.prototype.getBitOffset = function () {\n return this.bitOffset;\n };\n /**\n * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.\n */\n BitSource.prototype.getByteOffset = function () {\n return this.byteOffset;\n };\n /**\n * @param numBits number of bits to read\n * @return int representing the bits read. The bits will appear as the least-significant\n * bits of the int\n * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available\n */\n BitSource.prototype.readBits = function (numBits /*int*/) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new IllegalArgumentException_1.default('' + numBits);\n }\n var result = 0;\n var bitOffset = this.bitOffset;\n var byteOffset = this.byteOffset;\n var bytes = this.bytes;\n // First, read remainder from current byte\n if (bitOffset > 0) {\n var bitsLeft = 8 - bitOffset;\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n var bitsToNotRead = bitsLeft - toRead;\n var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n result = (bytes[byteOffset] & mask) >> bitsToNotRead;\n numBits -= toRead;\n bitOffset += toRead;\n if (bitOffset === 8) {\n bitOffset = 0;\n byteOffset++;\n }\n }\n // Next read whole bytes\n if (numBits > 0) {\n while (numBits >= 8) {\n result = (result << 8) | (bytes[byteOffset] & 0xFF);\n byteOffset++;\n numBits -= 8;\n }\n // Finally read a partial byte\n if (numBits > 0) {\n var bitsToNotRead = 8 - numBits;\n var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead);\n bitOffset += numBits;\n }\n }\n this.bitOffset = bitOffset;\n this.byteOffset = byteOffset;\n return result;\n };\n /**\n * @return number of bits that can be read successfully\n */\n BitSource.prototype.available = function () {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n };\n return BitSource;\n}());\nexports.default = BitSource;\n//# sourceMappingURL=BitSource.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=style&index=0&lang=scss&\"","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserCodeReader_1 = require(\"./BrowserCodeReader\");\nvar QRCodeReader_1 = require(\"../core/qrcode/QRCodeReader\");\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserQRCodeReader = /** @class */ (function (_super) {\n __extends(BrowserQRCodeReader, _super);\n /**\n * Creates an instance of BrowserQRCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n function BrowserQRCodeReader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new QRCodeReader_1.default(), timeBetweenScansMillis) || this;\n }\n return BrowserQRCodeReader;\n}(BrowserCodeReader_1.BrowserCodeReader));\nexports.BrowserQRCodeReader = BrowserQRCodeReader;\n//# sourceMappingURL=BrowserQRCodeReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EncodeHintType_1 = require(\"../core/EncodeHintType\");\nvar Encoder_1 = require(\"../core/qrcode/encoder/Encoder\");\nvar ErrorCorrectionLevel_1 = require(\"../core/qrcode/decoder/ErrorCorrectionLevel\");\nvar IllegalArgumentException_1 = require(\"../core/IllegalArgumentException\");\nvar IllegalStateException_1 = require(\"../core/IllegalStateException\");\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar BrowserQRCodeSvgWriter = /** @class */ (function () {\n function BrowserQRCodeSvgWriter() {\n }\n /**\n * Writes and renders a QRCode SVG element.\n *\n * @param contents\n * @param width\n * @param height\n * @param hints\n */\n BrowserQRCodeSvgWriter.prototype.write = function (contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (contents.length === 0) {\n throw new IllegalArgumentException_1.default('Found empty contents');\n }\n // if (format != BarcodeFormat.QR_CODE) {\n // throw new IllegalArgumentException(\"Can only encode QR_CODE, but got \" + format)\n // }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException_1.default('Requested dimensions are too small: ' + width + 'x' + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel_1.default.L;\n var quietZone = BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType_1.default.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel_1.default.fromString(hints.get(EncodeHintType_1.default.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType_1.default.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType_1.default.MARGIN).toString(), 10);\n }\n }\n var code = Encoder_1.default.encode(contents, errorCorrectionLevel, hints);\n return this.renderResult(code, width, height, quietZone);\n };\n /**\n * Renders the result and then appends it to the DOM.\n */\n BrowserQRCodeSvgWriter.prototype.writeToDom = function (containerElement, contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (typeof containerElement === 'string') {\n containerElement = document.querySelector(containerElement);\n }\n var svgElement = this.write(contents, width, height, hints);\n if (containerElement)\n containerElement.appendChild(svgElement);\n };\n /**\n * Note that the input matrix uses 0 == white, 1 == black.\n * The output matrix uses 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n */\n BrowserQRCodeSvgWriter.prototype.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException_1.default();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var svgElement = this.createSVGElement(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n var svgRectElement = this.createSvgRectElement(outputX, outputY, multiple, multiple);\n svgElement.appendChild(svgRectElement);\n }\n }\n }\n return svgElement;\n };\n /**\n * Creates a SVG element.\n *\n * @param w SVG's width attribute\n * @param h SVG's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSVGElement = function (w, h) {\n var svgElement = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'svg');\n svgElement.setAttributeNS(null, 'height', w.toString());\n svgElement.setAttributeNS(null, 'width', h.toString());\n return svgElement;\n };\n /**\n * Creates a SVG rect element.\n *\n * @param x Element's x coordinate\n * @param y Element's y coordinate\n * @param w Element's width attribute\n * @param h Element's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSvgRectElement = function (x, y, w, h) {\n var rect = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'rect');\n rect.setAttributeNS(null, 'x', x.toString());\n rect.setAttributeNS(null, 'y', y.toString());\n rect.setAttributeNS(null, 'height', w.toString());\n rect.setAttributeNS(null, 'width', h.toString());\n rect.setAttributeNS(null, 'fill', '#000000');\n return rect;\n };\n BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE = 4;\n /**\n * SVG markup NameSpace\n */\n BrowserQRCodeSvgWriter.SVG_NS = 'http://www.w3.org/2000/svg';\n return BrowserQRCodeSvgWriter;\n}());\nexports.BrowserQRCodeSvgWriter = BrowserQRCodeSvgWriter;\n//# sourceMappingURL=BrowserQRCodeSvgWriter.js.map","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/**\n *This class implements a perspective transform in two dimensions. Given four source and four\n * destination points, it will compute the transformation implied between them. The code is based\n * directly upon section 3.4.2 of George Wolberg's \"Digital Image Warping\"; see pages 54-56.
\n *\n * @author Sean Owen\n */\nvar PerspectiveTransform = /** @class */ (function () {\n function PerspectiveTransform(a11 /*float*/, a21 /*float*/, a31 /*float*/, a12 /*float*/, a22 /*float*/, a32 /*float*/, a13 /*float*/, a23 /*float*/, a33 /*float*/) {\n this.a11 = a11;\n this.a21 = a21;\n this.a31 = a31;\n this.a12 = a12;\n this.a22 = a22;\n this.a32 = a32;\n this.a13 = a13;\n this.a23 = a23;\n this.a33 = a33;\n }\n PerspectiveTransform.quadrilateralToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/, x0p /*float*/, y0p /*float*/, x1p /*float*/, y1p /*float*/, x2p /*float*/, y2p /*float*/, x3p /*float*/, y3p /*float*/) {\n var qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\n var sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\n return sToQ.times(qToS);\n };\n PerspectiveTransform.prototype.transformPoints = function (points) {\n var max = points.length;\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n for (var i = 0; i < max; i += 2) {\n var x = points[i];\n var y = points[i + 1];\n var denominator = a13 * x + a23 * y + a33;\n points[i] = (a11 * x + a21 * y + a31) / denominator;\n points[i + 1] = (a12 * x + a22 * y + a32) / denominator;\n }\n };\n PerspectiveTransform.prototype.transformPointsWithValues = function (xValues, yValues) {\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n var n = xValues.length;\n for (var i = 0; i < n; i++) {\n var x = xValues[i];\n var y = yValues[i];\n var denominator = a13 * x + a23 * y + a33;\n xValues[i] = (a11 * x + a21 * y + a31) / denominator;\n yValues[i] = (a12 * x + a22 * y + a32) / denominator;\n }\n };\n PerspectiveTransform.squareToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n var dx3 = x0 - x1 + x2 - x3;\n var dy3 = y0 - y1 + y2 - y3;\n if (dx3 === 0.0 && dy3 === 0.0) {\n // Affine\n return new PerspectiveTransform(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0.0, 0.0, 1.0);\n }\n else {\n var dx1 = x1 - x2;\n var dx2 = x3 - x2;\n var dy1 = y1 - y2;\n var dy2 = y3 - y2;\n var denominator = dx1 * dy2 - dx2 * dy1;\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1.0);\n }\n };\n PerspectiveTransform.quadrilateralToSquare = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n // Here, the adjoint serves as the inverse:\n return PerspectiveTransform.squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint();\n };\n PerspectiveTransform.prototype.buildAdjoint = function () {\n // Adjoint is the transpose of the cofactor matrix:\n return new PerspectiveTransform(this.a22 * this.a33 - this.a23 * this.a32, this.a23 * this.a31 - this.a21 * this.a33, this.a21 * this.a32 - this.a22 * this.a31, this.a13 * this.a32 - this.a12 * this.a33, this.a11 * this.a33 - this.a13 * this.a31, this.a12 * this.a31 - this.a11 * this.a32, this.a12 * this.a23 - this.a13 * this.a22, this.a13 * this.a21 - this.a11 * this.a23, this.a11 * this.a22 - this.a12 * this.a21);\n };\n PerspectiveTransform.prototype.times = function (other) {\n return new PerspectiveTransform(this.a11 * other.a11 + this.a21 * other.a12 + this.a31 * other.a13, this.a11 * other.a21 + this.a21 * other.a22 + this.a31 * other.a23, this.a11 * other.a31 + this.a21 * other.a32 + this.a31 * other.a33, this.a12 * other.a11 + this.a22 * other.a12 + this.a32 * other.a13, this.a12 * other.a21 + this.a22 * other.a22 + this.a32 * other.a23, this.a12 * other.a31 + this.a22 * other.a32 + this.a32 * other.a33, this.a13 * other.a11 + this.a23 * other.a12 + this.a33 * other.a13, this.a13 * other.a21 + this.a23 * other.a22 + this.a33 * other.a23, this.a13 * other.a31 + this.a23 * other.a32 + this.a33 * other.a33);\n };\n return PerspectiveTransform;\n}());\nexports.default = PerspectiveTransform;\n//# sourceMappingURL=PerspectiveTransform.js.map","module.exports = (prefix, cnt) => (\n `${prefix}-${cnt}-${Math.random().toString(16).slice(3, 8)}`\n);\n","\"use strict\";\n/*\n * Copyright 2007 ZXing authors\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nvar BitArray_1 = require(\"./BitArray\");\nvar System_1 = require(\"../util/System\");\nvar Arrays_1 = require(\"../util/Arrays\");\nvar StringBuilder_1 = require(\"../util/StringBuilder\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\n/**\n *Represents a 2D matrix of bits. In function arguments below, and throughout the common\n * module, x is the column position, and y is the row position. The ordering is always x, y.\n * The origin is at the top-left.
\n *\n *Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins\n * with a new int. This is done intentionally so that we can copy out a row into a BitArray very\n * efficiently.
\n *\n *The ordering of bits is row-major. Within each int, the least significant bits are used first,\n * meaning they represent lower x values. This is compatible with BitArray's implementation.
\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar BitMatrix /*implements Cloneable*/ = /** @class */ (function () {\n /**\n * Creates an empty square {@link BitMatrix}.\n *\n * @param dimension height and width\n */\n // public constructor(dimension: number /*int*/) {\n // this(dimension, dimension)\n // }\n /**\n * Creates an empty {@link BitMatrix}.\n *\n * @param width bit matrix width\n * @param height bit matrix height\n */\n // public constructor(width: number /*int*/, height: number /*int*/) {\n // if (width < 1 || height < 1) {\n // throw new IllegalArgumentException(\"Both dimensions must be greater than 0\")\n // }\n // this.width = width\n // this.height = height\n // this.rowSize = (width + 31) / 32\n // bits = new int[rowSize * height];\n // }\n function BitMatrix(width /*int*/, height /*int*/, rowSize /*int*/, bits) {\n this.width = width;\n this.height = height;\n this.rowSize = rowSize;\n this.bits = bits;\n if (undefined === height || null === height) {\n height = width;\n }\n this.height = height;\n if (width < 1 || height < 1) {\n throw new IllegalArgumentException_1.default('Both dimensions must be greater than 0');\n }\n if (undefined === rowSize || null === rowSize) {\n rowSize = Math.floor((width + 31) / 32);\n }\n this.rowSize = rowSize;\n if (undefined === bits || null === bits) {\n this.bits = new Int32Array(this.rowSize * this.height);\n }\n }\n /**\n * Interprets a 2D array of booleans as a {@link BitMatrix}, where \"true\" means an \"on\" bit.\n *\n * @param image bits of the image, as a row-major 2D array. Elements are arrays representing rows\n * @return {@link BitMatrix} representation of image\n */\n BitMatrix.parseFromBooleanArray = function (image) {\n var height = image.length;\n var width = image[0].length;\n var bits = new BitMatrix(width, height);\n for (var i = 0; i < height; i++) {\n var imageI = image[i];\n for (var j = 0; j < width; j++) {\n if (imageI[j]) {\n bits.set(j, i);\n }\n }\n }\n return bits;\n };\n BitMatrix.parseFromString = function (stringRepresentation, setString, unsetString) {\n if (stringRepresentation === null) {\n throw new IllegalArgumentException_1.default('stringRepresentation cannot be null');\n }\n var bits = new Array(stringRepresentation.length);\n var bitsPos = 0;\n var rowStartPos = 0;\n var rowLength = -1;\n var nRows = 0;\n var pos = 0;\n while (pos < stringRepresentation.length) {\n if (stringRepresentation.charAt(pos) === '\\n' ||\n stringRepresentation.charAt(pos) === '\\r') {\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException_1.default('row lengths do not match');\n }\n rowStartPos = bitsPos;\n nRows++;\n }\n pos++;\n }\n else if (stringRepresentation.substring(pos, pos + setString.length) === setString) {\n pos += setString.length;\n bits[bitsPos] = true;\n bitsPos++;\n }\n else if (stringRepresentation.substring(pos, pos + unsetString.length) === unsetString) {\n pos += unsetString.length;\n bits[bitsPos] = false;\n bitsPos++;\n }\n else {\n throw new IllegalArgumentException_1.default('illegal character encountered: ' + stringRepresentation.substring(pos));\n }\n }\n // no EOL at end?\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException_1.default('row lengths do not match');\n }\n nRows++;\n }\n var matrix = new BitMatrix(rowLength, nRows);\n for (var i = 0; i < bitsPos; i++) {\n if (bits[i]) {\n matrix.set(Math.floor(i % rowLength), Math.floor(i / rowLength));\n }\n }\n return matrix;\n };\n /**\n *Gets the requested bit, where true means black.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n * @return value of given bit in matrix\n */\n BitMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n return ((this.bits[offset] >>> (x & 0x1f)) & 1) !== 0;\n };\n /**\n *Sets the given bit to true.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n BitMatrix.prototype.set = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\n };\n BitMatrix.prototype.unset = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] &= ~((1 << (x & 0x1f)) & 0xFFFFFFFF);\n };\n /**\n *Flips the given bit.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n BitMatrix.prototype.flip = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] ^= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n };\n /**\n * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding\n * mask bit is set.\n *\n * @param mask XOR mask\n */\n BitMatrix.prototype.xor = function (mask) {\n if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\n || this.rowSize !== mask.getRowSize()) {\n throw new IllegalArgumentException_1.default('input matrix dimensions do not match');\n }\n var rowArray = new BitArray_1.default(Math.floor(this.width / 32) + 1);\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = 0, height = this.height; y < height; y++) {\n var offset = y * rowSize;\n var row = mask.getRow(y, rowArray).getBitArray();\n for (var x = 0; x < rowSize; x++) {\n bits[offset + x] ^= row[x];\n }\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitMatrix.prototype.clear = function () {\n var bits = this.bits;\n var max = bits.length;\n for (var i = 0; i < max; i++) {\n bits[i] = 0;\n }\n };\n /**\n *Sets a square region of the bit matrix to true.
\n *\n * @param left The horizontal position to begin at (inclusive)\n * @param top The vertical position to begin at (inclusive)\n * @param width The width of the region\n * @param height The height of the region\n */\n BitMatrix.prototype.setRegion = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n if (top < 0 || left < 0) {\n throw new IllegalArgumentException_1.default('Left and top must be nonnegative');\n }\n if (height < 1 || width < 1) {\n throw new IllegalArgumentException_1.default('Height and width must be at least 1');\n }\n var right = left + width;\n var bottom = top + height;\n if (bottom > this.height || right > this.width) {\n throw new IllegalArgumentException_1.default('The region must fit inside the matrix');\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = top; y < bottom; y++) {\n var offset = y * rowSize;\n for (var x = left; x < right; x++) {\n bits[offset + Math.floor(x / 32)] |= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n }\n }\n };\n /**\n * A fast method to retrieve one row of data from the matrix as a BitArray.\n *\n * @param y The row to retrieve\n * @param row An optional caller-allocated BitArray, will be allocated if null or too small\n * @return The resulting BitArray - this reference should always be used even when passing\n * your own row\n */\n BitMatrix.prototype.getRow = function (y /*int*/, row) {\n if (row === null || row === undefined || row.getSize() < this.width) {\n row = new BitArray_1.default(this.width);\n }\n else {\n row.clear();\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n var offset = y * rowSize;\n for (var x = 0; x < rowSize; x++) {\n row.setBulk(x * 32, bits[offset + x]);\n }\n return row;\n };\n /**\n * @param y row to set\n * @param row {@link BitArray} to copy from\n */\n BitMatrix.prototype.setRow = function (y /*int*/, row) {\n System_1.default.arraycopy(row.getBitArray(), 0, this.bits, y * this.rowSize, this.rowSize);\n };\n /**\n * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees\n */\n BitMatrix.prototype.rotate180 = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n var topRow = new BitArray_1.default(width);\n var bottomRow = new BitArray_1.default(width);\n for (var i = 0, length_1 = Math.floor((height + 1) / 2); i < length_1; i++) {\n topRow = this.getRow(i, topRow);\n bottomRow = this.getRow(height - 1 - i, bottomRow);\n topRow.reverse();\n bottomRow.reverse();\n this.setRow(i, bottomRow);\n this.setRow(height - 1 - i, topRow);\n }\n };\n /**\n * This is useful in detecting the enclosing rectangle of a 'pure' barcode.\n *\n * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white\n */\n BitMatrix.prototype.getEnclosingRectangle = function () {\n var width = this.width;\n var height = this.height;\n var rowSize = this.rowSize;\n var bits = this.bits;\n var left = width;\n var top = height;\n var right = -1;\n var bottom = -1;\n for (var y = 0; y < height; y++) {\n for (var x32 = 0; x32 < rowSize; x32++) {\n var theBits = bits[y * rowSize + x32];\n if (theBits !== 0) {\n if (y < top) {\n top = y;\n }\n if (y > bottom) {\n bottom = y;\n }\n if (x32 * 32 < left) {\n var bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n if ((x32 * 32 + bit) < left) {\n left = x32 * 32 + bit;\n }\n }\n if (x32 * 32 + 31 > right) {\n var bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n if ((x32 * 32 + bit) > right) {\n right = x32 * 32 + bit;\n }\n }\n }\n }\n }\n if (right < left || bottom < top) {\n return null;\n }\n return Int32Array.from([left, top, right - left + 1, bottom - top + 1]);\n };\n /**\n * This is useful in detecting a corner of a 'pure' barcode.\n *\n * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white\n */\n BitMatrix.prototype.getTopLeftOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = 0;\n while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\n bitsOffset++;\n }\n if (bitsOffset === bits.length) {\n return null;\n }\n var y = bitsOffset / rowSize;\n var x = (bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n x += bit;\n return Int32Array.from([x, y]);\n };\n BitMatrix.prototype.getBottomRightOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = bits.length - 1;\n while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\n bitsOffset--;\n }\n if (bitsOffset < 0) {\n return null;\n }\n var y = Math.floor(bitsOffset / rowSize);\n var x = Math.floor(bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n x += bit;\n return Int32Array.from([x, y]);\n };\n /**\n * @return The width of the matrix\n */\n BitMatrix.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the matrix\n */\n BitMatrix.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return The row size of the matrix\n */\n BitMatrix.prototype.getRowSize = function () {\n return this.rowSize;\n };\n /*@Override*/\n BitMatrix.prototype.equals = function (o) {\n if (!(o instanceof BitMatrix)) {\n return false;\n }\n var other = o;\n return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\n Arrays_1.default.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitMatrix.prototype.hashCode = function () {\n var hash = this.width;\n hash = 31 * hash + this.width;\n hash = 31 * hash + this.height;\n hash = 31 * hash + this.rowSize;\n hash = 31 * hash + Arrays_1.default.hashCode(this.bits);\n return hash;\n };\n /**\n * @return string representation using \"X\" for set and \" \" for unset bits\n */\n /*@Override*/\n // public toString(): string {\n // return toString(\": \"X, \" \")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @return string representation of entire matrix utilizing given strings\n */\n // public toString(setString: string = \"X \", unsetString: string = \" \"): string {\n // return this.buildToString(setString, unsetString, \"\\n\")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @param lineSeparator newline character in string representation\n * @return string representation of entire matrix utilizing given strings and line separator\n * @deprecated call {@link #toString(String,String)} only, which uses \\n line separator always\n */\n // @Deprecated\n BitMatrix.prototype.toString = function (setString, unsetString, lineSeparator) {\n if (setString === void 0) { setString = 'x'; }\n if (unsetString === void 0) { unsetString = ' '; }\n if (lineSeparator === void 0) { lineSeparator = '\\n'; }\n return this.buildToString(setString, unsetString, lineSeparator);\n };\n BitMatrix.prototype.buildToString = function (setString, unsetString, lineSeparator) {\n var result = new StringBuilder_1.default();\n result.append(lineSeparator);\n for (var y = 0, height = this.height; y < height; y++) {\n for (var x = 0, width = this.width; x < width; x++) {\n result.append(this.get(x, y) ? setString : unsetString);\n }\n result.append(lineSeparator);\n }\n return result.toString();\n };\n /*@Override*/\n BitMatrix.prototype.clone = function () {\n return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\n };\n return BitMatrix;\n}());\nexports.default = BitMatrix;\n//# sourceMappingURL=BitMatrix.js.map"],"sourceRoot":""}